/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: September 24, 1992 9:38:50 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: RegisterRefLiteralImpl, module: RegisterRefLiteralImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [460647230,78684980] RegisterRefLiteralImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef word (*fPt)();
#define SOURCE(p, l) /* source p, l */
static void NoName←Q576();
static void RegisterRefLiteralImpl←P0();
extern void XR←RegisterRefLiteralCreator();
static word Uninit←P120();
static void LookupType←P180();
extern word XR←GetRefLiteral();
static word CreateTEXT←P300();
static word CreateROPE←P360();
static word CreateATOM←P420();
static struct {unsigned f; char r[16];} string1 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string3 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\105\014\000"};
static struct {unsigned f; char r[44];} string4 = {2818092, "\216\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261"};
static struct {unsigned f; char r[4];} string5 = {131076, "\216\251\000"};
static struct {unsigned f; char r[44];} string6 = {2752556, "\260\006\005\146\151\162\163\164\257\300\033\164\353\076\300\004\260\243\064\100\214\005\004\162\145\163\164\214\257\300\033\164\353\076\300\004\260\243\064\100\214\261\000"};
static struct {unsigned f; char r[4];} string7 = {131074, "\003\002\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\033\164\353\076\300\004\260\243\064\100\164\000\000"};
static struct {unsigned f; char r[4];} string9 = {131074, "\003\010\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\374\377\221\350\300\202\044\047\115\100\150\000\000"};
static struct {unsigned f; char r[12];} string11 = {720908, "\257\300\036\351\345\237\244\150\210\100\150"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\340\371\234\150\300\366\276\257\130\100\150\000\000"};
static struct {
word f0[16]; 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[4];
} globalframe = {
{0}, (word) CreateATOM←P420, 0, (word) CreateROPE←P360,
0, (word) CreateTEXT←P300, 0, (word) XR←GetRefLiteral,
0, (word) LookupType←P180, 0, (word) Uninit←P120,
0, (word) XR←RegisterRefLiteralCreator, 0, (word) RegisterRefLiteralImpl←P0,
{0}
};
static void NoName←Q576()
{
register ptr gf←c048 = (ptr) &globalframe;
word var←c6384;
(* (( (ptr) gf←c048)+10) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c048)+11) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string2);
(* (( (ptr) gf←c048)+12) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string2);
(* (( (ptr) gf←c048)+13) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string2);
(* (( (ptr) gf←c048)+14) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
(void) XR←DeclareGlobalFrame((word) "RegisterRefLiteralImpl", &globalframe, (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9)
, (word) (( (bPt) gf←c048)+120)/* var←c6000 */ );
var←c6384 = (word) XR←ImportInterface((word) "AtomPrivate", (word) XR←GetTypeIndexS((word) (&string10)), 2);
(* (( (ptr) gf←c048)+33)/* var←c6352 */ ) = var←c6384;
(void) XR←ImportProcS(var←c6384, 67371265);
var←c6384 = (word) XR←ImportInterface((word) "ConvertUnsafe", (word) XR←GetTypeIndexS((word) (&string11)), 8);
(* (( (ptr) gf←c048)+32)/* var←c6256 */ ) = var←c6384;
(void) XR←ImportProcS(var←c6384, 67372289);
(void) XR←ImportProcS(var←c6384, 67372033);
var←c6384 = (word) XR←ExportInterface((word) "RegisterRefLiteral", (word) XR←GetTypeIndexS((word) (&string12)), 3);
(* (( (ptr) gf←c048)+34)/* var←c6416 */ ) = var←c6384;
(void) XR←ExportVar(var←c6384, 0, (word) (( (bPt) gf←c048)+60)/* var←c5744 */ );
(void) XR←ExportProcS(var←c6384, (word) (( (bPt) gf←c048)+112)/* var←c5968 */ , 524546);
(void) XR←ExportProcS(var←c6384, (word) (( (bPt) gf←c048)+88)/* var←c5872 */ , 67633666);
}
static void RegisterRefLiteralImpl←P0(formal←c018, formal←c017)
word formal←c018;
word formal←c017;
{
register ptr gf←c6448 = (ptr) &globalframe;
/* RegisterRefLiteralImpl: */
SOURCE(79, 1988)
SOURCE(1903, 41)
(void) XR←RegisterRefLiteralCreator((word) (( (bPt) gf←c6448)+72)/* var←c5808 */ , (* (( (ptr) gf←c6448)+10) ));
SOURCE(1946, 41)
(void) XR←RegisterRefLiteralCreator((word) (( (bPt) gf←c6448)+72)/* var←c5808 */ , (* (( (ptr) gf←c6448)+11) ));
SOURCE(1989, 40)
(void) XR←RegisterRefLiteralCreator((word) (( (bPt) gf←c6448)+80)/* var←c5840 */ , (* (( (ptr) gf←c6448)+12) ));
SOURCE(2031, 36)
(void) XR←RegisterRefLiteralCreator((word) (( (bPt) gf←c6448)+64)/* var←c5776 */ , (* (( (ptr) gf←c6448)+13) ));
}
extern void XR←RegisterRefLiteralCreator(p←v4268, type←v4296)
word p←v4268;
word type←v4296;
{
register ptr gf←c6480 = (ptr) &globalframe;
/* RegisterType: */
SOURCE(631, 236)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c6480)+16)/* LOCK←v2580 */ ));
SOURCE(708, 109)
{
register word l←v3632;
l←v3632 = (* (( (ptr) gf←c6480)+8)/* tab←v2608 */ );
lab←L100003: ;
if ((l←v3632 != 0)) {
}
else {
goto lab←L100000;
};
SOURCE(764, 53)
if (((* (ptr) l←v3632 ) == type←v4296)) {
SOURCE(793, 16)
(* (( (ptr) l←v3632)+1) ) = XR←CheckProc(p←v4268);
SOURCE(811, 6)
(void) (XR←MonitorExit((word) (( (bPt) gf←c6480)+16)/* LOCK←v2580 */ ));
return;
};
l←v3632 = (* (( (ptr) l←v3632)+2) );
goto lab←L100003;
lab←L100000: ;
};
SOURCE(829, 38)
{
word var←c6032;
var←c6032 = XR←NewObject(12, (* (( (ptr) gf←c6480)+14) ));
(* (ptr) var←c6032 ) = type←v4296;
(* (( (ptr) var←c6032)+1) ) = XR←CheckProc(p←v4268);
(* (( (ptr) var←c6032)+2) ) = (* (( (ptr) gf←c6480)+8)/* tab←v2608 */ );
(* (( (ptr) gf←c6480)+8)/* tab←v2608 */ ) = var←c6032;
};
SOURCE(631, 236)
(void) (XR←MonitorExit((word) (( (bPt) gf←c6480)+16)/* LOCK←v2580 */ ));
return;
}
static word Uninit←P120(string←v4356)
word string←v4356;
{
word var←c4400;
/* Uninit: */
SOURCE(873, 44)
SOURCE(919, 5)
(void) XR←RaiseUnnamedError();
}
static void LookupType←P180(formal←c030, type←v3372)
word formal←c030;
word type←v3372;
{
register ptr gf←c6512 = (ptr) &globalframe;
word found←v3416;
word p←v3444;
/* LookupType: */
SOURCE(930, 259)
SOURCE(930, 259)
p←v3444 = 0;
SOURCE(1045, 111)
{
register word l←v3760;
l←v3760 = (* (( (ptr) gf←c6512)+8)/* tab←v2608 */ );
lab←L100008: ;
if ((l←v3760 != 0)) {
}
else {
goto lab←L100005;
};
SOURCE(1101, 55)
if (((* (ptr) l←v3760 ) == type←v3372)) {
SOURCE(1130, 26)
p←v3444 = XR←CheckProc(* (( (ptr) l←v3760)+1) );
found←v3416 = 1;
goto lab←L100004;
};
l←v3760 = (* (( (ptr) l←v3760)+2) );
goto lab←L100008;
lab←L100005: ;
};
SOURCE(1168, 21)
found←v3416 = 0;
p←v3444 = (word) (( (bPt) gf←c6512)+104)/* var←c5936 */ ;
/* removed tail goto */
lab←L100004: ;
(* (ptr) formal←c030 ) = found←v3416;
(* (( (ptr) formal←c030)+1) ) = p←v3444;
return;
}
extern word XR←GetRefLiteral(type←v4460, string←v4488)
word type←v4460;
word string←v4488;
{
register ptr gf←c6544 = (ptr) &globalframe;
word var←c6160;
W2 var←c6192;
word var←c4532;
word found←v3888;
word p←v3916 = 0;
/* Create: */
SOURCE(1278, 220)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c6544)+16)/* LOCK←v2580 */ ));
SOURCE(1386, 29)
{
W2 var←c6096;
(void) LookupType←P180((word) &var←c6096, type←v4460);
p←v3916 = XR←CheckProc(var←c6096.f1);
found←v3888 = var←c6096.f0;
};
SOURCE(1417, 81)
if ((0 != found←v3888)) {
SOURCE(1431, 22)
{
word var←c6128;
var←c6128 = (word) ( *( (fPt) ((* (ptr) p←v3916 ))))(string←v4488, p←v3916);
(void) (XR←MonitorExit((word) (( (bPt) gf←c6544)+16)/* LOCK←v2580 */ ));
return(var←c6128);
};
}
else {
SOURCE(1455, 43)
var←c6160 = (word) (( (bPt) gf←c6544)+60)/* var←c5744 */ ;
(* (ptr) (word) &var←c6192 ) = type←v4460;
(* (( (ptr) (word) &var←c6192) + 1) ) = string←v4488;
(void) (XR←MonitorExit((word) (( (bPt) gf←c6544)+16)/* LOCK←v2580 */ ));
goto lab←L100009;
};
/* c2c skipped dead code */
lab←L100009: ;
SOURCE(1455, 43)
{
W2 var←c041;
var←c041 = var←c6192;
(void) XR←RaiseError(var←c6160, (word) &var←c041);
};
}
static word CreateTEXT←P300(string←v4592)
word string←v4592;
{
register ptr gf←c6576 = (ptr) &globalframe;
word var←c4636;
/* CreateTEXT: */
SOURCE(1507, 129)
SOURCE(1565, 71)
{
word pd13;
if ((string←v4592 == 0)) {
return(0);
}
else {
pd13 = (* (( (ptr) (* (( (ptr) gf←c6576)+32)/* var←c6256 */ ))+8) );
return((word) ( *( (fPt) ((* (ptr) pd13 ))))(string←v4592, pd13));
};
};
}
static word CreateROPE←P360(string←v4696)
word string←v4696;
{
register ptr gf←c6608 = (ptr) &globalframe;
word var←c4740;
/* CreateROPE: */
SOURCE(1640, 126)
SOURCE(1698, 68)
{
word pd14;
if ((string←v4696 == 0)) {
return(0);
}
else {
pd14 = (* (( (ptr) (* (( (ptr) gf←c6608)+32)/* var←c6256 */ ))+9) );
return((word) ( *( (fPt) ((* (ptr) pd14 ))))(string←v4696, pd14));
};
};
}
static word CreateATOM←P420(string←v4800)
word string←v4800;
{
register ptr gf←c6640 = (ptr) &globalframe;
word var←c4844;
/* CreateATOM: */
SOURCE(1770, 112)
SOURCE(1828, 54)
{
word pd15;
pd15 = (* (( (ptr) (* (( (ptr) gf←c6640)+33)/* var←c6352 */ ))+5) );
return((word) ( *( (fPt) ((* (ptr) pd15 ))))(string←v4800, pd15));
};
}
/* file: RegisterRefLiteralImpl, module: RegisterRefLiteralImpl, compiled at: September 24, 1992 9:38:50 pm PDT */
extern void XR←install←RegisterRefLiteralImpl() {
NoName←Q576();
}
extern void XR←run←RegisterRefLiteralImpl() { XR←Start(&globalframe); }