/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: August 19, 1992 3:36:00 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: XlPrivateResourcesImpl, module: XlPrivateResourcesImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#define XRM←BITAND(x, y) (((word)(x)) & ((word)(y)))
#define XRM←BITOR(x, y) (((word)(x)) | ((word)(y)))
static char versionStamp[] = "@(#)mob←version [2861273789,3017289246] XlPrivateResourcesImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
#define SOURCE(p, l) /* source p, l */
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static void NoName←Q1080();
static void XlPrivateResourcesImpl←P0();
static void InitPrivateResources←P60();
static void MarkDead←P120();
static word NewResourceID←P180();
static void InternalFreeResourceID←P240();
static void EntryFreeResourceID←P300();
static word ValidID←P360();
static void Attach←P420();
static void Detach←P480();
static word Fetch←P540();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\252\213\222\275\300\263\330\056\036\100\214\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\0040\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\252\213\222\275\300\263\330\056\036\100\230\000\000"};
static struct {unsigned f; char r[4];} string4 = {196611, "\003@A"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\252\213\222\275\300\263\330\056\036\100\200\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\223\215\300\016\300\070\141\304\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[32];} string8 = {1900576, "\211\021\020\122\145\163\157\165\162\143\145\123\164\165\146\146\122\145\160\300\351\276\264\273\300\115\104\320\264\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\044\126\136\322\300\125\273\233\107\100\150\000\000"};
static struct {
word f0[6]; 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[4];
} globalframe = {
{0}, (word) Fetch←P540, 0, (word) Detach←P480,
0, (word) Attach←P420, 0, (word) ValidID←P360,
0, (word) EntryFreeResourceID←P300, 0, (word) InternalFreeResourceID←P240,
0, (word) NewResourceID←P180, 0, (word) MarkDead←P120,
0, (word) InitPrivateResources←P60, 0, (word) XlPrivateResourcesImpl←P0,
{0}
};
static void NoName←Q1080()
{
register ptr gf←c066 = (ptr) &globalframe;
word var←c8788;
(* (( (ptr) gf←c066)+4) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c066)+5) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
(void) XR←DeclareGlobalFrame((word) "XlPrivateResourcesImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string5)), (word) (
( (bPt) gf←c066)+96)/* var←c8212 */ );
var←c8788 = (word) XR←ImportInterface((word) "CardTab", (word) XR←GetTypeIndexS((word) (&string6)), 12);
(* (( (ptr) gf←c066)+26)/* var←c8372 */ ) = var←c8788;
(void) XR←ImportProcS(var←c8788, 134742786);
(void) XR←ImportProcS(var←c8788, 67634946);
(void) XR←ImportProcS(var←c8788, 67896579);
(void) XR←ImportProcS(var←c8788, 264193);
(void) XR←ImportProcS(var←c8788, 67371265);
var←c8788 = (word) XR←ExportInterface((word) "Xl", (word) XR←GetTypeIndexS((word) (&string7)), 218);
(* (( (ptr) gf←c066)+27)/* var←c8820 */ ) = var←c8788;
(void) XR←ExportType((word) "ResourceStuffRep", (word) XR←GetTypeIndexS((word) (&string8)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
);
var←c8788 = (word) XR←ExportInterface((word) "XlPrivateResources", (word) XR←GetTypeIndexS((word) (&string9)), 9);
(* (( (ptr) gf←c066)+28)/* var←c8852 */ ) = var←c8788;
(void) XR←ExportProcS(var←c8788, (word) (( (bPt) gf←c066)+88)/* var←c8180 */ , 786435);
(void) XR←ExportProcS(var←c8788, (word) (( (bPt) gf←c066)+80)/* var←c8148 */ , 262401);
(void) XR←ExportProcS(var←c8788, (word) (( (bPt) gf←c066)+72)/* var←c8116 */ , 67371521);
(void) XR←ExportProcS(var←c8788, (word) (( (bPt) gf←c066)+64)/* var←c8084 */ , 525058);
(void) XR←ExportProcS(var←c8788, (word) (( (bPt) gf←c066)+56)/* var←c8052 */ , 525314);
(void) XR←ExportProcS(var←c8788, (word) (( (bPt) gf←c066)+48)/* var←c8020 */ , 67634434);
(void) XR←ExportProcS(var←c8788, (word) (( (bPt) gf←c066)+40)/* var←c7988 */ , 787971);
(void) XR←ExportProcS(var←c8788, (word) (( (bPt) gf←c066)+32)/* var←c7956 */ , 526082);
(void) XR←ExportProcS(var←c8788, (word) (( (bPt) gf←c066)+24)/* var←c7924 */ , 67635202);
}
static void XlPrivateResourcesImpl←P0(formal←c017, formal←c016)
word formal←c017;
word formal←c016;
{
/* XlPrivateResourcesImpl: */
}
static void InitPrivateResources←P60(c←v3424, resourceIdBase←v3452, resourceIdMask←v3480)
word c←v3424;
word resourceIdBase←v3452;
word resourceIdMask←v3480;
{
register ptr gf←c8884 = (ptr) &globalframe;
word resources←v4344;
/* InitPrivateResources: */
SOURCE(640, 345)
SOURCE(734, 222)
{
word var←c8244;
word var←c8340;
word var←c8404;
{
word var←c8276;
word w2←v7876;
w2←v7876 = ( (word) -1 - (resourceIdMask←v3480 - 1));
var←c8276 = (word) XRM←BITAND(resourceIdMask←v3480, w2←v7876);
var←c8244 = var←c8276;
};
{
word pd10;
pd10 = (* (( (ptr) (* (( (ptr) gf←c8884)+26)/* var←c8372 */ ))+5) );
var←c8340 = (word) ( *( (fPt) ((* (ptr) pd10 ))))(17, pd10);
};
var←c8404 = XR←NewObject(24, (* (( (ptr) gf←c8884)+4) ));
(* (ptr) var←c8404 ) = resourceIdBase←v3452;
(* (( (ptr) var←c8404)+1) ) = resourceIdMask←v3480;
(* (( (ptr) var←c8404)+2) ) = var←c8244;
(* (( (ptr) var←c8404)+5) ) = var←c8340;
resources←v4344 = var←c8404;
};
SOURCE(958, 27)
(* (( (ptr) c←v3424)+26) ) = resources←v4344;
}
static void MarkDead←P120(c←v3540)
word c←v3540;
{
register ptr gf←c8916 = (ptr) &globalframe;
word resources←v4400;
/* MarkDead: */
SOURCE(990, 214)
SOURCE(1032, 49)
resources←v4400 = (* (( (ptr) c←v3540)+26) );
SOURCE(1083, 121)
if ((resources←v4400 != 0)) {
SOURCE(1107, 24)
(* (( (ptr) resources←v4400)+4) ) = 0;
SOURCE(1133, 71)
if (((* (( (ptr) resources←v4400)+5) ) != 0)) {
SOURCE(1167, 37)
{
word pd11;
pd11 = (* (( (ptr) (* (( (ptr) gf←c8916)+26)/* var←c8372 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd11 ))))((* ((( (ptr) resources←v4400)+5)) ), pd11);
};
};
};
}
static word NewResourceID←P180(c←v3600)
word c←v3600;
{
word id←v3644;
word resources←v4484;
word free←v4512;
/* NewResourceID: */
SOURCE(1210, 635)
SOURCE(1580, 49)
resources←v4484 = (* (( (ptr) c←v3600)+26) );
SOURCE(1631, 39)
free←v4512 = (* (( (ptr) resources←v4484)+4) );
SOURCE(1672, 49)
if ( ( (free←v4512 != 0) ? ((* (( (ptr) free←v4512)+64) ) == 0) : 0 ) ) {
SOURCE(1705, 16)
free←v4512 = (* (( (ptr) free←v4512)+65) );
};
SOURCE(1723, 85)
if ( ( (free←v4512 != 0) ? ((* (( (ptr) free←v4512)+64) ) > 0) : 0 ) ) {
SOURCE(1757, 23)
{
word idx12;
(* (( (ptr) free←v4512)+64) ) = (
idx12 = (word) ((* (( (ptr) free←v4512)+64) ) - 1),
SGNCK(idx12)
);
};
SOURCE(1782, 26)
{
word idx13;
return((* (( (ptr) free←v4512)+(
idx13 = (* (( (ptr) free←v4512)+64) ),
BCK(idx13, 64)
)) ));
};
};
SOURCE(1811, 34)
{
word var←c8468;
word resources←v7676;
resources←v7676 = resources←v4484;
{
word var←c8532;
word w1←v7724;
word w2←v7752;
SOURCE(1366, 41)
if (((* (( (ptr) resources←v7676)+3) ) == (* (( (ptr) resources←v7676)+1) ))) {
SOURCE(1407, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(1462, 55)
(* (( (ptr) resources←v7676)+3) ) = ((* (( (ptr) resources←v7676)+3) ) + (* (( (ptr) resources←v7676)+2) ));
SOURCE(1519, 56)
w1←v7724 = (* (( (ptr) resources←v7676)+3) );
w2←v7752 = (* (ptr) resources←v7676 );
var←c8532 = (word) XRM←BITOR(w1←v7724, w2←v7752);
var←c8468 = (var←c8532
);
};
return(var←c8468);
};
}
static void InternalFreeResourceID←P240(c←v3704, id←v3732)
word c←v3704;
word id←v3732;
{
register ptr gf←c8948 = (ptr) &globalframe;
/* InternalFreeResourceID: */
SOURCE(1850, 381)
SOURCE(1927, 304)
if ( ( ( (c←v3704 != 0) ? (0 != (* (( (ptr) c←v3704)+15) )) : 0 ) ? (0 != (word) ValidID←P360(c←v3704, id←v3732)) : 0 ) ) {
SOURCE(1966, 267)
{
word resources←v4696;
word free←v4724;
SOURCE(1968, 49)
resources←v4696 = (* (( (ptr) c←v3704)+26) );
SOURCE(2019, 39)
free←v4724 = (* (( (ptr) resources←v4696)+4) );
SOURCE(2060, 121)
if ((free←v4724 == 0) || ((* (( (ptr) free←v4724)+64) ) >= 64)) {
SOURCE(2104, 49)
{
word var←c8596;
var←c8596 = XR←NewObject(264, (* (( (ptr) gf←c8948)+5) ));
(* (( (ptr) var←c8596)+65) ) = (* (( (ptr) resources←v4696)+4) );
free←v4724 = var←c8596;
};
SOURCE(2155, 26)
(* (( (ptr) resources←v4696)+4) ) = free←v4724;
};
SOURCE(2184, 22)
{
word idx14;
(* (( (ptr) free←v4724)+(
idx14 = (* (( (ptr) free←v4724)+64) ),
BCK(idx14, 64)
)) ) = id←v3732;
};
SOURCE(2208, 23)
(* (( (ptr) free←v4724)+64) ) = ((* (( (ptr) free←v4724)+64) ) + 1);
};
};
}
static void EntryFreeResourceID←P300(c←v3792, id←v3820)
word c←v3792;
word id←v3820;
{
/* EntryFreeResourceID: */
SOURCE(2240, 96)
(void) (XR←MonitorEntry(c←v3792));
SOURCE(2307, 29)
(void) InternalFreeResourceID←P240(c←v3792, id←v3820);
SOURCE(2240, 96)
(void) (XR←MonitorExit(c←v3792));
return;
}
static word ValidID←P360(c←v3880, id←v3908)
word c←v3880;
word id←v3908;
{
word var←c3952;
word resources←v4792;
/* ValidID: */
SOURCE(2342, 203)
SOURCE(2406, 49)
resources←v4792 = (* (( (ptr) c←v3880)+26) );
SOURCE(2457, 88)
{
word var←c073;
if ((id←v3908 != 0)) {
{
word var←c8660;
word w1←v7800;
word w2←v7828;
w1←v7800 = ( (word) -1 - (* (( (ptr) resources←v4792)+1) ));
w2←v7828 = (id←v3908 - (* (ptr) resources←v4792 ));
var←c8660 = (word) XRM←BITAND(w1←v7800, w2←v7828);
var←c073 = (var←c8660 == 0);
};
}
else {
var←c073 = 0;
};
return(var←c073);
};
}
static void Attach←P420(c←v4012, id←v4040, ref←v4068)
word c←v4012;
word id←v4040;
word ref←v4068;
{
register ptr gf←c8980 = (ptr) &globalframe;
word resources←v4848;
/* Attach: */
SOURCE(2551, 159)
SOURCE(2609, 49)
resources←v4848 = (* (( (ptr) c←v4012)+26) );
SOURCE(2660, 50)
{
word var←c8724;
word pd15;
pd15 = (* (( (ptr) (* (( (ptr) gf←c8980)+26)/* var←c8372 */ ))+9) );
var←c8724 = (word) ( *( (fPt) ((* (ptr) pd15 ))))((* (( (ptr) resources←v4848)+5) ), id←v4040, ref←v4068, pd15);
};
}
static void Detach←P480(c←v4144, id←v4172)
word c←v4144;
word id←v4172;
{
register ptr gf←c9012 = (ptr) &globalframe;
word resources←v4904;
/* Detach: */
SOURCE(2715, 145)
SOURCE(2763, 49)
resources←v4904 = (* (( (ptr) c←v4144)+26) );
SOURCE(2814, 46)
{
word var←c8756;
word pd16;
pd16 = (* (( (ptr) (* (( (ptr) gf←c9012)+26)/* var←c8372 */ ))+11) );
var←c8756 = (word) ( *( (fPt) ((* (ptr) pd16 ))))((* (( (ptr) resources←v4904)+5) ), id←v4172, pd16);
};
}
static word Fetch←P540(c←v4232, id←v4260)
word c←v4232;
word id←v4260;
{
register ptr gf←c9044 = (ptr) &globalframe;
word ref←v4304;
word resources←v4960;
W2 var←c065;
/* Fetch: */
SOURCE(2865, 167)
SOURCE(2865, 167)
ref←v4304 = 0;
SOURCE(2931, 49)
resources←v4960 = (* (( (ptr) c←v4232)+26) );
SOURCE(2982, 50)
{
word pd17;
pd17 = (* (( (ptr) (* (( (ptr) gf←c9044)+26)/* var←c8372 */ ))+7) );
(void) ( *( (fPt) ((* (ptr) pd17 ))))((word) &var←c065, (* (( (ptr) resources←v4960)+5) ), id←v4260, pd17);
};
ref←v4304 = var←c065.f1;
SOURCE(2865, 167)
return(ref←v4304);
}
/* file: XlPrivateResourcesImpl, module: XlPrivateResourcesImpl, compiled at: August 19, 1992 3:35:59 pm PDT */
extern void XR←install←XlPrivateResourcesImpl() {
NoName←Q1080();
}
extern void XR←run←XlPrivateResourcesImpl() { XR←Start(&globalframe); }