00001 #ifndef xabkeydef_h 00002 #define xabkeydef_h 00003 00004 #define XAB_C_KEY 21 00005 #define XAB_M_DUP 0x1 00006 #define XAB_M_CHG 0x2 00007 #define XAB_M_NUL 0x4 00008 #define XAB_M_IDX_NCMPR 0x8 00009 #define XAB_M_KEY_NCMPR 0x40 00010 #define XAB_M_DAT_NCMPR 0x80 00011 #define XAB_C_STG 0 00012 #define XAB_C_IN2 1 00013 #define XAB_C_BN2 2 00014 #define XAB_C_IN4 3 00015 #define XAB_C_BN4 4 00016 #define XAB_C_PAC 5 00017 #define XAB_C_IN8 6 00018 #define XAB_C_BN8 7 00019 #define XAB_C_COL 8 00020 #define XAB_C_MAX_ASCEND 8 00021 #define XAB_C_DSTG 32 00022 #define XAB_C_DIN2 33 00023 #define XAB_C_DBN2 34 00024 #define XAB_C_DIN4 35 00025 #define XAB_C_DBN4 36 00026 #define XAB_C_DPAC 37 00027 #define XAB_C_DIN8 38 00028 #define XAB_C_DBN8 39 00029 #define XAB_C_DCOL 40 00030 #define XAB_C_MAXDTP 40 00031 #define XAB_K_KEYLEN_V2 64 00032 #define XAB_C_KEYLEN_V2 64 00033 00034 #define XAB_C_PRG3 3 00035 #define XAB_C_PRG2 2 00036 #define XAB_C_PRG1 1 00037 #define XAB_K_KEYLEN_V4 76 00038 #define XAB_C_KEYLEN_V4 76 00039 00040 #define XAB_K_KEYLEN 100 00041 #define XAB_C_KEYLEN 100 00042 00043 #define XAB_V_DUP 0 00044 #define XAB_V_CHG 1 00045 #define XAB_V_NUL 2 00046 #define XAB_V_IDX_NCMPR 3 00047 #define XAB_V_KEY_NCMPR 6 00048 #define XAB_V_DAT_NCMPR 7 00049 00050 // like Indexed File Prologue Block 1 in rmsint2.doc? 00051 // or Key Definition Extended Attribute Block? 00052 00053 struct _xabkeydef { 00054 unsigned char xab_b_cod; 00055 unsigned char xab_b_bln; 00056 short xabkeydef_$_fill_1; 00057 void *xab_l_nxt; 00058 unsigned char xab_b_ian; 00059 unsigned char xab_b_lan; 00060 unsigned char xab_b_dan; 00061 unsigned char xab_b_lvl; 00062 unsigned char xab_b_ibs; 00063 unsigned char xab_b_dbs; 00064 //unsigned int xab_l_rvb; 00065 unsigned short xab_l_rvb_l; 00066 unsigned short xab_l_rvb_h; 00067 union { 00068 unsigned char xab_b_flg; 00069 #if 0 00070 // gcc bitfield problems 00071 struct { 00072 unsigned xab_v_dup : 1; 00073 unsigned xab_v_chg : 1; 00074 unsigned xab_v_nul : 1; 00075 unsigned xab_v_idx_ncmpr : 1; 00076 unsigned xabkeydef_$_fill_5 : 2; 00077 unsigned xab_v_key_ncmpr : 1; 00078 unsigned xab_v_fill_14_ : 1; 00079 }; 00080 struct { 00081 unsigned xabkeydef_$_fill_6 : 1; 00082 unsigned xabkeydef_$_fill_7 : 2; 00083 unsigned xabkeydef_$_fill_8 : 1; 00084 unsigned xabkeydef_$_fill_9 : 2; 00085 unsigned xabkeydef_$_fill_10 : 1; 00086 unsigned xab_v_dat_ncmpr : 1; 00087 }; 00088 #endif 00089 }; 00090 unsigned char xab_b_dtp; 00091 unsigned char xab_b_nsg; 00092 unsigned char xab_b_nul; 00093 unsigned char xab_b_tks; 00094 unsigned char xab_b_ref; 00095 unsigned short xab_w_mrl; 00096 unsigned short xab_w_ifl; 00097 unsigned short xab_w_dfl; 00098 union { 00099 unsigned short xab_w_pos [8]; 00100 struct { 00101 unsigned short xab_w_pos0; 00102 unsigned short xab_w_pos1; 00103 unsigned short xab_w_pos2; 00104 unsigned short xab_w_pos3; 00105 unsigned short xab_w_pos4; 00106 unsigned short xab_w_pos5; 00107 unsigned short xab_w_pos6; 00108 unsigned short xab_w_pos7; 00109 }; 00110 }; 00111 union { 00112 unsigned char xab_b_siz [8]; 00113 struct { 00114 unsigned char xab_b_siz0; 00115 unsigned char xab_b_siz1; 00116 unsigned char xab_b_siz2; 00117 unsigned char xab_b_siz3; 00118 unsigned char xab_b_siz4; 00119 unsigned char xab_b_siz5; 00120 unsigned char xab_b_siz6; 00121 unsigned char xab_b_siz7; 00122 }; 00123 }; 00124 short xabkeydef_$_fill_11; 00125 char *xab_l_knm; 00126 unsigned int xab_l_dvb; 00127 union { 00128 unsigned char xab_b_typ [8]; 00129 struct { 00130 unsigned char xab_b_typ0; 00131 unsigned char xab_b_typ1; 00132 unsigned char xab_b_typ2; 00133 unsigned char xab_b_typ3; 00134 unsigned char xab_b_typ4; 00135 unsigned char xab_b_typ5; 00136 unsigned char xab_b_typ6; 00137 unsigned char xab_b_typ7; 00138 }; 00139 }; 00140 unsigned char xab_b_prolog; 00141 char xabkeydef_$_fill_12; 00142 short xabkeydef_$_fill_13; 00143 void *xab_l_coltbl; 00144 unsigned int xab_l_colsiz; 00145 char *xab_l_colnam; 00146 unsigned int xabkeydef_$_fill_14; 00147 unsigned int xabkeydef_$_fill_15; 00148 unsigned int xabkeydef_$_fill_16; 00149 }; 00150 00151 // cc_rms_xabkey = cod= 0x15 (C_KEY) bln=0x64 (C_KEYLEN) 00152 00153 extern struct _xabkeydef cc_rms_xabkey; 00154 00155 #endif 00156 00157