/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: January 26, 1993 3:06:00 pm PST */
/* C2C version: October 7, 1992 (native) */
/* ref-counting: off */
/* file: ProcessImpl, module: ProcessImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2217094625,2023560745] ProcessImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
#define SOURCE(p, l) /* source p, l */
#define MAX(cast, x, y) ( ( cast x) > ( cast y) ? (x) : (y) )
static void NoName←Q1380();
static void ProcessImpl←P0();
static void InitializeMonitor←P60();
static void InitializeCondition←P120();
static word MsecToTicks←P180();
static word SecondsToTicks←P240();
static word TicksToMsec←P300();
static void SetTimeout←P360();
static void DisableTimeout←P420();
static void Detach←P480();
static void GetCurrent←P540();
static void SetPriority←P600();
static word GetPriority←P660();
static void Abort←P720();
static void CancelAbort←P780();
static word AbortPending←P840();
static void CheckForAbort←P900();
static void DisableAborts←P960();
static void EnableAborts←P1020();
static void Pause←P1080();
static void PauseMsec←P1140();
static void Yield←P1200();
static void ValidateProcess←P1260();
extern void XR←Wait();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\204\046\055\341\300\170\235\026\051\100\164\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\275\320\070\317\300\004\110\363\366\100\150\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\240\236\274\315\300\111\163\325\023\100\150\000\000"};
static struct {
word f0[4]; word f4; word f5; word f6;
word f7; word f8; word f9; word f10;
word f11; word f12; word f13; word f14;
word f15; word f16; word f17; 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[3];
} globalframe = {
{0}, (word) 1, 0, (word) 1,
0, (word) XR←Wait, 0, (word) ValidateProcess←P1260,
0, (word) Yield←P1200, 0, (word) PauseMsec←P1140,
0, (word) Pause←P1080, 0, (word) EnableAborts←P1020,
0, (word) DisableAborts←P960, 0, (word) CheckForAbort←P900,
0, (word) AbortPending←P840, 0, (word) CancelAbort←P780,
0, (word) Abort←P720, 0, (word) GetPriority←P660,
0, (word) SetPriority←P600, 0, (word) GetCurrent←P540,
0, (word) Detach←P480, 0, (word) DisableTimeout←P420,
0, (word) SetTimeout←P360, 0, (word) TicksToMsec←P300,
0, (word) SecondsToTicks←P240, 0, (word) MsecToTicks←P180,
0, (word) InitializeCondition←P120, 0, (word) InitializeMonitor←P60,
0, (word) ProcessImpl←P0, {0}
};
static void NoName←Q1380()
{
register ptr gf←c066 = (ptr) &globalframe;
word var←c9316;
(void) XR←DeclareGlobalFrame((word) "ProcessImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c066)+208)
/* var←c9124 */ );
var←c9316 = (word) XR←ImportInterface((word) "RuntimeError", (word) XR←GetTypeIndexS((word) (&string2)), 27);
(* (( (ptr) gf←c066)+54)/* var←c9156 */ ) = var←c9316;
var←c9316 = (word) XR←ExportInterface((word) "Process", (word) XR←GetTypeIndexS((word) (&string3)), 22);
(* (( (ptr) gf←c066)+55)/* var←c9348 */ ) = var←c9316;
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+200)/* var←c9092 */ , 262145);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+192)/* var←c9060 */ , 524546);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+184)/* var←c9028 */ , 67371521);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+176)/* var←c8996 */ , 67371777);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+168)/* var←c8964 */ , 67372033);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+160)/* var←c8932 */ , 525570);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+152)/* var←c8900 */ , 263681);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+144)/* var←c8868 */ , 526081);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+136)/* var←c8836 */ , 134219776);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+128)/* var←c8804 */ , 264449);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+120)/* var←c8772 */ , 67111424);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+112)/* var←c8740 */ , 527105);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+104)/* var←c8708 */ , 527361);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+96)/* var←c8676 */ , 67112192);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+88)/* var←c8644 */ , 3584);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+80)/* var←c8612 */ , 265985);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+72)/* var←c8580 */ , 266241);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+64)/* var←c8548 */ , 266497);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+56)/* var←c8516 */ , 266753);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+48)/* var←c8484 */ , 4864);
(void) XR←ExportProcS(var←c9316, (word) (( (bPt) gf←c066)+40)/* var←c8452 */ , 529409);
(void) XR←ExportVar(var←c9316, 21, (word) (( (bPt) gf←c066)+20)/* InvalidProcess←v3252 */ );
}
static void ProcessImpl←P0(formal←c032, formal←c031)
word formal←c032;
word formal←c031;
{
register ptr gf←c9380 = (ptr) &globalframe;
/* ProcessImpl: */
SOURCE(34, 4352)
/* moved to installation proc */
SOURCE(3925, 30)
(* (( (ptr) gf←c9380)+5)/* InvalidProcess←v3252 */ ) = (* (( (ptr) (* (( (ptr) gf←c9380)+54)/* var←c9156 */ ))+30) );
/* moved to installation proc */
}
static void InitializeMonitor←P60(monitor←v3472)
word monitor←v3472;
{
/* InitializeMonitor: */
SOURCE(205, 162)
SOURCE(354, 13)
(void) XR←InitializeMonitor(monitor←v3472);
}
static void InitializeCondition←P120(condition←v3532, ticks←v3560)
word condition←v3532;
word ticks←v3560;
{
/* InitializeCondition: */
SOURCE(373, 211)
SOURCE(562, 22)
(void) XR←InitializeCondition(condition←v3532, ticks←v3560);
}
static word MsecToTicks←P180(ms←v3620)
word ms←v3620;
{
word ticks←v3664;
/* MsecToTicks: */
SOURCE(695, 174)
SOURCE(853, 16)
ticks←v3664 = (word) XR←MsecToTicks(ms←v3620);
SOURCE(695, 174)
return(ticks←v3664);
}
static word SecondsToTicks←P240(seconds←v3724)
word seconds←v3724;
{
word ticks←v3768;
/* SecondsToTicks: */
SOURCE(875, 107)
SOURCE(949, 33)
return((word) MsecToTicks←P180(((word) seconds←v3724 * 1000)));
}
static word TicksToMsec←P300(ticks←v3828)
word ticks←v3828;
{
word ms←v3872;
/* TicksToMsec: */
SOURCE(988, 174)
SOURCE(1146, 16)
ms←v3872 = (word) XR←TicksToMsec(ticks←v3828);
SOURCE(988, 174)
return(ms←v3872);
}
static void SetTimeout←P360(condition←v3932, ticks←v3960)
word condition←v3932;
word ticks←v3960;
{
register ptr gf←c9412 = (ptr) &globalframe;
/* SetTimeout: */
SOURCE(1192, 225)
SOURCE(1363, 30)
{
word x4;
ticks←v3960 = (x4 = (* (( (ptr) gf←c9412)+4)/* minTimeout←v2748 */ ),
MAX( (unsigned) , ticks←v3960, x4));
};
SOURCE(1395, 22)
(void) XR←SetTimeout(condition←v3932, ticks←v3960);
}
static void DisableTimeout←P420(condition←v4020)
word condition←v4020;
{
/* DisableTimeout: */
SOURCE(1423, 166)
SOURCE(1574, 15)
(void) XR←DisableTimeout(condition←v4020);
}
static void Detach←P480(p←v4080)
W2 p←v4080;
{
register ptr gf←c9444 = (ptr) &globalframe;
/* Detach: */
SOURCE(1595, 174)
SOURCE(1727, 42)
if (( (int)(word) XR←DetachCT((word) (&p←v4080)) != (int)0)) {
SOURCE(1746, 23)
{
W2 var←c046;
var←c046 = p←v4080;
(void) XR←RaiseError((* (( (ptr) gf←c9444)+5)/* InvalidProcess←v3252 */ ), (word) &var←c046);
};
};
}
static void GetCurrent←P540(formal←c048)
word formal←c048;
{
W2 p←v4156;
/* GetCurrent: */
SOURCE(1775, 141)
SOURCE(1775, 141)
(* (ptr) (word) &p←v4156 ) = 0;
(* (( (ptr) (word) &p←v4156) + 1) ) = 0;
SOURCE(1907, 9)
(void) XR←GetCurrent((word) (&p←v4156));
/* removed tail goto */
(* (W2Pt) formal←c048 ) = p←v4156;
return;
}
static void SetPriority←P600(p←v4232)
word p←v4232;
{
/* SetPriority: */
SOURCE(1956, 117)
SOURCE(2066, 7)
(void) XR←SetPriority(p←v4232);
}
static word GetPriority←P660()
{
word var←c4292;
/* GetPriority: */
SOURCE(2079, 138)
SOURCE(2202, 15)
return((word) XR←GetPriority());
}
static void Abort←P720(p←v4352)
W2 p←v4352;
{
register ptr gf←c9476 = (ptr) &globalframe;
/* Abort: */
SOURCE(2221, 173)
SOURCE(2352, 42)
if (( (int)(word) XR←AbortCT((word) (&p←v4352)) != (int)0)) {
SOURCE(2371, 23)
{
W2 var←c052;
var←c052 = p←v4352;
(void) XR←RaiseError((* (( (ptr) gf←c9476)+5)/* InvalidProcess←v3252 */ ), (word) &var←c052);
};
};
}
static void CancelAbort←P780(p←v4428)
W2 p←v4428;
{
register ptr gf←c9508 = (ptr) &globalframe;
/* CancelAbort: */
SOURCE(2400, 183)
SOURCE(2541, 42)
if (( (int)(word) XR←CancelAbort((word) (&p←v4428)) != (int)0)) {
SOURCE(2560, 23)
{
W2 var←c054;
var←c054 = p←v4428;
(void) XR←RaiseError((* (( (ptr) gf←c9508)+5)/* InvalidProcess←v3252 */ ), (word) &var←c054);
};
};
}
static word AbortPending←P840()
{
word abortPending←v4504;
/* AbortPending: */
SOURCE(2589, 166)
SOURCE(2740, 15)
return((word) XR←AbortPending());
}
static void CheckForAbort←P900()
{
/* CheckForAbort: */
SOURCE(2763, 270)
SOURCE(2972, 61)
if ((0 != (word) XR←AbortPending())) {
SOURCE(2997, 21)
{
word var←c9284;
var←c9284 = (word) XR←CancelAbort(0);
};
SOURCE(3020, 13)
(void) XR←RaiseError(XR←Aborted, 0);
};
}
static void DisableAborts←P960(pCondition←v4580)
word pCondition←v4580;
{
/* DisableAborts: */
SOURCE(3041, 167)
SOURCE(3192, 16)
(void) XR←DisableAborts(pCondition←v4580);
}
static void EnableAborts←P1020(pCondition←v4640)
word pCondition←v4640;
{
/* EnableAborts: */
SOURCE(3214, 165)
SOURCE(3363, 16)
(void) XR←EnableAborts(pCondition←v4640);
}
static void Pause←P1080(ticks←v4700)
word ticks←v4700;
{
/* Pause: */
SOURCE(3385, 163)
SOURCE(3511, 37)
if (( (int)(word) XR←PauseAbortable(ticks←v4700) != (int)0)) {
SOURCE(3535, 13)
(void) XR←RaiseError(XR←Aborted, 0);
};
}
static void PauseMsec←P1140(ms←v4760)
word ms←v4760;
{
word ticks←v7600;
/* PauseMsec: */
SOURCE(3554, 91)
SOURCE(3600, 30)
ticks←v7600 = (word) MsecToTicks←P180(ms←v4760);
SOURCE(3632, 13)
(void) Pause←P1080(ticks←v7600);
}
static void Yield←P1200()
{
/* Yield: */
SOURCE(3649, 79)
SOURCE(3722, 6)
(void) XR←Yield();
}
static void ValidateProcess←P1260(p←v4836)
W2 p←v4836;
{
register ptr gf←c9540 = (ptr) &globalframe;
/* ValidateProcess: */
SOURCE(3733, 186)
SOURCE(3877, 42)
if (( (int)(word) XR←ValidateCT((word) (&p←v4836)) != (int)0)) {
SOURCE(3896, 23)
{
W2 var←c063;
var←c063 = p←v4836;
(void) XR←RaiseError((* (( (ptr) gf←c9540)+5)/* InvalidProcess←v3252 */ ), (word) &var←c063);
};
};
}
extern void XR←Wait(lock←v5160, cond←v5188)
word lock←v5160;
word cond←v5188;
{
register ptr gf←c9572 = (ptr) &globalframe;
/* XRWait: */
SOURCE(4201, 108)
SOURCE(4249, 60)
if (( (int)(word) XR←WaitCV(cond←v5188, lock←v5160) != (int)0)) {
SOURCE(4282, 27)
(void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c9572)+54)/* var←c9156 */ ))+4) ), 0);
};
}
/* file: ProcessImpl, module: ProcessImpl, compiled at: January 26, 1993 3:05:59 pm PST */
extern void XR←install←ProcessImpl() {
NoName←Q1380();
}
extern void XR←run←ProcessImpl() { XR←Start(&globalframe); }