/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: February 21, 1992 7:40:16 pm PST */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: UnixTrapToMesaErrorImpl, module: UnixTrapToMesaErrorImpl */ /* switches: bcfhklnouw */ #include <cedar/InstallationSupport.h> #include <cedar/CedarExtra.h> static char versionStamp[] = "@(#)mob←version [1569650615,4096767984] UnixTrapToMesaErrorImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef word (*fPt)(); typedef struct {word f0, f1;} W2; typedef W2 *W2Pt; #define SOURCE(p, l) /* source p, l */ static void NoName←Q300(); static void UnixTrapToMesaErrorImpl←P0(); static void UnixHandler←P60(); static void NotifyStackOverflow←P120(); static void RipVanWinkle←P180(); static void DecodeTrap←P240(); static word NoName←Q360(); static struct {unsigned f; char r[44];} string1 = {2818092, "\216\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261"}; static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"}; static struct {unsigned f; char r[48];} string3 = {3014704, "Thread stack overflow occurred in some thread.\000"}; static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\135\216\367\267\300\364\057\267\360\100\164\000\000"}; static struct {unsigned f; char r[4];} string5 = {131074, "\003\013\000"}; static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\064\321\106\155\300\242\071\325\060\100\150\000\000"}; static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\240\236\274\315\300\111\163\325\023\100\150\000\000"}; static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\354\241\072\167\300\017\164\046\072\100\164\000\000"}; static struct { word f0[14]; word f14; word f15; word f16; word f17; word f18; word f19; word f20; word f21; word f22; word f23[4]; } globalframe = { {0}, (word) DecodeTrap←P240, 0, (word) RipVanWinkle←P180, 0, (word) NotifyStackOverflow←P120, 0, (word) UnixHandler←P60, 0, (word) UnixTrapToMesaErrorImpl←P0, {0} }; static void NoName←Q300() { register ptr gf←c036 = (ptr) &globalframe; word var←c5736; (* (( (ptr) gf←c036)+9) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2); (* (ptr) (( (bPt) gf←c036)+44) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c036)+9) ), (word) &string3); (void) XR←DeclareGlobalFrame((word) "UnixTrapToMesaErrorImpl", &globalframe, (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5) , (word) (( (bPt) gf←c036)+88)/* var←c5448 */ ); var←c5736 = (word) XR←ImportInterface((word) "PreDebug", (word) XR←GetTypeIndexS((word) (&string6)), 5); (* (( (ptr) gf←c036)+24)/* var←c5480 */ ) = var←c5736; (void) XR←ImportProcS(var←c5736, 786691); var←c5736 = (word) XR←ImportInterface((word) "Process", (word) XR←GetTypeIndexS((word) (&string7)), 22); (* (( (ptr) gf←c036)+25)/* var←c5608 */ ) = var←c5736; (void) XR←ImportProcS(var←c5736, 134219776); (void) XR←ImportProcS(var←c5736, 526081); var←c5736 = (word) XR←ImportInterface((word) "VM", (word) XR←GetTypeIndexS((word) (&string8)), 19); (* (( (ptr) gf←c036)+26)/* var←c5704 */ ) = var←c5736; } static void UnixTrapToMesaErrorImpl←P0(formal←c015, formal←c014) word formal←c015; word formal←c014; { register ptr gf←c5768 = (ptr) &globalframe; /* UnixTrapToMesaErrorImpl: */ SOURCE(59, 1645) SOURCE(1533, 59) SOURCE(1535, 57) (void) XR←RegisterHandler((* (ptr) ((( (bPt) gf←c5768)+80)/* var←c5416 */ ) )); SOURCE(1595, 109) { word pd9; pd9 = (* (( (ptr) (* (( (ptr) gf←c5768)+24)/* var←c5480 */ ))+5) ); (void) ( *( (fPt) ((* (ptr) pd9 ))))((word) (( (bPt) gf←c5768)+52), 0, (* (( (ptr) gf←c5768)+11) ), pd9); }; } static void UnixHandler←P60(handlee←v3476, which←v3504, arg←v3532) word handlee←v3476; word which←v3504; word arg←v3532; { register ptr gf←c5800 = (ptr) &globalframe; /* UnixHandler: */ SOURCE(652, 285) SOURCE(729, 208) { word var←c5512; var←c5512 = which←v3504; switch (var←c5512) { case 2: case 3: SOURCE(784, 25) (void) DecodeTrap←P240(arg←v3532); break; case 1023: SOURCE(850, 87) SOURCE(853, 64) { W2 var←c5544; { W2 var←c5576; { word pd10; pd10 = (* (( (ptr) (* (( (ptr) gf←c5800)+25)/* var←c5608 */ ))+12) ); (void) ( *( (fPt) ((* (ptr) pd10 ))))((word) (&var←c5576), pd10); }; { W2 var←c024; word var←c023; var←c023 = XR←ExtensionAlloc(6); { word tmpAddr11; tmpAddr11 = (word) var←c023; (* (ptr) tmpAddr11 ) = ( ((word) (fPt) NoName←Q360) ); (* (( (ptr) tmpAddr11) + 1) ) = 0; (* (( (ptr) tmpAddr11) + 2) ) = (word) (( (bPt) gf←c5800)+72)/* var←c5384 */ ; (* (( (ptr) tmpAddr11) + 3) ) = 0; (* (W2Pt) (( (ptr) tmpAddr11) + 4) ) = var←c5576; }; (void) XR←Fork((word) &var←c024, var←c023); var←c5544 = var←c024; }; }; { word pd12; pd12 = (* (( (ptr) (* (( (ptr) gf←c5800)+25)/* var←c5608 */ ))+11) ); (void) ( *( (fPt) ((* (ptr) pd12 ))))(var←c5544, pd12); }; }; SOURCE(920, 14) (void) RipVanWinkle←P180(); break; default: SOURCE(951, 5) (void) XR←RaiseUnnamedError(); break; }; }; } static void NotifyStackOverflow←P120(process←v3680) W2 process←v3680; { register ptr gf←c5832 = (ptr) &globalframe; /* NotifyStackOverflow: */ SOURCE(1022, 96) SOURCE(1082, 36) { W2 var←c029; var←c029 = process←v3680; (void) XR←RaiseError((word) (( (bPt) gf←c5832)+52), (word) &var←c029); }; } static void RipVanWinkle←P180() { /* RipVanWinkle: */ SOURCE(1124, 54) SOURCE(1161, 17) lab←L100002: ; SOURCE(1164, 14) (void) XR←CallDebugger(); goto lab←L100002; } static void DecodeTrap←P240(trapInfo←v3772) word trapInfo←v3772; { register ptr gf←c5864 = (ptr) &globalframe; word sig←v3812; /* DecodeTrap: */ SOURCE(1193, 326) SOURCE(1254, 46) sig←v3812 = (* (ptr) trapInfo←v3772 ); SOURCE(1302, 217) { word var←c5640; var←c5640 = sig←v3812; if ((var←c5640 == 11)) { SOURCE(1329, 156) { word var←c5672; var←c5672 = (* (( (ptr) trapInfo←v3772)+1) ); if (( (int)var←c5672 == (int)3)) { SOURCE(1364, 36) { word var←c034; var←c034 = (* (( (ptr) trapInfo←v3772)+3) ); (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c5864)+26)/* var←c5704 */ ))+9) ), (word) &var←c034); }; } else { if (( (int)var←c5672 == (int)4)) { SOURCE(1410, 41) { word var←c035; var←c035 = (* (( (ptr) trapInfo←v3772)+3) ); (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c5864)+26)/* var←c5704 */ ))+10) ), (word) &var←c035); }; } else { SOURCE(1464, 21) (void) XR←RaiseError((word) (( (bPt) gf←c5864)+48), 0); }; }; }; } else { SOURCE(1498, 21) (void) XR←RaiseError((word) (( (bPt) gf←c5864)+48), 0); }; }; } static word NoName←Q360(formal←c025) word formal←c025; { W2 var←c027; word var←c026; /* intermediary proc for a FORK, nArgs: 2, nRets: 0 */ var←c027 = (* (W2Pt) (( (ptr) formal←c025)+4) ); var←c026 = (* (( (ptr) formal←c025)+2) ); formal←c025 = XR←ExtensionFree(formal←c025); (void) ( *( (fPt) ((* (ptr) var←c026 ))))((* (W2Pt) (&var←c027) ), var←c026); return(0); } /* file: UnixTrapToMesaErrorImpl, module: UnixTrapToMesaErrorImpl, compiled at: February 21, 1992 7:40:16 pm PST */ extern void XR←install←UnixTrapToMesaErrorImpl() { NoName←Q300(); } extern void XR←run←UnixTrapToMesaErrorImpl() { XR←Start(&globalframe); }