/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: August 13, 1993 12:19:29 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: XlImplTQ, module: XlImplTQ */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#define XRM←BITAND(x, y) (((word)(x)) & ((word)(y)))
static char versionStamp[] = "@(#)mob←version [3836484147,119853569] XlImplTQ";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef W6 *W6Pt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef W2 *W2Pt;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define INEG(x) ( (word) ( - ((int) (word) (x)) ) )
static void NoName←Q1956();
static void XlImplTQ←P0();
static void ForgetQueuedElements←P60();
static void Pass←P1440();
static void RemoveErrorEvents←P120();
static word NoName←Q2016();
static word CreateTQ←P180();
static void Enqueue←P420();
static void DispatcherProcess←P540();
static void AbortNotification←P600();
static word IsTQ←P660();
static word NarrowTQ←P720();
static word OwnsLock←P840();
static word GetLockOrderNum←P900();
static word GetLockOrder←P960();
static void CallWithLocks←P1020();
static word NoName←Q2076();
static void WaitForFreeOnce←P1080();
static word TryAquireLock←P1140();
static void ReleaseLock←P1200();
static void CallWithLock←P1260();
static word NoName←Q2136();
static void SetTQPriority←P1320();
static void SetTQReadiness←P1380();
static void NoName←Q2196();
static void NoName←Q2256();
static void NoName←Q2316();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\276\357\323\042\300\311\135\170\244\100\164\000\000"};
static struct {unsigned f; char r[20];} string2 = {1179666, "\006\006\060\001\064\001\100\160\001\100\164\001\100\214\001\100\224\001\000"};
static struct {unsigned f; char r[12];} string3 = {524300, "\254\205\210\242\000\100\177\232\000\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\276\357\323\042\300\311\135\170\244\100\200\000\000"};
static struct {unsigned f; char r[4];} string5 = {131074, "\004\015\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\344\254\032\063\300\007\044\322\001\100\200\000\000"};
static struct {unsigned f; char r[4];} string7 = {196611, "\004C\360"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\263\064\342\215\300\063\160\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\331\065\252\070\300\313\125\035\371\100\150\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\240\236\274\315\300\111\163\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\100\164\000\000"};
static struct {unsigned f; char r[20];} string12 = {1179668, "\211\006\005\124\121\122\145\160\300\351\276\264\273\300\115\104\320\264\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\276\357\323\042\300\311\135\170\244\100\150\000\000"};
static struct {
word f0[21]; 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; word f58[11];
} globalframe = {
{0}, (word) SetTQReadiness←P1380, 0, (word) SetTQPriority←P1320,
0, (word) CallWithLock←P1260, 0, (word) ReleaseLock←P1200,
0, (word) TryAquireLock←P1140, 0, (word) WaitForFreeOnce←P1080,
0, (word) CallWithLocks←P1020, 0, (word) GetLockOrder←P960,
0, (word) GetLockOrderNum←P900, 0, (word) OwnsLock←P840,
0, (word) NarrowTQ←P720, 0, (word) IsTQ←P660,
0, (word) AbortNotification←P600, 0, (word) DispatcherProcess←P540,
0, (word) Enqueue←P420, 0, (word) CreateTQ←P180,
0, (word) RemoveErrorEvents←P120, 0, (word) ForgetQueuedElements←P60,
0, (word) XlImplTQ←P0, {0}
};
static void NoName←Q1956()
{
register ptr gf←c0131 = (ptr) &globalframe;
word var←c12372;
(* (( (ptr) gf←c0131)+12) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c0131)+13) ) = (word) XR←GetTypeIndexS((word) (&string3));
(* (( (ptr) gf←c0131)+19) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
(void) XR←DeclareGlobalFrame((word) "XlImplTQ", &globalframe, (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7)
, (word) (( (bPt) gf←c0131)+228)/* var←c11700 */ );
var←c12372 = (word) XR←ImportInterface((word) "ForkOps", (word) XR←GetTypeIndexS((word) (&string8)), 4);
(* (( (ptr) gf←c0131)+66)/* var←c12244 */ ) = var←c12372;
(void) XR←ImportProcS(var←c12372, 786435);
var←c12372 = (word) XR←ImportInterface((word) "ForkOpsFriends", (word) XR←GetTypeIndexS((word) (&string9)), 1);
(* (( (ptr) gf←c0131)+65)/* var←c11988 */ ) = var←c12372;
(void) XR←ImportProcS(var←c12372, 524290);
var←c12372 = (word) XR←ImportInterface((word) "Process", (word) XR←GetTypeIndexS((word) (&string10)), 22);
(* (( (ptr) gf←c0131)+67)/* var←c12276 */ ) = var←c12372;
(void) XR←ImportProcS(var←c12372, 134219776);
(void) XR←ImportProcS(var←c12372, 4864);
var←c12372 = (word) XR←ExportInterface((word) "Xl", (word) XR←GetTypeIndexS((word) (&string11)), 218);
(* (( (ptr) gf←c0131)+68)/* var←c12404 */ ) = var←c12372;
(void) XR←ExportProcS(var←c12372, (word) (( (bPt) gf←c0131)+172)/* var←c11476 */ , 67385089, (word) "IsTQ");
(void) XR←ExportProcS(var←c12372, (word) (( (bPt) gf←c0131)+164)/* var←c11444 */ , 67385345, (word) "NarrowTQ");
(void) XR←ExportProcS(var←c12372, (word) (( (bPt) gf←c0131)+204)/* var←c11604 */ , 67910403, (word) "CreateTQ");
(void) XR←ExportProcS(var←c12372, (word) (( (bPt) gf←c0131)+196)/* var←c11572 */ , 1063940, (word) "Enqueue");
(void) XR←ExportProcS(var←c12372, (word) (( (bPt) gf←c0131)+100)/* var←c11188 */ , 539906, (word) "CallWithLock");
(void) XR←ExportProcS(var←c12372, (word) (( (bPt) gf←c0131)+132)/* var←c11316 */ , 802307, (word) "CallWithLocks");
(void) XR←ExportProcS(var←c12372, (word) (( (bPt) gf←c0131)+156)/* var←c11412 */ , 67387137, (word) "OwnsLock");
(void) XR←ExportProcS(var←c12372, (word) (( (bPt) gf←c0131)+140)/* var←c11348 */ , 67649538, (word) "GetLockOrder");
(void) XR←ExportProcS(var←c12372, (word) (( (bPt) gf←c0131)+148)/* var←c11380 */ , 67387649, (word) "GetLockOrderNum");
(void) XR←ExportType((word) "TQRep", (word) XR←GetTypeIndexS((word) (&string12)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
);
var←c12372 = (word) XR←ExportInterface((word) "XlTQPrivate", (word) XR←GetTypeIndexS((word) (&string13)), 4);
(* (( (ptr) gf←c0131)+68)/* var←c12404 */ ) = var←c12372;
(void) XR←ExportProcS(var←c12372, (word) (( (bPt) gf←c0131)+84)/* var←c11124 */ , 524546, (word) "SetTQReadiness");
(void) XR←ExportProcS(var←c12372, (word) (( (bPt) gf←c0131)+92)/* var←c11156 */ , 524802, (word) "SetTQPriority");
(void) XR←ExportProcS(var←c12372, (word) (( (bPt) gf←c0131)+212)/* var←c11636 */ , 262913, (word) "RemoveErrorEvents");
}
static void XlImplTQ←P0(formal←c040, formal←c037)
word formal←c040;
word formal←c037;
{
register ptr gf←c12436 = (ptr) &globalframe;
/* XlImplTQ: */
SOURCE(89, 7898)
SOURCE(418, 34)
(* (( (ptr) gf←c12436)+4)/* vanilla1←v2832 */ ) = XR←NewObject(16, (* (( (ptr) gf←c12436)+13) ));
SOURCE(454, 34)
(* (( (ptr) gf←c12436)+5)/* vanilla2←v2860 */ ) = XR←NewObject(16, (* (( (ptr) gf←c12436)+13) ));
SOURCE(490, 34)
(* (( (ptr) gf←c12436)+6)/* vanilla3←v2888 */ ) = XR←NewObject(16, (* (( (ptr) gf←c12436)+13) ));
SOURCE(526, 36)
(* (( (ptr) gf←c12436)+7)/* desperate1←v2916 */ ) = XR←NewObject(16, (* (( (ptr) gf←c12436)+13) ));
SOURCE(564, 48)
{
word var←c11924;
var←c11924 = XR←NewObject(16, (* (( (ptr) gf←c12436)+13) ));
XR←FillWords(&(* (W4Pt) (var←c11924)), 4, (word) -1);
(* (( (ptr) gf←c12436)+8)/* desperate2←v2944 */ ) = var←c11924;
};
SOURCE(1551, 29)
{
word var←c11956;
var←c11956 = XR←NewObject(152, (* (( (ptr) gf←c12436)+12) ));
(* (W6Pt) (( (ptr) var←c11956)+14) ) = (* (W6Pt) (( (ptr) gf←c12436)+59)/* var←c11764 */ );
(* (W6Pt) (( (ptr) var←c11956)+20) ) = (* (W6Pt) (( (ptr) gf←c12436)+59)/* var←c11764 */ );
(* (( (ptr) var←c11956)+27) ) = 2000;
(* (( (ptr) var←c11956)+36) ) = 3;
(* (( (ptr) gf←c12436)+9)/* globalLockTq←v3028 */ ) = var←c11956;
};
SOURCE(7169, 45)
(* (ptr) (* (( (ptr) gf←c12436)+4)/* vanilla1←v2832 */ ) ) |= 33554432;
SOURCE(7216, 45)
(* (ptr) (* (( (ptr) gf←c12436)+5)/* vanilla2←v2860 */ ) ) |= 33554432;
SOURCE(7263, 49)
(* (ptr) (* (( (ptr) gf←c12436)+5)/* vanilla2←v2860 */ ) ) |= 262144;
SOURCE(7314, 43)
(* (ptr) (* (( (ptr) gf←c12436)+5)/* vanilla2←v2860 */ ) ) |= 131072;
SOURCE(7359, 49)
(* (ptr) (* (( (ptr) gf←c12436)+5)/* vanilla2←v2860 */ ) ) |= 65536;
SOURCE(7410, 39)
(* (ptr) (* (( (ptr) gf←c12436)+6)/* vanilla3←v2888 */ ) ) |= 524288;
SOURCE(7451, 21)
(* (W4Pt) (* (( (ptr) gf←c12436)+6)/* vanilla3←v2888 */ ) ) = (* (W4Pt) (* (( (ptr) gf←c12436)+5)/* vanilla2←v2860 */ ) );
SOURCE(7474, 44)
(* (ptr) (* (( (ptr) gf←c12436)+6)/* vanilla3←v2888 */ ) ) |= 16777216;
SOURCE(7520, 44)
(* (ptr) (* (( (ptr) gf←c12436)+6)/* vanilla3←v2888 */ ) ) |= 8388608;
SOURCE(7566, 23)
(* (W4Pt) (* (( (ptr) gf←c12436)+7)/* desperate1←v2916 */ ) ) = (* (W4Pt) (* (( (ptr) gf←c12436)+6)/* vanilla3←v2888 */ ) );
SOURCE(7591, 43)
(* (ptr) (* (( (ptr) gf←c12436)+7)/* desperate1←v2916 */ ) ) |= 2097152;
SOURCE(7636, 42)
(* (ptr) (* (( (ptr) gf←c12436)+7)/* desperate1←v2916 */ ) ) |= 4194304;
SOURCE(7680, 43)
(* (ptr) (* (( (ptr) gf←c12436)+7)/* desperate1←v2916 */ ) ) |= 536870912;
SOURCE(7725, 45)
(* (ptr) (* (( (ptr) gf←c12436)+7)/* desperate1←v2916 */ ) ) |= 268435456;
SOURCE(7772, 46)
(* (ptr) (* (( (ptr) gf←c12436)+7)/* desperate1←v2916 */ ) ) |= 134217728;
SOURCE(7820, 48)
(* (ptr) (* (( (ptr) gf←c12436)+7)/* desperate1←v2916 */ ) ) |= 67108864;
SOURCE(7870, 41)
(* (ptr) (* (( (ptr) gf←c12436)+8)/* desperate2←v2944 */ ) ) &= 2147483647;
SOURCE(7913, 74)
{
word pd14;
pd14 = (* (( (ptr) (* (( (ptr) gf←c12436)+65)/* var←c11988 */ ))+4) );
(void) ( *( (fPt) ((* (ptr) pd14 ))))((word) (( (bPt) gf←c12436)+188)/* var←c11540 */ , (word) (( (bPt) gf←c12436)+180)/* var←c11508 */ , pd14)
;
};
}
static void ForgetQueuedElements←P60(formal←c0158)
word formal←c0158;
{
W8 var←c12468;
/* declaration of tq←v3876 skipped */
register ptr gf←c12500 = (ptr) &globalframe;
/* declaration of var←c12020 skipped */
/* declaration of removed←v6292 skipped */
var←c12468.f4/* tq←v3876 */ = formal←c0158;
/* ForgetQueuedElements: */
SOURCE(615, 649)
{
word tmpAddr15;
tmpAddr15 = (word) (( (ptr) &var←c12468)+5)/* var←c12020 */ ;
(* (ptr) tmpAddr15 ) = ( ((word) (fPt) Pass←P1440) );
(* (( (ptr) tmpAddr15) + 1) ) = 1;
};
SOURCE(1055, 17)
var←c12468.f7/* removed←v6292 */ = 0;
SOURCE(1074, 14)
(void) Pass←P1440((* (( (ptr) gf←c12500)+4)/* vanilla1←v2832 */ ), (word) (( (bPt) &var←c12468)+20)/* var←c12020 */ );
SOURCE(1090, 25)
if ((var←c12468.f7/* removed←v6292 */ > 10)) {
SOURCE(1109, 6)
return;
};
SOURCE(1117, 14)
(void) Pass←P1440((* (( (ptr) gf←c12500)+5)/* vanilla2←v2860 */ ), (word) (( (bPt) &var←c12468)+20)/* var←c12020 */ );
SOURCE(1133, 25)
if ((var←c12468.f7/* removed←v6292 */ > 10)) {
SOURCE(1152, 6)
return;
};
SOURCE(1160, 14)
(void) Pass←P1440((* (( (ptr) gf←c12500)+6)/* vanilla3←v2888 */ ), (word) (( (bPt) &var←c12468)+20)/* var←c12020 */ );
SOURCE(1176, 25)
if ((var←c12468.f7/* removed←v6292 */ > 10)) {
SOURCE(1195, 6)
return;
};
SOURCE(1203, 16)
(void) Pass←P1440((* (( (ptr) gf←c12500)+7)/* desperate1←v2916 */ ), (word) (( (bPt) &var←c12468)+20)/* var←c12020 */ );
SOURCE(1221, 25)
if ((var←c12468.f7/* removed←v6292 */ > 10)) {
SOURCE(1240, 6)
return;
};
SOURCE(1248, 16)
(void) Pass←P1440((* (( (ptr) gf←c12500)+8)/* desperate2←v2944 */ ), (word) (( (bPt) &var←c12468)+20)/* var←c12020 */ );
}
static void Pass←P1440(vanilla←v6368, formal←c12532)
word vanilla←v6368;
word formal←c12532;
{
word lag←v6408 = 0;
word p←v6436;
formal←c12532 = (formal←c12532 - 20);
/* Pass: */
SOURCE(664, 386)
SOURCE(726, 16)
p←v6436 = (* (( (ptr) (* (( (ptr) formal←c12532)+4) ))+12) );
SOURCE(744, 20)
if ((p←v6436 == 0)) {
SOURCE(758, 6)
return;
};
SOURCE(766, 284)
lab←L100002: ;
if ((p←v6436 != (* (( (ptr) (* (( (ptr) formal←c12532)+4) ))+13) ))) {
}
else {
goto lab←L100000;
};
SOURCE(785, 242)
{
word idx16;
word ix17;
if ( ( ((* (ptr) p←v6436 ) != 0) ? (
ix17 = (
idx16 = (word) XRM←BITAND((* (ptr) (* (ptr) p←v6436 ) ), 127),
BCK(idx16, 128)
),
((* (ptr) (( (ptr) vanilla←v6368) + ((word) ix17 >> 5)) ) >> (31 - ((word) (ix17 & 037)))) & 1
) : 0 ) ) {
SOURCE(866, 21)
(* (( (ptr) formal←c12532)+7) ) = ((* (( (ptr) formal←c12532)+7) ) + 1);
SOURCE(890, 33)
(* (( (ptr) (* (( (ptr) formal←c12532)+4) ))+11) ) = ((* (( (ptr) (* (( (ptr) formal←c12532)+4) ))+11) ) - 1);
SOURCE(925, 56)
if ((lag←v6408 == 0)) {
SOURCE(942, 22)
(* (( (ptr) (* (( (ptr) formal←c12532)+4) ))+12) ) = (* (( (ptr) p←v6436)+3) );
}
else {
SOURCE(964, 17)
(* (( (ptr) lag←v6408)+3) ) = (* (( (ptr) p←v6436)+3) );
};
SOURCE(984, 25)
if (((* (( (ptr) formal←c12532)+7) ) > 10)) {
SOURCE(1003, 6)
return;
};
}
else {
SOURCE(1020, 7)
lag←v6408 = p←v6436;
};
};
SOURCE(1032, 18)
p←v6436 = (* (( (ptr) p←v6436)+3) );
goto lab←L100002;
lab←L100000: ;
}
static void RemoveErrorEvents←P120(formal←c0159)
word formal←c0159;
{
W5 var←c12564;
/* declaration of tq←v3936 skipped */
var←c12564.f4/* tq←v3936 */ = formal←c0159;
/* RemoveErrorEvents: */
SOURCE(1271, 265)
(void) (XR←MonitorEntry(var←c12564.f4/* tq←v3936 */ ));
SOURCE(1321, 215)
{
word var←c01;
{
word var←c0147;
var←c0147 = (word) &var←c12564;
var←c01 = (word) XR←Enable(( ((word) (fPt) NoName←Q2016) ), ( ((word) (fPt) NoName←Q2316) ), var←c0147);
};
if ((var←c01 == 1)) {
goto lab←L02;
};
};
SOURCE(1271, 265)
(void) (XR←MonitorExit(var←c12564.f4/* tq←v3936 */ ));
return;
lab←L02: ;
return;
}
static word NoName←Q2016(formal←c0135)
word formal←c0135;
{
SOURCE(1344, 192)
lab←L100007: ;
if (((* (( (ptr) (* (( (ptr) formal←c0135)+4) ))+12) ) != 0)) {
}
else {
goto lab←L100005;
};
SOURCE(1365, 171)
{
word var←c12052;
var←c12052 = (* (ptr) (* (( (ptr) (* (( (ptr) formal←c0135)+4) ))+12) ) );
if ((var←c12052 == 0)) {
goto lab←L100008;
};
if (((* (( (ptr) var←c12052)+4) ) == 1)) {
{
word error←v6480;
error←v6480 = var←c12052;
SOURCE(1425, 31)
(* (( (ptr) (* (( (ptr) formal←c0135)+4) ))+11) ) = ((* (( (ptr) (* (( (ptr) formal←c0135)+4) ))+11) ) - 1);
SOURCE(1458, 22)
(* (( (ptr) (* (( (ptr) formal←c0135)+4) ))+12) ) = (* (( (ptr) (* (( (ptr) (* (( (ptr) formal←c0135)+4) ))+12) ))+3) );
SOURCE(1482, 34)
if (((* (( (ptr) (* (( (ptr) formal←c0135)+4) ))+12) ) == 0)) {
SOURCE(1502, 14)
(* (( (ptr) (* (( (ptr) formal←c0135)+4) ))+13) ) = 0;
};
};
}
else {
lab←L100008: ;
SOURCE(1530, 6)
(void) (XR←MonitorExit(* (( (ptr) formal←c0135)+4) ));
return(1);
};
};
goto lab←L100007;
lab←L100005: ;
return(0);
}
static word CreateTQ←P180(createData←v3996, order←v4024, reverse←v4052)
word createData←v3996;
word order←v4024;
word reverse←v4052;
{
register ptr gf←c12596 = (ptr) &globalframe;
word tq←v4112;
/* CreateTQ: */
SOURCE(1621, 472)
SOURCE(1621, 472)
tq←v4112 = 0;
SOURCE(1947, 56)
{
word var←c12084;
var←c12084 = XR←NewObject(152, (* (( (ptr) gf←c12596)+12) ));
(* (W6Pt) (( (ptr) var←c12084)+14) ) = (* (W6Pt) (( (ptr) gf←c12596)+59)/* var←c11764 */ );
(* (W6Pt) (( (ptr) var←c12084)+20) ) = (* (W6Pt) (( (ptr) gf←c12596)+59)/* var←c11764 */ );
(* (( (ptr) var←c12084)+27) ) = 2000;
(* (( (ptr) var←c12084)+31) ) = order←v4024;
(* (( (ptr) var←c12084)+36) ) = 3;
(* (( (ptr) var←c12084)+37) ) = createData←v3996;
tq←v4112 = var←c12084;
};
SOURCE(2005, 27)
{
word tq←v10612;
word realTq←v10640;
tq←v10612 = (* (( (ptr) gf←c12596)+9)/* globalLockTq←v3028 */ );
realTq←v10640 = tq←v4112;
SOURCE(2005, 27)
(void) (XR←MonitorEntry(tq←v10612));
SOURCE(1790, 109)
if (( (int)(* (( (ptr) gf←c12596)+11)/* sLow←v3084 */ ) == (int)2147483647)) {
SOURCE(1815, 8)
(* (( (ptr) gf←c12596)+11)/* sLow←v3084 */ ) = 0;
SOURCE(1825, 15)
(* (( (ptr) gf←c12596)+10)/* sHigh←v3056 */ ) = ((* (( (ptr) gf←c12596)+10)/* sHigh←v3056 */ ) + 1);
}
else {
SOURCE(1886, 13)
(* (( (ptr) gf←c12596)+11)/* sLow←v3084 */ ) = ((* (( (ptr) gf←c12596)+11)/* sLow←v3084 */ ) + 1);
};
SOURCE(1903, 19)
(* (( (ptr) realTq←v10640)+32) ) = (* (( (ptr) gf←c12596)+10)/* sHigh←v3056 */ );
SOURCE(1924, 18)
(* (( (ptr) realTq←v10640)+33) ) = (* (( (ptr) gf←c12596)+11)/* sLow←v3084 */ );
(void) (XR←MonitorExit(tq←v10612));
};
SOURCE(2034, 59)
if ((0 != reverse←v4052)) {
SOURCE(2052, 19)
(* (( (ptr) tq←v4112)+32) ) = INEG((* (( (ptr) tq←v4112)+32) ));
SOURCE(2074, 19)
(* (( (ptr) tq←v4112)+33) ) = INEG((* (( (ptr) tq←v4112)+33) ));
};
SOURCE(1621, 472)
return(tq←v4112);
}
static void Enqueue←P420(tq←v4564, proc←v4592, data←v4620, event←v4648)
word tq←v4564;
word proc←v4592;
word data←v4620;
word event←v4648;
{
register ptr gf←c12628 = (ptr) &globalframe;
word p←v6684;
word var←c12116;
word mustFork←v10844;
word tq←v10876;
word data←v10904;
word event←v10932;
/* Enqueue: */
SOURCE(3030, 239)
SOURCE(3110, 23)
p←v6684 = proc←v4592;
SOURCE(3170, 99)
{
word x18;
tq←v10876 = tq←v4564;
data←v10904 = data←v4620;
event←v10932 = event←v4648;
SOURCE(2514, 507)
(void) (XR←MonitorEntry(tq←v10876));
{
word job←v6656;
SOURCE(2514, 507)
mustFork←v10844 = 0;
{
word job←v10688;
word tq←v10720;
tq←v10720 = tq←v10876;
SOURCE(2103, 187)
job←v10688 = 0;
SOURCE(2172, 13)
job←v10688 = (* (( (ptr) tq←v10720)+29) );
SOURCE(2187, 103)
if ((job←v10688 != 0)) {
SOURCE(2205, 18)
(* (( (ptr) tq←v10720)+29) ) = (* (( (ptr) job←v10688)+3) );
SOURCE(2225, 14)
(* (( (ptr) job←v10688)+3) ) = 0;
SOURCE(2241, 25)
(* (( (ptr) tq←v10720)+30) ) = ((* (( (ptr) tq←v10720)+30) ) - 1);
}
else {
SOURCE(2273, 17)
job←v10688 = XR←NewObject(16, (* (( (ptr) gf←c12628)+19) ));
};
SOURCE(2103, 187)
job←v6656 = job←v10688;
};
SOURCE(2669, 22)
if ((0 != (* (( (ptr) tq←v10876)+34) ))) {
SOURCE(2685, 6)
var←c12116 = mustFork←v10844;
goto lab←L100011;
};
SOURCE(2693, 15)
(* (( (ptr) job←v6656)+2) ) = data←v10904;
SOURCE(2710, 15)
(* (( (ptr) job←v6656)+1) ) = XR←CheckProc(p←v6684);
SOURCE(2727, 17)
(* (ptr) job←v6656 ) = event←v10932;
SOURCE(2746, 275)
if (((* (( (ptr) tq←v10876)+12) ) == 0)) {
SOURCE(2769, 17)
(* (( (ptr) tq←v10876)+11) ) = 1;
SOURCE(2788, 23)
(* (( (ptr) tq←v10876)+12) ) = job←v6656;
(* (( (ptr) tq←v10876)+13) ) = job←v6656;
SOURCE(2813, 65)
if ((0 == (* (( (ptr) tq←v10876)+6) ))) {
SOURCE(2840, 21)
(* (( (ptr) tq←v10876)+6) ) = 1;
SOURCE(2863, 15)
mustFork←v10844 = 1;
};
}
else {
SOURCE(2891, 33)
(* (( (ptr) tq←v10876)+11) ) = ((* (( (ptr) tq←v10876)+11) ) + 1);
SOURCE(2926, 18)
(* (( (ptr) (* (( (ptr) tq←v10876)+13) ))+3) ) = job←v6656;
SOURCE(2946, 13)
(* (( (ptr) tq←v10876)+13) ) = job←v6656;
SOURCE(2961, 60)
if (((* (( (ptr) tq←v10876)+11) ) > (* (( (ptr) tq←v10876)+27) ))) {
SOURCE(2997, 24)
(void) ForgetQueuedElements←P60(tq←v10876);
};
};
SOURCE(2514, 507)
var←c12116 = mustFork←v10844;
};
lab←L100011: ;
(void) (XR←MonitorExit(tq←v10876));
x18 = (word) (0 != var←c12116);
if (x18) {
SOURCE(3221, 48)
{
word pd19;
pd19 = (* (( (ptr) (* (( (ptr) gf←c12628)+66)/* var←c12244 */ ))+4) );
(void) ( *( (fPt) ((* (ptr) pd19 ))))((word) (( (bPt) gf←c12628)+188)/* var←c11540 */ , tq←v4564, (* (( (ptr) tq←v4564)+36)
), pd19);
};
};
};
}
static void DispatcherProcess←P540(t←v4780)
word t←v4780;
{
register ptr gf←c12660 = (ptr) &globalframe;
word tq←v6728;
word job←v6784 = 0;
/* DispatcherProcess: */
SOURCE(3407, 865)
SOURCE(3444, 18)
tq←v6728 = XR←Narrow(t←v4780, (* (( (ptr) gf←c12660)+12) ));
SOURCE(4001, 33)
{
word pd20;
pd20 = (* (( (ptr) (* (( (ptr) gf←c12660)+67)/* var←c12276 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd20 ))))((word) ((( (bPt) tq←v6728)+16)), pd20);
};
SOURCE(4036, 236)
lab←L100014: ;
SOURCE(4039, 90)
{
word tc21;
W2 temp22;
if (( (int)(* (( (ptr) tq←v6728)+26) ) > (int)0)) {
(* (ptr) &temp22 ) = 0;
(* (( (ptr) &temp22) + 1) ) = 0;
tc21 = (word) XR←EqualWords((( (ptr) tq←v6728)+8), &temp22, 2);
}
else {
tc21 = (word) 0;
};
if (tc21) {
SOURCE(4093, 19)
SOURCE(4093, 19)
(void) (XR←MonitorEntry(tq←v6728));
SOURCE(3323, 80)
{
word tc23;
W2 temp24;
if (( (int)(* (( (ptr) tq←v6728)+26) ) > (int)0)) {
(* (ptr) &temp24 ) = 0;
(* (( (ptr) &temp24) + 1) ) = 0;
tc23 = (word) XR←EqualWords((( (ptr) tq←v6728)+8), &temp24, 2);
}
else {
tc23 = (word) 0;
};
if (tc23) {
SOURCE(3375, 28)
(void) (XR←Broadcast((word) (( (bPt) tq←v6728)+80)));
};
};
(void) (XR←MonitorExit(tq←v6728));
SOURCE(4114, 15)
{
word pd25;
pd25 = (* (( (ptr) (* (( (ptr) gf←c12660)+67)/* var←c12276 */ ))+23) );
(void) ( *( (fPt) ((* (ptr) pd25 ))))(pd25);
};
};
};
SOURCE(4134, 24)
{
word var←c12308;
word job←v10996;
word oldJob←v11028;
oldJob←v11028 = job←v6784;
SOURCE(3464, 521)
(void) (XR←MonitorEntry(tq←v6728));
SOURCE(3464, 521)
job←v10996 = 0;
SOURCE(3538, 46)
if ((oldJob←v11028 != 0)) {
SOURCE(3557, 27)
{
word tq←v10768;
word job←v10796;
tq←v10768 = tq←v6728;
job←v10796 = oldJob←v11028;
SOURCE(2357, 14)
(* (( (ptr) job←v10796)+2) ) = 0;
SOURCE(2420, 87)
if (((* (( (ptr) tq←v10768)+30) ) < 25)) {
SOURCE(2444, 18)
(* (( (ptr) job←v10796)+3) ) = (* (( (ptr) tq←v10768)+29) );
SOURCE(2464, 13)
(* (( (ptr) tq←v10768)+29) ) = job←v10796;
SOURCE(2479, 28)
(* (( (ptr) tq←v10768)+30) ) = ((* (( (ptr) tq←v10768)+30) ) + 1);
};
};
};
SOURCE(3586, 13)
job←v10996 = (* (( (ptr) tq←v6728)+12) );
SOURCE(3601, 168)
if ((job←v10996 == 0)) {
SOURCE(3619, 22)
(* (( (ptr) tq←v6728)+6) ) = 0;
SOURCE(3643, 13)
(* (( (ptr) tq←v6728)+13) ) = 0;
SOURCE(3658, 20)
{
word tmpAddr26;
tmpAddr26 = (word) (( (ptr) tq←v6728)+4);
(* (ptr) tmpAddr26 ) = 0;
(* (( (ptr) tmpAddr26) + 1) ) = 0;
};
SOURCE(3680, 79)
{
word tc27;
W2 temp28;
if (( (int)(* (( (ptr) tq←v6728)+26) ) > (int)0)) {
(* (ptr) &temp28 ) = 0;
(* (( (ptr) &temp28) + 1) ) = 0;
tc27 = (word) XR←EqualWords((( (ptr) tq←v6728)+8), &temp28, 2);
}
else {
tc27 = (word) 0;
};
if (tc27) {
SOURCE(3732, 27)
(void) (XR←Broadcast((word) (( (bPt) tq←v6728)+80)));
};
};
SOURCE(3762, 7)
var←c12308 = job←v10996;
goto lab←L100016;
};
SOURCE(3772, 31)
(* (( (ptr) tq←v6728)+11) ) = ((* (( (ptr) tq←v6728)+11) ) - 1);
SOURCE(3805, 18)
(* (( (ptr) tq←v6728)+12) ) = (* (( (ptr) job←v10996)+3) );
SOURCE(3825, 136)
lab←L100019: ;
{
W2 temp29;
(* (ptr) &temp29 ) = 0;
(* (( (ptr) &temp29) + 1) ) = 0;
if ( ! XR←EqualWords((( (ptr) tq←v6728)+8), &temp29, 2)) {
}
else {
goto lab←L100017;
};
};
SOURCE(3853, 41)
(* (( (ptr) tq←v6728)+26) ) = ((* (( (ptr) tq←v6728)+26) ) + 1);
SOURCE(3896, 22)
(void) (XR←Wait(tq←v6728, (word) (( (bPt) tq←v6728)+80)));
SOURCE(3920, 41)
(* (( (ptr) tq←v6728)+26) ) = ((* (( (ptr) tq←v6728)+26) ) - 1);
goto lab←L100019;
lab←L100017: ;
SOURCE(3972, 13)
(* (( (ptr) tq←v6728)+28) ) = job←v10996;
SOURCE(3464, 521)
var←c12308 = job←v10996;
lab←L100016: ;
(void) (XR←MonitorExit(tq←v6728));
job←v6784 = var←c12308;
};
SOURCE(4160, 22)
if ((job←v6784 == 0)) {
SOURCE(4176, 6)
return;
};
SOURCE(4184, 73)
{
word pd30;
pd30 = (* (( (ptr) job←v6784)+1) );
(void) ( *( (fPt) ((* (ptr) pd30 ))))((* (ptr) job←v6784 ), (* (( (ptr) job←v6784)+2) ), tq←v6728, pd30);
};
SOURCE(4259, 13)
(* (( (ptr) tq←v6728)+28) ) = 0;
goto lab←L100014;
}
static void AbortNotification←P600(t←v4852)
word t←v4852;
{
register ptr gf←c12692 = (ptr) &globalframe;
word tq←v6960;
/* AbortNotification: */
SOURCE(4287, 108)
SOURCE(4324, 18)
tq←v6960 = XR←Narrow(t←v4852, (* (( (ptr) gf←c12692)+12) ));
SOURCE(4344, 13)
(* (( (ptr) tq←v6960)+28) ) = 0;
SOURCE(4359, 19)
SOURCE(4359, 19)
(void) (XR←MonitorEntry(tq←v6960));
SOURCE(3323, 80)
{
word tc31;
W2 temp32;
if (( (int)(* (( (ptr) tq←v6960)+26) ) > (int)0)) {
(* (ptr) &temp32 ) = 0;
(* (( (ptr) &temp32) + 1) ) = 0;
tc31 = (word) XR←EqualWords((( (ptr) tq←v6960)+8), &temp32, 2);
}
else {
tc31 = (word) 0;
};
if (tc31) {
SOURCE(3375, 28)
(void) (XR←Broadcast((word) (( (bPt) tq←v6960)+80)));
};
};
(void) (XR←MonitorExit(tq←v6960));
SOURCE(4380, 15)
{
word pd33;
pd33 = (* (( (ptr) (* (( (ptr) gf←c12692)+67)/* var←c12276 */ ))+23) );
(void) ( *( (fPt) ((* (ptr) pd33 ))))(pd33);
};
}
static word IsTQ←P660(x←v4924)
word x←v4924;
{
register ptr gf←c12724 = (ptr) &globalframe;
word b←v4980;
/* IsTQ: */
SOURCE(4401, 81)
SOURCE(4454, 28)
if ((x←v4924 != 0)) {
if ((x←v4924 == 0)) {
b←v4980 = (unsigned) 1;
}
else {
b←v4980 = (unsigned) ((* (( (ptr) gf←c12724)+12) ) == XR←GetReferentType(x←v4924));
};
}
else {
b←v4980 = (unsigned) 0;
};
SOURCE(4401, 81)
return(b←v4980);
}
static word NarrowTQ←P720(x←v5040)
word x←v5040;
{
register ptr gf←c12756 = (ptr) &globalframe;
word t←v5096;
/* NarrowTQ: */
SOURCE(4486, 73)
SOURCE(4486, 73)
t←v5096 = 0;
SOURCE(4541, 18)
t←v5096 = XR←Narrow(x←v5040, (* (( (ptr) gf←c12756)+12) ));
SOURCE(4486, 73)
return(t←v5096);
}
static word OwnsLock←P840(tq←v5232)
word tq←v5232;
{
register ptr gf←c12788 = (ptr) &globalframe;
word var←c5276;
W2 self←v7004;
/* OwnsLock: */
SOURCE(4666, 138)
SOURCE(4716, 32)
{
word pd34;
pd34 = (* (( (ptr) (* (( (ptr) gf←c12788)+67)/* var←c12276 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd34 ))))((word) (&self←v7004), pd34);
};
SOURCE(4750, 54)
{
word tc35;
if (XR←EqualWords(&self←v7004, (( (ptr) tq←v5232)+4), 2)) {
tc35 = (word) (unsigned) 1;
}
else {
tc35 = (word) (unsigned) XR←EqualWords(&self←v7004, (( (ptr) tq←v5232)+8), 2);
};
return(tc35);
};
}
static word GetLockOrderNum←P900(tq←v5336)
word tq←v5336;
{
word var←c5380;
/* GetLockOrderNum: */
SOURCE(4807, 76)
SOURCE(4863, 20)
return((* (( (ptr) tq←v5336)+31) ));
}
static word GetLockOrder←P960(first←v5440, second←v5468)
word first←v5440;
word second←v5468;
{
word l←v5512;
/* GetLockOrder: */
SOURCE(4886, 367)
SOURCE(4959, 294)
if ((0 != (* (( (ptr) first←v5440)+34) )) || (0 != (* (( (ptr) second←v5468)+34) ))) {
l←v5512 = 2;
goto endif036;
};
if (( (int)(* (( (ptr) first←v5440)+31) ) < (int)(* (( (ptr) second←v5468)+31) ))) {
l←v5512 = 0;
goto endif036;
};
if (( (int)(* (( (ptr) first←v5440)+31) ) > (int)(* (( (ptr) second←v5468)+31) ))) {
l←v5512 = 1;
goto endif036;
};
if (( (int)(* (( (ptr) first←v5440)+32) ) < (int)(* (( (ptr) second←v5468)+32) ))) {
l←v5512 = 0;
goto endif036;
};
if (( (int)(* (( (ptr) first←v5440)+32) ) > (int)(* (( (ptr) second←v5468)+32) ))) {
l←v5512 = 1;
goto endif036;
};
if (( (int)(* (( (ptr) first←v5440)+33) ) < (int)(* (( (ptr) second←v5468)+33) ))) {
l←v5512 = 0;
goto endif036;
};
if (( (int)(* (( (ptr) first←v5440)+33) ) > (int)(* (( (ptr) second←v5468)+33) ))) {
l←v5512 = 1;
goto endif036;
};
if ((first←v5440 == second←v5468)) {
l←v5512 = 0;
goto endif036;
};
l←v5512 = (unsigned) (
XR←RaiseUnnamedError(), 0
);
goto endif036;
endif036: ;
SOURCE(4886, 367)
return(l←v5512);
}
static void CallWithLocks←P1020(formal←c0160, formal←c0161, formal←c0162)
word formal←c0160;
word formal←c0161;
word formal←c0162;
{
W7 var←c12820;
/* declaration of proc←v5572 skipped */
/* declaration of tq1←v5600 skipped */
/* declaration of tq2←v5628 skipped */
register ptr gf←c12852 = (ptr) &globalframe;
W2 self←v7064;
var←c12820.f4/* proc←v5572 */ = formal←c0160;
var←c12820.f5/* tq1←v5600 */ = formal←c0161;
var←c12820.f6/* tq2←v5628 */ = formal←c0162;
/* CallWithLocks: */
SOURCE(5258, 693)
SOURCE(5316, 32)
{
word pd37;
pd37 = (* (( (ptr) (* (( (ptr) gf←c12852)+67)/* var←c12276 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd37 ))))((word) (&self←v7064), pd37);
};
SOURCE(5350, 98)
if (((var←c12820.f5/* tq1←v5600 */ == 0) || XR←EqualWords(&self←v7064, (( (ptr) var←c12820.f5/* tq1←v5600 */ )+4), 2)) || XR←EqualWords(
&self←v7064, (( (ptr) var←c12820.f5/* tq1←v5600 */ )+8), 2)) {
SOURCE(5416, 23)
(void) CallWithLock←P1260(var←c12820.f6/* tq2←v5628 */ , var←c12820.f4/* proc←v5572 */ );
SOURCE(5441, 7)
return;
};
SOURCE(5451, 109)
if ((((var←c12820.f6/* tq2←v5628 */ == 0) || XR←EqualWords(&self←v7064, (( (ptr) var←c12820.f6/* tq2←v5628 */ )+4), 2)) || XR←EqualWords(
&self←v7064, (( (ptr) var←c12820.f6/* tq2←v5628 */ )+8), 2)) || (var←c12820.f5/* tq1←v5600 */ == var←c12820.f6/* tq2←v5628 */ )) {
SOURCE(5528, 23)
(void) CallWithLock←P1260(var←c12820.f5/* tq1←v5600 */ , var←c12820.f4/* proc←v5572 */ );
SOURCE(5553, 7)
return;
};
SOURCE(5563, 115)
{
word var←c12340;
var←c12340 = (word) GetLockOrder←P960(var←c12820.f5/* tq1←v5600 */ , var←c12820.f6/* tq2←v5628 */ );
if ((var←c12340 == 0)) {
}
else {
if ((var←c12340 == 1)) {
SOURCE(5620, 32)
{
word t←v7124;
SOURCE(5621, 11)
t←v7124 = var←c12820.f5/* tq1←v5600 */ ;
SOURCE(5634, 9)
var←c12820.f5/* tq1←v5600 */ = var←c12820.f6/* tq2←v5628 */ ;
SOURCE(5645, 7)
var←c12820.f6/* tq2←v5628 */ = t←v7124;
};
}
else {
SOURCE(5666, 12)
(void) XR←RaiseError((word) (( (bPt) gf←c12852)+80)/* var←c11092 */ , 0);
};
};
};
SOURCE(5680, 271)
lab←L100023: ;
SOURCE(5683, 268)
if ((0 != (word) TryAquireLock←P1140(var←c12820.f5/* tq1←v5600 */ , self←v7064))) {
SOURCE(5719, 194)
if ((0 != (word) TryAquireLock←P1140(var←c12820.f6/* tq2←v5628 */ , self←v7064))) {
SOURCE(5755, 54)
{
word var←c0148;
var←c0148 = (word) &var←c12820;
(void) (word) XR←Enable(( ((word) (fPt) NoName←Q2076) ), ( ((word) (fPt) NoName←Q2256) ), var←c0148);
};
SOURCE(5816, 16)
(void) ReleaseLock←P1200(var←c12820.f6/* tq2←v5628 */ );
SOURCE(5834, 16)
(void) ReleaseLock←P1200(var←c12820.f5/* tq1←v5600 */ );
SOURCE(5852, 7)
return;
}
else {
SOURCE(5868, 16)
(void) ReleaseLock←P1200(var←c12820.f5/* tq1←v5600 */ );
SOURCE(5886, 27)
(void) WaitForFreeOnce←P1080(var←c12820.f6/* tq2←v5628 */ , self←v7064);
};
}
else {
SOURCE(5924, 27)
(void) WaitForFreeOnce←P1080(var←c12820.f5/* tq1←v5600 */ , self←v7064);
};
goto lab←L100023;
}
static word NoName←Q2076(formal←c0144)
word formal←c0144;
{
SOURCE(5755, 54)
{
word pd38;
pd38 = (* (( (ptr) formal←c0144)+4) );
(void) ( *( (fPt) ((* (ptr) pd38 ))))(pd38);
};
return(0);
}
static void WaitForFreeOnce←P1080(tq←v5704, self←v5732)
word tq←v5704;
W2 self←v5732;
{
/* WaitForFreeOnce: */
SOURCE(5968, 236)
(void) (XR←MonitorEntry(tq←v5704));
SOURCE(6024, 180)
{
word tc40;
W2 temp41;
if (((* (( (ptr) tq←v5704)+28) ) != 0)) { goto then039;};
(* (ptr) &temp41 ) = 0;
(* (( (ptr) &temp41) + 1) ) = 0;
if ( ! XR←EqualWords((( (ptr) tq←v5704)+8), &temp41, 2)) {
tc40 = (word) ! XR←EqualWords((( (ptr) tq←v5704)+8), &self←v5732, 2);
}
else {
tc40 = (word) 0;
};
if (tc40) {
then039: ;
SOURCE(6094, 42)
(* (( (ptr) tq←v5704)+26) ) = ((* (( (ptr) tq←v5704)+26) ) + 1);
SOURCE(6138, 22)
(void) (XR←Wait(tq←v5704, (word) (( (bPt) tq←v5704)+80)));
SOURCE(6162, 42)
(* (( (ptr) tq←v5704)+26) ) = ((* (( (ptr) tq←v5704)+26) ) - 1);
};
};
SOURCE(5968, 236)
(void) (XR←MonitorExit(tq←v5704));
return;
}
static word TryAquireLock←P1140(tq←v5808, self←v5836)
word tq←v5808;
W2 self←v5836;
{
word var←c5896;
/* TryAquireLock: */
SOURCE(6213, 272)
(void) (XR←MonitorEntry(tq←v5808));
SOURCE(6213, 272)
var←c5896 = 0;
SOURCE(6290, 34)
if (((* (( (ptr) tq←v5808)+28) ) != 0)) {
SOURCE(6310, 14)
(void) (XR←MonitorExit(tq←v5808));
return(0);
};
SOURCE(6326, 82)
{
W2 temp42;
(* (ptr) &temp42 ) = 0;
(* (( (ptr) &temp42) + 1) ) = 0;
if (XR←EqualWords((( (ptr) tq←v5808)+8), &temp42, 2)) {
SOURCE(6354, 16)
(* (( (ptr) tq←v5808)+10) ) = 1;
SOURCE(6372, 21)
(* (W2Pt) (( (ptr) tq←v5808)+8) ) = self←v5836;
SOURCE(6395, 13)
(void) (XR←MonitorExit(tq←v5808));
return(1);
};
};
SOURCE(6412, 73)
if (XR←EqualWords((( (ptr) tq←v5808)+8), &self←v5836, 2)) {
SOURCE(6441, 29)
(* (( (ptr) tq←v5808)+10) ) = ((* (( (ptr) tq←v5808)+10) ) + 1);
SOURCE(6472, 13)
(void) (XR←MonitorExit(tq←v5808));
return(1);
};
SOURCE(6213, 272)
(void) (XR←MonitorExit(tq←v5808));
return(var←c5896);
}
static void ReleaseLock←P1200(tq←v5956)
word tq←v5956;
{
/* ReleaseLock: */
SOURCE(6493, 174)
(void) (XR←MonitorEntry(tq←v5956));
SOURCE(6530, 29)
(* (( (ptr) tq←v5956)+10) ) = ((* (( (ptr) tq←v5956)+10) ) - 1);
SOURCE(6563, 104)
if (((* (( (ptr) tq←v5956)+10) ) == 0)) {
SOURCE(6588, 20)
{
word tmpAddr43;
tmpAddr43 = (word) (( (ptr) tq←v5956)+8);
(* (ptr) tmpAddr43 ) = 0;
(* (( (ptr) tmpAddr43) + 1) ) = 0;
};
SOURCE(6610, 57)
if (( (int)(* (( (ptr) tq←v5956)+26) ) > (int)0)) {
SOURCE(6639, 28)
(void) (XR←Broadcast((word) (( (bPt) tq←v5956)+80)));
};
};
SOURCE(6493, 174)
(void) (XR←MonitorExit(tq←v5956));
return;
}
static void CallWithLock←P1260(formal←c0163, formal←c0164)
word formal←c0163;
word formal←c0164;
{
W6 var←c12884;
/* declaration of tq←v6016 skipped */
/* declaration of proc←v6044 skipped */
register ptr gf←c12916 = (ptr) &globalframe;
W2 self←v7168;
var←c12884.f4/* tq←v6016 */ = formal←c0163;
var←c12884.f5/* proc←v6044 */ = formal←c0164;
/* CallWithLock: */
SOURCE(6674, 328)
SOURCE(6725, 32)
{
word pd44;
pd44 = (* (( (ptr) (* (( (ptr) gf←c12916)+67)/* var←c12276 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd44 ))))((word) (&self←v7168), pd44);
};
SOURCE(6759, 76)
if (((var←c12884.f4/* tq←v6016 */ == 0) || XR←EqualWords(&self←v7168, (( (ptr) var←c12884.f4/* tq←v6016 */ )+4), 2)) || XR←EqualWords(
&self←v7168, (( (ptr) var←c12884.f4/* tq←v6016 */ )+8), 2)) {
SOURCE(6821, 6)
{
word pd45;
pd45 = (word) (var←c12884.f5/* proc←v6044 */ );
(void) ( *( (fPt) ((* (ptr) pd45 ))))(pd45);
};
SOURCE(6829, 6)
return;
};
SOURCE(6838, 28)
if ((0 != (* (( (ptr) var←c12884.f4/* tq←v6016 */ )+34) ))) {
SOURCE(6854, 12)
(void) XR←RaiseError((word) (( (bPt) gf←c12916)+80)/* var←c11092 */ , 0);
};
SOURCE(6868, 134)
lab←L100028: ;
SOURCE(6871, 93)
if ((0 != (word) TryAquireLock←P1140(var←c12884.f4/* tq←v6016 */ , self←v7168))) {
SOURCE(6905, 33)
{
word var←c0149;
var←c0149 = (word) &var←c12884;
(void) (word) XR←Enable(( ((word) (fPt) NoName←Q2136) ), ( ((word) (fPt) NoName←Q2196) ), var←c0149);
};
SOURCE(6940, 15)
(void) ReleaseLock←P1200(var←c12884.f4/* tq←v6016 */ );
SOURCE(6958, 6)
return;
};
SOURCE(6969, 33)
(void) WaitForFreeOnce←P1080(var←c12884.f4/* tq←v6016 */ , self←v7168);
goto lab←L100028;
}
static word NoName←Q2136(formal←c0146)
word formal←c0146;
{
SOURCE(6905, 33)
{
word pd46;
pd46 = (* (( (ptr) formal←c0146)+5) );
(void) ( *( (fPt) ((* (ptr) pd46 ))))(pd46);
};
return(0);
}
static void SetTQPriority←P1320(tq←v6120, priority←v6148)
word tq←v6120;
word priority←v6148;
{
/* SetTQPriority: */
SOURCE(7008, 90)
SOURCE(7076, 22)
(* (( (ptr) tq←v6120)+36) ) = priority←v6148;
}
static void SetTQReadiness←P1380(tq←v6208, ms←v6236)
word tq←v6208;
word ms←v6236;
{
/* SetTQReadiness: */
}
static void NoName←Q2196(formal←c0120, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
word formal←c0120;
word formal←c200008;
word formal←c200009;
word formal←c200010;
word formal←c200011;
{
if ((formal←c200009 == XR←Unwind)) {
SOURCE(6922, 16)
(void) ReleaseLock←P1200((* ((( (ptr) formal←c200008)+4)) ));
};
(* (ptr) formal←c0120 ) = 0;
(* (( (ptr) formal←c0120)+1) ) = 0;
return;
}
static void NoName←Q2256(formal←c0125, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
word formal←c0125;
word formal←c200004;
word formal←c200005;
word formal←c200006;
word formal←c200007;
{
if ((formal←c200005 == XR←Unwind)) {
SOURCE(5774, 16)
(void) ReleaseLock←P1200((* ((( (ptr) formal←c200004)+6)) ));
SOURCE(5793, 16)
(void) ReleaseLock←P1200((* ((( (ptr) formal←c200004)+5)) ));
};
(* (ptr) formal←c0125 ) = 0;
(* (( (ptr) formal←c0125)+1) ) = 0;
return;
}
static void NoName←Q2316(formal←c0130, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
word formal←c0130;
word formal←c200000;
word formal←c200001;
word formal←c200002;
word formal←c200003;
{
if ((formal←c200001 == XR←Unwind)) {
(void) (XR←MonitorExit(* (( (ptr) formal←c200000)+4) ));
};
(* (ptr) formal←c0130 ) = 0;
(* (( (ptr) formal←c0130)+1) ) = 0;
return;
}
/* file: XlImplTQ, module: XlImplTQ, compiled at: August 13, 1993 12:19:28 pm PDT */
extern void XR←install←XlImplTQ() {
NoName←Q1956();
}
extern void XR←run←XlImplTQ() { XR←Start(&globalframe); }