6aa61efd09
This interface can be used by other system processes by means of the newly provided vbox API in libsys.
36 lines
862 B
C
36 lines
862 B
C
#ifndef _MINIX_VBOXTYPE_H
|
|
#define _MINIX_VBOXTYPE_H
|
|
|
|
/* This header declares the type definitions shared between VBOX driver, the
|
|
* interface in libsys, and any caller of those interface functions.
|
|
*/
|
|
|
|
/* Call parameter type. */
|
|
typedef enum {
|
|
VBOX_TYPE_INVALID, /* invalid type */
|
|
VBOX_TYPE_U32, /* 32-bit value */
|
|
VBOX_TYPE_U64, /* 64-bit value */
|
|
VBOX_TYPE_PTR /* pointer to granted memory area */
|
|
} vbox_type_t;
|
|
|
|
/* Call parameter transfer direction. */
|
|
#define VBOX_DIR_IN 0x01 /* from host to guest */
|
|
#define VBOX_DIR_OUT 0x02 /* from guest to host */
|
|
#define VBOX_DIR_INOUT (VBOX_DIR_IN | VBOX_DIR_OUT)
|
|
|
|
/* Call parameter. */
|
|
typedef struct {
|
|
vbox_type_t type;
|
|
union {
|
|
u32_t u32;
|
|
u64_t u64;
|
|
struct {
|
|
cp_grant_id_t grant;
|
|
size_t off;
|
|
size_t size;
|
|
unsigned int dir;
|
|
} ptr;
|
|
};
|
|
} vbox_param_t;
|
|
|
|
#endif /*_MINIX_VBOXTYPE_H */
|