/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: June 15, 1992 10:05:18 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: XTkFastAccessPrivateImpl, module: XTkFastAccessPrivateImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2280355483,466151353] XTkFastAccessPrivateImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef W8 *W8Pt;
typedef struct {word f0, f1;} W2;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q756();
static void XTkFastAccessPrivateImpl←P0();
static word New←P60();
static void Free←P120();
static word Include←P180();
static void Synchronize←P240();
static void Init←P348();
static word Check←P408();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\207\353\166\233\300\033\310\347\271\100\200\000\000"};
static struct {unsigned f; char r[12];} string2 = {720907, "\006\003\000\004\100\377\040\013\100\104\001"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\207\353\166\233\300\033\310\347\271\100\164\000\000"};
static struct {unsigned f; char r[4];} string4 = {131074, "\003\010\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\212\174\364\337\300\361\376\000\156\100\150\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\240\236\274\315\300\111\163\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\100\164\000\000"};
static struct {unsigned f; char r[20];} string8 = {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];} string9 = {851984, "\257\300\276\357\323\042\300\311\135\170\244\100\164\000\000"};
static struct {unsigned f; char r[20];} string10 = {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[16];} string11 = {851984, "\257\300\314\010\357\126\300\054\306\061\322\100\150\000\000"};
static struct {unsigned f; char r[24];} string12 = {1376280, "\211\011\010\124\121\123\145\164\122\145\160\300\314\010\357\126\300\054\306\061\322\000\000"};
static struct {
word f0[15]; word f15; word f16; word f17;
word f18; word f19; word f20; word f21;
word f22; word f23; word f24[4];
} globalframe = {
{0}, (word) Synchronize←P240, 0, (word) Include←P180,
0, (word) Free←P120, 0, (word) New←P60,
0, (word) XTkFastAccessPrivateImpl←P0, {0}
};
static void NoName←Q756()
{
register ptr gf←c035 = (ptr) &globalframe;
word var←c6092;
(* (( (ptr) gf←c035)+11) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(void) XR←DeclareGlobalFrame((word) "XTkFastAccessPrivateImpl", &globalframe, (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4)
, (word) (( (bPt) gf←c035)+92)/* var←c5900 */ );
var←c6092 = (word) XR←ImportInterface((word) "BasicTime", (word) XR←GetTypeIndexS((word) (&string5)), 24);
(* (( (ptr) gf←c035)+25)/* var←c5932 */ ) = var←c6092;
(void) XR←ImportProcS(var←c6092, 67109632);
(void) XR←ImportProcS(var←c6092, 67372545);
var←c6092 = (word) XR←ImportInterface((word) "Process", (word) XR←GetTypeIndexS((word) (&string6)), 22);
(* (( (ptr) gf←c035)+26)/* var←c6060 */ ) = var←c6092;
(void) XR←ImportProcS(var←c6092, 266497);
(void) XR←ImportProcS(var←c6092, 4864);
var←c6092 = (word) XR←ExportInterface((word) "Xl", (word) XR←GetTypeIndexS((word) (&string7)), 218);
(* (( (ptr) gf←c035)+27)/* var←c6124 */ ) = var←c6092;
(void) XR←ExportType((word) "TQRep", (word) XR←GetTypeIndexS((word) (&string8)), (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10)
);
var←c6092 = (word) XR←ExportInterface((word) "XTkFastAccessPrivate", (word) XR←GetTypeIndexS((word) (&string11)), 3);
(* (( (ptr) gf←c035)+27)/* var←c6124 */ ) = var←c6092;
(void) XR←ExportType((word) "TQSetRep", (word) XR←GetTypeIndexS((word) (&string12)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
);
(void) XR←ExportProcS(var←c6092, (word) (( (bPt) gf←c035)+68)/* var←c5804 */ , 67633410);
(void) XR←ExportProcS(var←c6092, (word) (( (bPt) gf←c035)+60)/* var←c5772 */ , 262657);
}
static void XTkFastAccessPrivateImpl←P0(formal←c015, formal←c014)
word formal←c015;
word formal←c014;
{
register ptr gf←c6156 = (ptr) &globalframe;
/* XTkFastAccessPrivateImpl: */
SOURCE(176, 2478)
SOURCE(1401, 65)
{
word pd13;
pd13 = (* (( (ptr) (* (( (ptr) gf←c6156)+25)/* var←c5932 */ ))+10) );
(* (( (ptr) gf←c6156)+9)/* limit←v2860 */ ) = (word) ( *( (fPt) ((* (ptr) pd13 ))))(5000000, pd13);
};
}
static word New←P60(link←v3192)
word link←v3192;
{
register ptr gf←c6188 = (ptr) &globalframe;
word s←v3236;
/* New: */
SOURCE(758, 177)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c6188)+16)/* LOCK←v2580 */ ));
SOURCE(758, 177)
s←v3236 = 0;
SOURCE(817, 12)
s←v3236 = (* (( (ptr) gf←c6188)+8)/* freeList←v2748 */ );
SOURCE(831, 58)
if ((s←v3236 != 0)) {
SOURCE(846, 26)
(* (( (ptr) gf←c6188)+8)/* freeList←v2748 */ ) = (* (( (ptr) s←v3236)+17) );
}
else {
SOURCE(872, 17)
s←v3236 = XR←NewObject(72, (* (( (ptr) gf←c6188)+11) ));
};
SOURCE(891, 25)
(* (( (ptr) s←v3236)+16) ) = 1;
SOURCE(918, 17)
(* (( (ptr) s←v3236)+17) ) = link←v3192;
SOURCE(758, 177)
(void) (XR←MonitorExit((word) (( (bPt) gf←c6188)+16)/* LOCK←v2580 */ ));
return(s←v3236);
}
static void Free←P120(s←v3296)
word s←v3296;
{
register ptr gf←c6220 = (ptr) &globalframe;
/* Free: */
SOURCE(939, 108)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c6220)+16)/* LOCK←v2580 */ ));
SOURCE(971, 19)
XR←FillWords(&(* (W8Pt) (s←v3296)), 8, 0);
SOURCE(992, 18)
XR←FillWords(&(* (W8Pt) ((( (ptr) s←v3296)+8))), 8, 0);
SOURCE(1012, 20)
(* (( (ptr) s←v3296)+17) ) = (* (( (ptr) gf←c6220)+8)/* freeList←v2748 */ );
SOURCE(1034, 13)
(* (( (ptr) gf←c6220)+8)/* freeList←v2748 */ ) = s←v3296;
SOURCE(939, 108)
(void) (XR←MonitorExit((word) (( (bPt) gf←c6220)+16)/* LOCK←v2580 */ ));
return;
}
static word Include←P180(set←v3356, tq←v3384)
word set←v3356;
word tq←v3384;
{
word s←v3428;
/* Include: */
SOURCE(1051, 336)
SOURCE(1051, 336)
s←v3428 = 0;
SOURCE(1119, 27)
if ((set←v3356 == 0)) {
SOURCE(1135, 11)
set←v3356 = (word) New←P60(0);
};
SOURCE(1148, 7)
s←v3428 = set←v3356;
SOURCE(1157, 28)
if ((0 == (* (( (ptr) s←v3428)+16) ))) {
SOURCE(1185, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(1230, 157)
lab←L100002: ;
SOURCE(1233, 132)
{
register word idx←v3516 = 0;
lab←L100006: ;
SOURCE(1278, 31)
if (((* (( (ptr) s←v3428)+idx←v3516) ) == tq←v3384)) {
SOURCE(1303, 6)
return(s←v3428);
};
SOURCE(1312, 53)
if (((* (( (ptr) s←v3428)+idx←v3516) ) == 0)) {
SOURCE(1339, 18)
(* (( (ptr) s←v3428)+idx←v3516) ) = tq←v3384;
SOURCE(1359, 6)
return(s←v3428);
};
if ((idx←v3516 >= 7)) {
goto lab←L100003;
};
idx←v3516 = (idx←v3516 + 1);
goto lab←L100006;
lab←L100003: ;
};
SOURCE(1377, 10)
s←v3428 = (word) New←P60(s←v3428);
goto lab←L100002;
}
static void Synchronize←P240(set←v3488)
word set←v3488;
{
W8 var←c6252;
register ptr gf←c6284 = (ptr) &globalframe;
/* declaration of var←c5996 skipped */
/* declaration of var←c6028 skipped */
/* Synchronize: */
SOURCE(1469, 1185)
{
word tmpAddr14;
tmpAddr14 = (word) (( (ptr) &var←c6252)+4)/* var←c5996 */ ;
(* (ptr) tmpAddr14 ) = ( ((word) (fPt) Check←P408) );
(* (( (ptr) tmpAddr14) + 1) ) = 1;
};
{
word tmpAddr15;
tmpAddr15 = (word) (( (ptr) &var←c6252)+6)/* var←c6028 */ ;
(* (ptr) tmpAddr15 ) = ( ((word) (fPt) Init←P348) );
(* (( (ptr) tmpAddr15) + 1) ) = 1;
};
SOURCE(2291, 363)
if ((set←v3488 != 0)) {
SOURCE(2307, 420)
{
word pulses←v3816;
SOURCE(2335, 9)
(void) Init←P348(set←v3488, (word) (( (bPt) &var←c6252)+24)/* var←c6028 */ );
SOURCE(2346, 15)
{
word pd16;
pd16 = (* (( (ptr) (* (( (ptr) gf←c6284)+26)/* var←c6060 */ ))+23) );
(void) ( *( (fPt) ((* (ptr) pd16 ))))(pd16);
};
SOURCE(2363, 253)
if ((0 != (word) Check←P408(set←v3488, (word) (( (bPt) &var←c6252)+16)/* var←c5996 */ ))) {
SOURCE(2391, 251)
{
word start←v3860;
SOURCE(2393, 52)
{
word pd17;
pd17 = (* (( (ptr) (* (( (ptr) gf←c6284)+25)/* var←c5932 */ ))+7) );
start←v3860 = (word) ( *( (fPt) ((* (ptr) pd17 ))))(pd17);
};
SOURCE(2447, 169)
lab←L100009: ;
SOURCE(2450, 16)
{
word pd18;
pd18 = (* (( (ptr) (* (( (ptr) gf←c6284)+26)/* var←c6060 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd18 ))))(5, pd18);
};
SOURCE(2468, 16)
{
word pd19;
pd19 = (* (( (ptr) (* (( (ptr) gf←c6284)+26)/* var←c6060 */ ))+21) );
(void) ( *( (fPt) ((* (ptr) pd19 ))))(5, pd19);
};
SOURCE(2486, 35)
if ((0 == (word) Check←P408(set←v3488, (word) (( (bPt) &var←c6252)+16)/* var←c5996 */ ))) {
SOURCE(2515, 6)
return;
};
SOURCE(2525, 35)
{
word pd20;
pd20 = (* (( (ptr) (* (( (ptr) gf←c6284)+25)/* var←c5932 */ ))+7) );
pulses←v3816 = (word) ( *( (fPt) ((* (ptr) pd20 ))))(pd20);
};
SOURCE(2562, 54)
if (((pulses←v3816 - start←v3860) > (* (( (ptr) gf←c6284)+9)/* limit←v2860 */ ))) {
SOURCE(2616, 4)
goto lab←L100008;
};
goto lab←L100009;
lab←L100008: ;
};
};
SOURCE(2645, 9)
(void) Free←P120(set←v3488);
};
};
}
static void Init←P348(set←v3684, formal←c6316)
word set←v3684;
word formal←c6316;
{
formal←c6316 = (formal←c6316 - 24);
/* Init: */
SOURCE(1511, 345)
SOURCE(1539, 317)
lab←L100012: ;
if ((set←v3684 != 0)) {
}
else {
goto lab←L100010;
};
SOURCE(1556, 28)
(* (( (ptr) set←v3684)+16) ) = 0;
SOURCE(1586, 239)
{
register word i←v3904 = 0;
lab←L100016: ;
{
word t←v3968;
SOURCE(1629, 21)
t←v3968 = (* (( (ptr) set←v3684)+i←v3904) );
SOURCE(1652, 173)
if ((t←v3968 != 0)) {
SOURCE(1668, 157)
if ( ( ((* (( (ptr) t←v3968)+28) ) == 0) ? ((* (( (ptr) t←v3968)+10) ) == 0) : 0 ) ) {
SOURCE(1778, 26)
(* (( (ptr) set←v3684)+i←v3904) ) = 0;
}
else {
SOURCE(1804, 21)
(* ((( (ptr) set←v3684)+8)+i←v3904) ) = (* (( (ptr) t←v3968)+28) );
};
};
};
if ((i←v3904 >= 7)) {
goto lab←L100013;
};
i←v3904 = (i←v3904 + 1);
goto lab←L100016;
lab←L100013: ;
};
SOURCE(1839, 17)
set←v3684 = (* (( (ptr) set←v3684)+17) );
goto lab←L100012;
lab←L100010: ;
}
static word Check←P408(set←v3744, formal←c6348)
word set←v3744;
word formal←c6348;
{
word mustWait←v3788;
formal←c6348 = (formal←c6348 - 16);
/* Check: */
SOURCE(1870, 407)
SOURCE(1870, 407)
mustWait←v3788 = 0;
SOURCE(1932, 345)
lab←L100019: ;
if ((set←v3744 != 0)) {
}
else {
goto lab←L100017;
};
SOURCE(1949, 293)
{
register word i←v4012 = 0;
lab←L100023: ;
{
word t←v4076;
SOURCE(1992, 21)
t←v4076 = (* (( (ptr) set←v3744)+i←v4012) );
SOURCE(2015, 227)
if ((t←v4076 != 0)) {
SOURCE(2031, 211)
if ( ( ((* (( (ptr) t←v4076)+28) ) == 0) ? ((* (( (ptr) t←v4076)+10) ) == 0) : 0 ) ) {
SOURCE(2134, 26)
(* (( (ptr) set←v3744)+i←v4012) ) = 0;
}
else {
SOURCE(2162, 80)
if (((* ((( (ptr) set←v3744)+8)+i←v4012) ) != (* (( (ptr) t←v4076)+28) ))) {
SOURCE(2192, 26)
(* (( (ptr) set←v3744)+i←v4012) ) = 0;
}
else {
SOURCE(2219, 15)
mustWait←v3788 = 1;
SOURCE(2236, 6)
return(mustWait←v3788);
};
};
};
};
if ((i←v4012 >= 7)) {
goto lab←L100020;
};
i←v4012 = (i←v4012 + 1);
goto lab←L100023;
lab←L100020: ;
};
SOURCE(2260, 17)
set←v3744 = (* (( (ptr) set←v3744)+17) );
goto lab←L100019;
lab←L100017: ;
SOURCE(1870, 407)
return(mustWait←v3788);
}
/* file: XTkFastAccessPrivateImpl, module: XTkFastAccessPrivateImpl, compiled at: June 15, 1992 10:05:18 pm PDT */
extern void XR←install←XTkFastAccessPrivateImpl() {
NoName←Q756();
}
extern void XR←run←XTkFastAccessPrivateImpl() { XR←Start(&globalframe); }