Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
b3e28b65
Commit
b3e28b65
authored
Feb 11, 2015
by
Rusty Russell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lguest: remove lguest bus definitions from header.
Signed-off-by:
Rusty Russell
<
rusty@rustcorp.com.au
>
parent
d9028eda
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
2 additions
and
47 deletions
+2
-47
include/linux/lguest_launcher.h
include/linux/lguest_launcher.h
+2
-47
No files found.
include/linux/lguest_launcher.h
View file @
b3e28b65
...
...
@@ -8,52 +8,13 @@
*
* The Guest needs devices to do anything useful. Since we don't let it touch
* real devices (think of the damage it could do!) we provide virtual devices.
* We could emulate a PCI bus with various devices on it, but that is a fairly
* complex burden for the Host and suboptimal for the Guest, so we have our own
* simple lguest bus and we use "virtio" drivers. These drivers need a set of
* routines from us which will actually do the virtual I/O, but they handle all
* the net/block/console stuff themselves. This means that if we want to add
* a new device, we simply need to write a new virtio driver and create support
* for it in the Launcher: this code won't need to change.
* We emulate a PCI bus with virtio devices on it; we used to have our own
* lguest bus which was far simpler, but this tests the virtio 1.0 standard.
*
* Virtio devices are also used by kvm, so we can simply reuse their optimized
* device drivers. And one day when everyone uses virtio, my plan will be
* complete. Bwahahahah!
*
* Devices are described by a simplified ID, a status byte, and some "config"
* bytes which describe this device's configuration. This is placed by the
* Launcher just above the top of physical memory:
*/
struct
lguest_device_desc
{
/* The device type: console, network, disk etc. Type 0 terminates. */
__u8
type
;
/* The number of virtqueues (first in config array) */
__u8
num_vq
;
/*
* The number of bytes of feature bits. Multiply by 2: one for host
* features and one for Guest acknowledgements.
*/
__u8
feature_len
;
/* The number of bytes of the config array after virtqueues. */
__u8
config_len
;
/* A status byte, written by the Guest. */
__u8
status
;
__u8
config
[
0
];
};
/*D:135
* This is how we expect the device configuration field for a virtqueue
* to be laid out in config space.
*/
struct
lguest_vqconfig
{
/* The number of entries in the virtio_ring */
__u16
num
;
/* The interrupt we get when something happens. */
__u16
irq
;
/* The page number of the virtio ring for this device. */
__u32
pfn
;
};
/*:*/
/* Write command first word is a request. */
enum
lguest_req
...
...
@@ -80,10 +41,4 @@ struct lguest_pending {
__u8
insn
[
7
];
__u32
addr
;
};
/*
* The alignment to use between consumer and producer parts of vring.
* x86 pagesize for historical reasons.
*/
#define LGUEST_VRING_ALIGN 4096
#endif
/* _LINUX_LGUEST_LAUNCHER */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment