/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */ /* time: September 3, 1993 1:40:37 pm PDT */ /* C2C version: April 20, 1993 (sun4) */ /* ref-counting: off */ /* file: SignalsImpl, module: SignalsImpl */ /* switches: bcfhklnouw */ #include <cedar/InstallationSupport.h> #include <cedar/CedarExtra.h> static char versionStamp[] = "@(#)mob←version [2861308617,621285829] SignalsImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8; typedef struct {word f0, f1, f2;} W3; typedef struct {W8 f; W3 r;} W11; typedef struct {W8 f; word r;} W9; typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7; typedef W7 *W7Pt; typedef word (*fPt)(); typedef struct {word f0, f1;} W2; typedef W2 *W2Pt; typedef struct {word f0, f1, f2, f3, f4;} W5; typedef W5 *W5Pt; #define SOURCE(p, l) /* source p, l */ #define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i ) static void NoName←Q1344(); static void SignalsImpl←P0(); static void InformationalSignal←P60(); static word RegisterUncaughtSignalHandler←P120(); static void InitialUCSHandler←P180(); static word RegisterSignalSpy←P240(); static void SignalHandler←P300(); static word NoName←Q1404(); static word NoName←Q1464(); static word Parent←P360(); static word WarmestHandler←P420(); extern void XR←MesaUnwinder(); static word NoName←Q1524(); static word NoName←Q1584(); extern void XR←RaiseError(); extern void XR←RaiseSignal(); extern word XR←RaiseUnnamedError(); extern word XR←RaiseArithmeticFault(); extern word XR←RaiseBoundsFault(); extern void XR←RaiseAbstractionFault(); extern void XR←SetupPushHandler(); extern word XR←PushAllocedHandler(); extern void XR←PopHandler(); static void GetStatistics←P1080(); static void Initialize←P1140(); static void NoName←Q1644(); static void NoName←Q1704(); static void NoName←Q1764(); static void NoName←Q1824(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\252\214\032\311\300\045\010\021\305\101\210\000\000"}; static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\252\214\032\311\300\045\010\021\305\101\224\000\000"}; static struct {unsigned f; char r[4];} string3 = {131074, "\003\006\000"}; static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\252\214\032\311\300\045\010\021\305\103\054\000\000"}; static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\252\214\032\311\300\045\010\021\305\101\020\000\000"}; static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\252\214\032\311\300\045\010\021\305\100\164\000\000"}; static struct {unsigned f; char r[12];} string7 = {1383427700, "imeError"}; static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\275\320\070\317\300\004\110\363\366\100\150\000\000"}; static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\152\271\236\047\300\356\300\232\317\100\150\000\000"}; static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\271\157\307\223\300\377\102\316\202\100\150\000\000"}; static struct { word f0[18]; word f18; word f19; word f20; word f21; word f22; word f23; word f24; word f25; word f26; word f27; word f28; word f29; word f30; word f31; word f32; word f33; word f34; word f35; word f36; word f37; word f38; word f39; word f40; word f41; word f42; word f43; word f44; word f45; word f46; word f47; word f48; word f49; word f50; word f51; word f52; word f53; word f54; word f55; word f56; word f57[3]; } globalframe = { {0}, (word) Initialize←P1140, 0, (word) GetStatistics←P1080, 0, (word) XR←PopHandler, 0, (word) XR←PushAllocedHandler, 0, (word) XR←SetupPushHandler, 0, (word) XR←RaiseAbstractionFault, 0, (word) XR←RaiseBoundsFault, 0, (word) XR←RaiseArithmeticFault, 0, (word) XR←RaiseUnnamedError, 0, (word) XR←RaiseSignal, 0, (word) XR←RaiseError, 0, (word) XR←MesaUnwinder, 0, (word) WarmestHandler←P420, 0, (word) Parent←P360, 0, (word) SignalHandler←P300, 0, (word) RegisterSignalSpy←P240, 0, (word) InitialUCSHandler←P180, 0, (word) RegisterUncaughtSignalHandler←P120, 0, (word) InformationalSignal←P60, 0, (word) SignalsImpl←P0, {0} }; #include <xr/Threads.h> typedef struct {fPt p; word c;} ProcDescBody; extern word XR←Enable(body, handler, context) fPt body; fPt handler; ptr context; { word rtnCode; ptr beforeCall; ProcDescBody pdDescBody; ProcDescBody unwindDescBody; word catchSpace[7]; struct XR←JmpBufRep jmpBuf; word unwindSpace[4]; pdDescBody.p = handler; pdDescBody.c = 1; unwindDescBody.p = (fPt) XR←MesaUnwinder; unwindDescBody.c = (word) catchSpace; beforeCall = (ptr) XR←GetDynamicEnvironment(); XR←SetupPushHandler(context, &pdDescBody, catchSpace, unwindSpace, &unwindDescBody, &jmpBuf); rtnCode = XR←setjmp(&jmpBuf); if (rtnCode == 0) rtnCode = body(context); { /* INLINE version of XR←PopHandler, no stats */ ptr curr = (ptr) XR←GetDynamicEnvironment(); ptr prev = (ptr) *((ptr) *curr); if (beforeCall != prev) XR←RaiseError(0,0); XR←SetDynamicEnvironment(prev); }; return (rtnCode); } extern word XR←UnwindFrameKey; static word XR←GetUnwindFrameKey() { return( XR←UnwindFrameKey ); } typedef struct { int *unixTrapHandler; unsigned aborted; unsigned abstractionFault; unsigned arithmeticFault; unsigned assignRefCompositeFault; unsigned boundsFault; unsigned divideCheck; unsigned invalidProcess; unsigned linkageFault; unsigned narrowFault; unsigned narrowRefFault; unsigned nestedProcFault; unsigned nilFault; unsigned resumeFault; unsigned sendMsg; unsigned stackFault; unsigned startFault; unsigned unboundProcedureFault; unsigned uncaught; unsigned unnamedError; unsigned unnamedSignal; unsigned Unwind; unsigned unwindFault; unsigned zeroDivisor; } SignalEnvironmentObject; typedef SignalEnvironmentObject *SignalEnvironment; unsigned XR←UnnamedSignal; unsigned XR←UnnamedError; unsigned XR←Unwind; unsigned XR←Aborted; unsigned XR←Uncaught; unsigned XR←NarrowFault; unsigned XR←NarrowRefFault; unsigned XR←InvalidProcess; SignalEnvironment XR←SigEnv; static void XR←SetSignalEnvironment(env) SignalEnvironment env; { XR←SigEnv = env; XR←UnnamedError = env-> unnamedError; XR←UnnamedSignal = env->unnamedSignal; XR←Unwind = env->Unwind; XR←Aborted = env->aborted; XR←Uncaught = env->uncaught; XR←NarrowFault = env->narrowFault; XR←NarrowRefFault = env->narrowRefFault; XR←InvalidProcess = env->invalidProcess; } static void NoName←Q1344() { register ptr gf←c0133 = (ptr) &globalframe; word var←c15188; (* (( (ptr) gf←c0133)+12) ) = (word) XR←GetTypeIndexS((word) (&string1)); (* (( (ptr) gf←c0133)+13) ) = (word) XR←GetTypeIndex((word) &string2, 0, (word) &string3); (* (( (ptr) gf←c0133)+14) ) = (word) XR←GetTypeIndexS((word) (&string4)); (* (( (ptr) gf←c0133)+15) ) = (word) XR←GetTypeIndexS((word) (&string5)); (void) XR←DeclareGlobalFrame((word) "SignalsImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string6)), (word) (( (bPt) gf←c0133)+224) /* var←c14676 */ ); var←c15188 = (word) XR←ImportInterface((word) &string7, (word) XR←GetTypeIndexS((word) (&string8)), 27); (* (( (ptr) gf←c0133)+58)/* var←c14740 */ ) = var←c15188; var←c15188 = (word) XR←ExportInterface((word) "PortableCedarRuntimeSupport", (word) XR←GetTypeIndexS((word) (&string9)), 77) ; (* (( (ptr) gf←c0133)+59)/* var←c15220 */ ) = var←c15188; (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+88)/* var←c14132 */ , 9728, (word) "PopHandler"); (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+144)/* var←c14356 */ , 796419, (word) "RaiseSignal"); (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+152)/* var←c14388 */ , 534530, (word) "RaiseError"); (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+120)/* var←c14260 */ , 67121152, (word) "RaiseBoundsFault"); (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+128)/* var←c14292 */ , 67121408, (word) "RaiseArithmeticFault") ; (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+112)/* var←c14228 */ , 12800, (word) "RaiseAbstractionFault") ; var←c15188 = (word) XR←ExportInterface((word) &string7, (word) XR←GetTypeIndexS((word) (&string8)), 27); (* (( (ptr) gf←c0133)+59)/* var←c15220 */ ) = var←c15188; (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+208)/* var←c14612 */ , 67377153, (word) "RegisterUncaughtSignalHandler") ; (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+216)/* var←c14644 */ , 268545, (word) "InformationalSignal"); var←c15188 = (word) XR←ExportInterface((word) "SignalStatistics", (word) XR←GetTypeIndexS((word) (&string10)), 2); (* (( (ptr) gf←c0133)+59)/* var←c15220 */ ) = var←c15188; (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+80)/* var←c14100 */ , 335544320, (word) "GetStatistics"); (void) XR←ExportProcS(var←c15188, (word) (( (bPt) gf←c0133)+192)/* var←c14548 */ , 67371265, (word) "RegisterSignalSpy"); } static void SignalsImpl←P0(formal←c039, formal←c038) word formal←c039; word formal←c038; { register ptr gf←c15252 = (ptr) &globalframe; /* SignalsImpl: */ SOURCE(73, 15251) SOURCE(273, 52) (* (( (ptr) gf←c15252)+4)/* ucsHandler←v2524 */ ) = (word) (( (bPt) gf←c15252)+200)/* var←c14580 */ ; SOURCE(6970, 42) (* (( (ptr) gf←c15252)+6)/* UnwindFrameKey←v3168 */ ) = (word) XR←GetUnwindFrameKey(); SOURCE(15312, 12) (void) Initialize←P1140(); } static void InformationalSignal←P60(signal←v4436) word signal←v4436; { /* InformationalSignal: */ SOURCE(424, 104) SOURCE(491, 37) (void) SignalHandler←P300(signal←v4436, 0, 0, 1); } static word RegisterUncaughtSignalHandler←P120(proc←v4512) word proc←v4512; { register ptr gf←c15284 = (ptr) &globalframe; word old←v4556; /* RegisterUncaughtSignalHandler: */ SOURCE(534, 159) SOURCE(534, 159) old←v4556 = 0; SOURCE(658, 16) old←v4556 = XR←CheckProc(* (( (ptr) gf←c15284)+4)/* ucsHandler←v2524 */ ); SOURCE(676, 17) (* (( (ptr) gf←c15284)+4)/* ucsHandler←v2524 */ ) = XR←CheckProc(proc←v4512); SOURCE(534, 159) return(old←v4556); } static void InitialUCSHandler←P180(msg←v11316, signal←v11344, frame←v11372) word msg←v11316; word signal←v11344; word frame←v11372; { /* InitialUCSHandler: */ SOURCE(699, 59) SOURCE(743, 15) (void) XR←CallDebugger(5); } static word RegisterSignalSpy←P240(new←v4632) word new←v4632; { register ptr gf←c15316 = (ptr) &globalframe; word old←v4692; /* RegisterSignalSpy: */ SOURCE(939, 111) SOURCE(939, 111) old←v4692 = 0; SOURCE(1018, 15) old←v4692 = XR←CheckProc(* (( (ptr) gf←c15316)+5)/* signalSpy←v2748 */ ); SOURCE(1035, 15) (* (( (ptr) gf←c15316)+5)/* signalSpy←v2748 */ ) = XR←CheckProc(new←v4632); SOURCE(939, 111) return(old←v4692); } static void SignalHandler←P300(sig←v4768, formal←c0170, formal←c0171, formal←c0172) word sig←v4768; word formal←c0170; word formal←c0171; word formal←c0172; { W11 var←c15348; /* declaration of arg←v4796 skipped */ /* declaration of rtns←v4824 skipped */ /* declaration of informational←v4852 skipped */ register ptr gf←c15380 = (ptr) &globalframe; /* declaration of action←v9548 skipped */ /* declaration of catchProc←v9576 skipped */ word warmestHandler←v9604 = 0; W9 selfObj←v9632; /* declaration of self←v9660 skipped */ /* declaration of exitTo←v9688 skipped */ word spy←v9716; (* (( (ptr) &var←c15348)+4)/* arg←v4796 */ ) = formal←c0170; (* (( (ptr) &var←c15348)+5)/* rtns←v4824 */ ) = formal←c0171; (* (( (ptr) &var←c15348)+6)/* informational←v4852 */ ) = formal←c0172; /* SignalHandler: */ SOURCE(1056, 2020) SOURCE(1191, 23) (* (( (ptr) &var←c15348)+8)/* catchProc←v9576 */ ) = 0; SOURCE(1251, 34) XR←FillWords(&(* (W7Pt) ((( (ptr) &selfObj←v9632)+1))), 7, 0); (* (ptr) &selfObj←v9632 ) = 4278255360; (* (( (ptr) &selfObj←v9632)+8) ) = 4279369489; SOURCE(1287, 41) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ) = (word) &selfObj←v9632; SOURCE(1343, 21) spy←v9716 = (* (( (ptr) gf←c15380)+5)/* signalSpy←v2748 */ ); SOURCE(1366, 23) if ((spy←v9716 != 0)) { SOURCE(1384, 5) (void) ( *( (fPt) ((* (ptr) spy←v9716 ))))(spy←v9716); }; SOURCE(1391, 17) (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+2) ) = sig←v4768; SOURCE(1418, 1658) SOURCE(1418, 1658) SOURCE(1431, 17) (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+7) ) = 0; SOURCE(1450, 33) warmestHandler←v9604 = (word) WarmestHandler←P420(); SOURCE(1511, 22) (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+1) ) = warmestHandler←v9604; SOURCE(1535, 23) (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+4) ) = (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+1) ); SOURCE(1560, 1089) lab←L100002: ; if ( ( ((* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+4) ) != (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+5) )) ? (0 == (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+7) )) : 0 ) ) { } else { goto lab←L100000; }; { word thisSignaller←v9776 = 0; SOURCE(1641, 36) (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+3) ) = (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+4) ); SOURCE(1679, 49) thisSignaller←v9776 = (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+3) ))+6) ); SOURCE(1730, 280) if ((thisSignaller←v9776 != 0)) { SOURCE(1760, 144) if (((* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+2) ) != (* (( (ptr) thisSignaller←v9776)+2) ))) { SOURCE(1802, 44) (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+4) ) = (word) Parent←P360((* ((( (ptr) (* (( (ptr) &var←c15348)+9) /* self←v9660 */ ))+3)) )); } else { SOURCE(1857, 47) (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+4) ) = (* (( (ptr) thisSignaller←v9776)+4) ); }; } else { SOURCE(1966, 44) (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+4) ) = (word) Parent←P360((* ((( (ptr) (* (( (ptr) &var←c15348)+9) /* self←v9660 */ ))+3)) )); }; SOURCE(2016, 633) (* (( (ptr) &var←c15348)+8)/* catchProc←v9576 */ ) = (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+3) ))+4) ); if (((* (( (ptr) &var←c15348)+8)/* catchProc←v9576 */ ) != 0)) { SOURCE(2075, 574) { word var←c05; { word var←c0158; var←c0158 = (word) &var←c15348; var←c05 = (word) XR←Enable(( ((word) (fPt) NoName←Q1404) ), ( ((word) (fPt) NoName←Q1764) ), var←c0158); }; if ((var←c05 == 1)) { goto lab←L03; }; }; }; }; goto lab←L100002; lab←L100000: ; if ((0 != (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+7) ))) { } else { if ((0 != (* (( (ptr) &var←c15348)+6)/* informational←v4852 */ )) || ((* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+2) ) == XR←Uncaught)) { } else { SOURCE(2777, 181) SOURCE(2835, 51) { W2 var←c060; (* (ptr) (word) &var←c060 ) = (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+2) ); (* (( (ptr) (word) &var←c060) + 1) ) = (* (( (ptr) &var←c15348)+4)/* arg←v4796 */ ); (void) (XR←RaiseSignal(XR←Uncaught, 0, (word) &var←c060)); }; SOURCE(2896, 59) SOURCE(2897, 58) { word pd11; pd11 = (* (( (ptr) gf←c15380)+4)/* ucsHandler←v2524 */ ); (void) ( *( (fPt) ((* (ptr) pd11 ))))((* (( (ptr) &var←c15348)+4)/* arg←v4796 */ ), (* (( (ptr) (* (( (ptr) &var←c15348)+9) /* self←v9660 */ ))+2) ), 0, pd11); }; }; }; SOURCE(2962, 111) if ((0 != (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+7) ))) { SOURCE(2983, 26) (void) XR←UnwindTo((* ((( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+5)) )); SOURCE(3011, 62) { word var←c14836; var←c14836 = (word) XR←GetNextHandlee(0); { word idx12; (void) XR←RestartHandlee(( XR←Thread ) var←c14836, ( XR←JmpBuf ) (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c15348)+9)/* self←v9660 */ ))+5) ))+3) ), ( unsigned ) ( idx12 = (* (( (ptr) &var←c15348)+10)/* exitTo←v9688 */ ), SGNCK(idx12) )); }; }; }; lab←L03: ; return; } static word NoName←Q1404(formal←c0138) word formal←c0138; { W8 var←c0165; var←c0165.f0 = formal←c0138; SOURCE(2245, 42) { word hotHandler←v9820; SOURCE(2245, 42) hotHandler←v9820 = (word) WarmestHandler←P420(); SOURCE(2289, 32) (* (( (ptr) hotHandler←v9820)+6) ) = (* (( (ptr) formal←c0138)+9) ); SOURCE(2323, 175) SOURCE(2323, 175) { W2 var←c14772; { /* declaration of var←c01 skipped */ /* declaration of var←c02 skipped */ var←c0165.f4/* var←c01 */ = (* (( (ptr) (* (( (ptr) (* (( (ptr) formal←c0138)+9) ))+3) ))+5) ); var←c0165.f5/* var←c02 */ = (* (( (ptr) (* (( (ptr) formal←c0138)+9) ))+2) ); { /* declaration of var←c03 skipped */ { word var←c04; { word var←c0159; var←c0159 = (word) &var←c0165; var←c04 = (word) XR←Enable(( ((word) (fPt) NoName←Q1464) ), ( ((word) (fPt) NoName←Q1824) ), var←c0159); }; if ((var←c04 == 2)) { goto lab←L100006; }; }; var←c14772 = (* (W2Pt) (( (ptr) &var←c0165)+6)/* var←c03 */ ); }; }; (* (( (ptr) formal←c0138)+10) ) = var←c14772.f1; (* (( (ptr) formal←c0138)+7) ) = var←c14772.f0; }; lab←L100006: ; SOURCE(2502, 147) { word var←c14804; var←c14804 = (* (( (ptr) formal←c0138)+7) ); switch (var←c14804) { case 0: break; case 1: SOURCE(2550, 7) return(1); case 2: SOURCE(2568, 81) if ((0 == (* (( (ptr) formal←c0138)+6) ))) { SOURCE(2593, 27) (* (( (ptr) (* (( (ptr) formal←c0138)+9) ))+5) ) = (* (( (ptr) (* (( (ptr) formal←c0138)+9) ))+3) ); SOURCE(2622, 16) (* (( (ptr) (* (( (ptr) formal←c0138)+9) ))+7) ) = 1; SOURCE(2640, 9) (* (( (ptr) formal←c0138)+4) ) = 0; }; break; }; }; }; return(0); } static word NoName←Q1464(formal←c0139) word formal←c0139; { SOURCE(2323, 175) { word pd13; pd13 = (* (( (ptr) (* (ptr) formal←c0139 ))+8) ); (void) ( *( (fPt) ((* (ptr) pd13 ))))((word) (( (bPt) formal←c0139)+24), (* (( (ptr) formal←c0139)+4) ), (* (( (ptr) formal←c0139)+5) ), (* (( (ptr) (* (ptr) formal←c0139 ))+5) ), (* (( (ptr) (* (ptr) formal←c0139 ))+4) ), pd13); }; return(0); } static word Parent←P360(catchPhrase←v4936) word catchPhrase←v4936; { word parent←v4980; word env←v10012; /* Parent: */ SOURCE(3083, 195) SOURCE(3165, 41) env←v10012 = catchPhrase←v4936; SOURCE(3208, 70) return((word) XR←LookupInDynamicEnvironment(1073807360, (* (ptr) env←v10012 ))); } static word WarmestHandler←P420() { word var←c5040; word env←v10056; /* WarmestHandler: */ SOURCE(3284, 160) SOURCE(3334, 43) env←v10056 = (word) XR←GetDynamicEnvironment(); SOURCE(3379, 65) return((word) XR←LookupInDynamicEnvironment(1073807360, env←v10056)); } extern void XR←MesaUnwinder(self←v5184) word self←v5184; { W7 var←c15412; /* declaration of cp←v10100 skipped */ /* declaration of catchProc←v10128 skipped */ /* declaration of action←v10156 skipped */ /* MesaUnwinder: */ SOURCE(3591, 673) SOURCE(3666, 34) var←c15412.f4/* cp←v10100 */ = (* (( (ptr) self←v5184)+1) ); SOURCE(3702, 23) var←c15412.f5/* catchProc←v10128 */ = 0; SOURCE(3755, 509) var←c15412.f5/* catchProc←v10128 */ = (* (( (ptr) var←c15412.f4/* cp←v10100 */ )+4) ); if ((var←c15412.f5/* catchProc←v10128 */ != 0)) { SOURCE(3804, 460) SOURCE(3806, 447) { word var←c0160; var←c0160 = (word) &var←c15412; (void) (word) XR←Enable(( ((word) (fPt) NoName←Q1524) ), ( ((word) (fPt) NoName←Q1644) ), var←c0160); }; }; } static word NoName←Q1524(formal←c0141) word formal←c0141; { W7 var←c0169; register ptr gf←c0140 = (ptr) &globalframe; var←c0169.f0 = formal←c0141; SOURCE(3980, 142) SOURCE(3980, 142) { W2 var←c14932; { /* declaration of var←c06 skipped */ var←c0169.f4/* var←c06 */ = (* (( (ptr) (* (( (ptr) formal←c0141)+4) ))+5) ); { /* declaration of var←c07 skipped */ { word var←c08; { word var←c0161; var←c0161 = (word) &var←c0169; var←c08 = (word) XR←Enable(( ((word) (fPt) NoName←Q1584) ), ( ((word) (fPt) NoName←Q1704) ), var←c0161); }; if ((var←c08 == 3)) { goto lab←L100012; }; }; var←c14932 = (* (W2Pt) (( (ptr) &var←c0169)+5)/* var←c07 */ ); }; }; (* (( (ptr) formal←c0141)+6) ) = var←c14932.f0; }; lab←L100012: ; SOURCE(4137, 116) { word var←c14964; var←c14964 = (* (( (ptr) formal←c0141)+6) ); switch (var←c14964) { case 0: break; case 1: SOURCE(4183, 30) (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c0140)+58)/* var←c14740 */ ))+15) ), 0); break; case 2: SOURCE(4223, 30) (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c0140)+58)/* var←c14740 */ ))+26) ), 0); break; }; }; return(0); } static word NoName←Q1584(formal←c0142) word formal←c0142; { SOURCE(3980, 142) { word pd14; pd14 = (* (( (ptr) (* (ptr) formal←c0142 ))+5) ); (void) ( *( (fPt) ((* (ptr) pd14 ))))((word) (( (bPt) formal←c0142)+20), (* (( (ptr) formal←c0142)+4) ), XR←Unwind, 0, 0, pd14) ; }; return(0); } extern void XR←RaiseError(which←v11432, args←v11460) word which←v11432; word args←v11460; { register ptr gf←c15444 = (ptr) &globalframe; /* RaiseError: */ SOURCE(8345, 172) SOURCE(8408, 43) (* (( (ptr) gf←c15444)+10) ) = ((* (( (ptr) gf←c15444)+10) ) + 1); SOURCE(8453, 31) (void) SignalHandler←P300(which←v11432, args←v11460, 0, 0); SOURCE(8486, 31) (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c15444)+58)/* var←c14740 */ ))+15) ), 0); } extern void XR←RaiseSignal(which←v11520, rtns←v11548, args←v11576) word which←v11520; word rtns←v11548; word args←v11576; { register ptr gf←c15476 = (ptr) &globalframe; /* RaiseSignal: */ SOURCE(8521, 146) SOURCE(8588, 45) (* (( (ptr) gf←c15476)+11) ) = ((* (( (ptr) gf←c15476)+11) ) + 1); SOURCE(8635, 32) (void) SignalHandler←P300(which←v11520, args←v11576, rtns←v11548, 0); } extern word XR←RaiseUnnamedError() { register ptr gf←c15508 = (ptr) &globalframe; word var←c8116; /* RaiseUnnamedError: */ SOURCE(8673, 128) SOURCE(8673, 128) var←c8116 = 0; SOURCE(8748, 53) (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c15508)+58)/* var←c14740 */ ))+23) ), 0); SOURCE(8673, 128) return(var←c8116); } extern word XR←RaiseArithmeticFault() { register ptr gf←c15540 = (ptr) &globalframe; word var←c8176; /* RaiseArithmeticFault: */ SOURCE(8805, 144) SOURCE(8805, 144) var←c8176 = 0; SOURCE(8893, 56) (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c15540)+58)/* var←c14740 */ ))+6) ), 0); SOURCE(8805, 144) return(var←c8176); } extern word XR←RaiseBoundsFault() { register ptr gf←c15572 = (ptr) &globalframe; word var←c8236; /* RaiseBoundsFault: */ SOURCE(8953, 132) SOURCE(8953, 132) var←c8236 = 0; SOURCE(9033, 52) (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c15572)+58)/* var←c14740 */ ))+8) ), 0); SOURCE(8953, 132) return(var←c8236); } extern void XR←RaiseAbstractionFault() { register ptr gf←c15604 = (ptr) &globalframe; /* RaiseAbstractionFault: */ SOURCE(9089, 139) SOURCE(9171, 57) (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c15604)+58)/* var←c14740 */ ))+5) ), 0); } extern void XR←SetupPushHandler(context←v8312, proc←v8340, catchPhrase←v8368, unwindFrame←v8396, unwinder←v8424, jmpBufPtr←v8452) word context←v8312; word proc←v8340; word catchPhrase←v8368; word unwindFrame←v8396; word unwinder←v8424; word jmpBufPtr←v8452; { register ptr gf←c15636 = (ptr) &globalframe; word prevEnv←v10200; /* SetupPushHandler: */ SOURCE(9232, 682) SOURCE(9418, 47) prevEnv←v10200 = (word) XR←GetDynamicEnvironment(); SOURCE(9467, 53) (* (ptr) catchPhrase←v8368 ) = unwindFrame←v8396; SOURCE(9522, 45) (* (( (ptr) catchPhrase←v8368)+1) ) = 1073807360; SOURCE(9569, 28) (* (( (ptr) catchPhrase←v8368)+4) ) = proc←v8340; SOURCE(9599, 34) (* (( (ptr) catchPhrase←v8368)+5) ) = context←v8312; SOURCE(9635, 32) (* (( (ptr) catchPhrase←v8368)+6) ) = 0; SOURCE(9669, 33) (* (( (ptr) catchPhrase←v8368)+3) ) = jmpBufPtr←v8452; SOURCE(9704, 26) (* (ptr) unwindFrame←v8396 ) = prevEnv←v10200; SOURCE(9732, 32) (* (( (ptr) unwindFrame←v8396)+1) ) = (* (( (ptr) gf←c15636)+6)/* UnwindFrameKey←v3168 */ ); SOURCE(9766, 31) (* (( (ptr) unwindFrame←v8396)+2) ) = unwinder←v8424; SOURCE(9799, 26) (* (( (ptr) unwindFrame←v8396)+3) ) = 0; SOURCE(9827, 44) (void) XR←SetDynamicEnvironment(catchPhrase←v8368); SOURCE(9873, 41) (* (( (ptr) gf←c15636)+8) ) = ((* (( (ptr) gf←c15636)+8) ) + 1); } extern word XR←PushAllocedHandler(context←v8552, handler←v8580, jmpBuf←v8608) word context←v8552; word handler←v8580; word jmpBuf←v8608; { register ptr gf←c15668 = (ptr) &globalframe; word var←c8676; word unwindFrame←v10244; word catchPhrase←v10272; word prevEnv←v10356; /* PushAllocedHandler: */ SOURCE(9920, 970) SOURCE(10062, 59) unwindFrame←v10244 = XR←NewObject(16, (* (( (ptr) gf←c15668)+12) )); SOURCE(10123, 59) catchPhrase←v10272 = XR←NewObject(28, (* (( (ptr) gf←c15668)+13) )); SOURCE(10296, 47) prevEnv←v10356 = (word) XR←GetDynamicEnvironment(); SOURCE(10345, 53) (* (ptr) catchPhrase←v10272 ) = unwindFrame←v10244; SOURCE(10400, 45) (* (( (ptr) catchPhrase←v10272)+1) ) = 1073807360; SOURCE(10447, 31) (* (( (ptr) catchPhrase←v10272)+4) ) = handler←v8580; SOURCE(10480, 34) (* (( (ptr) catchPhrase←v10272)+5) ) = context←v8552; SOURCE(10516, 32) (* (( (ptr) catchPhrase←v10272)+6) ) = 0; SOURCE(10550, 30) (* (( (ptr) catchPhrase←v10272)+3) ) = jmpBuf←v8608; SOURCE(10582, 26) (* (( (ptr) unwindFrame←v10244)+3) ) = 0; SOURCE(10610, 26) (* (ptr) unwindFrame←v10244 ) = prevEnv←v10356; SOURCE(10638, 32) (* (( (ptr) unwindFrame←v10244)+1) ) = (* (( (ptr) gf←c15668)+6)/* UnwindFrameKey←v3168 */ ); SOURCE(10672, 124) { word var←c15060; var←c15060 = XR←NewObject(8, (* (( (ptr) gf←c15668)+14) )); (* (ptr) var←c15060 ) = (* (ptr) (( (bPt) gf←c15668)+160)/* var←c14420 */ ); (* (( (ptr) var←c15060)+1) ) = catchPhrase←v10272; (* (( (ptr) unwindFrame←v10244)+2) ) = var←c15060; }; SOURCE(10798, 44) (void) XR←SetDynamicEnvironment(catchPhrase←v10272); SOURCE(10844, 35) (* (( (ptr) gf←c15668)+7) ) = ((* (( (ptr) gf←c15668)+7) ) + 1); SOURCE(10881, 9) return(0); } extern void XR←PopHandler() { register ptr gf←c15700 = (ptr) &globalframe; word env←v10484; /* PopHandler: */ SOURCE(10896, 254) SOURCE(10963, 43) env←v10484 = (word) XR←GetDynamicEnvironment(); SOURCE(11008, 142) if ( ( (((* (( (ptr) env←v10484)+1) ) == 1073807360) || ((* (( (ptr) env←v10484)+1) ) == 1073807361)) ? ((* (( (ptr) (* (ptr) env←v10484 ))+1) ) == (* (( (ptr) gf←c15700)+6)/* UnwindFrameKey←v3168 */ )) : 0 ) ) { SOURCE(11113, 37) (void) XR←SetDynamicEnvironment((* (ptr) ((* (ptr) env←v10484 )) )); } else { SOURCE(11157, 5) (void) XR←RaiseUnnamedError(); }; } static void GetStatistics←P1080(formal←c0104) word formal←c0104; { register ptr gf←c15732 = (ptr) &globalframe; W5 var←c9472; /* GetStatistics: */ SOURCE(12220, 81) SOURCE(12287, 14) var←c9472 = (* (W5Pt) (( (ptr) gf←c15732)+7)/* stats←v4092 */ ); /* removed tail goto */ (* (W5Pt) formal←c0104 ) = var←c9472; return; } static void Initialize←P1140() { register ptr gf←c15764 = (ptr) &globalframe; /* Initialize: */ SOURCE(14204, 1085) SOURCE(14225, 1024) { word var←c15124; { word var←c15156; var←c15156 = XR←NewObject(96, (* (( (ptr) gf←c15764)+15) )); (* (( (ptr) var←c15156)+1) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+4) ); (* (( (ptr) var←c15156)+2) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+5) ); (* (( (ptr) var←c15156)+3) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+6) ); (* (( (ptr) var←c15156)+4) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+7) ); (* (( (ptr) var←c15156)+5) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+8) ); (* (( (ptr) var←c15156)+6) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+9) ); (* (( (ptr) var←c15156)+7) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+30) ); (* (( (ptr) var←c15156)+8) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+10) ); (* (( (ptr) var←c15156)+9) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+11) ); (* (( (ptr) var←c15156)+10) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+12) ); (* (( (ptr) var←c15156)+11) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+13) ); (* (( (ptr) var←c15156)+12) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+14) ); (* (( (ptr) var←c15156)+13) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+15) ); (* (( (ptr) var←c15156)+14) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+17) ); (* (( (ptr) var←c15156)+15) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+18) ); (* (( (ptr) var←c15156)+16) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+19) ); (* (( (ptr) var←c15156)+17) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+20) ); (* (( (ptr) var←c15156)+18) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+21) ); (* (( (ptr) var←c15156)+19) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+23) ); (* (( (ptr) var←c15156)+20) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+24) ); (* (( (ptr) var←c15156)+21) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+25) ); (* (( (ptr) var←c15156)+22) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+26) ); (* (( (ptr) var←c15156)+23) ) = (* (( (ptr) (* (( (ptr) gf←c15764)+58)/* var←c14740 */ ))+27) ); var←c15124 = var←c15156; }; (void) XR←SetSignalEnvironment(var←c15124); }; } static void NoName←Q1644(formal←c0114, formal←c200008, formal←c200009, formal←c200010, formal←c200011) word formal←c0114; word formal←c200008; word formal←c200009; word formal←c200010; word formal←c200011; { register ptr gf←c0154 = (ptr) &globalframe; if ((formal←c200009 == (* (( (ptr) (* (( (ptr) gf←c0154)+58)/* var←c14740 */ ))+17) ))) { { word signal←v12280; word args←v12308; word results←v12336; signal←v12280 = 0; SOURCE(3840, 34) { word tmpAddr15; tmpAddr15 = (word) formal←c200010; (* (ptr) tmpAddr15 ) = XR←Unwind; (* (( (ptr) tmpAddr15) + 1) ) = 0; (* (( (ptr) tmpAddr15) + 2) ) = 0; }; (* (ptr) formal←c0114 ) = 1; (* (( (ptr) formal←c0114)+1) ) = 0; return; }; }; (* (ptr) formal←c0114 ) = 0; (* (( (ptr) formal←c0114)+1) ) = 0; return; } static void NoName←Q1704(formal←c0119, formal←c200012, formal←c200013, formal←c200014, formal←c200015) word formal←c0119; word formal←c200012; word formal←c200013; word formal←c200014; word formal←c200015; { register ptr gf←c0155 = (ptr) &globalframe; if ((formal←c200013 == (* (( (ptr) (* (( (ptr) gf←c0155)+58)/* var←c14740 */ ))+16) ))) { SOURCE(4107, 15) (* (( (ptr) (* (ptr) formal←c200012 ))+6) ) = 1; SOURCE(4124, 9) (* (ptr) formal←c0119 ) = 2; (* (( (ptr) formal←c0119)+1) ) = 3; return; }; (* (ptr) formal←c0119 ) = 0; (* (( (ptr) formal←c0119)+1) ) = 0; return; } static void NoName←Q1764(formal←c0127, formal←c200000, formal←c200001, formal←c200002, formal←c200003) word formal←c0127; word formal←c200000; word formal←c200001; word formal←c200002; word formal←c200003; { register ptr gf←c0156 = (ptr) &globalframe; if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0156)+58)/* var←c14740 */ ))+17) ))) { { word signal←v12004; word args←v12032; word results←v12060; signal←v12004 = 0; SOURCE(2109, 30) { word tmpAddr16; tmpAddr16 = (word) formal←c200002; (* (ptr) tmpAddr16 ) = (* (( (ptr) (* (( (ptr) formal←c200000)+9) ))+2) ); (* (( (ptr) tmpAddr16) + 1) ) = (* (( (ptr) formal←c200000)+4) ); (* (( (ptr) tmpAddr16) + 2) ) = (* (( (ptr) formal←c200000)+5) ); }; (* (ptr) formal←c0127 ) = 1; (* (( (ptr) formal←c0127)+1) ) = 0; return; }; }; (* (ptr) formal←c0127 ) = 0; (* (( (ptr) formal←c0127)+1) ) = 0; return; } static void NoName←Q1824(formal←c0132, formal←c200004, formal←c200005, formal←c200006, formal←c200007) word formal←c0132; word formal←c200004; word formal←c200005; word formal←c200006; word formal←c200007; { register ptr gf←c0157 = (ptr) &globalframe; if ((formal←c200005 == (* (( (ptr) (* (( (ptr) gf←c0157)+58)/* var←c14740 */ ))+16) ))) { SOURCE(2470, 28) SOURCE(2472, 15) (* (( (ptr) (* (ptr) formal←c200004 ))+7) ) = 1; SOURCE(2489, 9) (* (ptr) formal←c0132 ) = 2; (* (( (ptr) formal←c0132)+1) ) = 2; return; }; (* (ptr) formal←c0132 ) = 0; (* (( (ptr) formal←c0132)+1) ) = 0; return; } /* file: SignalsImpl, module: SignalsImpl, compiled at: September 3, 1993 1:40:34 pm PDT */ extern void XR←install←SignalsImpl() { NoName←Q1344(); } extern void XR←run←SignalsImpl() { XR←Start(&globalframe); }