文本文件  |  89行  |  9.99 KB

(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