1 #ifndef _UTOPIA_ADP_H_ 2 #define _UTOPIA_ADP_H_ 3 4 //Utopia Adaption layer 5 6 //#include <linux/list.h> 7 #include "MsTypes.h" 8 9 #define MODULE_NUM 5 10 11 12 /* 13 * Utopia Adaption layer tools 14 */ 15 #define UADP_SPT_SELF_SIZE 1 16 #define UADP_SPT_POINTER_TO_NEXT 2 17 #define UADP_SPT_END 5 18 19 #define UADP_SDT_SELF_SIZE 1 20 #define UADP_SDT_P2N 2 21 #define UADP_SDT_AT 3 22 #define UADP_SDT_ES 4 23 #define UADP_SDT_END 5 24 25 typedef struct _UADP_STRUCT_POINTER_TABLE 26 { 27 unsigned int type; 28 unsigned int offset; 29 unsigned long size_or_next; //size of this structure or pointer to next structure 30 }UADP_STRUCT_POINTER_TABLE; 31 32 #define DEADBEEF 0xdeadbeef 33 typedef struct _SEQUNCE_MEMORY_MANAGE 34 { 35 unsigned int uFreeIndex;//0~uSlotTotal-1, upper layer also can check this value to know max memory usage 36 unsigned int uSlotTotal;//one slot = 4 byte 37 unsigned int uFlag;//bit 0: overflow 38 unsigned int pMemoryPool[1]; 39 }SEQUNCE_MEMORY_MANAGE; 40 41 //----------------------------------------------------------------------------------------------- 42 //STYLE 0 BASIC MACRO: You need take care most of your SPT description 43 #define UADP_SPT_BGN(TABLE_ELEMENT,SIZE) {UADPBypassSetSPT(TABLE_ELEMENT,UADP_SPT_SELF_SIZE,0, SIZE) 44 #define UADP_SPT_NXT(TABLE_ELEMENT,TYPE,MEMBER,NEXT_TABLE) UADPBypassSetSPT(TABLE_ELEMENT,UADP_SPT_POINTER_TO_NEXT,((unsigned long) &((TYPE *)0)->MEMBER), (unsigned long)NEXT_TABLE); 45 #define UADP_SPT_FIN(TABLE_ELEMENT) UADPBypassSetSPT(TABLE_ELEMENT,UADP_SPT_END , 0, 0);} 46 47 #define UADP_SDT_BGN(TABLE_ELEMENT,SIZE) {UADPBypassSetSPT(TABLE_ELEMENT,UADP_SPT_SELF_SIZE,0, SIZE) 48 #define UADP_SDT_KIND(TABLE_ELEMENT,TYPE,KIND,MEMBER,NEXT_TABLE) UADPBypassSetSPT(TABLE_ELEMENT,KIND,((unsigned long) &((TYPE *)0)->MEMBER), (unsigned long)NEXT_TABLE); 49 #define UADP_SDT_FIN(TABLE_ELEMENT) UADPBypassSetSPT(TABLE_ELEMENT,UADP_SPT_END , 0, 0);} 50 //----------------------------------------------------------------------------------------------- 51 //STYLE 1 NAME-TYPE MACRO: You need take care "NAME", but don't need take care "TABLE_ELEMENTs" 52 #define UADP_SPT_NAMEnNXT_DEF(NAME,n) UADP_STRUCT_POINTER_TABLE spt_##NAME [2+n] 53 54 #define UADP_SPT_NAME0NXT(NAME,TYPE) \ 55 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 56 UADP_SPT_FIN(& spt_##NAME [1]); 57 58 #define UADP_SPT_NAME1NXT(NAME,TYPE,MB1,MB1NAME) \ 59 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 60 UADP_SPT_NXT(& spt_##NAME [1],TYPE,MB1,spt_##MB1NAME); \ 61 UADP_SPT_FIN(& spt_##NAME [2]); 62 63 #define UADP_SPT_NAME2NXT(NAME,TYPE,MB1,MB1NAME,MB2,MB2NAME) \ 64 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 65 UADP_SPT_NXT(& spt_##NAME [1],TYPE,MB1,spt_##MB1NAME); \ 66 UADP_SPT_NXT(& spt_##NAME [2],TYPE,MB2,spt_##MB2NAME); \ 67 UADP_SPT_FIN(& spt_##NAME [3]); 68 69 #define UADP_SPT_NAME3NXT(NAME,TYPE,MB1,MB1NAME,MB2,MB2NAME,MB3,MB3NAME) \ 70 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 71 UADP_SPT_NXT(& spt_##NAME [1],TYPE,MB1,spt_##MB1NAME); \ 72 UADP_SPT_NXT(& spt_##NAME [2],TYPE,MB2,spt_##MB2NAME); \ 73 UADP_SPT_NXT(& spt_##NAME [3],TYPE,MB3,spt_##MB3NAME); \ 74 UADP_SPT_FIN(& spt_##NAME [4]); 75 76 #define UADP_SPT_NAME4NXT(NAME,TYPE,MB1,MB1NAME,MB2,MB2NAME,MB3,MB3NAME,MB4,MB4NAME) \ 77 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 78 UADP_SPT_NXT(& spt_##NAME [1],TYPE,MB1,spt_##MB1NAME); \ 79 UADP_SPT_NXT(& spt_##NAME [2],TYPE,MB2,spt_##MB2NAME); \ 80 UADP_SPT_NXT(& spt_##NAME [3],TYPE,MB3,spt_##MB3NAME); \ 81 UADP_SPT_NXT(& spt_##NAME [4],TYPE,MB4,spt_##MB4NAME); \ 82 UADP_SPT_FIN(& spt_##NAME [5]); 83 84 #define UADP_SPT_NAME5NXT(NAME,TYPE,MB1,MB1NAME,MB2,MB2NAME,MB3,MB3NAME,MB4,MB4NAME,MB5,MB5NAME) \ 85 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 86 UADP_SPT_NXT(& spt_##NAME [1],TYPE,MB1,spt_##MB1NAME); \ 87 UADP_SPT_NXT(& spt_##NAME [2],TYPE,MB2,spt_##MB2NAME); \ 88 UADP_SPT_NXT(& spt_##NAME [3],TYPE,MB3,spt_##MB3NAME); \ 89 UADP_SPT_NXT(& spt_##NAME [4],TYPE,MB4,spt_##MB4NAME); \ 90 UADP_SPT_NXT(& spt_##NAME [5],TYPE,MB5,spt_##MB5NAME); \ 91 UADP_SPT_FIN(& spt_##NAME [6]); 92 93 #define UADP_SPT_NAME6NXT(NAME,TYPE,MB1,MB1NAME,MB2,MB2NAME,MB3,MB3NAME,MB4,MB4NAME,MB5,MB5NAME,MB6,MB6NAME) \ 94 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 95 UADP_SPT_NXT(& spt_##NAME [1],TYPE,MB1,spt_##MB1NAME); \ 96 UADP_SPT_NXT(& spt_##NAME [2],TYPE,MB2,spt_##MB2NAME); \ 97 UADP_SPT_NXT(& spt_##NAME [3],TYPE,MB3,spt_##MB3NAME); \ 98 UADP_SPT_NXT(& spt_##NAME [4],TYPE,MB4,spt_##MB4NAME); \ 99 UADP_SPT_NXT(& spt_##NAME [5],TYPE,MB5,spt_##MB5NAME); \ 100 UADP_SPT_NXT(& spt_##NAME [6],TYPE,MB6,spt_##MB6NAME); \ 101 UADP_SPT_FIN(& spt_##NAME [7]); 102 103 #define UADP_SPT_NAME9NXT(NAME,TYPE,MB1,MB1NAME,MB2,MB2NAME,MB3,MB3NAME,MB4,MB4NAME,MB5,MB5NAME,MB6,MB6NAME,MB7,MB7NAME,MB8,MB8NAME,MB9,MB9NAME) \ 104 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 105 UADP_SPT_NXT(& spt_##NAME [1],TYPE,MB1,spt_##MB1NAME); \ 106 UADP_SPT_NXT(& spt_##NAME [2],TYPE,MB2,spt_##MB2NAME); \ 107 UADP_SPT_NXT(& spt_##NAME [3],TYPE,MB3,spt_##MB3NAME); \ 108 UADP_SPT_NXT(& spt_##NAME [4],TYPE,MB4,spt_##MB4NAME); \ 109 UADP_SPT_NXT(& spt_##NAME [5],TYPE,MB5,spt_##MB5NAME); \ 110 UADP_SPT_NXT(& spt_##NAME [6],TYPE,MB6,spt_##MB6NAME); \ 111 UADP_SPT_NXT(& spt_##NAME [7],TYPE,MB7,spt_##MB6NAME); \ 112 UADP_SPT_NXT(& spt_##NAME [8],TYPE,MB8,spt_##MB6NAME); \ 113 UADP_SPT_NXT(& spt_##NAME [9],TYPE,MB9,spt_##MB6NAME); \ 114 UADP_SPT_FIN(& spt_##NAME [10]); 115 116 #define UADP_SPT_NAME11NXT(NAME,TYPE,MB1,MB1NAME,MB2,MB2NAME,MB3,MB3NAME,MB4,MB4NAME,MB5,MB5NAME,MB6,MB6NAME,MB7,MB7NAME,MB8,MB8NAME,MB9,MB9NAME,MB10,MB10NAME,MB11,MB11NAME) \ 117 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 118 UADP_SPT_NXT(& spt_##NAME [1],TYPE,MB1,spt_##MB1NAME); \ 119 UADP_SPT_NXT(& spt_##NAME [2],TYPE,MB2,spt_##MB2NAME); \ 120 UADP_SPT_NXT(& spt_##NAME [3],TYPE,MB3,spt_##MB3NAME); \ 121 UADP_SPT_NXT(& spt_##NAME [4],TYPE,MB4,spt_##MB4NAME); \ 122 UADP_SPT_NXT(& spt_##NAME [5],TYPE,MB5,spt_##MB5NAME); \ 123 UADP_SPT_NXT(& spt_##NAME [6],TYPE,MB6,spt_##MB6NAME); \ 124 UADP_SPT_NXT(& spt_##NAME [7],TYPE,MB7,spt_##MB6NAME); \ 125 UADP_SPT_NXT(& spt_##NAME [8],TYPE,MB8,spt_##MB6NAME); \ 126 UADP_SPT_NXT(& spt_##NAME [9],TYPE,MB9,spt_##MB6NAME); \ 127 UADP_SPT_NXT(& spt_##NAME [10],TYPE,MB10,spt_##MB6NAME); \ 128 UADP_SPT_NXT(& spt_##NAME [11],TYPE,MB11,spt_##MB6NAME); \ 129 UADP_SPT_FIN(& spt_##NAME [12]); 130 131 132 #define UADP_SDT_NAMEn_DEF(NAME,n) UADP_STRUCT_POINTER_TABLE spt_##NAME [2+n] 133 134 #define UADP_SDT_NAME0(NAME,TYPE) \ 135 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 136 UADP_SPT_FIN(& spt_##NAME [1]); 137 138 #define UADP_SDT_NAME1(NAME,TYPE,MB1KIND,MB1,MB1NAME) \ 139 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 140 UADP_SDT_KIND(& spt_##NAME [1],TYPE,MB1KIND,MB1,spt_##MB1NAME); \ 141 UADP_SPT_FIN(& spt_##NAME [2]); 142 143 #define UADP_SDT_NAME2(NAME,TYPE,MB1KIND,MB1,MB1NAME,MB2KIND,MB2,MB2NAME) \ 144 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 145 UADP_SDT_KIND(& spt_##NAME [1],TYPE,MB1KIND,MB1,spt_##MB1NAME); \ 146 UADP_SDT_KIND(& spt_##NAME [2],TYPE,MB2KIND,MB2,spt_##MB2NAME); \ 147 UADP_SPT_FIN(& spt_##NAME [3]); 148 149 #define UADP_SDT_NAME3(NAME,TYPE,MB1KIND,MB1,MB1NAME,MB2KIND,MB2,MB2NAME,MB3KIND,MB3,MB3NAME) \ 150 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 151 UADP_SDT_KIND(& spt_##NAME [1],TYPE,MB1KIND,MB1,spt_##MB1NAME); \ 152 UADP_SDT_KIND(& spt_##NAME [2],TYPE,MB2KIND,MB2,spt_##MB2NAME); \ 153 UADP_SDT_KIND(& spt_##NAME [3],TYPE,MB3KIND,MB3,spt_##MB3NAME); \ 154 UADP_SPT_FIN(& spt_##NAME [4]); 155 156 #define UADP_SDT_NAME4(NAME,TYPE,MB1KIND,MB1,MB1NAME,MB2KIND,MB2,MB2NAME,MB3KIND,MB3,MB3NAME,MB4KIND,MB4,MB4NAME) \ 157 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 158 UADP_SDT_KIND(& spt_##NAME [1],TYPE,MB1KIND,MB1,spt_##MB1NAME); \ 159 UADP_SDT_KIND(& spt_##NAME [2],TYPE,MB2KIND,MB2,spt_##MB2NAME); \ 160 UADP_SDT_KIND(& spt_##NAME [3],TYPE,MB3KIND,MB3,spt_##MB3NAME); \ 161 UADP_SDT_KIND(& spt_##NAME [4],TYPE,MB4KIND,MB4,spt_##MB4NAME); \ 162 UADP_SPT_FIN(& spt_##NAME [5]); 163 164 #define UADP_SDT_NAME5(NAME,TYPE,MB1KIND,MB1,MB1NAME,MB2KIND,MB2,MB2NAME,MB3KIND,MB3,MB3NAME,MB4KIND,MB4,MB4NAME,MB5KIND,MB5,MB5NAME) \ 165 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 166 UADP_SDT_KIND(& spt_##NAME [1],TYPE,MB1KIND,MB1,spt_##MB1NAME); \ 167 UADP_SDT_KIND(& spt_##NAME [2],TYPE,MB2KIND,MB2,spt_##MB2NAME); \ 168 UADP_SDT_KIND(& spt_##NAME [3],TYPE,MB3KIND,MB3,spt_##MB3NAME); \ 169 UADP_SDT_KIND(& spt_##NAME [4],TYPE,MB4KIND,MB4,spt_##MB4NAME); \ 170 UADP_SDT_KIND(& spt_##NAME [5],TYPE,MB5KIND,MB5,spt_##MB5NAME); \ 171 UADP_SPT_FIN(& spt_##NAME [6]); 172 173 #define UADP_SDT_NAME6(NAME,TYPE,MB1KIND,MB1,MB1NAME,MB2KIND,MB2,MB2NAME,MB3KIND,MB3,MB3NAME,MB4KIND,MB4,MB4NAME,MB5KIND,MB5,MB5NAME,MB6KIND,MB6,MB6NAME) \ 174 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 175 UADP_SDT_KIND(& spt_##NAME [1],TYPE,MB1KIND,MB1,spt_##MB1NAME); \ 176 UADP_SDT_KIND(& spt_##NAME [2],TYPE,MB2KIND,MB2,spt_##MB2NAME); \ 177 UADP_SDT_KIND(& spt_##NAME [3],TYPE,MB3KIND,MB3,spt_##MB3NAME); \ 178 UADP_SDT_KIND(& spt_##NAME [4],TYPE,MB4KIND,MB4,spt_##MB4NAME); \ 179 UADP_SDT_KIND(& spt_##NAME [5],TYPE,MB5KIND,MB5,spt_##MB5NAME); \ 180 UADP_SDT_KIND(& spt_##NAME [6],TYPE,MB6KIND,MB6,spt_##MB6NAME); \ 181 UADP_SPT_FIN(& spt_##NAME [7]); 182 #define UADP_SDT_NAME7(NAME,TYPE,MB1KIND,MB1,MB1NAME,MB2KIND,MB2,MB2NAME,MB3KIND,MB3,MB3NAME,MB4KIND,MB4,MB4NAME,MB5KIND,MB5,MB5NAME,MB6KIND,MB6,MB6NAME,MB7KIND,MB7,MB7NAME) \ 183 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 184 UADP_SDT_KIND(& spt_##NAME [1],TYPE,MB1KIND,MB1,spt_##MB1NAME); \ 185 UADP_SDT_KIND(& spt_##NAME [2],TYPE,MB2KIND,MB2,spt_##MB2NAME); \ 186 UADP_SDT_KIND(& spt_##NAME [3],TYPE,MB3KIND,MB3,spt_##MB3NAME); \ 187 UADP_SDT_KIND(& spt_##NAME [4],TYPE,MB4KIND,MB4,spt_##MB4NAME); \ 188 UADP_SDT_KIND(& spt_##NAME [5],TYPE,MB5KIND,MB5,spt_##MB5NAME); \ 189 UADP_SDT_KIND(& spt_##NAME [6],TYPE,MB6KIND,MB6,spt_##MB6NAME); \ 190 UADP_SDT_KIND(& spt_##NAME [7],TYPE,MB7KIND,MB7,spt_##MB7NAME); \ 191 UADP_SPT_FIN(& spt_##NAME [8]); 192 #define UADP_SDT_NAME8(NAME,TYPE,MB1KIND,MB1,MB1NAME,MB2KIND,MB2,MB2NAME,MB3KIND,MB3,MB3NAME,MB4KIND,MB4,MB4NAME,MB5KIND,MB5,MB5NAME,MB6KIND,MB6,MB6NAME,MB7KIND,MB7,MB7NAME,MB8KIND,MB8,MB8NAME) \ 193 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 194 UADP_SDT_KIND(& spt_##NAME [1],TYPE,MB1KIND,MB1,spt_##MB1NAME); \ 195 UADP_SDT_KIND(& spt_##NAME [2],TYPE,MB2KIND,MB2,spt_##MB2NAME); \ 196 UADP_SDT_KIND(& spt_##NAME [3],TYPE,MB3KIND,MB3,spt_##MB3NAME); \ 197 UADP_SDT_KIND(& spt_##NAME [4],TYPE,MB4KIND,MB4,spt_##MB4NAME); \ 198 UADP_SDT_KIND(& spt_##NAME [5],TYPE,MB5KIND,MB5,spt_##MB5NAME); \ 199 UADP_SDT_KIND(& spt_##NAME [6],TYPE,MB6KIND,MB6,spt_##MB6NAME); \ 200 UADP_SDT_KIND(& spt_##NAME [7],TYPE,MB7KIND,MB7,spt_##MB7NAME); \ 201 UADP_SDT_KIND(& spt_##NAME [8],TYPE,MB8KIND,MB8,spt_##MB8NAME); \ 202 UADP_SPT_FIN(& spt_##NAME [9]); 203 204 #define UADP_SDT_NAME16(NAME,TYPE,MB1KIND,MB1,MB1NAME,MB2KIND,MB2,MB2NAME,MB3KIND,MB3,MB3NAME,MB4KIND,MB4,MB4NAME,MB5KIND,MB5,MB5NAME,MB6KIND,MB6,MB6NAME,MB7KIND,MB7,MB7NAME,MB8KIND,MB8,MB8NAME,\ 205 MB9KIND,MB9,MB9NAME,MB10KIND,MB10,MB10NAME,MB11KIND,MB11,MB11NAME,MB12KIND,MB12,MB12NAME,MB13KIND,MB13,MB13NAME,MB14KIND,MB14,MB14NAME,MB15KIND,MB15,MB15NAME,MB16KIND,MB16,MB16NAME) \ 206 UADP_SPT_BGN(& spt_##NAME [0],sizeof(TYPE)); \ 207 UADP_SDT_KIND(& spt_##NAME [1],TYPE,MB1KIND,MB1,spt_##MB1NAME); \ 208 UADP_SDT_KIND(& spt_##NAME [2],TYPE,MB2KIND,MB2,spt_##MB2NAME); \ 209 UADP_SDT_KIND(& spt_##NAME [3],TYPE,MB3KIND,MB3,spt_##MB3NAME); \ 210 UADP_SDT_KIND(& spt_##NAME [4],TYPE,MB4KIND,MB4,spt_##MB4NAME); \ 211 UADP_SDT_KIND(& spt_##NAME [5],TYPE,MB5KIND,MB5,spt_##MB5NAME); \ 212 UADP_SDT_KIND(& spt_##NAME [6],TYPE,MB6KIND,MB6,spt_##MB6NAME); \ 213 UADP_SDT_KIND(& spt_##NAME [7],TYPE,MB7KIND,MB7,spt_##MB7NAME); \ 214 UADP_SDT_KIND(& spt_##NAME [8],TYPE,MB8KIND,MB8,spt_##MB8NAME); \ 215 UADP_SDT_KIND(& spt_##NAME [9],TYPE,MB9KIND,MB9,spt_##MB9NAME); \ 216 UADP_SDT_KIND(& spt_##NAME [10],TYPE,MB10KIND,MB10,spt_##MB10NAME); \ 217 UADP_SDT_KIND(& spt_##NAME [11],TYPE,MB11KIND,MB11,spt_##MB11NAME); \ 218 UADP_SDT_KIND(& spt_##NAME [12],TYPE,MB12KIND,MB12,spt_##MB12NAME); \ 219 UADP_SDT_KIND(& spt_##NAME [13],TYPE,MB13KIND,MB13,spt_##MB13NAME); \ 220 UADP_SDT_KIND(& spt_##NAME [14],TYPE,MB14KIND,MB14,spt_##MB14NAME); \ 221 UADP_SDT_KIND(& spt_##NAME [15],TYPE,MB15KIND,MB15,spt_##MB15NAME); \ 222 UADP_SDT_KIND(& spt_##NAME [16],TYPE,MB16KIND,MB16,spt_##MB16NAME); \ 223 UADP_SPT_FIN(& spt_##NAME [17]); 224 //----------------------------------------------------------------------------------------------- 225 //STYLE 2 TYPE MACRO: You don't need take care "NAME", we will do it. 226 #define UADP_SPT_0NXT_DEF(TYPE) UADP_SPT_NAMEnNXT_DEF(TYPE,0) 227 #define UADP_SPT_1NXT_DEF(TYPE) UADP_SPT_NAMEnNXT_DEF(TYPE,1) 228 #define UADP_SPT_2NXT_DEF(TYPE) UADP_SPT_NAMEnNXT_DEF(TYPE,2) 229 #define UADP_SPT_3NXT_DEF(TYPE) UADP_SPT_NAMEnNXT_DEF(TYPE,3) 230 #define UADP_SPT_4NXT_DEF(TYPE) UADP_SPT_NAMEnNXT_DEF(TYPE,4) 231 #define UADP_SPT_5NXT_DEF(TYPE) UADP_SPT_NAMEnNXT_DEF(TYPE,5) 232 233 #define UADP_SPT_0NXT(TYPE) UADP_SPT_NAME0NXT(TYPE,TYPE) 234 #define UADP_SPT_1NXT(TYPE,MB1,MB1TYPE) UADP_SPT_NAME1NXT(TYPE,TYPE,MB1,MB1TYPE) 235 #define UADP_SPT_2NXT(TYPE,MB1,MB1TYPE,MB2,MB2TYPE) UADP_SPT_NAME2NXT(TYPE,TYPE,MB1,MB1TYPE,MB2,MB2TYPE) 236 #define UADP_SPT_3NXT(TYPE,MB1,MB1TYPE,MB2,MB2TYPE,MB3,MB3TYPE) UADP_SPT_NAME3NXT(TYPE,TYPE,MB1,MB1TYPE,MB2,MB2TYPE,MB3,MB3TYPE) 237 #define UADP_SPT_4NXT(TYPE,MB1,MB1TYPE,MB2,MB2TYPE,MB3,MB3TYPE,MB4,MB4TYPE) UADP_SPT_NAME4NXT(TYPE,TYPE,MB1,MB1TYPE,MB2,MB2TYPE,MB3,MB3TYPE,MB4,MB4TYPE) 238 #define UADP_SPT_5NXT(TYPE,MB1,MB1TYPE,MB2,MB2TYPE,MB3,MB3TYPE,MB4,MB4TYPE,MB5,MB5TYPE) UADP_SPT_NAME5NXT(TYPE,TYPE,MB1,MB1TYPE,MB2,MB2TYPE,MB3,MB3TYPE,MB4,MB4TYPE,MB5,MB5TYPE) 239 240 #define UADP_SDT_0_DEF(TYPE) UADP_SDT_NAMEn_DEF(TYPE,0) 241 #define UADP_SDT_1_DEF(TYPE) UADP_SDT_NAMEn_DEF(TYPE,1) 242 #define UADP_SDT_2_DEF(TYPE) UADP_SDT_NAMEn_DEF(TYPE,2) 243 #define UADP_SDT_3_DEF(TYPE) UADP_SDT_NAMEn_DEF(TYPE,3) 244 #define UADP_SDT_4_DEF(TYPE) UADP_SDT_NAMEn_DEF(TYPE,4) 245 #define UADP_SDT_5_DEF(TYPE) UADP_SDT_NAMEn_DEF(TYPE,5) 246 #define UADP_SDT_7_DEF(TYPE) UADP_SDT_NAMEn_DEF(TYPE,7) 247 248 #define UADP_SDT_0(TYPE) UADP_SDT_NAME0(TYPE,TYPE) 249 #define UADP_SDT_1(TYPE,MB1KIND,MB1,MB1TYPE) UADP_SDT_NAME1(TYPE,TYPE,MB1KIND,MB1,MB1TYPE) 250 #define UADP_SDT_2(TYPE,MB1KIND,MB1,MB1TYPE,MB2KIND,MB2,MB2TYPE) UADP_SDT_NAME2(TYPE,TYPE,MB1KIND,MB1,MB1TYPE,MB2KIND,MB2,MB2TYPE) 251 #define UADP_SDT_3(TYPE,MB1KIND,MB1,MB1TYPE,MB2KIND,MB2,MB2TYPE,MB3KIND,MB3,MB3TYPE) UADP_SDT_NAME3(TYPE,TYPE,MB1KIND,MB1,MB1TYPE,MB2KIND,MB2,MB2TYPE,MB3KIND,MB3,MB3TYPE) 252 #define UADP_SDT_4(TYPE,MB1KIND,MB1,MB1TYPE,MB2KIND,MB2,MB2TYPE,MB3KIND,MB3,MB3TYPE,MB4KIND,MB4,MB4TYPE) UADP_SDT_NAME4(TYPE,TYPE,MB1KIND,MB1,MB1TYPE,MB2KIND,MB2,MB2TYPE,MB3KIND,MB3,MB3TYPE,MB4KIND,MB4,MB4TYPE) 253 #define UADP_SDT_5(TYPE,MB1KIND,MB1,MB1TYPE,MB2KIND,MB2,MB2TYPE,MB3KIND,MB3,MB3TYPE,MB4KIND,MB4,MB4TYPE,MB5KIND,MB5,MB5TYPE) UADP_SDT_NAME5(TYPE,TYPE,MB1KIND,MB1,MB1TYPE,MB2KIND,MB2,MB2TYPE,MB3KIND,MB3,MB3TYPE,MB4KIND,MB4,MB4TYPE,MB5KIND,MB5,MB5TYPE) 254 #define UADP_SDT_7(TYPE,MB1KIND,MB1,MB1TYPE,MB2KIND,MB2,MB2TYPE,MB3KIND,MB3,MB3TYPE,MB4KIND,MB4,MB4TYPE,MB5KIND,MB5,MB5TYPE,MB6KIND,MB6,MB6TYPE,MB7KIND,MB7,MB7TYPE) UADP_SDT_NAME7(TYPE,TYPE,MB1KIND,MB1,MB1TYPE,MB2KIND,MB2,MB2TYPE,MB3KIND,MB3,MB3TYPE,MB4KIND,MB4,MB4TYPE,MB5KIND,MB5,MB5TYPE,MB6KIND,MB6,MB6TYPE,MB7KIND,MB7,MB7TYPE) 255 //------------------------------------------------------------------------------------------------- 256 257 //in/out in kernel_argc, !!!!output need compatible into input structure!!!!!! 258 int UADPBypassIoctl(void* pInstance, unsigned int cmd, void* arg,const UADP_STRUCT_POINTER_TABLE *pInTable,const UADP_STRUCT_POINTER_TABLE *pOutTable, void* pWorkBuffer, int iWorkBufferSize); 259 int UADPBypassSetSPT(UADP_STRUCT_POINTER_TABLE* pSpt, unsigned int uiType, unsigned int uiOffset, unsigned long uiSizeOrNext); 260 261 char* UADPKQueuePop(MS_U32 module_ID); 262 263 void UADPKQueuePush(MS_U8 module_ID,char * pointer); 264 265 int UADPKQueueWaitThreadNum(MS_U8 module_ID); 266 267 int UADPKQueueDataNum(MS_U8 module_ID); 268 int UADPKQueueIsempty(MS_U8 module_ID); 269 270 void UADPCreateKQueue(MS_U8 module_ID); 271 void UADPDeleteQueue(MS_U8 module_ID); 272 273 #endif /* _UTOPIA_ADP_H_ */ 274 275