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