/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: July 21, 1992 2:26:28 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: FinalizeImpl, module: FinalizeImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3676287681,1793344293] FinalizeImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q780();
static void FinalizeImpl←P0();
static word IsHandle←P60();
static word NarrowHandle←P120();
static word NewFQ←P180();
static word FQEmpty←P240();
static word FQNextNoAbort←P300();
static word FQNext←P360();
static word EnableFinalization←P420();
static word DisableFinalization←P480();
static word ReenableFinalization←P540();
static word GetFinalizationState←P600();
static word HandleToObject←P660();
static word GetClientData←P720();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\333\037\262\301\300\152\344\103\045\100\164\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\034\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\333\037\262\301\300\152\344\103\045\100\150\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\250\013\333\033\300\120\151\334\170\100\150\000\000"};
static struct {unsigned f; char r[32];} string5 = {1966112, "\211\022\021\106\151\156\141\154\151\172\141\142\154\145\117\142\152\145\143\164\300\250\013\333\033\300\120\151\334\170\000"};
static struct {unsigned f; char r[36];} string6 = {2162724, "\211\025\024\106\151\156\141\154\151\172\141\164\151\157\156\121\165\145\165\145\122\145\160\300\250\013\333\033\300\120\151\334\170\000\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\333\037\262\301\300\152\344\103\045\100\200\000\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\003\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; word f26; word f27; word f28;
word f29; word f30; word f31[2];
} globalframe = {
{0}, (word) GetClientData←P720, 0, (word) HandleToObject←P660,
0, (word) GetFinalizationState←P600, 0, (word) ReenableFinalization←P540,
0, (word) DisableFinalization←P480, 0, (word) EnableFinalization←P420,
0, (word) FQNext←P360, 0, (word) FQNextNoAbort←P300,
0, (word) FQEmpty←P240, 0, (word) NewFQ←P180,
0, (word) NarrowHandle←P120, 0, (word) IsHandle←P60,
0, (word) FinalizeImpl←P0, {0}
};
static void NoName←Q780()
{
register ptr gf←c046 = (ptr) &globalframe;
word var←c6644;
(* (( (ptr) gf←c046)+4) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(void) XR←DeclareGlobalFrame((word) "FinalizeImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string3)), (word) (( (bPt) gf←c046)+120)
/* var←c6292 */ );
var←c6644 = (word) XR←ExportInterface((word) "Finalize", (word) XR←GetTypeIndexS((word) (&string4)), 14);
(* (( (ptr) gf←c046)+32)/* var←c6612 */ ) = var←c6644;
(void) XR←ExportType((word) "FinalizableObject", (word) XR←GetTypeIndexS((word) (&string5)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
);
(void) XR←ExportType((word) "FinalizationQueueRep", (word) XR←GetTypeIndexS((word) (&string6)), (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8)
);
(void) XR←ExportProcS(var←c6644, (word) (( (bPt) gf←c046)+112)/* var←c6260 */ , 67371521);
(void) XR←ExportProcS(var←c6644, (word) (( (bPt) gf←c046)+104)/* var←c6228 */ , 67371777);
(void) XR←ExportProcS(var←c6644, (word) (( (bPt) gf←c046)+64)/* var←c6068 */ , 67896323);
(void) XR←ExportProcS(var←c6644, (word) (( (bPt) gf←c046)+56)/* var←c6036 */ , 67372289);
(void) XR←ExportProcS(var←c6644, (word) (( (bPt) gf←c046)+48)/* var←c6004 */ , 67634690);
(void) XR←ExportProcS(var←c6644, (word) (( (bPt) gf←c046)+40)/* var←c5972 */ , 67372801);
(void) XR←ExportProcS(var←c6644, (word) (( (bPt) gf←c046)+32)/* var←c5940 */ , 67373057);
(void) XR←ExportProcS(var←c6644, (word) (( (bPt) gf←c046)+24)/* var←c5908 */ , 67373313);
(void) XR←ExportProcS(var←c6644, (word) (( (bPt) gf←c046)+96)/* var←c6196 */ , 67111424);
(void) XR←ExportProcS(var←c6644, (word) (( (bPt) gf←c046)+72)/* var←c6100 */ , 67373825);
(void) XR←ExportProcS(var←c6644, (word) (( (bPt) gf←c046)+80)/* var←c6132 */ , 67374081);
(void) XR←ExportProcS(var←c6644, (word) (( (bPt) gf←c046)+88)/* var←c6164 */ , 67374337);
}
static void FinalizeImpl←P0(formal←c018, formal←c017)
word formal←c018;
word formal←c017;
{
/* FinalizeImpl: */
}
static word IsHandle←P60(x←v3260)
word x←v3260;
{
register ptr gf←c6676 = (ptr) &globalframe;
word var←c3316;
/* IsHandle: */
SOURCE(531, 93)
SOURCE(581, 43)
{
word tc9;
if ((x←v3260 == 0)) {
tc9 = (word) 1;
}
else {
tc9 = (word) ((* (( (ptr) gf←c6676)+4) ) == XR←GetReferentType(x←v3260));
};
return(tc9);
};
}
static word NarrowHandle←P120(x←v3376)
word x←v3376;
{
register ptr gf←c6708 = (ptr) &globalframe;
word var←c3432;
/* NarrowHandle: */
SOURCE(628, 99)
SOURCE(684, 43)
return(XR←Narrow(x←v3376, (* (( (ptr) gf←c6708)+4) )));
}
static word NewFQ←P180()
{
word var←c3492;
/* NewFQ: */
SOURCE(731, 151)
SOURCE(863, 19)
return((word) XR←NewFQ());
}
static word FQEmpty←P240(fq←v3552)
word fq←v3552;
{
word var←c3596;
/* FQEmpty: */
SOURCE(888, 182)
SOURCE(1046, 24)
return((word) XR←FQEmpty(fq←v3552));
}
static word FQNextNoAbort←P300(fq←v3760)
word fq←v3760;
{
word handle←v3804;
/* FQNextNoAbort: */
SOURCE(1194, 109)
SOURCE(1194, 109)
handle←v3804 = 0;
SOURCE(1273, 30)
return((word) XR←FQNextNoAbort(fq←v3760));
}
static word FQNext←P360(fq←v3864)
word fq←v3864;
{
word handle←v3908;
/* FQNext: */
SOURCE(1309, 142)
SOURCE(1309, 142)
handle←v3908 = 0;
SOURCE(1387, 28)
handle←v3908 = (word) XR←FQNextNoAbort(fq←v3864);
SOURCE(1417, 34)
if ((handle←v3908 == 0)) {
SOURCE(1438, 13)
(void) XR←RaiseError(XR←Aborted, 0);
};
SOURCE(1309, 142)
return(handle←v3908);
}
static word EnableFinalization←P420(object←v3968, fq←v3996, clientData←v4024)
word object←v3968;
word fq←v3996;
word clientData←v4024;
{
register ptr gf←c6740 = (ptr) &globalframe;
word handle←v4092;
/* EnableFinalization: */
SOURCE(1456, 357)
SOURCE(1456, 357)
handle←v4092 = 0;
SOURCE(1709, 62)
{
word var←c6452;
var←c6452 = XR←NewObject(20, (* (( (ptr) gf←c6740)+4) ));
(* (( (ptr) var←c6452)+2) ) = fq←v3996;
(* (( (ptr) var←c6452)+4) ) = clientData←v4024;
handle←v4092 = var←c6452;
};
SOURCE(1773, 40)
(void) XR←EnableFinalization(object←v3968, fq←v3996, handle←v4092);
SOURCE(1456, 357)
return(handle←v4092);
}
static word DisableFinalization←P480(handle←v4152)
word handle←v4152;
{
word oldState←v4196;
/* DisableFinalization: */
SOURCE(1819, 267)
SOURCE(2047, 39)
return((word) XR←DisableFinalization(handle←v4152));
}
static word ReenableFinalization←P540(handle←v4256, fq←v4284)
word handle←v4256;
word fq←v4284;
{
word oldState←v4328;
/* ReenableFinalization: */
SOURCE(2092, 321)
SOURCE(2369, 44)
return((word) XR←ReenableFinalization(handle←v4256, fq←v4284));
}
static word GetFinalizationState←P600(handle←v4388)
word handle←v4388;
{
word state←v4432;
/* GetFinalizationState: */
SOURCE(2419, 265)
SOURCE(2644, 40)
return((word) XR←GetFinalizationState(handle←v4388));
}
static word HandleToObject←P660(handle←v4492)
word handle←v4492;
{
word object←v4536;
/* HandleToObject: */
SOURCE(2690, 215)
SOURCE(2690, 215)
object←v4536 = 0;
SOURCE(2871, 34)
return((word) XR←HandleToObject(handle←v4492));
}
static word GetClientData←P720(handle←v4608)
word handle←v4608;
{
word var←c4652;
/* GetClientData: */
SOURCE(2911, 89)
SOURCE(2973, 27)
return((* (( (ptr) handle←v4608)+4) ));
}
/* file: FinalizeImpl, module: FinalizeImpl, compiled at: July 21, 1992 2:26:28 pm PDT */
extern void XR←install←FinalizeImpl() {
NoName←Q780();
}
extern void XR←run←FinalizeImpl() { XR←Start(&globalframe); }