1 #ifndef _MINIX_VBOXTYPE_H 2 #define _MINIX_VBOXTYPE_H 3 4 /* This header declares the type definitions shared between VBOX driver, the 5 * interface in libsys, and any caller of those interface functions. 6 */ 7 8 /* Call parameter type. */ 9 typedef enum { 10 VBOX_TYPE_INVALID, /* invalid type */ 11 VBOX_TYPE_U32, /* 32-bit value */ 12 VBOX_TYPE_U64, /* 64-bit value */ 13 VBOX_TYPE_PTR /* pointer to granted memory area */ 14 } vbox_type_t; 15 16 /* Call parameter transfer direction. */ 17 #define VBOX_DIR_IN 0x01 /* from host to guest */ 18 #define VBOX_DIR_OUT 0x02 /* from guest to host */ 19 #define VBOX_DIR_INOUT (VBOX_DIR_IN | VBOX_DIR_OUT) 20 21 /* Call parameter. */ 22 typedef struct { 23 vbox_type_t type; 24 union { 25 u32_t u32; 26 u64_t u64; 27 struct { 28 cp_grant_id_t grant; 29 size_t off; 30 size_t size; 31 unsigned int dir; 32 } ptr; 33 }; 34 } vbox_param_t; 35 36 #endif /*_MINIX_VBOXTYPE_H */ 37