Re: the arguments of qemudDispatchServerEvent

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks a lot, Eric. I am now a student and is interesting in it. Your help courage me so much!

Yours.

2012/8/15 Eric Blake <eblake@xxxxxxxxxx>
On 08/14/2012 09:35 AM, mzawdx wang wrote:
> Hi all:
>        I am now reading the source codes of libvirt with version 0.9.2 ,

You'd be better off investigating the source code of libvirt.git (the
current development is working towards 0.10.0 as the successor to the
released 0.9.13); 0.9.2 is quite old.

> and be stuck by the function "qemudDispatchServerEvent". as you can see:
> static void
> qemudDispatchServerEvent(int watch, int fd, int events, void *opaque) {

In fact, in the meantime, this function was deleted in commit df0b57a95
(0.9.3) as part of using a newer RPC framework under src/rpc.

> ...
> }
>
> My question is : except for the argument "void *opaque", when and how the
> other three arguments (int watch, int fd, int events) being incoming ?
>
> For it is a static function, I look through the source file "libvirt.c" and
> find no answer .
> Could someone give me a help ?

If you insist on debugging 0.9.2, look at
daemon/libvirtd.c:qemudNetworkEnable, which passes the address of
qemudDispatchServerEvent as a callback pointer to virEventAddHandle.
Thus, any time a poll() on the connection socket completes,
qemudDispatchServerEvent() will be called with the information learned
from that poll.  In particular,
src/util/event_poll.c:virEventPollDispatchTimeouts() is a location that
calls the callback function.

--
Eric Blake   eblake@xxxxxxxxxx    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]