#ifndef _JOVE_API_OBJ_H #define _JOVE_API_OBJ_H 1 typedef unsigned char objtype_t; typedef unsigned short objpath_part_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_SIZE 0x1000 #define OBJDIR_ENTRIES (OBJDIR_SIZE / sizeof(uintmax_t)) #define MESSAGE_ALIGN 0x1000 #define MESSAGE_SIZE 0x1000 #endif