Virtual registers (guest_shm.h)
The guest_shm.h public header file includes definitions for guests using the shmem vdev.
GUEST_SHM_*
Synopsis:
#define GUEST_SHM_MAX_CLIENTS	16
#define GUEST_SHM_MAX_NAME	32
#define GUEST_SHM_SIGNATURE 0x4d534732474d5651
			Data:
The GUEST_SHM_* constants include the following:
- GUEST_SHM_MAX_CLIENTS
 - Maximum number of clients allowed to connect to a shared memory region (16)
 - GUEST_SHM_MAX_NAME
 - Maximum length allowed for a region name, in bytes (32)
 - GUEST_SHM_SIGNATURE
 - Signature value to verify that the vdev is present (0x4d534732474d5651)
 
guest_shm_control
Register layout for a region control page
Synopsis:
struct guest_shm_control {
  uint32_t    status;
  uint32_t    idx;
  uint32_t    notify;
  uint32_t    detach;
};
			Data:
The members of guest_shm_control include:
- status
 - Read only. Lower 16 bits: pending notification bitset; upper 16 bits: current active clients (see guest_shm_status below).
 - idx
 - Read only. Connection index for this client.
 - notify
 - Write a bitset here to indicate which clients to notify.
 - detach
 - Write here to detach your client from the shared memory region.
 
guest_shm_factory
Register layout for shared memory factory page registers
Synopsis:
struct guest_shm_factory {
  uint64_t    signature;
  uint64_t    shmem;
  uint32_t    vector;
  uint32_t    status;
  uint32_t    size;
  char        name[GUEST_SHM_MAX_NAME];
  uint32_t    find;
};
			Data:
The members of guest_shm_factory include:
- signature
 - Read only. Is GUEST_SHM_SIGNATURE (see 
GUEST_SHM_*
above). - shmem
 - Read only. The location of the shared memory in guest-physical memory.
 - vector
 - Read only. The interrupt number for this shared memory region.
 - status
 - Read only. The status of the last creation attempt (see 
guest_shm_status
below). - size
 - The size of the requested named shared memory region, in multiples of 4 KB pages. A write with this value creates a shared memory region, if the region with the specified name and size doesn't already exist.
 - name
 - The name of the shared memory region.
 - find
 - Whether to find an existing shared memory connection.
 
guest_shm_status
Status of last request to create a named shared memory region
Synopsis:
enum guest_shm_status {
  GSS_OK,
  GSS_UNKNOWN_FAILURE,
  GSS_NOMEM,
  GSS_CLIENT_MAX,
  GSS_ILLEGAL_NAME,
  GSS_NO_PERMISSION,
  GSS_DOES_NOT_EXIST,
};
			Data:
The guest_shm_status enumeration defines these values:
- GSS_OK
 - The region was successfully created.
 - GSS_UNKNOWN_FAILURE
 - The region creation failed due to an unknown reason.
 - GSS_NOMEM
 - There was insufficient memory to create the region.
 - GSS_CLIENT_MAX
 - The region can't be connected to because it is already being used by the maximum permitted number of guests.
 - GSS_ILLEGAL_NAME
 - The region creation failed because the specified region name is illegal.
 - GSS_NO_PERMISSION
 - The region creation failed because the process attempting to create it has insufficient permissions.
 - GSS_DOES_NOT_EXIST
 - An attempt to find a named shared memory region failed.
 
PCI_VID_* and PCI_DID_*
Vendor IDs and Device IDs
Synopsis:
#define PCI_VID_BlackBerry_QNX   0x1C05
#define PCI_DID_QNX_GUEST_SHM    0x0001
		Page updated: 
