/* 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); }