/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: February 21, 1992 4:26:06 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: FinalizationImpl, module: FinalizationImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [4148406558,3787425269] FinalizationImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q600();
static void FinalizationImpl←P0();
static word NewFQ←P60();
static word FQEmpty←P120();
static word FQNextNoAbort←P180();
static word FQNext←P240();
static word EnableFinalization←P300();
static word DisableFinalization←P360();
static word ReenableFinalization←P420();
static word GetFinalizationState←P480();
static word HandleToObject←P540();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\367\103\251\036\300\341\277\205\365\100\164\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\014\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\367\103\251\036\300\341\277\205\365\100\150\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\247\301\054\125\300\015\075\063\112\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\247\301\054\125\300\015\075\063\112\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\247\301\054\125\300\015\075\063\112\000\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\367\103\251\036\300\341\277\205\365\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[2];
} globalframe = {
{0}, (word) HandleToObject←P540, 0, (word) GetFinalizationState←P480,
0, (word) ReenableFinalization←P420, 0, (word) DisableFinalization←P360,
0, (word) EnableFinalization←P300, 0, (word) FQNext←P240,
0, (word) FQNextNoAbort←P180, 0, (word) FQEmpty←P120,
0, (word) NewFQ←P60, 0, (word) FinalizationImpl←P0,
{0}
};
static void NoName←Q600()
{
register ptr gf←c036 = (ptr) &globalframe;
word var←c6144;
(* (( (ptr) gf←c036)+4) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(void) XR←DeclareGlobalFrame((word) "FinalizationImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string3)), (word) (
( (bPt) gf←c036)+96)/* var←c5824 */ );
var←c6144 = (word) XR←ExportInterface((word) "Finalization", (word) XR←GetTypeIndexS((word) (&string4)), 11);
(* (( (ptr) gf←c036)+26)/* var←c6112 */ ) = var←c6144;
(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←c6144, (word) (( (bPt) gf←c036)+56)/* var←c5664 */ , 67633666);
(void) XR←ExportProcS(var←c6144, (word) (( (bPt) gf←c036)+48)/* var←c5632 */ , 67371777);
(void) XR←ExportProcS(var←c6144, (word) (( (bPt) gf←c036)+40)/* var←c5600 */ , 67634178);
(void) XR←ExportProcS(var←c6144, (word) (( (bPt) gf←c036)+32)/* var←c5568 */ , 67372289);
(void) XR←ExportProcS(var←c6144, (word) (( (bPt) gf←c036)+24)/* var←c5536 */ , 67372545);
(void) XR←ExportProcS(var←c6144, (word) (( (bPt) gf←c036)+88)/* var←c5792 */ , 67110656);
(void) XR←ExportProcS(var←c6144, (word) (( (bPt) gf←c036)+64)/* var←c5696 */ , 67373057);
(void) XR←ExportProcS(var←c6144, (word) (( (bPt) gf←c036)+72)/* var←c5728 */ , 67373313);
(void) XR←ExportProcS(var←c6144, (word) (( (bPt) gf←c036)+80)/* var←c5760 */ , 67373569);
}
static void FinalizationImpl←P0(formal←c015, formal←c014)
word formal←c015;
word formal←c014;
{
/* FinalizationImpl: */
}
static word NewFQ←P60()
{
word var←c3104;
/* NewFQ: */
SOURCE(528, 151)
SOURCE(660, 19)
return((word) XR←NewFQ());
}
static word FQEmpty←P120(fq←v3164)
word fq←v3164;
{
word var←c3208;
/* FQEmpty: */
SOURCE(685, 182)
SOURCE(843, 24)
return((word) XR←FQEmpty(fq←v3164));
}
static word FQNextNoAbort←P180(fq←v3268)
word fq←v3268;
{
word handle←v3312;
/* FQNextNoAbort: */
SOURCE(873, 226)
SOURCE(873, 226)
handle←v3312 = 0;
SOURCE(1069, 30)
return((word) XR←FQNextNoAbort(fq←v3268));
}
static word FQNext←P240(fq←v3372)
word fq←v3372;
{
word handle←v3416;
/* FQNext: */
SOURCE(1105, 257)
SOURCE(1105, 257)
handle←v3416 = 0;
SOURCE(1300, 26)
handle←v3416 = (word) FQNextNoAbort←P180(fq←v3372);
SOURCE(1328, 34)
if ((handle←v3416 == 0)) {
SOURCE(1349, 13)
(void) XR←RaiseError(XR←Aborted, 0);
};
SOURCE(1105, 257)
return(handle←v3416);
}
static word EnableFinalization←P300(object←v3476, fq←v3504)
word object←v3476;
word fq←v3504;
{
register ptr gf←c6176 = (ptr) &globalframe;
word handle←v3564;
/* EnableFinalization: */
SOURCE(1367, 322)
SOURCE(1367, 322)
handle←v3564 = 0;
SOURCE(1597, 50)
{
word var←c5952;
var←c5952 = XR←NewObject(16, (* (( (ptr) gf←c6176)+4) ));
(* (( (ptr) var←c5952)+2) ) = fq←v3504;
handle←v3564 = var←c5952;
};
SOURCE(1649, 40)
(void) XR←EnableFinalization(object←v3476, fq←v3504, handle←v3564);
SOURCE(1367, 322)
return(handle←v3564);
}
static word DisableFinalization←P360(handle←v3624)
word handle←v3624;
{
word oldState←v3668;
/* DisableFinalization: */
SOURCE(1695, 267)
SOURCE(1923, 39)
return((word) XR←DisableFinalization(handle←v3624));
}
static word ReenableFinalization←P420(handle←v3728, fq←v3756)
word handle←v3728;
word fq←v3756;
{
word oldState←v3800;
/* ReenableFinalization: */
SOURCE(1968, 321)
SOURCE(2245, 44)
return((word) XR←ReenableFinalization(handle←v3728, fq←v3756));
}
static word GetFinalizationState←P480(handle←v3860)
word handle←v3860;
{
word state←v3904;
/* GetFinalizationState: */
SOURCE(2295, 265)
SOURCE(2520, 40)
return((word) XR←GetFinalizationState(handle←v3860));
}
static word HandleToObject←P540(handle←v3964)
word handle←v3964;
{
word object←v4008;
/* HandleToObject: */
SOURCE(2566, 215)
SOURCE(2566, 215)
object←v4008 = 0;
SOURCE(2747, 34)
return((word) XR←HandleToObject(handle←v3964));
}
/* file: FinalizationImpl, module: FinalizationImpl, compiled at: February 21, 1992 4:26:06 pm PST */
extern void XR←install←FinalizationImpl() {
NoName←Q600();
}
extern void XR←run←FinalizationImpl() { XR←Start(&globalframe); }