- Timestamp:
- Feb 19, 2001, 6:56:00 AM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/win32k/dev16/mkcalltab.c
r5102 r5185 1 /* $Id: mkcalltab.c,v 1. 3 2001-02-11 15:15:12bird Exp $1 /* $Id: mkcalltab.c,v 1.4 2001-02-19 05:56:00 bird Exp $ 2 2 * 3 3 * Description: Generates the calltab.asm from aImportTab. … … 113 113 * Write Start of file. 114 114 */ 115 printf16("; $Id: mkcalltab.c,v 1. 3 2001-02-11 15:15:12bird Exp $\n"115 printf16("; $Id: mkcalltab.c,v 1.4 2001-02-19 05:56:00 bird Exp $\n" 116 116 ";\n" 117 117 "; Autogenerated calltab file.\n" … … 136 136 ";\n" 137 137 " public callTab\n" 138 " public callTab16\n" 138 139 " public auFuncs\n" 139 140 "\n" … … 143 144 ";\n" 144 145 "OVERLOAD32_PROLOG EQU 14h\n" 145 "OVERLOAD16_PROLOG EQU 1 8h\n"146 "OVERLOAD16_PROLOG EQU 14h\n" 146 147 "IMPORT32_PROLOG EQU 08h\n" 147 148 "NRIMPORT32_PROLOG EQU 06h\n" … … 165 166 "FnOverload16Entry macro fnname\n" 166 167 " public fnname\n" 168 " public &fnname&_off\n" 169 " public &fnname&_sel\n" 167 170 " fnname proc near\n" 168 171 " db OVERLOAD16_PROLOG dup(0cch)\n" 169 172 " fnname endp\n" 173 " &fnname&_off dw 0\n" 174 " &fnname&_sel dw 0\n" 170 175 "endm\n" 171 176 "\n" … … 231 236 232 237 /* 233 * Process aImportTab .238 * Process aImportTab - all but 16-bit overrides. 234 239 */ 235 240 for (i = 0; i < NBR_OF_KRNLIMPORTS; i++) 236 241 { 237 char *pszMacro = (aImportTab[i].fType & EPT_VARIMPORT) ? 238 "VariableEntry" 239 : ( (aImportTab[i].fType & EPT_PROCIMPORT) ? 240 ( (aImportTab[i].fType & EPT_NOT_REQ) ? 241 (EPT16BitEntry(aImportTab[i]) ? "FnNRImport16Entry" : "FnNRImport32Entry") 242 : (EPT16BitEntry(aImportTab[i]) ? "FnImport16Entry" : "FnImport32Entry")) 243 : (EPT16BitEntry(aImportTab[i]) ? "FnOverload16Entry" : "FnOverload32Entry")); 244 char *pszName = &aImportTab[i].achName[(aImportTab[i].fType & EPT_VARIMPORT) && aImportTab[i].achName[0] == '_']; 245 char *pszExtra = (aImportTab[i].fType & EPT_WRAPPED) ? "_wrapped" : aImportTab[i].achExtra; 246 247 /* 248 * Variable or Function? 249 */ 250 printf16("%s<%s%s>%*.s;%d\n", 251 pszMacro, 252 pszName, 253 pszExtra, 254 45 - 2 - kstrlen(pszMacro) - aImportTab[i].cchName - kstrlen(pszExtra), 255 "", 256 i); 257 } 258 259 /* 260 * Write End of Calltab and start of auFuncs. 242 if (!EPT16Proc(aImportTab[i])) 243 { 244 char *pszMacro = (aImportTab[i].fType & EPT_VARIMPORT) ? 245 "VariableEntry" 246 : ( (aImportTab[i].fType & EPT_PROCIMPORT) ? 247 ( (aImportTab[i].fType & EPT_NOT_REQ) ? 248 (EPT16BitEntry(aImportTab[i]) ? "FnNRImport16Entry" : "FnNRImport32Entry") 249 : (EPT16BitEntry(aImportTab[i]) ? "FnImport16Entry" : "FnImport32Entry")) 250 : (EPT16BitEntry(aImportTab[i]) ? "FnOverload16Entry" : "FnOverload32Entry")); 251 char *pszName = &aImportTab[i].achName[(aImportTab[i].fType & EPT_VARIMPORT) && aImportTab[i].achName[0] == '_']; 252 char *pszExtra = (aImportTab[i].fType & EPT_WRAPPED) ? "_wrapped" : aImportTab[i].achExtra; 253 254 /* 255 * Variable or Function? 256 */ 257 printf16("%s<%s%s>%*.s;%d\n", 258 pszMacro, 259 pszName, 260 pszExtra, 261 45 - 2 - kstrlen(pszMacro) - aImportTab[i].cchName - kstrlen(pszExtra), 262 "", 263 i); 264 } 265 } 266 267 /* 268 * Write End of Calltab and start of callTab16. 261 269 */ 262 270 printf16("\n" 263 271 "CALLTAB ENDS\n" 272 "\n" 273 "\n" 274 "DATA16 SEGMENT\n" 275 " assume ds:nothing, ss:nothing\n" 276 ";\n" 277 "; callTab16 is an array of function prologs with a jump to the real function\n" 278 "; for 16-bit overrides.\n" 279 ";\n" 280 "; Overrided 16-bit OS/2 kernel functions are called thru this table.\n" 281 ";\n" 282 "callTab16:\n" 283 284 ); 285 286 /* 287 * Process aImportTab - 16 bit overrides. 288 */ 289 for (i = 0; i < NBR_OF_KRNLIMPORTS; i++) 290 { 291 if (EPT16Proc(aImportTab[i])) 292 { 293 294 printf16("FnOverload16Entry<%s>%*.s;%d\n", 295 aImportTab[i].achName, 296 45 - 2 - 17 - aImportTab[i].cchName, 297 "", 298 i); 299 } 300 } 301 302 303 /* 304 * Write End of Calltab and start of auFuncs. 305 */ 306 printf16("\n" 307 "DATA16 ENDS\n" 264 308 "\n" 265 309 "\n" … … 283 327 char * pszName = (*pszPrefix != '\0' ? &aImportTab[i].achName[1] : &aImportTab[i].achName[0]); 284 328 285 if (!(aImportTab[i].fType & (EPT_PROCIMPORT | EPT_VARIMPORT | EPT_NOT_REQ))) 329 if (EPT16Proc(aImportTab[i])) 330 { /* Overload procedure (Overloader function) */ 331 #if 1 332 printf16(" extrn %smy%s%s : FAR\n" 333 " dw offset CODE%s:%smy%s%s\n" 334 " dw seg CODE%s:%smy%s%s\n", 335 pszPrefix, 336 pszName, 337 aImportTab[i].achExtra, 338 pszSeg, 339 pszPrefix, 340 pszName, 341 aImportTab[i].achExtra, 342 pszSeg, 343 pszPrefix, 344 pszName, 345 aImportTab[i].achExtra); 346 #else 347 printf16(" extrn %smy%s%s : FAR\n" 348 " dd far ptr CODE%s:%smy%s%s\n", 349 pszPrefix, 350 pszName, 351 aImportTab[i].achExtra, 352 pszSeg, 353 pszPrefix, 354 pszName, 355 aImportTab[i].achExtra); 356 #endif 357 } 358 else if (!(aImportTab[i].fType & (EPT_PROCIMPORT | EPT_VARIMPORT | EPT_NOT_REQ))) 286 359 { /* Overload procedure (Overloader function) */ 287 360 printf16(" extrn %smy%s%s : NEAR\n" … … 335 408 * Write Start of file. 336 409 */ 337 printf16("/* $Id: mkcalltab.c,v 1. 3 2001-02-11 15:15:12bird Exp $\n"410 printf16("/* $Id: mkcalltab.c,v 1.4 2001-02-19 05:56:00 bird Exp $\n" 338 411 " *\n" 339 412 " * Autogenerated TstFakers.c file.\n"
Note:
See TracChangeset
for help on using the changeset viewer.