blob: 39d66a7a229c6c067f87c781550ff739a01dacf4 [file] [log] [blame]
Cody Schuffelen134ff032019-11-22 00:25:32 -08001(Please use a smaller font and/or appropriate terminal width to see this line without wrapping)
2
3
4 REGION DESCRIPTORS
5 (starts at page 0)
6 +------------------------------+
7 | major_version: u16 |
8 +------------------------------+
9 | minor_version: u16 |
10 +------------------------------+
11 (size of shared memory) | size: u32 |
12 +------------------------------+
13 (number of regions) | region_count: u32 |
14 +------------------------------+
15 (offset of region descriptor data) | vsoc_region_desc_offset: u32 |o-----+
16 +------------------------------+ |
17 | | |
18 | .. .. .. | |
19 | | |
20 (region 0 descriptor start) +------------------------------+ <----+
21 | current_version: u16 |
22 +------------------------------+
23 | min_compatible_version: u16 |
24 +------------------------------+
25 (start offset of region 0) | region_begin_offset: u32 |o--------------------+
26 +------------------------------+ |
27 (end offset of region 0) | region_end_offset: u32 |o----------------------------------------------------------------------+
28 +------------------------------+ | |
29 | offset_of_region_data: u32 |o-----+ | |
30 +------------------------------+ | | |
31 | guest_to_host_signal_table | | | |
32 |______________________________| | | |
33 +----------------------------+ | | |
34 | num_nodes_lg2: u32 | | | |
35 +----------------------------+ | | |
36 |futex_uaddr_table_offset:u32|o------------------+ | |
37 +----------------------------+ | | | |
38 | intr_signaled_offset: u32 |o----------------+ | | |
39 +----------------------------+ | | | | |
40 +------------------------------+ | | | | |
41 | host_to_guest_signal_table | | | | | |
42 |______________________________| | | | | |
43 +----------------------------+ | | | | |
44 | num_nodes_lg2: u32 | | | | | |
45 +----------------------------+ | | | | |
46 |futex_uaddr_table_offset:u32|o--------------+ | | | |
47 +----------------------------+ | | | | \/ REGION AREA (page aligned) |
48 | intr_signaled_offset: u32 |o------|-----+ | | | +---------------------------------------+ |
49 +----------------------------+ | | | | | | region area before start of guest to | |
50 +------------------------------+ | | | | | | host signal table. | |
51 | device_name: char[16] | | | | | | | (currently does not exist) | |
52 (region 0 descriptor end) +------------------------------+ | | | | +->+---------------------------------------+ |
53 (region 1 descriptor start) | | | | | | | uaddr_offset_0 : u32 | |
54 | current_version: u16 | | | | | +---------------------------------------+ |
55 +------------------------------+ | | | | | uaddr_offset_1 : u32 | |
56 | min_compatible_version: u16 | | | | | +---------------------------------------+ |
57 +------------------------------+ | | | | | ... .. ... | |
58 | region_begin_offset: u32 | | | | | +---------------------------------------+ |
59 +------------------------------+ | | | | | uaddr_offset_(2^num_nodes_lg2 - 1):u32| |
60 | region_end_offset: u32 | | | | +--->+---------------------------------------+ |
61 +------------------------------+ | | | | (interrupt_signaled_area) : u32 | |
62 | offset_of_region_data: u32 | | | +----->+---------------------------------------+ |
63 +------------------------------+ | | | uaddr_offset_0 : u32 | |
64 | guest_to_host_signal_table | | | +---------------------------------------+ |
65 +------------------------------+ | | | ... .. ... | |
66 | host_to_guest_signal_table | | | +---------------------------------------+ |
67 +------------------------------+ | | | uaddr_offset_(2^num_nodes_lg2 - 1):u32| |
68 | device_name: char[16] | | +------->+---------------------------------------+ |
69 (region 1 descriptor end) +------------------------------+ | | (interrupt_signaled_area) : u32 | |
70 ... ... ... +------------->+---------------------------------------+ |
71 +------------------------------+ | | |
72 | current_version: u16 | | | |
73 +------------------------------+ | | |
74 | min_compatible_version: u16 | | region specific data | |
75 +------------------------------+ | (defined by region specific agreement | |
76 | region_begin_offset: u32 | | between HAL and host-side process) | |
77 +------------------------------+ | | |
78 | region_end_offset: u32 | | | |
79 +------------------------------+ | | |
80 | offset_of_region_data: u32 | +---------------------------------------+ <-------+
81 +------------------------------+
82 | guest_to_host_signal_table |
83 +------------------------------+
84 | host_to_guest_signal_table |
85 +------------------------------+
86 | device_name: char[16] |
87 +------------------------------+
88 END OF REGION DESCRIPTORS