Hi,
Excuse me, I have a question when I reading the libvirt source
codes.
I have known the process of how libvirt start/manage qemu, since I
need to write a driver based on libvirt. But one thing also confused, please
give me some tips.
1.
In qemu_command.c, there is a function call "cmd =
virCommandNewArgList(emulator, "-S", NULL);", which initializes pointer
"cmd". However, I don't find the initial value of "cmd->args",
which
represents the input of virFindFileInPath in Util.c. Through
virFindFileInPath, one could find a requested executable file in the PATH
env to start specified hypervisors.
So could you please tell me what the value of args[0] is? Or where does
cmd->args initialize?
2.
In qemu_driver.c, there is a function call "vm =
virDomainFindByUUID(&driver->domains, dom->uuid);", whose returned value
"vm" is important in the next functions. Then we could get the
"vm"'s value
in hash.c which is the end part to lookup domains saved in hashtable.
May I know where does HashTable initialize? I mean where can I set the
hashtable's values in detail, if I want to modify some values?
3.
This might be the same as question 1.
In command.c, "execve(cmd->args[0], cmd->args, cmd->env)" is a
way
to exec command. About qemu_driver, what is the value of those three inputs?
Thanks a lot!
Regard,
Corey