00001 #ifndef rdedef_h 00002 #define rdedef_h 00003 00004 #define REGPRT_M_OWNER_MODE 0xF 00005 #define REGPRT_M_CREATE_MODE 0xF0 00006 #define REGPRT_M_RESERVED_PROT_BITS 0xFFFFFF00 00007 00008 #define RDE_M_DESCEND 0x1 00009 #define RDE_M_P0_SPACE 0x2 00010 #define RDE_M_P1_SPACE 0x4 00011 #define RDE_M_PERMANENT 0x8 00012 #define RDE_M_EXPAND_ON_ACCVIO 0x10 00013 #define RDE_M_NO_CLONE 0x20 00014 #define RDE_M_SHARED_PTS 0x40 00015 #define RDE_M_RESERVED_FLAGS 0xFFFFFF80 00016 #define RDE_C_LENGTH 56 00017 00018 #define RDE_C_MIN_USER_ID 16 00019 #define RDE_C_REGION_TABLE_SIZE 16 00020 00021 #define LOOKUP_RDE_EXACT 0 00022 #define LOOKUP_RDE_HIGHER 1 00023 00024 union _region_prot { 00025 int regprt_l_region_prot; 00026 struct { 00027 unsigned regprt_v_owner_mode : 4; 00028 unsigned regprt_v_create_mode : 4; 00029 unsigned regprt_v_reserved_prot_bits : 24; 00030 }; 00031 }; 00032 00033 struct _rde { 00034 struct _rde *rde_ps_va_list_flink; 00035 struct _rde *rde_ps_va_list_blink; 00036 unsigned short rde_w_size; 00037 unsigned char rde_b_type; 00038 unsigned char rde_b_subtype; 00039 struct _rde *rde_ps_table_link; 00040 union { 00041 unsigned int rde_l_flags; 00042 struct { 00043 unsigned rde_v_descend : 1; 00044 unsigned rde_v_p0_space : 1; 00045 unsigned rde_v_p1_space : 1; 00046 unsigned rde_v_permanent : 1; 00047 unsigned rde_v_expand_on_accvio : 1; 00048 unsigned rde_v_no_clone : 1; 00049 unsigned rde_v_shared_pts : 1; 00050 unsigned rde_v_reserved_flags : 25; 00051 }; 00052 }; 00053 union _region_prot rde_r_regprot; 00054 unsigned long long rde_q_region_id; 00055 union { 00056 void *rde_pq_start_va; 00057 void *rde_ps_start_va; 00058 }; 00059 union { 00060 unsigned long long rde_q_region_size; 00061 unsigned int rde_l_region_size; 00062 }; 00063 union { 00064 void *rde_pq_first_free_va; 00065 void *rde_ps_first_free_va; 00066 }; 00067 }; 00068 00069 #endif 00070 00071