/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: February 27, 1992 5:32:31 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: MonitoredQueueImpl, module: MonitoredQueueImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [4270235943,2854451115] MonitoredQueueImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2, f3, f4;} W5;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q624();
static void MonitoredQueueImpl←P0();
static word Create←P60();
static void Add←P120();
static void AddToSet←P180();
static void AddIt←P240();
static word NoName←Q684();
static word Remove←P300();
static word NoName←Q744();
static void Close←P360();
static word NoName←Q804();
static void Reset←P420();
static word NoName←Q864();
static void NoName←Q924();
static void NoName←Q984();
static void NoName←Q1044();
static void NoName←Q1104();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\376\206\241\047\300\252\043\167\253\100\200\000\000"};
static struct {unsigned f; char r[4];} string2 = {196611, "\004@p"};
static struct {unsigned f; char r[20];} string3 = {1179668, "\260\006\005\146\151\162\163\164\217\005\004\162\145\163\164\214\217\261\000"};
static struct {unsigned f; char r[4];} string4 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\376\206\241\047\300\252\043\167\253\100\164\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\237\211\044\154\300\046\105\033\126\100\150\000\000"};
static struct {unsigned f; char r[24];} string7 = {1441816, "\211\012\011\121\165\145\165\145\102\157\144\171\300\237\211\044\154\300\046\105\033\126\000"};
static struct {
word f0[8]; 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[2];
} globalframe = {
{0}, (word) Reset←P420, 0, (word) Close←P360,
0, (word) Remove←P300, 0, (word) AddIt←P240,
0, (word) AddToSet←P180, 0, (word) Add←P120,
0, (word) Create←P60, 0, (word) MonitoredQueueImpl←P0,
{0}
};
static void NoName←Q624()
{
register ptr gf←c053 = (ptr) &globalframe;
word var←c4736;
(* (( (ptr) gf←c053)+4) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c053)+5) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
(void) XR←DeclareGlobalFrame((word) "MonitoredQueueImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string5)), (word) (
( (bPt) gf←c053)+88)/* var←c4544 */ );
var←c4736 = (word) XR←ExportInterface((word) "MonitoredQueue", (word) XR←GetTypeIndexS((word) (&string6)), 9);
(* (( (ptr) gf←c053)+24)/* var←c4704 */ ) = var←c4736;
(void) XR←ExportType((word) "QueueBody", (word) XR←GetTypeIndexS((word) (&string7)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
);
(void) XR←ExportProcS(var←c4736, (word) (( (bPt) gf←c053)+80)/* var←c4512 */ , 67109120);
(void) XR←ExportProcS(var←c4736, (word) (( (bPt) gf←c053)+72)/* var←c4480 */ , 524802);
(void) XR←ExportProcS(var←c4736, (word) (( (bPt) gf←c053)+64)/* var←c4448 */ , 525058);
(void) XR←ExportVar(var←c4736, 4, (word) (( (bPt) gf←c053)+24));
(void) XR←ExportVar(var←c4736, 5, (word) (( (bPt) gf←c053)+28));
(void) XR←ExportProcS(var←c4736, (word) (( (bPt) gf←c053)+48)/* var←c4384 */ , 67372545);
(void) XR←ExportProcS(var←c4736, (word) (( (bPt) gf←c053)+40)/* var←c4352 */ , 263937);
(void) XR←ExportProcS(var←c4736, (word) (( (bPt) gf←c053)+32)/* var←c4320 */ , 264193);
}
static void MonitoredQueueImpl←P0(formal←c015, formal←c014)
word formal←c015;
word formal←c014;
{
/* MonitoredQueueImpl: */
}
static word Create←P60()
{
register ptr gf←c4768 = (ptr) &globalframe;
word queue←v3124;
/* Create: */
SOURCE(345, 71)
SOURCE(345, 71)
queue←v3124 = 0;
SOURCE(389, 27)
return(XR←NewObject(56, (* (( (ptr) gf←c4768)+4) )));
}
static void Add←P120(item←v3184, queue←v3212)
word item←v3184;
word queue←v3212;
{
/* Add: */
SOURCE(422, 74)
SOURCE(470, 26)
(void) AddIt←P240(item←v3184, queue←v3212, 0);
}
static void AddToSet←P180(item←v3284, queue←v3312)
word item←v3284;
word queue←v3312;
{
/* AddToSet: */
SOURCE(500, 78)
SOURCE(553, 25)
(void) AddIt←P240(item←v3284, queue←v3312, 1);
}
static void AddIt←P240(formal←c073, formal←c074, formal←c075)
word formal←c073;
word formal←c074;
word formal←c075;
{
W7 var←c4800;
/* declaration of item←v3384 skipped */
/* declaration of queue←v3412 skipped */
/* declaration of toSet←v3440 skipped */
var←c4800.f4/* item←v3384 */ = formal←c073;
var←c4800.f5/* queue←v3412 */ = formal←c074;
var←c4800.f6/* toSet←v3440 */ = formal←c075;
/* AddIt: */
SOURCE(582, 511)
(void) (XR←MonitorEntry(var←c4800.f5/* queue←v3412 */ ));
SOURCE(656, 437)
{
word var←c01;
{
word var←c061;
var←c061 = (word) &var←c4800;
var←c01 = (word) XR←Enable(( ((word) (fPt) NoName←Q684) ), ( ((word) (fPt) NoName←Q1104) ), var←c061);
};
if ((var←c01 == 1)) {
goto lab←L02;
};
};
SOURCE(582, 511)
(void) (XR←MonitorExit(var←c4800.f5/* queue←v3412 */ ));
return;
lab←L02: ;
return;
}
static word NoName←Q684(formal←c056)
word formal←c056;
{
register ptr gf←c055 = (ptr) &globalframe;
SOURCE(679, 5)
{
word new←v3716 = 0;
SOURCE(701, 32)
if ((0 != (* (( (ptr) (* (( (ptr) formal←c056)+5) ))+7) ))) {
SOURCE(716, 17)
(void) XR←RaiseError((word) (( (bPt) gf←c055)+24), 0);
};
SOURCE(735, 145)
if ((0 != (* (( (ptr) formal←c056)+6) ))) {
SOURCE(785, 95)
{
register word list←v3856;
list←v3856 = (* (( (ptr) (* (( (ptr) formal←c056)+5) ))+4) );
lab←L100005: ;
if ((list←v3856 != 0)) {
}
else {
goto lab←L100002;
};
SOURCE(848, 32)
if (((* (ptr) list←v3856 ) == (* (( (ptr) formal←c056)+4) ))) {
SOURCE(874, 6)
(void) (XR←MonitorExit(* (( (ptr) formal←c056)+5) ));
return(1);
};
list←v3856 = (* (( (ptr) list←v3856)+1) );
goto lab←L100005;
lab←L100002: ;
};
};
SOURCE(911, 107)
if (((* (( (ptr) (* (( (ptr) formal←c056)+5) ))+6) ) != 0)) {
SOURCE(932, 10)
new←v3716 = (* (( (ptr) (* (( (ptr) formal←c056)+5) ))+6) );
SOURCE(944, 16)
(* (( (ptr) (* (( (ptr) formal←c056)+5) ))+6) ) = (* (( (ptr) (* (( (ptr) (* (( (ptr) formal←c056)+5) ))+6) ))+1) );
SOURCE(962, 14)
(* (( (ptr) new←v3716)+1) ) = 0;
SOURCE(978, 17)
(* (ptr) new←v3716 ) = (* (( (ptr) formal←c056)+4) );
}
else {
SOURCE(1002, 16)
{
word var←c4640;
word var←c4672;
var←c4640 = XR←NewObject(8, (* (( (ptr) gf←c055)+5) ));
var←c4672 = var←c4640;
(* (ptr) var←c4672 ) = (* (( (ptr) formal←c056)+4) );
new←v3716 = var←c4640;
};
};
SOURCE(1020, 47)
if (((* (( (ptr) (* (( (ptr) formal←c056)+5) ))+5) ) == 0)) {
SOURCE(1036, 17)
(* (( (ptr) (* (( (ptr) formal←c056)+5) ))+4) ) = new←v3716;
}
else {
SOURCE(1053, 14)
(* (( (ptr) (* (( (ptr) (* (( (ptr) formal←c056)+5) ))+5) ))+1) ) = new←v3716;
};
SOURCE(1069, 9)
(* (( (ptr) (* (( (ptr) formal←c056)+5) ))+5) ) = new←v3716;
SOURCE(1080, 13)
(void) (XR←Notify((word) (( (bPt) (* (( (ptr) formal←c056)+5) ))+32)));
};
return(0);
}
static word Remove←P300(formal←c076)
word formal←c076;
{
W6 var←c4832;
/* declaration of queue←v3512 skipped */
/* declaration of item←v3556 skipped */
var←c4832.f4/* queue←v3512 */ = formal←c076;
/* Remove: */
SOURCE(1099, 447)
(void) (XR←MonitorEntry(var←c4832.f4/* queue←v3512 */ ));
SOURCE(1099, 447)
var←c4832.f5/* item←v3556 */ = 0;
SOURCE(1177, 369)
{
word var←c062;
var←c062 = (word) &var←c4832;
(void) (word) XR←Enable(( ((word) (fPt) NoName←Q744) ), ( ((word) (fPt) NoName←Q1044) ), var←c062);
};
SOURCE(1099, 447)
(void) (XR←MonitorExit(var←c4832.f4/* queue←v3512 */ ));
return(var←c4832.f5/* item←v3556 */ );
}
static word NoName←Q744(formal←c058)
word formal←c058;
{
register ptr gf←c057 = (ptr) &globalframe;
SOURCE(1200, 9)
{
word current←v3996 = 0;
SOURCE(1226, 42)
lab←L100010: ;
if ( ( (0 == (* (( (ptr) (* (( (ptr) formal←c058)+4) ))+7) )) ? ((* (( (ptr) (* (( (ptr) formal←c058)+4) ))+4) ) == 0) : 0 ) ) {
}
else {
goto lab←L100008;
};
SOURCE(1257, 11)
(void) (XR←Wait((* (( (ptr) formal←c058)+4) ), (word) (( (bPt) (* (( (ptr) formal←c058)+4) ))+32)));
goto lab←L100010;
lab←L100008: ;
SOURCE(1279, 48)
current←v3996 = (* (( (ptr) (* (( (ptr) formal←c058)+4) ))+4) );
if ((current←v3996 == 0)) {
SOURCE(1311, 16)
(void) XR←RaiseError((word) (( (bPt) gf←c057)+28), 0);
};
SOURCE(1329, 20)
(* (( (ptr) formal←c058)+5) ) = (* (ptr) current←v3996 );
SOURCE(1351, 19)
(* (ptr) current←v3996 ) = 0;
SOURCE(1372, 20)
(* (( (ptr) (* (( (ptr) formal←c058)+4) ))+4) ) = (* (( (ptr) current←v3996)+1) );
SOURCE(1394, 19)
(* (( (ptr) current←v3996)+1) ) = (* (( (ptr) (* (( (ptr) formal←c058)+4) ))+6) );
SOURCE(1415, 14)
(* (( (ptr) (* (( (ptr) formal←c058)+4) ))+6) ) = current←v3996;
SOURCE(1431, 115)
if (((* (( (ptr) (* (( (ptr) formal←c058)+4) ))+4) ) == 0)) {
SOURCE(1453, 9)
(* (( (ptr) (* (( (ptr) formal←c058)+4) ))+5) ) = 0;
SOURCE(1491, 55)
if ((0 != (* (( (ptr) (* (( (ptr) formal←c058)+4) ))+7) ))) {
SOURCE(1506, 40)
(void) (XR←Broadcast((word) (( (bPt) (* (( (ptr) formal←c058)+4) ))+32)));
};
};
};
return(0);
}
static void Close←P360(formal←c077)
word formal←c077;
{
W5 var←c4864;
/* declaration of queue←v3628 skipped */
var←c4864.f4/* queue←v3628 */ = formal←c077;
/* Close: */
SOURCE(1551, 146)
(void) (XR←MonitorEntry(var←c4864.f4/* queue←v3628 */ ));
SOURCE(1604, 93)
{
word var←c063;
var←c063 = (word) &var←c4864;
(void) (word) XR←Enable(( ((word) (fPt) NoName←Q804) ), ( ((word) (fPt) NoName←Q984) ), var←c063);
};
SOURCE(1551, 146)
(void) (XR←MonitorExit(var←c4864.f4/* queue←v3628 */ ));
return;
}
static word NoName←Q804(formal←c059)
word formal←c059;
{
SOURCE(1627, 13)
(* (( (ptr) (* (( (ptr) formal←c059)+4) ))+7) ) = 1;
SOURCE(1642, 55)
(void) (XR←Broadcast((word) (( (bPt) (* (( (ptr) formal←c059)+4) ))+32)));
return(0);
}
static void Reset←P420(formal←c078)
word formal←c078;
{
W5 var←c4896;
/* declaration of queue←v3688 skipped */
var←c4896.f4/* queue←v3688 */ = formal←c078;
/* Reset: */
SOURCE(1701, 145)
(void) (XR←MonitorEntry(var←c4896.f4/* queue←v3688 */ ));
SOURCE(1754, 92)
{
word var←c064;
var←c064 = (word) &var←c4896;
(void) (word) XR←Enable(( ((word) (fPt) NoName←Q864) ), ( ((word) (fPt) NoName←Q924) ), var←c064);
};
SOURCE(1701, 145)
(void) (XR←MonitorExit(var←c4896.f4/* queue←v3688 */ ));
return;
}
static word NoName←Q864(formal←c060)
word formal←c060;
{
SOURCE(1777, 43)
lab←L100017: ;
if ((0 == (* (( (ptr) (* (( (ptr) formal←c060)+4) ))+7) )) || ((* (( (ptr) (* (( (ptr) formal←c060)+4) ))+4) ) != 0)) {
}
else {
goto lab←L100015;
};
SOURCE(1809, 11)
(void) (XR←Wait((* (( (ptr) formal←c060)+4) ), (word) (( (bPt) (* (( (ptr) formal←c060)+4) ))+32)));
goto lab←L100017;
lab←L100015: ;
SOURCE(1831, 15)
(* (( (ptr) (* (( (ptr) formal←c060)+4) ))+7) ) = 0;
return(0);
}
static void NoName←Q924(formal←c037, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
word formal←c037;
word formal←c200012;
word formal←c200013;
word formal←c200014;
word formal←c200015;
{
if ((formal←c200013 == XR←Unwind)) {
(void) (XR←MonitorExit(* (( (ptr) formal←c200012)+4) ));
};
(* (ptr) formal←c037 ) = 0;
(* (( (ptr) formal←c037)+1) ) = 0;
return;
}
static void NoName←Q984(formal←c042, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
word formal←c042;
word formal←c200008;
word formal←c200009;
word formal←c200010;
word formal←c200011;
{
if ((formal←c200009 == XR←Unwind)) {
(void) (XR←MonitorExit(* (( (ptr) formal←c200008)+4) ));
};
(* (ptr) formal←c042 ) = 0;
(* (( (ptr) formal←c042)+1) ) = 0;
return;
}
static void NoName←Q1044(formal←c047, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
word formal←c047;
word formal←c200004;
word formal←c200005;
word formal←c200006;
word formal←c200007;
{
if ((formal←c200005 == XR←Unwind)) {
(void) (XR←MonitorExit(* (( (ptr) formal←c200004)+4) ));
};
(* (ptr) formal←c047 ) = 0;
(* (( (ptr) formal←c047)+1) ) = 0;
return;
}
static void NoName←Q1104(formal←c052, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
word formal←c052;
word formal←c200000;
word formal←c200001;
word formal←c200002;
word formal←c200003;
{
if ((formal←c200001 == XR←Unwind)) {
(void) (XR←MonitorExit(* (( (ptr) formal←c200000)+5) ));
};
(* (ptr) formal←c052 ) = 0;
(* (( (ptr) formal←c052)+1) ) = 0;
return;
}
/* file: MonitoredQueueImpl, module: MonitoredQueueImpl, compiled at: February 27, 1992 5:32:31 pm PST */
extern void XR←install←MonitoredQueueImpl() {
NoName←Q624();
}
extern void XR←run←MonitoredQueueImpl() { XR←Start(&globalframe); }