Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

genmips.c

Go to the documentation of this file.
00001 /*++ 00002 00003 Copyright (c) 1990 Microsoft Corporation 00004 00005 Module Name: 00006 00007 genmips.c 00008 00009 Abstract: 00010 00011 This module implements a program which generates MIPS machine dependent 00012 structure offset definitions for kernel structures that are accessed in 00013 assembly code. 00014 00015 Author: 00016 00017 David N. Cutler (davec) 27-Mar-1990 00018 00019 Revision History: 00020 00021 --*/ 00022 00023 #include "ki.h" 00024 #pragma hdrstop 00025 #define HEADER_FILE 00026 #include "excpt.h" 00027 #include "ntdef.h" 00028 #include "ntkeapi.h" 00029 #include "ntmips.h" 00030 #include "ntimage.h" 00031 #include "ntseapi.h" 00032 #include "ntobapi.h" 00033 #include "ntlpcapi.h" 00034 #include "ntioapi.h" 00035 #include "ntmmapi.h" 00036 #include "ntldr.h" 00037 #include "ntpsapi.h" 00038 #include "ntexapi.h" 00039 #include "ntnls.h" 00040 #include "nturtl.h" 00041 #include "ntcsrmsg.h" 00042 #include "ntcsrsrv.h" 00043 #include "ntxcapi.h" 00044 #include "arc.h" 00045 #include "ntstatus.h" 00046 #include "kxmips.h" 00047 #include "stdarg.h" 00048 #include "setjmp.h" 00049 00050 // 00051 // Define architecture specific generation macros. 00052 // 00053 00054 #define genAlt(Name, Type, Member) \ 00055 dumpf("#define " #Name " 0x%lx\n", OFFSET(Type, Member)) 00056 00057 #define genCom(Comment) \ 00058 dumpf("\n"); \ 00059 dumpf("//\n"); \ 00060 dumpf("// " Comment "\n"); \ 00061 dumpf("//\n"); \ 00062 dumpf("\n") 00063 00064 #define genDef(Prefix, Type, Member) \ 00065 dumpf("#define " #Prefix #Member " 0x%lx\n", OFFSET(Type, Member)) 00066 00067 #define genVal(Name, Value) \ 00068 dumpf("#define " #Name " 0x%lx\n", Value) 00069 00070 #define genSpc() dumpf("\n"); 00071 00072 // 00073 // Define member offset computation macro. 00074 // 00075 00076 #define OFFSET(type, field) ((LONG)(&((type *)0)->field)) 00077 00078 FILE *KsMips; 00079 FILE *HalMips; 00080 00081 // 00082 // EnableInc(a) - Enables output to goto specified include file 00083 // 00084 00085 #define EnableInc(a) OutputEnabled |= a; 00086 00087 // 00088 // DisableInc(a) - Disables output to goto specified include file 00089 // 00090 00091 #define DisableInc(a) OutputEnabled &= ~a; 00092 00093 ULONG OutputEnabled; 00094 00095 #define KSMIPS 0x01 00096 #define HALMIPS 0x02 00097 00098 #define KERNEL KSMIPS 00099 #define HAL HALMIPS 00100 00101 VOID dumpf (const char *format, ...); 00102 00103 00104 // 00105 // This routine returns the bit number right to left of a field. 00106 // 00107 00108 LONG 00109 t ( 00110 IN ULONG z 00111 ) 00112 00113 { 00114 LONG i; 00115 00116 for (i = 0; i < 32; i += 1) { 00117 if ((z >> i) & 1) { 00118 break; 00119 } 00120 } 00121 return i; 00122 } 00123 00124 // 00125 // This program generates the MIPS machine dependent assembler offset 00126 // definitions. 00127 // 00128 00129 VOID 00130 main (argc, argv) 00131 int argc; 00132 char *argv[]; 00133 { 00134 00135 char *outName; 00136 LONG EventOffset; 00137 00138 // 00139 // Create file for output. 00140 // 00141 00142 if (argc == 2) { 00143 outName = argv[ 1 ]; 00144 } else { 00145 outName = "\\nt\\public\\sdk\\inc\\ksmips.h"; 00146 } 00147 00148 outName = argc >= 2 ? argv[1] : "\\nt\\public\\sdk\\inc\\ksmips.h"; 00149 KsMips = fopen( outName, "w" ); 00150 if (KsMips == NULL) { 00151 fprintf( stderr, "GENMIPS: Cannot open %s for writing.\n", outName); 00152 00153 } else { 00154 fprintf(stderr, "GENMIPS: Writing %s header file.\n", outName); 00155 } 00156 00157 outName = argc >= 3 ? argv[2] : "\\nt\\private\\ntos\\inc\\halmips.h"; 00158 HalMips = fopen( outName, "w" ); 00159 if (HalMips == NULL) { 00160 fprintf( stderr, "GENMIPS: Cannot open %s for writing.\n", outName); 00161 00162 } else { 00163 fprintf(stderr, "GENMIPS: Writing %s header file.\n", outName); 00164 } 00165 00166 // 00167 // Include statement for MIPS architecture static definitions. 00168 // 00169 00170 EnableInc (KSMIPS | HALMIPS); 00171 dumpf("#include \"kxmips.h\"\n"); 00172 DisableInc (HALMIPS); 00173 00174 // 00175 // Include architecture independent definitions. 00176 // 00177 00178 #include "..\genxx.inc" 00179 00180 // 00181 // Generate architecture dependent definitions. 00182 // 00183 // Processor block structure definitions. 00184 // 00185 00186 EnableInc(HALMIPS); 00187 00188 genCom("Processor Block Structure Offset Definitions"); 00189 00190 genVal(PRCB_MINOR_VERSION, PRCB_MINOR_VERSION); 00191 genVal(PRCB_MAJOR_VERSION, PRCB_MAJOR_VERSION); 00192 00193 genSpc(); 00194 00195 genDef(Pb, KPRCB, MinorVersion); 00196 genDef(Pb, KPRCB, MajorVersion); 00197 genDef(Pb, KPRCB, CurrentThread); 00198 genDef(Pb, KPRCB, NextThread); 00199 genDef(Pb, KPRCB, IdleThread); 00200 genDef(Pb, KPRCB, Number); 00201 genDef(Pb, KPRCB, SetMember); 00202 genDef(Pb, KPRCB, RestartBlock); 00203 genDef(Pb, KPRCB, SystemReserved); 00204 genDef(Pb, KPRCB, HalReserved); 00205 00206 DisableInc(HALMIPS); 00207 00208 genDef(Pb, KPRCB, DpcTime); 00209 genDef(Pb, KPRCB, InterruptTime); 00210 genDef(Pb, KPRCB, KernelTime); 00211 genDef(Pb, KPRCB, UserTime); 00212 genDef(Pb, KPRCB, AdjustDpcThreshold); 00213 genDef(Pb, KPRCB, InterruptCount); 00214 genDef(Pb, KPRCB, ApcBypassCount); 00215 genDef(Pb, KPRCB, DpcBypassCount); 00216 genDef(Pb, KPRCB, IpiFrozen); 00217 genDef(Pb, KPRCB, ProcessorState); 00218 genAlt(PbAlignmentFixupCount, KPRCB, KeAlignmentFixupCount); 00219 genAlt(PbContextSwitches, KPRCB, KeContextSwitches); 00220 genAlt(PbDcacheFlushCount, KPRCB, KeDcacheFlushCount); 00221 genAlt(PbExceptionDispatchCount, KPRCB, KeExceptionDispatchCount); 00222 genAlt(PbFirstLevelTbFills, KPRCB, KeFirstLevelTbFills); 00223 genAlt(PbFloatingEmulationCount, KPRCB, KeFloatingEmulationCount); 00224 genAlt(PbIcacheFlushCount, KPRCB, KeIcacheFlushCount); 00225 genAlt(PbSecondLevelTbFills, KPRCB, KeSecondLevelTbFills); 00226 genAlt(PbSystemCalls, KPRCB, KeSystemCalls); 00227 genDef(Pb, KPRCB, CurrentPacket); 00228 genDef(Pb, KPRCB, TargetSet); 00229 genDef(Pb, KPRCB, WorkerRoutine); 00230 genDef(Pb, KPRCB, RequestSummary); 00231 genDef(Pb, KPRCB, SignalDone); 00232 genDef(Pb, KPRCB, DpcInterruptRequested); 00233 genDef(Pb, KPRCB, MaximumDpcQueueDepth); 00234 genDef(Pb, KPRCB, MinimumDpcRate); 00235 genDef(Pb, KPRCB, IpiCounts); 00236 genDef(Pb, KPRCB, StartCount); 00237 genDef(Pb, KPRCB, DpcLock); 00238 genDef(Pb, KPRCB, DpcListHead); 00239 genDef(Pb, KPRCB, DpcQueueDepth); 00240 genDef(Pb, KPRCB, DpcCount); 00241 genDef(Pb, KPRCB, DpcLastCount); 00242 genDef(Pb, KPRCB, DpcRequestRate); 00243 genDef(Pb, KPRCB, DpcRoutineActive); 00244 genVal(ProcessorBlockLength, ((sizeof(KPRCB) + 15) & ~15)); 00245 00246 // 00247 // Processor control register structure definitions. 00248 // 00249 00250 #if defined(_MIPS_) 00251 00252 EnableInc(HALMIPS); 00253 00254 genCom("Processor Control Registers Structure Offset Definitions"); 00255 00256 genVal(PCR_MINOR_VERSION, PCR_MINOR_VERSION); 00257 genVal(PCR_MAJOR_VERSION, PCR_MAJOR_VERSION); 00258 00259 genSpc(); 00260 00261 genDef(Pc, KPCR, MinorVersion); 00262 genDef(Pc, KPCR, MajorVersion); 00263 genDef(Pc, KPCR, InterruptRoutine); 00264 genDef(Pc, KPCR, XcodeDispatch); 00265 genDef(Pc, KPCR, FirstLevelDcacheSize); 00266 genDef(Pc, KPCR, FirstLevelDcacheFillSize); 00267 genDef(Pc, KPCR, FirstLevelIcacheSize); 00268 genDef(Pc, KPCR, FirstLevelIcacheFillSize); 00269 genDef(Pc, KPCR, SecondLevelDcacheSize); 00270 genDef(Pc, KPCR, SecondLevelDcacheFillSize); 00271 genDef(Pc, KPCR, SecondLevelIcacheSize); 00272 genDef(Pc, KPCR, SecondLevelIcacheFillSize); 00273 genDef(Pc, KPCR, Prcb); 00274 genDef(Pc, KPCR, Teb); 00275 genDef(Pc, KPCR, TlsArray); 00276 genDef(Pc, KPCR, DcacheFillSize); 00277 genDef(Pc, KPCR, IcacheAlignment); 00278 genDef(Pc, KPCR, IcacheFillSize); 00279 genDef(Pc, KPCR, ProcessorId); 00280 genDef(Pc, KPCR, ProfileInterval); 00281 genDef(Pc, KPCR, ProfileCount); 00282 genDef(Pc, KPCR, StallExecutionCount); 00283 genDef(Pc, KPCR, StallScaleFactor); 00284 genDef(Pc, KPCR, Number); 00285 genDef(Pc, KPCR, DataBusError); 00286 genDef(Pc, KPCR, InstructionBusError); 00287 genDef(Pc, KPCR, CachePolicy); 00288 genDef(Pc, KPCR, IrqlMask); 00289 genDef(Pc, KPCR, IrqlTable); 00290 genDef(Pc, KPCR, CurrentIrql); 00291 genDef(Pc, KPCR, SetMember); 00292 genDef(Pc, KPCR, CurrentThread); 00293 genDef(Pc, KPCR, AlignedCachePolicy); 00294 genDef(Pc, KPCR, NotMember); 00295 genDef(Pc, KPCR, SystemReserved); 00296 genDef(Pc, KPCR, DcacheAlignment); 00297 genDef(Pc, KPCR, HalReserved); 00298 00299 DisableInc(HALMIPS); 00300 00301 genDef(Pc, KPCR, FirstLevelActive); 00302 genDef(Pc, KPCR, DpcRoutineActive); 00303 genDef(Pc, KPCR, CurrentPid); 00304 genDef(Pc, KPCR, OnInterruptStack); 00305 genDef(Pc, KPCR, SavedInitialStack); 00306 genDef(Pc, KPCR, SavedStackLimit); 00307 genDef(Pc, KPCR, SystemServiceDispatchStart); 00308 genDef(Pc, KPCR, SystemServiceDispatchEnd); 00309 genDef(Pc, KPCR, InterruptStack); 00310 genDef(Pc, KPCR, PanicStack); 00311 genDef(Pc, KPCR, InitialStack); 00312 genDef(Pc, KPCR, StackLimit); 00313 genDef(Pc, KPCR, SavedEpc); 00314 genDef(Pc, KPCR, SavedT7); 00315 genDef(Pc, KPCR, SavedT8); 00316 genDef(Pc, KPCR, SavedT9); 00317 genDef(Pc, KPCR, SystemGp); 00318 genDef(Pc, KPCR, QuantumEnd); 00319 genDef(Pc, KPCR, BadVaddr); 00320 genDef(Pc, KPCR, TmpVaddr); 00321 genVal(ProcessorControlRegisterLength, ((sizeof(KPCR) + 15) & ~15)); 00322 00323 genSpc(); 00324 00325 genDef(Pc2, KUSER_SHARED_DATA, TickCountLow); 00326 genDef(Pc2, KUSER_SHARED_DATA, TickCountMultiplier); 00327 genDef(Pc2, KUSER_SHARED_DATA, InterruptTime); 00328 genDef(Pc2, KUSER_SHARED_DATA, SystemTime); 00329 00330 #endif 00331 00332 // 00333 // TB entry structure offset definitions. 00334 // 00335 00336 #if defined(_MIPS_) 00337 00338 genCom("TB Entry Structure Offset Definitions"); 00339 00340 genDef(Tb, TB_ENTRY, Entrylo0); 00341 genDef(Tb, TB_ENTRY, Entrylo1); 00342 genDef(Tb, TB_ENTRY, Entryhi); 00343 genDef(Tb, TB_ENTRY, Pagemask); 00344 00345 #endif 00346 00347 // 00348 // 00349 // Interprocessor command definitions. 00350 // 00351 00352 genCom("Immediate Interprocessor Command Definitions"); 00353 00354 genVal(IPI_APC, IPI_APC); 00355 genVal(IPI_DPC, IPI_DPC); 00356 genVal(IPI_FREEZE, IPI_FREEZE); 00357 genVal(IPI_PACKET_READY, IPI_PACKET_READY); 00358 00359 // 00360 // Interprocessor interrupt count structure offset definitions. 00361 // 00362 00363 genCom("Interprocessor Interrupt Count Structure Offset Definitions"); 00364 00365 genDef(Ic, KIPI_COUNTS, Freeze); 00366 genDef(Ic, KIPI_COUNTS, Packet); 00367 genDef(Ic, KIPI_COUNTS, DPC); 00368 genDef(Ic, KIPI_COUNTS, APC); 00369 genDef(Ic, KIPI_COUNTS, FlushSingleTb); 00370 genDef(Ic, KIPI_COUNTS, FlushMultipleTb); 00371 genDef(Ic, KIPI_COUNTS, FlushEntireTb); 00372 genDef(Ic, KIPI_COUNTS, GenericCall); 00373 genDef(Ic, KIPI_COUNTS, ChangeColor); 00374 genDef(Ic, KIPI_COUNTS, SweepDcache); 00375 genDef(Ic, KIPI_COUNTS, SweepIcache); 00376 genDef(Ic, KIPI_COUNTS, SweepIcacheRange); 00377 genDef(Ic, KIPI_COUNTS, FlushIoBuffers); 00378 genDef(Ic, KIPI_COUNTS, GratuitousDPC); 00379 00380 // 00381 // Context frame offset definitions and flag definitions. 00382 // 00383 00384 EnableInc (HALMIPS); 00385 00386 genCom("Context Frame Offset and Flag Definitions"); 00387 00388 genVal(CONTEXT_FULL, CONTEXT_FULL); 00389 genVal(CONTEXT_CONTROL, CONTEXT_CONTROL); 00390 genVal(CONTEXT_FLOATING_POINT, CONTEXT_FLOATING_POINT); 00391 genVal(CONTEXT_INTEGER, CONTEXT_INTEGER); 00392 genVal(CONTEXT_EXTENDED_FLOAT, CONTEXT_EXTENDED_FLOAT); 00393 genVal(CONTEXT_EXTENDED_INTEGER, CONTEXT_EXTENDED_INTEGER); 00394 00395 genCom("32-bit Context Frame Offset Definitions"); 00396 00397 genDef(Cx, CONTEXT, FltF0); 00398 genDef(Cx, CONTEXT, FltF1); 00399 genDef(Cx, CONTEXT, FltF2); 00400 genDef(Cx, CONTEXT, FltF3); 00401 genDef(Cx, CONTEXT, FltF4); 00402 genDef(Cx, CONTEXT, FltF5); 00403 genDef(Cx, CONTEXT, FltF6); 00404 genDef(Cx, CONTEXT, FltF7); 00405 genDef(Cx, CONTEXT, FltF8); 00406 genDef(Cx, CONTEXT, FltF9); 00407 genDef(Cx, CONTEXT, FltF10); 00408 genDef(Cx, CONTEXT, FltF11); 00409 genDef(Cx, CONTEXT, FltF12); 00410 genDef(Cx, CONTEXT, FltF13); 00411 genDef(Cx, CONTEXT, FltF14); 00412 genDef(Cx, CONTEXT, FltF15); 00413 genDef(Cx, CONTEXT, FltF16); 00414 genDef(Cx, CONTEXT, FltF17); 00415 genDef(Cx, CONTEXT, FltF18); 00416 genDef(Cx, CONTEXT, FltF19); 00417 genDef(Cx, CONTEXT, FltF20); 00418 genDef(Cx, CONTEXT, FltF21); 00419 genDef(Cx, CONTEXT, FltF22); 00420 genDef(Cx, CONTEXT, FltF23); 00421 genDef(Cx, CONTEXT, FltF24); 00422 genDef(Cx, CONTEXT, FltF25); 00423 genDef(Cx, CONTEXT, FltF26); 00424 genDef(Cx, CONTEXT, FltF27); 00425 genDef(Cx, CONTEXT, FltF28); 00426 genDef(Cx, CONTEXT, FltF29); 00427 genDef(Cx, CONTEXT, FltF30); 00428 genDef(Cx, CONTEXT, FltF31); 00429 genDef(Cx, CONTEXT, IntZero); 00430 genDef(Cx, CONTEXT, IntAt); 00431 genDef(Cx, CONTEXT, IntV0); 00432 genDef(Cx, CONTEXT, IntV1); 00433 genDef(Cx, CONTEXT, IntA0); 00434 genDef(Cx, CONTEXT, IntA1); 00435 genDef(Cx, CONTEXT, IntA2); 00436 genDef(Cx, CONTEXT, IntA3); 00437 genDef(Cx, CONTEXT, IntT0); 00438 genDef(Cx, CONTEXT, IntT1); 00439 genDef(Cx, CONTEXT, IntT2); 00440 genDef(Cx, CONTEXT, IntT3); 00441 genDef(Cx, CONTEXT, IntT4); 00442 genDef(Cx, CONTEXT, IntT5); 00443 genDef(Cx, CONTEXT, IntT6); 00444 genDef(Cx, CONTEXT, IntT7); 00445 genDef(Cx, CONTEXT, IntS0); 00446 genDef(Cx, CONTEXT, IntS1); 00447 genDef(Cx, CONTEXT, IntS2); 00448 genDef(Cx, CONTEXT, IntS3); 00449 genDef(Cx, CONTEXT, IntS4); 00450 genDef(Cx, CONTEXT, IntS5); 00451 genDef(Cx, CONTEXT, IntS6); 00452 genDef(Cx, CONTEXT, IntS7); 00453 genDef(Cx, CONTEXT, IntT8); 00454 genDef(Cx, CONTEXT, IntT9); 00455 genDef(Cx, CONTEXT, IntK0); 00456 genDef(Cx, CONTEXT, IntK1); 00457 genDef(Cx, CONTEXT, IntGp); 00458 genDef(Cx, CONTEXT, IntSp); 00459 genDef(Cx, CONTEXT, IntS8); 00460 genDef(Cx, CONTEXT, IntRa); 00461 genDef(Cx, CONTEXT, IntLo); 00462 genDef(Cx, CONTEXT, IntHi); 00463 genDef(Cx, CONTEXT, Fsr); 00464 genDef(Cx, CONTEXT, Fir); 00465 genDef(Cx, CONTEXT, Psr); 00466 genDef(Cx, CONTEXT, ContextFlags); 00467 00468 genCom("64-bit Context Frame Offset Definitions"); 00469 00470 genDef(Cx, CONTEXT, XFltF0); 00471 genDef(Cx, CONTEXT, XFltF1); 00472 genDef(Cx, CONTEXT, XFltF2); 00473 genDef(Cx, CONTEXT, XFltF3); 00474 genDef(Cx, CONTEXT, XFltF4); 00475 genDef(Cx, CONTEXT, XFltF5); 00476 genDef(Cx, CONTEXT, XFltF6); 00477 genDef(Cx, CONTEXT, XFltF7); 00478 genDef(Cx, CONTEXT, XFltF8); 00479 genDef(Cx, CONTEXT, XFltF9); 00480 genDef(Cx, CONTEXT, XFltF10); 00481 genDef(Cx, CONTEXT, XFltF11); 00482 genDef(Cx, CONTEXT, XFltF12); 00483 genDef(Cx, CONTEXT, XFltF13); 00484 genDef(Cx, CONTEXT, XFltF14); 00485 genDef(Cx, CONTEXT, XFltF15); 00486 genDef(Cx, CONTEXT, XFltF16); 00487 genDef(Cx, CONTEXT, XFltF17); 00488 genDef(Cx, CONTEXT, XFltF18); 00489 genDef(Cx, CONTEXT, XFltF19); 00490 genDef(Cx, CONTEXT, XFltF20); 00491 genDef(Cx, CONTEXT, XFltF21); 00492 genDef(Cx, CONTEXT, XFltF22); 00493 genDef(Cx, CONTEXT, XFltF23); 00494 genDef(Cx, CONTEXT, XFltF24); 00495 genDef(Cx, CONTEXT, XFltF25); 00496 genDef(Cx, CONTEXT, XFltF26); 00497 genDef(Cx, CONTEXT, XFltF27); 00498 genDef(Cx, CONTEXT, XFltF28); 00499 genDef(Cx, CONTEXT, XFltF29); 00500 genDef(Cx, CONTEXT, XFltF30); 00501 genDef(Cx, CONTEXT, XFltF31); 00502 genDef(Cx, CONTEXT, XFsr); 00503 genDef(Cx, CONTEXT, XFir); 00504 genDef(Cx, CONTEXT, XPsr); 00505 genDef(Cx, CONTEXT, XContextFlags); 00506 genDef(Cx, CONTEXT, XIntZero); 00507 genDef(Cx, CONTEXT, XIntAt); 00508 genDef(Cx, CONTEXT, XIntV0); 00509 genDef(Cx, CONTEXT, XIntV1); 00510 genDef(Cx, CONTEXT, XIntA0); 00511 genDef(Cx, CONTEXT, XIntA1); 00512 genDef(Cx, CONTEXT, XIntA2); 00513 genDef(Cx, CONTEXT, XIntA3); 00514 genDef(Cx, CONTEXT, XIntT0); 00515 genDef(Cx, CONTEXT, XIntT1); 00516 genDef(Cx, CONTEXT, XIntT2); 00517 genDef(Cx, CONTEXT, XIntT3); 00518 genDef(Cx, CONTEXT, XIntT4); 00519 genDef(Cx, CONTEXT, XIntT5); 00520 genDef(Cx, CONTEXT, XIntT6); 00521 genDef(Cx, CONTEXT, XIntT7); 00522 genDef(Cx, CONTEXT, XIntS0); 00523 genDef(Cx, CONTEXT, XIntS1); 00524 genDef(Cx, CONTEXT, XIntS2); 00525 genDef(Cx, CONTEXT, XIntS3); 00526 genDef(Cx, CONTEXT, XIntS4); 00527 genDef(Cx, CONTEXT, XIntS5); 00528 genDef(Cx, CONTEXT, XIntS6); 00529 genDef(Cx, CONTEXT, XIntS7); 00530 genDef(Cx, CONTEXT, XIntT8); 00531 genDef(Cx, CONTEXT, XIntT9); 00532 genDef(Cx, CONTEXT, XIntK0); 00533 genDef(Cx, CONTEXT, XIntK1); 00534 genDef(Cx, CONTEXT, XIntGp); 00535 genDef(Cx, CONTEXT, XIntSp); 00536 genDef(Cx, CONTEXT, XIntS8); 00537 genDef(Cx, CONTEXT, XIntRa); 00538 genDef(Cx, CONTEXT, XIntLo); 00539 genDef(Cx, CONTEXT, XIntHi); 00540 genVal(ContextFrameLength, sizeof(CONTEXT)); 00541 00542 // 00543 // Exception frame offset definitions. 00544 // 00545 00546 genCom("Exception Frame Offset Definitions and Length"); 00547 00548 genAlt(ExArgs, KEXCEPTION_FRAME, Argument); 00549 00550 genCom("32-bit Nonvolatile Floating State"); 00551 00552 genDef(Ex, KEXCEPTION_FRAME, FltF20); 00553 genDef(Ex, KEXCEPTION_FRAME, FltF21); 00554 genDef(Ex, KEXCEPTION_FRAME, FltF22); 00555 genDef(Ex, KEXCEPTION_FRAME, FltF23); 00556 genDef(Ex, KEXCEPTION_FRAME, FltF24); 00557 genDef(Ex, KEXCEPTION_FRAME, FltF25); 00558 genDef(Ex, KEXCEPTION_FRAME, FltF26); 00559 genDef(Ex, KEXCEPTION_FRAME, FltF27); 00560 genDef(Ex, KEXCEPTION_FRAME, FltF28); 00561 genDef(Ex, KEXCEPTION_FRAME, FltF29); 00562 genDef(Ex, KEXCEPTION_FRAME, FltF30); 00563 genDef(Ex, KEXCEPTION_FRAME, FltF31); 00564 00565 genCom("64-bit Nonvolatile Floating State"); 00566 00567 genDef(Ex, KEXCEPTION_FRAME, XFltF20); 00568 genDef(Ex, KEXCEPTION_FRAME, XFltF22); 00569 genDef(Ex, KEXCEPTION_FRAME, XFltF24); 00570 genDef(Ex, KEXCEPTION_FRAME, XFltF26); 00571 genDef(Ex, KEXCEPTION_FRAME, XFltF28); 00572 genDef(Ex, KEXCEPTION_FRAME, XFltF30); 00573 00574 genCom("32-bit Nonvolatile Integer State"); 00575 00576 genDef(Ex, KEXCEPTION_FRAME, IntS0); 00577 genDef(Ex, KEXCEPTION_FRAME, IntS1); 00578 genDef(Ex, KEXCEPTION_FRAME, IntS2); 00579 genDef(Ex, KEXCEPTION_FRAME, IntS3); 00580 genDef(Ex, KEXCEPTION_FRAME, IntS4); 00581 genDef(Ex, KEXCEPTION_FRAME, IntS5); 00582 genDef(Ex, KEXCEPTION_FRAME, IntS6); 00583 genDef(Ex, KEXCEPTION_FRAME, IntS7); 00584 genDef(Ex, KEXCEPTION_FRAME, IntS8); 00585 genDef(Ex, KEXCEPTION_FRAME, SwapReturn); 00586 genDef(Ex, KEXCEPTION_FRAME, IntRa); 00587 genVal(ExceptionFrameLength, sizeof(KEXCEPTION_FRAME)); 00588 00589 // 00590 // Jump buffer offset definitions. 00591 // 00592 00593 DisableInc (HALMIPS); 00594 00595 genCom("Jump Offset Definitions and Length"); 00596 00597 genDef(Jb, _JUMP_BUFFER, FltF20); 00598 genDef(Jb, _JUMP_BUFFER, FltF21); 00599 genDef(Jb, _JUMP_BUFFER, FltF22); 00600 genDef(Jb, _JUMP_BUFFER, FltF23); 00601 genDef(Jb, _JUMP_BUFFER, FltF24); 00602 genDef(Jb, _JUMP_BUFFER, FltF25); 00603 genDef(Jb, _JUMP_BUFFER, FltF26); 00604 genDef(Jb, _JUMP_BUFFER, FltF27); 00605 genDef(Jb, _JUMP_BUFFER, FltF28); 00606 genDef(Jb, _JUMP_BUFFER, FltF29); 00607 genDef(Jb, _JUMP_BUFFER, FltF30); 00608 genDef(Jb, _JUMP_BUFFER, FltF31); 00609 genDef(Jb, _JUMP_BUFFER, IntS0); 00610 genDef(Jb, _JUMP_BUFFER, IntS1); 00611 genDef(Jb, _JUMP_BUFFER, IntS2); 00612 genDef(Jb, _JUMP_BUFFER, IntS3); 00613 genDef(Jb, _JUMP_BUFFER, IntS4); 00614 genDef(Jb, _JUMP_BUFFER, IntS5); 00615 genDef(Jb, _JUMP_BUFFER, IntS6); 00616 genDef(Jb, _JUMP_BUFFER, IntS7); 00617 genDef(Jb, _JUMP_BUFFER, IntS8); 00618 genDef(Jb, _JUMP_BUFFER, IntSp); 00619 genDef(Jb, _JUMP_BUFFER, Type); 00620 genDef(Jb, _JUMP_BUFFER, Fir); 00621 00622 // 00623 // Trap frame offset definitions. 00624 // 00625 00626 EnableInc (HALMIPS); 00627 00628 genCom("Trap Frame Offset Definitions and Length"); 00629 00630 genAlt(TrArgs, KTRAP_FRAME, Argument); 00631 00632 genCom("32-bit Volatile Floating State"); 00633 00634 genDef(Tr, KTRAP_FRAME, FltF0); 00635 genDef(Tr, KTRAP_FRAME, FltF1); 00636 genDef(Tr, KTRAP_FRAME, FltF2); 00637 genDef(Tr, KTRAP_FRAME, FltF3); 00638 genDef(Tr, KTRAP_FRAME, FltF4); 00639 genDef(Tr, KTRAP_FRAME, FltF5); 00640 genDef(Tr, KTRAP_FRAME, FltF6); 00641 genDef(Tr, KTRAP_FRAME, FltF7); 00642 genDef(Tr, KTRAP_FRAME, FltF8); 00643 genDef(Tr, KTRAP_FRAME, FltF9); 00644 genDef(Tr, KTRAP_FRAME, FltF10); 00645 genDef(Tr, KTRAP_FRAME, FltF11); 00646 genDef(Tr, KTRAP_FRAME, FltF12); 00647 genDef(Tr, KTRAP_FRAME, FltF13); 00648 genDef(Tr, KTRAP_FRAME, FltF14); 00649 genDef(Tr, KTRAP_FRAME, FltF15); 00650 genDef(Tr, KTRAP_FRAME, FltF16); 00651 genDef(Tr, KTRAP_FRAME, FltF17); 00652 genDef(Tr, KTRAP_FRAME, FltF18); 00653 genDef(Tr, KTRAP_FRAME, FltF19); 00654 00655 genCom("64-bit Volatile Floating State"); 00656 00657 genDef(Tr, KTRAP_FRAME, XFltF0); 00658 genDef(Tr, KTRAP_FRAME, XFltF1); 00659 genDef(Tr, KTRAP_FRAME, XFltF2); 00660 genDef(Tr, KTRAP_FRAME, XFltF3); 00661 genDef(Tr, KTRAP_FRAME, XFltF4); 00662 genDef(Tr, KTRAP_FRAME, XFltF5); 00663 genDef(Tr, KTRAP_FRAME, XFltF6); 00664 genDef(Tr, KTRAP_FRAME, XFltF7); 00665 genDef(Tr, KTRAP_FRAME, XFltF8); 00666 genDef(Tr, KTRAP_FRAME, XFltF9); 00667 genDef(Tr, KTRAP_FRAME, XFltF10); 00668 genDef(Tr, KTRAP_FRAME, XFltF11); 00669 genDef(Tr, KTRAP_FRAME, XFltF12); 00670 genDef(Tr, KTRAP_FRAME, XFltF13); 00671 genDef(Tr, KTRAP_FRAME, XFltF14); 00672 genDef(Tr, KTRAP_FRAME, XFltF15); 00673 genDef(Tr, KTRAP_FRAME, XFltF16); 00674 genDef(Tr, KTRAP_FRAME, XFltF17); 00675 genDef(Tr, KTRAP_FRAME, XFltF18); 00676 genDef(Tr, KTRAP_FRAME, XFltF19); 00677 genDef(Tr, KTRAP_FRAME, XFltF21); 00678 genDef(Tr, KTRAP_FRAME, XFltF23); 00679 genDef(Tr, KTRAP_FRAME, XFltF25); 00680 genDef(Tr, KTRAP_FRAME, XFltF27); 00681 genDef(Tr, KTRAP_FRAME, XFltF29); 00682 genDef(Tr, KTRAP_FRAME, XFltF31); 00683 00684 genCom("64-bit Volatile Integer State"); 00685 00686 genDef(Tr, KTRAP_FRAME, XIntZero); 00687 genDef(Tr, KTRAP_FRAME, XIntAt); 00688 genDef(Tr, KTRAP_FRAME, XIntV0); 00689 genDef(Tr, KTRAP_FRAME, XIntV1); 00690 genDef(Tr, KTRAP_FRAME, XIntA0); 00691 genDef(Tr, KTRAP_FRAME, XIntA1); 00692 genDef(Tr, KTRAP_FRAME, XIntA2); 00693 genDef(Tr, KTRAP_FRAME, XIntA3); 00694 genDef(Tr, KTRAP_FRAME, XIntT0); 00695 genDef(Tr, KTRAP_FRAME, XIntT1); 00696 genDef(Tr, KTRAP_FRAME, XIntT2); 00697 genDef(Tr, KTRAP_FRAME, XIntT3); 00698 genDef(Tr, KTRAP_FRAME, XIntT4); 00699 genDef(Tr, KTRAP_FRAME, XIntT5); 00700 genDef(Tr, KTRAP_FRAME, XIntT6); 00701 genDef(Tr, KTRAP_FRAME, XIntT7); 00702 genDef(Tr, KTRAP_FRAME, XIntS0); 00703 genDef(Tr, KTRAP_FRAME, XIntS1); 00704 genDef(Tr, KTRAP_FRAME, XIntS2); 00705 genDef(Tr, KTRAP_FRAME, XIntS3); 00706 genDef(Tr, KTRAP_FRAME, XIntS4); 00707 genDef(Tr, KTRAP_FRAME, XIntS5); 00708 genDef(Tr, KTRAP_FRAME, XIntS6); 00709 genDef(Tr, KTRAP_FRAME, XIntS7); 00710 genDef(Tr, KTRAP_FRAME, XIntT8); 00711 genDef(Tr, KTRAP_FRAME, XIntT9); 00712 genDef(Tr, KTRAP_FRAME, XIntGp); 00713 genDef(Tr, KTRAP_FRAME, XIntSp); 00714 genDef(Tr, KTRAP_FRAME, XIntS8); 00715 genDef(Tr, KTRAP_FRAME, XIntRa); 00716 genDef(Tr, KTRAP_FRAME, XIntLo); 00717 genDef(Tr, KTRAP_FRAME, XIntHi); 00718 00719 genSpc(); 00720 00721 genDef(Tr, KTRAP_FRAME, Fir); 00722 genDef(Tr, KTRAP_FRAME, Fsr); 00723 genDef(Tr, KTRAP_FRAME, Psr); 00724 genDef(Tr, KTRAP_FRAME, ExceptionRecord); 00725 genDef(Tr, KTRAP_FRAME, OldIrql); 00726 genDef(Tr, KTRAP_FRAME, PreviousMode); 00727 genDef(Tr, KTRAP_FRAME, SavedFlag); 00728 genAlt(TrOnInterruptStack, KTRAP_FRAME, u.OnInterruptStack); 00729 genAlt(TrTrapFrame, KTRAP_FRAME, u.TrapFrame); 00730 00731 genVal(TrapFrameLength, sizeof(KTRAP_FRAME)); 00732 genVal(TrapFrameArguments, KTRAP_FRAME_ARGUMENTS); 00733 00734 // 00735 // Usermode callout kernel frame definitions 00736 // 00737 00738 DisableInc(HALMIPS); 00739 00740 genCom("Usermode callout kernel frame definitions"); 00741 00742 genDef(Cu, KCALLOUT_FRAME, F20); 00743 genDef(Cu, KCALLOUT_FRAME, F21); 00744 genDef(Cu, KCALLOUT_FRAME, F22); 00745 genDef(Cu, KCALLOUT_FRAME, F23); 00746 genDef(Cu, KCALLOUT_FRAME, F24); 00747 genDef(Cu, KCALLOUT_FRAME, F25); 00748 genDef(Cu, KCALLOUT_FRAME, F26); 00749 genDef(Cu, KCALLOUT_FRAME, F27); 00750 genDef(Cu, KCALLOUT_FRAME, F28); 00751 genDef(Cu, KCALLOUT_FRAME, F29); 00752 genDef(Cu, KCALLOUT_FRAME, F30); 00753 genDef(Cu, KCALLOUT_FRAME, F31); 00754 genDef(Cu, KCALLOUT_FRAME, S0); 00755 genDef(Cu, KCALLOUT_FRAME, S1); 00756 genDef(Cu, KCALLOUT_FRAME, S2); 00757 genDef(Cu, KCALLOUT_FRAME, S3); 00758 genDef(Cu, KCALLOUT_FRAME, S4); 00759 genDef(Cu, KCALLOUT_FRAME, S5); 00760 genDef(Cu, KCALLOUT_FRAME, S6); 00761 genDef(Cu, KCALLOUT_FRAME, S7); 00762 genDef(Cu, KCALLOUT_FRAME, S8); 00763 genDef(Cu, KCALLOUT_FRAME, CbStk); 00764 genDef(Cu, KCALLOUT_FRAME, TrFr); 00765 genDef(Cu, KCALLOUT_FRAME, Fsr); 00766 genDef(Cu, KCALLOUT_FRAME, InStk); 00767 genDef(Cu, KCALLOUT_FRAME, Ra); 00768 genVal(CuFrameLength, OFFSET(KCALLOUT_FRAME, A0)); 00769 genDef(Cu, KCALLOUT_FRAME, A0); 00770 genDef(Cu, KCALLOUT_FRAME, A1); 00771 00772 // 00773 // Usermode callout user frame definitions. 00774 // 00775 00776 genCom("Usermode callout user frame definitions"); 00777 00778 genDef(Ck, UCALLOUT_FRAME, Buffer); 00779 genDef(Ck, UCALLOUT_FRAME, Length); 00780 genDef(Ck, UCALLOUT_FRAME, ApiNumber); 00781 genDef(Ck, UCALLOUT_FRAME, Sp); 00782 genDef(Ck, UCALLOUT_FRAME, Ra); 00783 00784 EnableInc(HALMIPS); 00785 00786 // 00787 // Loader Parameter Block offset definitions. 00788 // 00789 00790 dumpf("\n"); 00791 dumpf("//\n"); 00792 dumpf("// Loader Parameter Block Offset Definitions\n"); 00793 dumpf("//\n"); 00794 dumpf("\n"); 00795 00796 dumpf("#define LpbLoadOrderListHead 0x%lx\n", 00797 OFFSET(LOADER_PARAMETER_BLOCK, LoadOrderListHead)); 00798 00799 dumpf("#define LpbMemoryDescriptorListHead 0x%lx\n", 00800 OFFSET(LOADER_PARAMETER_BLOCK, MemoryDescriptorListHead)); 00801 00802 dumpf("#define LpbKernelStack 0x%lx\n", 00803 OFFSET(LOADER_PARAMETER_BLOCK, KernelStack)); 00804 00805 dumpf("#define LpbPrcb 0x%lx\n", 00806 OFFSET(LOADER_PARAMETER_BLOCK, Prcb)); 00807 00808 dumpf("#define LpbProcess 0x%lx\n", 00809 OFFSET(LOADER_PARAMETER_BLOCK, Process)); 00810 00811 dumpf("#define LpbThread 0x%lx\n", 00812 OFFSET(LOADER_PARAMETER_BLOCK, Thread)); 00813 00814 dumpf("#define LpbInterruptStack 0x%lx\n", 00815 OFFSET(LOADER_PARAMETER_BLOCK, u.Mips.InterruptStack)); 00816 00817 dumpf("#define LpbFirstLevelDcacheSize 0x%lx\n", 00818 OFFSET(LOADER_PARAMETER_BLOCK, u.Mips.FirstLevelDcacheSize)); 00819 00820 dumpf("#define LpbFirstLevelDcacheFillSize 0x%lx\n", 00821 OFFSET(LOADER_PARAMETER_BLOCK, u.Mips.FirstLevelDcacheFillSize)); 00822 00823 dumpf("#define LpbFirstLevelIcacheSize 0x%lx\n", 00824 OFFSET(LOADER_PARAMETER_BLOCK, u.Mips.FirstLevelIcacheSize)); 00825 00826 dumpf("#define LpbFirstLevelIcacheFillSize 0x%lx\n", 00827 OFFSET(LOADER_PARAMETER_BLOCK, u.Mips.FirstLevelIcacheFillSize)); 00828 00829 dumpf("#define LpbGpBase 0x%lx\n", 00830 OFFSET(LOADER_PARAMETER_BLOCK, u.Mips.GpBase)); 00831 00832 dumpf("#define LpbPanicStack 0x%lx\n", 00833 OFFSET(LOADER_PARAMETER_BLOCK, u.Mips.PanicStack)); 00834 00835 dumpf("#define LpbPcrPage 0x%lx\n", 00836 OFFSET(LOADER_PARAMETER_BLOCK, u.Mips.PcrPage)); 00837 00838 dumpf("#define LpbPdrPage 0x%lx\n", 00839 OFFSET(LOADER_PARAMETER_BLOCK, u.Mips.PdrPage)); 00840 00841 dumpf("#define LpbSecondLevelDcacheSize 0x%lx\n", 00842 OFFSET(LOADER_PARAMETER_BLOCK, u.Mips.SecondLevelDcacheSize)); 00843 00844 dumpf("#define LpbSecondLevelDcacheFillSize 0x%lx\n", 00845 OFFSET(LOADER_PARAMETER_BLOCK, u.Mips.SecondLevelDcacheFillSize)); 00846 00847 dumpf("#define LpbSecondLevelIcacheSize 0x%lx\n", 00848 OFFSET(LOADER_PARAMETER_BLOCK, u.Mips.SecondLevelIcacheSize)); 00849 00850 dumpf("#define LpbSecondLevelIcacheFillSize 0x%lx\n", 00851 OFFSET(LOADER_PARAMETER_BLOCK, u.Mips.SecondLevelIcacheFillSize)); 00852 00853 dumpf("#define LpbPcrPage2 0x%lx\n", 00854 OFFSET(LOADER_PARAMETER_BLOCK, u.Mips.PcrPage2)); 00855 00856 dumpf("#define LpbRegistryLength 0x%lx\n", 00857 OFFSET(LOADER_PARAMETER_BLOCK, RegistryLength)); 00858 00859 dumpf("#define LpbRegistryBase 0x%lx\n", 00860 OFFSET(LOADER_PARAMETER_BLOCK, RegistryBase)); 00861 00862 DisableInc (HALMIPS); 00863 00864 // 00865 // Define Client/Server data structure definitions. 00866 // 00867 00868 genCom("Client/Server Structure Definitions"); 00869 00870 genDef(Cid, CLIENT_ID, UniqueProcess); 00871 genDef(Cid, CLIENT_ID, UniqueThread); 00872 00873 // 00874 // Address space layout definitions 00875 // 00876 00877 EnableInc(HALMIPS); 00878 00879 genCom("Address Space Layout Definitions"); 00880 00881 genVal(KUSEG_BASE, KUSEG_BASE); 00882 genVal(KSEG0_BASE, KSEG0_BASE); 00883 genVal(KSEG1_BASE, KSEG1_BASE); 00884 genVal(KSEG2_BASE, KSEG2_BASE); 00885 00886 DisableInc(HALMIPS); 00887 00888 genVal(CACHE_ERROR_VECTOR, CACHE_ERROR_VECTOR); 00889 genVal(SYSTEM_BASE, SYSTEM_BASE); 00890 genVal(PDE_BASE, PDE_BASE); 00891 genVal(PTE_BASE, PTE_BASE); 00892 genVal(PDE64_BASE, PDE64_BASE); 00893 genVal(PTE64_BASE, PTE64_BASE); 00894 00895 // 00896 // Page table and page directory entry definitions 00897 // 00898 00899 EnableInc(HALMIPS); 00900 00901 genCom("Page Table and Directory Entry Definitions"); 00902 00903 genVal(PAGE_SIZE, PAGE_SIZE); 00904 genVal(PAGE_SHIFT, PAGE_SHIFT); 00905 genVal(PDI_SHIFT, PDI_SHIFT); 00906 genVal(PTI_SHIFT, PTI_SHIFT); 00907 00908 // 00909 // Software interrupt request mask definitions 00910 // 00911 00912 genCom("Software Interrupt Request Mask Definitions"); 00913 00914 genVal(APC_INTERRUPT, (1 << (APC_LEVEL + CAUSE_INTPEND - 1))); 00915 genVal(DISPATCH_INTERRUPT, (1 << (DISPATCH_LEVEL + CAUSE_INTPEND - 1))); 00916 00917 DisableInc(HALMIPS); 00918 00919 // 00920 // Breakpoint instruction definitions 00921 // 00922 00923 EnableInc(HALMIPS); 00924 00925 genCom("Breakpoint Definitions"); 00926 00927 genVal(USER_BREAKPOINT, USER_BREAKPOINT); 00928 genVal(KERNEL_BREAKPOINT, KERNEL_BREAKPOINT); 00929 genVal(BREAKIN_BREAKPOINT, BREAKIN_BREAKPOINT); 00930 00931 DisableInc(HALMIPS); 00932 00933 genVal(BRANCH_TAKEN_BREAKPOINT, BRANCH_TAKEN_BREAKPOINT); 00934 genVal(BRANCH_NOT_TAKEN_BREAKPOINT, BRANCH_NOT_TAKEN_BREAKPOINT); 00935 genVal(SINGLE_STEP_BREAKPOINT, SINGLE_STEP_BREAKPOINT); 00936 genVal(DIVIDE_OVERFLOW_BREAKPOINT, DIVIDE_OVERFLOW_BREAKPOINT); 00937 genVal(DIVIDE_BY_ZERO_BREAKPOINT, DIVIDE_BY_ZERO_BREAKPOINT); 00938 genVal(RANGE_CHECK_BREAKPOINT, RANGE_CHECK_BREAKPOINT); 00939 genVal(STACK_OVERFLOW_BREAKPOINT, STACK_OVERFLOW_BREAKPOINT); 00940 genVal(MULTIPLY_OVERFLOW_BREAKPOINT, MULTIPLY_OVERFLOW_BREAKPOINT); 00941 genVal(DEBUG_PRINT_BREAKPOINT, DEBUG_PRINT_BREAKPOINT); 00942 genVal(DEBUG_PROMPT_BREAKPOINT, DEBUG_PROMPT_BREAKPOINT); 00943 genVal(DEBUG_STOP_BREAKPOINT, DEBUG_STOP_BREAKPOINT); 00944 genVal(DEBUG_LOAD_SYMBOLS_BREAKPOINT, DEBUG_LOAD_SYMBOLS_BREAKPOINT); 00945 genVal(DEBUG_UNLOAD_SYMBOLS_BREAKPOINT, DEBUG_UNLOAD_SYMBOLS_BREAKPOINT); 00946 00947 // 00948 // Miscellaneous definitions 00949 // 00950 00951 EnableInc(HALMIPS); 00952 00953 genCom("Miscellaneous Definitions"); 00954 00955 genVal(Executive, Executive); 00956 genVal(KernelMode, KernelMode); 00957 genVal(FALSE, FALSE); 00958 genVal(TRUE, TRUE); 00959 genVal(UNCACHED_POLICY, UNCACHED_POLICY); 00960 genVal(KiPcr, KIPCR); 00961 genVal(KiPcr2, KIPCR2); 00962 00963 DisableInc(HALMIPS); 00964 00965 genVal(UsPcr, USPCR); 00966 genVal(UsPcr2, USPCR2); 00967 genVal(BASE_PRIORITY_THRESHOLD, BASE_PRIORITY_THRESHOLD); 00968 genVal(EVENT_PAIR_INCREMENT, EVENT_PAIR_INCREMENT); 00969 genVal(LOW_REALTIME_PRIORITY, LOW_REALTIME_PRIORITY); 00970 genVal(KERNEL_STACK_SIZE, KERNEL_STACK_SIZE); 00971 genVal(KERNEL_LARGE_STACK_COMMIT, KERNEL_LARGE_STACK_COMMIT); 00972 genVal(XCODE_VECTOR_LENGTH, XCODE_VECTOR_LENGTH); 00973 genVal(MM_USER_PROBE_ADDRESS, MM_USER_PROBE_ADDRESS); 00974 genVal(ROUND_TO_NEAREST, ROUND_TO_NEAREST); 00975 genVal(ROUND_TO_ZERO, ROUND_TO_ZERO); 00976 genVal(ROUND_TO_PLUS_INFINITY, ROUND_TO_PLUS_INFINITY); 00977 genVal(ROUND_TO_MINUS_INFINITY, ROUND_TO_MINUS_INFINITY); 00978 genVal(CLOCK_QUANTUM_DECREMENT, CLOCK_QUANTUM_DECREMENT); 00979 genVal(READY_SKIP_QUANTUM, READY_SKIP_QUANTUM); 00980 genVal(THREAD_QUANTUM, THREAD_QUANTUM); 00981 genVal(WAIT_QUANTUM_DECREMENT, WAIT_QUANTUM_DECREMENT); 00982 genVal(ROUND_TRIP_DECREMENT_COUNT, ROUND_TRIP_DECREMENT_COUNT); 00983 00984 // 00985 // Close header file. 00986 // 00987 00988 fprintf(stderr, " Finished\n"); 00989 return; 00990 } 00991 00992 VOID 00993 dumpf( 00994 const char *format, 00995 ... 00996 ) 00997 00998 { 00999 01000 va_list(arglist); 01001 01002 va_start(arglist, format); 01003 01004 if (((OutputEnabled & KSMIPS) != 0) && (KsMips != NULL)) { 01005 vfprintf (KsMips, format, arglist); 01006 } 01007 01008 if (((OutputEnabled & HALMIPS) != 0) && (HalMips != NULL)) { 01009 vfprintf (HalMips, format, arglist); 01010 } 01011 01012 va_end(arglist); 01013 }

Generated on Sat May 15 19:40:10 2004 for test by doxygen 1.3.7