#ifndef _JOVE_API_OBJ_H #define _JOVE_API_OBJ_H 1 #include typedef unsigned char objtype_t; enum { JOVE_OBJ_NONE = 0, JOVE_OBJ_UNTYPED, JOVE_OBJ_OBJDIR, JOVE_OBJ_PAGEDIR, JOVE_OBJ_PROCESSOR, JOVE_OBJ_REGION, JOVE_OBJ_SHMEMORY, JOVE_OBJ_INT_HANDLE, JOVE_OBJ_PCB, JOVE_OBJ_INITRD_FILE, JOVE_OBJ_FRAMEBUFFER, JOVE_OBJ_VIRTTERM, JOVE_OBJ_MESSAGE, JOVE_OBJ_LINK, }; /*Link can read object states and map page frames as read only*/ #define JOVE_PERM_READ 1 /*Link can write object states and map page frames as writeable*/ #define JOVE_PERM_WRITE 2 /*Link can untype linked objects, split untyped memory, and retype untyped linked object.*/ #define JOVE_PERM_MUTATE 4 #define JOVE_PERM_ALL 7 #define OBJDIR_NUM_ENTRIES (0x1000 / sizeof(uintmax_t)) typedef uint16_t objpath_part_t; #endif