blob: 39d66a7a229c6c067f87c781550ff739a01dacf4 [file] [log] [blame]
(Please use a smaller font and/or appropriate terminal width to see this line without wrapping)
REGION DESCRIPTORS
(starts at page 0)
+------------------------------+
| major_version: u16 |
+------------------------------+
| minor_version: u16 |
+------------------------------+
(size of shared memory) | size: u32 |
+------------------------------+
(number of regions) | region_count: u32 |
+------------------------------+
(offset of region descriptor data) | vsoc_region_desc_offset: u32 |o-----+
+------------------------------+ |
| | |
| .. .. .. | |
| | |
(region 0 descriptor start) +------------------------------+ <----+
| current_version: u16 |
+------------------------------+
| min_compatible_version: u16 |
+------------------------------+
(start offset of region 0) | region_begin_offset: u32 |o--------------------+
+------------------------------+ |
(end offset of region 0) | region_end_offset: u32 |o----------------------------------------------------------------------+
+------------------------------+ | |
| offset_of_region_data: u32 |o-----+ | |
+------------------------------+ | | |
| guest_to_host_signal_table | | | |
|______________________________| | | |
+----------------------------+ | | |
| num_nodes_lg2: u32 | | | |
+----------------------------+ | | |
|futex_uaddr_table_offset:u32|o------------------+ | |
+----------------------------+ | | | |
| intr_signaled_offset: u32 |o----------------+ | | |
+----------------------------+ | | | | |
+------------------------------+ | | | | |
| host_to_guest_signal_table | | | | | |
|______________________________| | | | | |
+----------------------------+ | | | | |
| num_nodes_lg2: u32 | | | | | |
+----------------------------+ | | | | |
|futex_uaddr_table_offset:u32|o--------------+ | | | |
+----------------------------+ | | | | \/ REGION AREA (page aligned) |
| intr_signaled_offset: u32 |o------|-----+ | | | +---------------------------------------+ |
+----------------------------+ | | | | | | region area before start of guest to | |
+------------------------------+ | | | | | | host signal table. | |
| device_name: char[16] | | | | | | | (currently does not exist) | |
(region 0 descriptor end) +------------------------------+ | | | | +->+---------------------------------------+ |
(region 1 descriptor start) | | | | | | | uaddr_offset_0 : u32 | |
| current_version: u16 | | | | | +---------------------------------------+ |
+------------------------------+ | | | | | uaddr_offset_1 : u32 | |
| min_compatible_version: u16 | | | | | +---------------------------------------+ |
+------------------------------+ | | | | | ... .. ... | |
| region_begin_offset: u32 | | | | | +---------------------------------------+ |
+------------------------------+ | | | | | uaddr_offset_(2^num_nodes_lg2 - 1):u32| |
| region_end_offset: u32 | | | | +--->+---------------------------------------+ |
+------------------------------+ | | | | (interrupt_signaled_area) : u32 | |
| offset_of_region_data: u32 | | | +----->+---------------------------------------+ |
+------------------------------+ | | | uaddr_offset_0 : u32 | |
| guest_to_host_signal_table | | | +---------------------------------------+ |
+------------------------------+ | | | ... .. ... | |
| host_to_guest_signal_table | | | +---------------------------------------+ |
+------------------------------+ | | | uaddr_offset_(2^num_nodes_lg2 - 1):u32| |
| device_name: char[16] | | +------->+---------------------------------------+ |
(region 1 descriptor end) +------------------------------+ | | (interrupt_signaled_area) : u32 | |
... ... ... +------------->+---------------------------------------+ |
+------------------------------+ | | |
| current_version: u16 | | | |
+------------------------------+ | | |
| min_compatible_version: u16 | | region specific data | |
+------------------------------+ | (defined by region specific agreement | |
| region_begin_offset: u32 | | between HAL and host-side process) | |
+------------------------------+ | | |
| region_end_offset: u32 | | | |
+------------------------------+ | | |
| offset_of_region_data: u32 | +---------------------------------------+ <-------+
+------------------------------+
| guest_to_host_signal_table |
+------------------------------+
| host_to_guest_signal_table |
+------------------------------+
| device_name: char[16] |
+------------------------------+
END OF REGION DESCRIPTORS