19f1537b7b
This makes lguest able to use the virtio devices. We change the device descriptor page from a simple array to a variable length "type, config_len, status, config data..." format, and implement virtio_config_ops to read from that config data. We use the virtio ring implementation for an efficient Guest <-> Host virtqueue mechanism, and the new LHCALL_NOTIFY hypercall to kick the host when it changes. We also use LHCALL_NOTIFY on kernel addresses for very very early console output. We could have another hypercall, but this hack works quite well. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
22 lines
786 B
Makefile
22 lines
786 B
Makefile
# Guest requires the device configuration and probing code.
|
|
obj-$(CONFIG_LGUEST_GUEST) += lguest_device.o
|
|
|
|
# Host requires the other files, which can be a module.
|
|
obj-$(CONFIG_LGUEST) += lg.o
|
|
lg-y = core.o hypercalls.o page_tables.o interrupts_and_traps.o \
|
|
segments.o lguest_user.o
|
|
|
|
lg-$(CONFIG_X86_32) += x86/switcher_32.o x86/core.o
|
|
|
|
Preparation Preparation!: PREFIX=P
|
|
Guest: PREFIX=G
|
|
Drivers: PREFIX=D
|
|
Launcher: PREFIX=L
|
|
Host: PREFIX=H
|
|
Switcher: PREFIX=S
|
|
Mastery: PREFIX=M
|
|
Beer:
|
|
@for f in Preparation Guest Drivers Launcher Host Switcher Mastery; do echo "{==- $$f -==}"; make -s $$f; done; echo "{==-==}"
|
|
Preparation Preparation! Guest Drivers Launcher Host Switcher Mastery:
|
|
@sh ../../Documentation/lguest/extract $(PREFIX) `find ../../* -name '*.[chS]' -wholename '*lguest*'`
|