/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: January 18, 1993 1:40:17 pm PST */
/* C2C version: October 7, 1992 (native) */
/* ref-counting: off */
/* file: InstallationScopesImpl, module: InstallationScopesImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3625656967,2349445893] InstallationScopesImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2;} W3;
typedef W3 *W3Pt;
typedef W4 *W4Pt;
typedef W6 *W6Pt;
#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←Q7836();
static void InstallationScopesImpl←P0();
static void Insert←P60();
static word GlobalConfig←P120();
static word Parent←P180();
static void EnumerateChildren←P240();
static void EnumerateInterfaces←P300();
static void UnmonitoredEnumerateInterfaces←P360();
static void MaybeMonitorEnumerateInterfaces←P420();
static void EachInterface←P4944();
static void EnumerateExports←P480();
static word ObjectName←P540();
static word ProgramType←P600();
static word InterfaceName←P660();
static word InterfaceType←P720();
static void TakeInstallationLock←P780();
static word NoName←Q7896();
static void GiveInstallationLock←P840();
static void TakeInspectionLock←P900();
static word NoName←Q7956();
static void GiveInspectionLock←P960();
extern void XR←BeginInstallation();
static void CheckInstallation←P1080();
static void CheckDuplicate←P5148();
static void CheckInterface←P1140();
extern void XR←CommitInstallation();
static void MakeCommitted←P5640();
static void CommitInterface←P1260();
static void CommitItem←P1320();
extern void XR←AbortInstallation();
static void AbortInterface←P1440();
static void AbortItem←P1500();
static word NewEnvironRefTab←P1560();
static word InterfaceMatch←P1620();
static word InterfaceHash←P1680();
extern void XR←PushScope();
extern void XR←PopScope();
extern word XR←ImportInterface();
extern word XR←ExportInterface();
static word GetAnyInterface←P1980();
extern void XR←HideNames();
static word NewInterface←P2100();
static word NewAuxInterface←P2160();
extern void XR←ExportProc();
extern void XR←ImportProc();
extern void XR←ExportVar();
extern void XR←ExportType();
static word FindExporter←P2460();
static word ConcreteTypeFromAbstractType←P2520();
static void InterfaceNeedsWork←P2580();
static word GetStartTrap←P2640();
static word GetUnboundTrap←P2700();
static word AllocateTrapDescriptor←P2760();
static void Lookup←P2820();
static void EnumerateEnviron←P2880();
static void MaybeMonitorEnumerateEnviron←P2940();
static word EachPair←P6756();
static void EmptyInterfaces←P3000();
static word KeyMatch←P3060();
extern void XR←PushRename();
extern void XR←PopRename();
extern void XR←DeclareGlobalFrame();
static word ProgramFromFrame←P3300();
static void DoStartConfig←P3360();
static void DoStartProgram←P3420();
static word ListStartOrder←P3480();
static word FixStartTraps←P3540();
extern void XR←StartCedarModule();
extern void XR←Start();
extern void XR←StartModule();
static word ListStartTraps←P3780();
static void LogStartTrap←P3840();
extern void XR←StartProgram();
static void StartProgram←P3960();
extern word XR←FirstControl();
static void AddToCM←P4080();
extern void XR←AddControl();
extern void XR←RaiseUnbound();
extern word XR←IsBound();
extern void XR←Unload();
static void CedarCoreReport←P4380();
static word QualifiedName←P4440();
static word ProgramListFromName←P4500();
static void ConvertToRefTab←P4560();
static void PutCedarCoreProblems←P4620();
extern void XR←VerboseCommit();
static void RecordProblems←P7776();
static void EnableAborts←P4740();
static void NoName←Q8016();
static void NoName←Q8076();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\352\160\224\035\300\316\067\271\315\100\214\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\003\002\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\352\160\224\035\300\316\067\271\315\101\224\000\000"};
static struct {unsigned f; char r[4];} string4 = {196611, "\004@]"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\352\160\224\035\300\316\067\271\315\101\350\000\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\0040\000"};
static struct {unsigned f; char r[48];} string7 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\352\160\224\035\300\316\067\271\315\100\214\005\004\162\145\163\164\214\216\257\300\352\160\224\035\300\316\067\271\315\100\214\261\000\000\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\352\160\224\035\300\316\067\271\315\101\240\000\000"};
static struct {unsigned f; char r[8];} string10 = {458759, "\007\000 \002\003\001\013"};
static struct {unsigned f; char r[44];} string11 = {2752556, "\260\006\005\146\151\162\163\164\257\300\371\361\330\220\300\372\202\000\101\100\370\005\004\162\145\163\164\214\257\300\371\361\330\220\300\372\202\000\101\100\370\261\000"};
static struct {unsigned f; char r[16];} string12 = {786444, "\006\002\000\007\000\040\002\003\001\014\010\001\000\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\352\160\224\035\300\316\067\271\315\100\340\000\000"};
static struct {unsigned f; char r[20];} string14 = {1114129, "\011\000\014\100\100\040\000\014\007\040\040\004\000\003\002\014\014\000\000"};
static struct {unsigned f; char r[44];} string15 = {2752556, "\260\006\005\146\151\162\163\164\257\300\352\160\224\035\300\316\067\271\315\100\354\005\004\162\145\163\164\214\257\300\352\160\224\035\300\316\067\271\315\100\354\261\000"};
static struct {unsigned f; char r[44];} string16 = {2752556, "\260\006\005\146\151\162\163\164\257\300\352\160\224\035\300\316\067\271\315\102\014\005\004\162\145\163\164\214\257\300\352\160\224\035\300\316\067\271\315\102\014\261\000"};
static struct {unsigned f; char r[4];} string17 = {131074, "\004\005\000"};
static struct {unsigned f; char r[44];} string18 = {2752556, "\260\006\005\146\151\162\163\164\257\300\352\160\224\035\300\316\067\271\315\101\004\005\004\162\145\163\164\214\257\300\352\160\224\035\300\316\067\271\315\101\004\261\000"};
static struct {unsigned f; char r[4];} string19 = {131074, "\004\030\000"};
static struct {unsigned f; char r[44];} string20 = {2752556, "\260\006\005\146\151\162\163\164\257\300\352\160\224\035\300\316\067\271\315\100\370\005\004\162\145\163\164\214\257\300\352\160\224\035\300\316\067\271\315\100\370\261\000"};
static struct {unsigned f; char r[4];} string21 = {131074, "\004\006\000"};
static struct {unsigned f; char r[44];} string22 = {2752556, "\260\006\005\146\151\162\163\164\257\300\330\033\042\207\300\214\011\263\005\100\214\005\004\162\145\163\164\214\257\300\330\033\042\207\300\214\011\263\005\100\214\261\000"};
static struct {unsigned f; char r[4];} string23 = {131074, "\004\016\000"};
static struct {unsigned f; char r[44];} string24 = {2752556, "\260\006\005\146\151\162\163\164\257\300\330\033\042\207\300\214\011\263\005\100\200\005\004\162\145\163\164\214\257\300\330\033\042\207\300\214\011\263\005\100\200\261\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\330\033\042\207\300\214\011\263\005\102\360\000\000"};
static struct {unsigned f; char r[60];} string26 = {3670076, "\260\006\005\146\151\162\163\164\216\205\210\242\000\101\120\257\300\352\160\224\035\300\316\067\271\315\102\060\005\004\162\145\163\164\214\216\205\210\242\000\101\120\257\300\352\160\224\035\300\316\067\271\315\102\060\261\000\000\000"};
static struct {unsigned f; char r[20];} string27 = {1245204, "\205\210\242\000\101\120\257\300\352\160\224\035\300\316\067\271\315\102\060"};
static struct {unsigned f; char r[48];} string28 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\352\160\224\035\300\316\067\271\315\101\350\005\004\162\145\163\164\214\216\257\300\352\160\224\035\300\316\067\271\315\101\350\261\000\000\000"};
static struct {unsigned f; char r[48];} string29 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\363\223\326\161\300\017\164\046\072\104\350\005\004\162\145\163\164\214\216\257\300\363\223\326\161\300\017\164\046\072\104\350\261\000\000\000"};
static struct {unsigned f; char r[44];} string30 = {2752556, "\260\006\005\146\151\162\163\164\257\300\371\361\330\220\300\372\202\000\101\100\230\005\004\162\145\163\164\214\257\300\371\361\330\220\300\372\202\000\101\100\230\261\000"};
static struct {unsigned f; char r[20];} string31 = {1114129, "\006\002\000\007\100\100\040\005\004\011\014\014\001\004\071\030\001\000\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\330\033\042\207\300\214\011\263\005\100\164\000\000"};
static struct {unsigned f; char r[52];} string33 = {3211313, "\006\020\054\001\100\150\001\100\154\001\100\160\001\100\164\001\100\170\001\100\174\001\100\200\001\100\204\001\100\210\001\100\214\001\100\220\001\100\224\001\100\234\001\100\244\001\100\250\001\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\242\221\264\046\300\105\142\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "\257\300\036\137\320\376\300\071\321\170\251\100\150\000\000"};
static struct {unsigned f; char r[16];} string36 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string37 = {851984, "\257\300\275\320\070\317\300\004\110\363\366\100\150\000\000"};
static struct {unsigned f; char r[16];} string38 = {851984, "\257\300\220\270\074\115\300\121\012\115\357\100\150\000\000"};
static struct {unsigned f; char r[16];} string39 = {851984, "\257\300\371\361\330\220\300\372\202\000\101\100\150\000\000"};
static struct {unsigned f; char r[32];} string40 = {1835040, "\211\020\017\111\156\164\145\162\146\141\143\145\122\145\143\157\162\144\300\371\361\330\220\300\372\202\000\101\000\000\000"};
static struct {unsigned f; char r[24];} string41 = {1507352, "\211\013\012\120\162\157\147\162\141\155\122\145\160\300\371\361\330\220\300\372\202\000\101"};
static struct {unsigned f; char r[24];} string42 = {1441816, "\211\012\011\103\157\156\146\151\147\122\145\160\300\371\361\330\220\300\372\202\000\101\000"};
static struct {unsigned f; char r[16];} string43 = {851984, "\257\300\200\367\017\371\300\261\172\333\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string44 = {851984, "\257\300\046\034\345\272\300\313\105\336\371\100\150\000\000"};
static W3 dummy54;
static struct {
word f0[85]; word f85; word f86; word f87;
word f88; word f89; word f90; word f91;
word f92; word f93; word f94; word f95;
word f96; word f97; word f98; word f99;
word f100; word f101; word f102; word f103;
word f104; word f105; word f106; word f107;
word f108; word f109; word f110; word f111;
word f112; word f113; word f114; word f115;
word f116; word f117; word f118; word f119;
word f120; word f121; word f122; word f123;
word f124; word f125; word f126; word f127;
word f128; word f129; word f130; word f131;
word f132; word f133; word f134; word f135;
word f136; word f137; word f138; word f139;
word f140; word f141; word f142; word f143;
word f144; word f145; word f146; word f147;
word f148; word f149; word f150; word f151;
word f152; word f153; word f154; word f155;
word f156; word f157; word f158; word f159;
word f160; word f161; word f162; word f163;
word f164; word f165; word f166; word f167;
word f168; word f169; word f170; word f171;
word f172; word f173; word f174; word f175;
word f176; word f177; word f178; word f179;
word f180; word f181; word f182; word f183;
word f184; word f185; word f186; word f187;
word f188; word f189; word f190; word f191;
word f192; word f193; word f194; word f195;
word f196; word f197; word f198; word f199;
word f200; word f201; word f202; word f203;
word f204; word f205; word f206; word f207;
word f208; word f209; word f210; word f211;
word f212; word f213; word f214; word f215;
word f216; word f217; word f218; word f219;
word f220; word f221; word f222; word f223;
word f224; word f225; word f226; word f227;
word f228; word f229; word f230; word f231;
word f232; word f233; word f234; word f235;
word f236; word f237; word f238; word f239;
word f240; word f241; word f242; word f243;
word f244[7];
} globalframe = {
{0}, (word) EnableAborts←P4740, 0, (word) XR←VerboseCommit,
0, (word) PutCedarCoreProblems←P4620, 0, (word) ConvertToRefTab←P4560,
0, (word) ProgramListFromName←P4500, 0, (word) QualifiedName←P4440,
0, (word) CedarCoreReport←P4380, 0, (word) XR←Unload,
0, (word) XR←IsBound, 0, (word) XR←RaiseUnbound,
0, (word) XR←AddControl, 0, (word) AddToCM←P4080,
0, (word) XR←FirstControl, 0, (word) StartProgram←P3960,
0, (word) XR←StartProgram, 0, (word) LogStartTrap←P3840,
0, (word) ListStartTraps←P3780, 0, (word) XR←StartModule,
0, (word) XR←Start, 0, (word) XR←StartCedarModule,
0, (word) FixStartTraps←P3540, 0, (word) ListStartOrder←P3480,
0, (word) DoStartProgram←P3420, 0, (word) DoStartConfig←P3360,
0, (word) ProgramFromFrame←P3300, 0, (word) XR←DeclareGlobalFrame,
0, (word) XR←PopRename, 0, (word) XR←PushRename,
0, (word) KeyMatch←P3060, 0, (word) EmptyInterfaces←P3000,
0, (word) MaybeMonitorEnumerateEnviron←P2940, 0, (word) EnumerateEnviron←P2880,
0, (word) Lookup←P2820, 0, (word) AllocateTrapDescriptor←P2760,
0, (word) GetUnboundTrap←P2700, 0, (word) GetStartTrap←P2640,
0, (word) InterfaceNeedsWork←P2580, 0, (word) ConcreteTypeFromAbstractType←P2520,
0, (word) FindExporter←P2460, 0, (word) XR←ExportType,
0, (word) XR←ExportVar, 0, (word) XR←ImportProc,
0, (word) XR←ExportProc, 0, (word) NewAuxInterface←P2160,
0, (word) NewInterface←P2100, 0, (word) XR←HideNames,
0, (word) GetAnyInterface←P1980, 0, (word) XR←ExportInterface,
0, (word) XR←ImportInterface, 0, (word) XR←PopScope,
0, (word) XR←PushScope, 0, (word) InterfaceHash←P1680,
0, (word) InterfaceMatch←P1620, 0, (word) NewEnvironRefTab←P1560,
0, (word) AbortItem←P1500, 0, (word) AbortInterface←P1440,
0, (word) XR←AbortInstallation, 0, (word) CommitItem←P1320,
0, (word) CommitInterface←P1260, 0, (word) XR←CommitInstallation,
0, (word) CheckInterface←P1140, 0, (word) CheckInstallation←P1080,
0, (word) XR←BeginInstallation, 0, (word) GiveInspectionLock←P960,
0, (word) TakeInspectionLock←P900, 0, (word) GiveInstallationLock←P840,
0, (word) TakeInstallationLock←P780, 0, (word) InterfaceType←P720,
0, (word) InterfaceName←P660, 0, (word) ProgramType←P600,
0, (word) ObjectName←P540, 0, (word) EnumerateExports←P480,
0, (word) MaybeMonitorEnumerateInterfaces←P420, 0, (word) UnmonitoredEnumerateInterfaces←P360,
0, (word) EnumerateInterfaces←P300, 0, (word) EnumerateChildren←P240,
0, (word) Parent←P180, 0, (word) GlobalConfig←P120,
0, (word) Insert←P60, 0, (word) InstallationScopesImpl←P0,
{0}
};
static void NoName←Q7836()
{
register ptr gf←c0538 = (ptr) &globalframe;
word var←c40632;
(* (( (ptr) gf←c0538)+43) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c0538)+44) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
(* (( (ptr) gf←c0538)+45) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
(* (( (ptr) gf←c0538)+48) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
(* (( (ptr) gf←c0538)+51) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
(* (( (ptr) gf←c0538)+53) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string12);
(* (( (ptr) gf←c0538)+58) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string14);
(* (( (ptr) gf←c0538)+60) ) = (word) XR←GetTypeIndex((word) &string15, 0, (word) &string6);
(* (( (ptr) gf←c0538)+63) ) = (word) XR←GetTypeIndex((word) &string16, 0, (word) &string17);
(* (( (ptr) gf←c0538)+65) ) = (word) XR←GetTypeIndex((word) &string18, 0, (word) &string19);
(* (( (ptr) gf←c0538)+68) ) = (word) XR←GetTypeIndex((word) &string20, 0, (word) &string21);
(* (( (ptr) gf←c0538)+71) ) = (word) XR←GetTypeIndex((word) &string22, 0, (word) &string23);
(* (( (ptr) gf←c0538)+73) ) = (word) XR←GetTypeIndex((word) &string24, 0, (word) &string19);
(* (( (ptr) gf←c0538)+75) ) = (word) XR←GetTypeIndex((word) &string25, 0, (word) &string2);
(* (( (ptr) gf←c0538)+76) ) = (word) XR←GetTypeIndex((word) &string26, 0, (word) &string8);
(* (( (ptr) gf←c0538)+77) ) = (word) XR←GetTypeIndexS((word) (&string27));
(* (( (ptr) gf←c0538)+79) ) = (word) XR←GetTypeIndex((word) &string28, 0, (word) &string8);
(* (( (ptr) gf←c0538)+80) ) = (word) XR←GetTypeIndex((word) &string29, 0, (word) &string8);
(* (( (ptr) gf←c0538)+82) ) = (word) XR←GetTypeIndex((word) &string30, 0, (word) &string31);
(void) XR←DeclareGlobalFrame((word) "InstallationScopesImpl", &globalframe, (word) XR←GetTypeIndex((word) &string32, 0, (word) &string33)
, (word) (( (bPt) gf←c0538)+972)/* var←c35032 */ );
var←c40632 = (word) XR←ImportInterface((word) "RefTab", (word) XR←GetTypeIndexS((word) (&string34)), 16);
(* (( (ptr) gf←c0538)+246)/* var←c35192 */ ) = var←c40632;
(void) XR←ImportProcS(var←c40632, 67896835);
(void) XR←ImportProcS(var←c40632, 264193);
(void) XR←ImportProcS(var←c40632, 67635458);
(void) XR←ImportProcS(var←c40632, 134742786);
(void) XR←ImportProcS(var←c40632, 67895555);
(void) XR←ImportProcS(var←c40632, 67896579);
var←c40632 = (word) XR←ImportInterface((word) "RefTabBackdoor", (word) XR←GetTypeIndexS((word) (&string35)), 2);
(* (( (ptr) gf←c0538)+248)/* var←c39192 */ ) = var←c40632;
(void) XR←ImportProcS(var←c40632, 67633410);
var←c40632 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string36)), 43);
(* (( (ptr) gf←c0538)+249)/* var←c40248 */ ) = var←c40632;
(void) XR←ImportProcS(var←c40632, 67379457);
(void) XR←ImportProcS(var←c40632, 68419845);
(void) XR←ImportProcS(var←c40632, 67633666);
var←c40632 = (word) XR←ImportInterface((word) "RuntimeError", (word) XR←GetTypeIndexS((word) (&string37)), 27);
(* (( (ptr) gf←c0538)+245)/* var←c35096 */ ) = var←c40632;
var←c40632 = (word) XR←ImportInterface((word) "UXStrings", (word) XR←GetTypeIndexS((word) (&string38)), 9);
(* (( (ptr) gf←c0538)+247)/* var←c35416 */ ) = var←c40632;
(void) XR←ImportProcS(var←c40632, 67371265);
(void) XR←ImportProcS(var←c40632, 67633922);
var←c40632 = (word) XR←ExportInterface((word) "MesaLoadState", (word) XR←GetTypeIndexS((word) (&string39)), 20);
(* (( (ptr) gf←c0538)+250)/* var←c40664 */ ) = var←c40632;
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+836)/* var←c34488 */ , 0);
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+812)/* var←c34392 */ , 256);
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+788)/* var←c34296 */ , 512);
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+828)/* var←c34456 */ , 262913);
(void) XR←ExportType((word) "InterfaceRecord", (word) XR←GetTypeIndexS((word) (&string40)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
);
(void) XR←ExportType((word) "ProgramRep", (word) XR←GetTypeIndexS((word) (&string41)), (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6)
);
(void) XR←ExportType((word) "ConfigRep", (word) XR←GetTypeIndexS((word) (&string42)), (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4)
);
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+956)/* var←c34968 */ , 67110656);
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+948)/* var←c34936 */ , 67635201);
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+940)/* var←c34904 */ , 526594);
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+932)/* var←c34872 */ , 526850);
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+908)/* var←c34776 */ , 527106);
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+900)/* var←c34744 */ , 67636225);
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+380)/* var←c32664 */ , 67636481);
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+892)/* var←c34712 */ , 67374593);
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+884)/* var←c34680 */ , 67374849);
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+876)/* var←c34648 */ , 67375105);
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+636)/* var←c33688 */ , 67375873);
var←c40632 = (word) XR←ExportInterface((word) "MesaLoadStateBackdoor", (word) XR←GetTypeIndexS((word) (&string43)), 3);
(* (( (ptr) gf←c0538)+250)/* var←c40664 */ ) = var←c40632;
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+924)/* var←c34840 */ , 524290);
var←c40632 = (word) XR←ExportInterface((word) "MesaLoadStateQuery", (word) XR←GetTypeIndexS((word) (&string44)), 1);
(* (( (ptr) gf←c0538)+250)/* var←c40664 */ ) = var←c40632;
(void) XR←ExportProcS(var←c40632, (word) (( (bPt) gf←c0538)+372)/* var←c32632 */ , 67633154);
}
static void InstallationScopesImpl←P0(formal←c0118, formal←c0116)
word formal←c0118;
word formal←c0116;
{
register ptr gf←c40696 = (ptr) &globalframe;
/* InstallationScopesImpl: */
SOURCE(175, 28495)
SOURCE(1807, 54)
{
word var←c35064;
var←c35064 = XR←NewObject(16, (* (( (ptr) gf←c40696)+43) ));
(* (( (ptr) var←c35064)+3) ) = 0;
(* (( (ptr) gf←c40696)+32)/* keyInterfaceCache←v3560 */ ) = var←c35064;
};
SOURCE(5164, 19)
(* (( (ptr) gf←c40696)+38)/* StartFault←v4092 */ ) = (* (( (ptr) (* (( (ptr) gf←c40696)+245)/* var←c35096 */ ))+19) );
SOURCE(28440, 34)
(void) CheckInstallation←P1080((word) ((( (bPt) gf←c40696)+388)/* var←c32696 */ ));
SOURCE(28476, 20)
(void) XR←CommitInstallation();
SOURCE(28498, 17)
(void) ConvertToRefTab←P4560();
SOURCE(28525, 42)
SOURCE(28527, 40)
(void) EnableAborts←P4740((word) ((( (bPt) gf←c40696)+52)/* installationLockReleased←v3308 */ ));
SOURCE(28578, 40)
SOURCE(28580, 38)
(void) EnableAborts←P4740((word) ((( (bPt) gf←c40696)+80)/* inspectionLockReleased←v3364 */ ));
SOURCE(28638, 32)
(* (( (ptr) gf←c40696)+9)/* installationScopesStarted←v3196 */ ) = 1;
}
static void Insert←P60(i←v6880, e←v6908)
word i←v6880;
word e←v6908;
{
register ptr gf←c40728 = (ptr) &globalframe;
/* Insert: */
SOURCE(3080, 190)
SOURCE(3131, 23)
if ((e←v6908 == 0) || (i←v6880 == 0)) {
SOURCE(3154, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(3161, 109)
{
word var←c35128;
var←c35128 = (* (ptr) e←v6908 );
if ((var←c35128 == 0)) {
SOURCE(3195, 30)
{
word var←c35160;
var←c35160 = XR←NewObject(8, (* (( (ptr) gf←c40728)+48) ));
(* (ptr) var←c35160 ) = i←v6880;
(* (( (ptr) var←c35160)+1) ) = (* (( (ptr) e←v6908)+1) );
(* (( (ptr) e←v6908)+1) ) = var←c35160;
};
}
else {
if ((var←c35128 == 1)) {
SOURCE(3237, 33)
{
word var←c35224;
word pd45;
pd45 = (* (( (ptr) (* (( (ptr) gf←c40728)+246)/* var←c35192 */ ))+9) );
var←c35224 = (word) ( *( (fPt) ((* (ptr) pd45 ))))((* (( (ptr) e←v6908)+1) ), i←v6880, i←v6880, pd45);
};
}
else {
};
};
};
}
static word GlobalConfig←P120()
{
register ptr gf←c40760 = (ptr) &globalframe;
word var←c6968;
/* GlobalConfig: */
SOURCE(3293, 69)
SOURCE(3342, 20)
return((* (( (ptr) gf←c40760)+37)/* globalConfig←v3700 */ ));
}
static word Parent←P180(object←v7028)
W2 object←v7028;
{
word var←c7072;
/* Parent: */
SOURCE(3368, 198)
SOURCE(3434, 132)
{
W2 var←c35256;
var←c35256 = object←v7028;
{
word var←c35288;
var←c35288 = var←c35256.f0;
if ((var←c35288 == 1)) {
{
W2 c←v14316;
c←v14316 = var←c35256;
SOURCE(3487, 23)
return((* (ptr) c←v14316.f1 ));
};
}
else {
if ((var←c35288 == 0)) {
{
W2 p←v14360;
p←v14360 = var←c35256;
SOURCE(3542, 24)
return((* (( (ptr) p←v14360.f1)+4) ));
};
}
else {
SOURCE(3579, 5)
(void) XR←RaiseUnnamedError();
};
};
};
};
}
static void EnumerateChildren←P240(config←v7132, proc←v7160)
word config←v7132;
word proc←v7160;
{
/* EnumerateChildren: */
SOURCE(3590, 164)
SOURCE(3672, 82)
{
register word l←v14404;
l←v14404 = (* (( (ptr) config←v7132)+4) );
lab←L100003: ;
if ((l←v14404 != 0)) {
}
else {
goto lab←L100000;
};
SOURCE(3741, 13)
(void) ( *( (fPt) ((* (ptr) proc←v7160 ))))((* (W2Pt) (l←v14404) ), proc←v7160);
l←v14404 = (* (( (ptr) l←v14404)+2) );
goto lab←L100003;
lab←L100000: ;
};
}
static void EnumerateInterfaces←P300(config←v7220, proc←v7248)
word config←v7220;
word proc←v7248;
{
/* EnumerateInterfaces: */
SOURCE(3769, 139)
SOURCE(3857, 51)
(void) MaybeMonitorEnumerateInterfaces←P420(config←v7220, proc←v7248, 1);
}
static void UnmonitoredEnumerateInterfaces←P360(config←v7308, proc←v7336)
word config←v7308;
word proc←v7336;
{
/* UnmonitoredEnumerateInterfaces: */
SOURCE(3912, 151)
SOURCE(4011, 52)
(void) MaybeMonitorEnumerateInterfaces←P420(config←v7308, proc←v7336, 0);
}
static void MaybeMonitorEnumerateInterfaces←P420(config←v7396, formal←c0630, monitor←v7452)
word config←v7396;
word formal←c0630;
word monitor←v7452;
{
W7 var←c40792;
/* declaration of proc←v7424 skipped */
/* declaration of var←c35320 skipped */
var←c40792.f4/* proc←v7424 */ = formal←c0630;
/* MaybeMonitorEnumerateInterfaces: */
SOURCE(4067, 287)
{
word tmpAddr46;
tmpAddr46 = (word) (( (ptr) &var←c40792)+5)/* var←c35320 */ ;
(* (ptr) tmpAddr46 ) = ( ((word) (fPt) EachInterface←P4944) );
(* (( (ptr) tmpAddr46) + 1) ) = 1;
};
SOURCE(4283, 71)
(void) MaybeMonitorEnumerateEnviron←P2940((* (( (ptr) config←v7396)+6) ), (word) (( (bPt) &var←c40792)+20)/* var←c35320 */ , monitor←v7452)
;
}
static void EachInterface←P4944(interface←v14524, formal←c40824)
word interface←v14524;
word formal←c40824;
{
formal←c40824 = (formal←c40824 - 20);
/* EachInterface: */
SOURCE(4175, 103)
SOURCE(4221, 57)
{
word pd47;
pd47 = (* (( (ptr) formal←c40824)+4) );
(void) ( *( (fPt) ((* (ptr) pd47 ))))(interface←v14524, ((* (( (ptr) interface←v14524)+3) ) == 0), pd47);
};
}
static void EnumerateExports←P480(program←v7512, proc←v7540)
word program←v7512;
word proc←v7540;
{
/* EnumerateExports: */
SOURCE(4360, 194)
SOURCE(4448, 106)
{
register word l←v14552;
l←v14552 = (* (( (ptr) program←v7512)+5) );
lab←L100007: ;
if ((l←v14552 != 0)) {
}
else {
goto lab←L100004;
};
SOURCE(4517, 37)
(void) ( *( (fPt) ((* (ptr) proc←v7540 ))))((* (ptr) l←v14552 ), (* (( (ptr) l←v14552)+1) ), proc←v7540);
l←v14552 = (* (( (ptr) l←v14552)+2) );
goto lab←L100007;
lab←L100004: ;
};
}
static word ObjectName←P540(object←v7600)
W2 object←v7600;
{
register ptr gf←c40856 = (ptr) &globalframe;
word var←c7644;
/* ObjectName: */
SOURCE(4569, 237)
SOURCE(4642, 164)
{
W2 var←c35352;
var←c35352 = object←v7600;
{
word var←c35480;
var←c35480 = var←c35352.f0;
if ((var←c35480 == 1)) {
{
W2 c←v14680;
c←v14680 = var←c35352;
SOURCE(4695, 39)
{
word pd48;
pd48 = (* (( (ptr) (* (( (ptr) gf←c40856)+247)/* var←c35416 */ ))+7) );
return((word) ( *( (fPt) ((* (ptr) pd48 ))))((* (( (ptr) c←v14680.f1)+1) ), 2147483647, pd48));
};
};
}
else {
if ((var←c35480 == 0)) {
{
W2 p←v14724;
p←v14724 = var←c35352;
SOURCE(4766, 40)
{
word pd49;
pd49 = (* (( (ptr) (* (( (ptr) gf←c40856)+247)/* var←c35416 */ ))+7) );
return((word) ( *( (fPt) ((* (ptr) pd49 ))))((* (ptr) p←v14724.f1 ), 2147483647, pd49));
};
};
}
else {
SOURCE(4819, 5)
(void) XR←RaiseUnnamedError();
};
};
};
};
}
static word ProgramType←P600(program←v7704)
word program←v7704;
{
word var←c7748;
/* ProgramType: */
SOURCE(4830, 93)
SOURCE(4903, 20)
return((* (( (ptr) program←v7704)+2) ));
}
static word InterfaceName←P660(interface←v7808)
word interface←v7808;
{
register ptr gf←c40888 = (ptr) &globalframe;
word var←c7852;
/* InterfaceName: */
SOURCE(4929, 117)
SOURCE(5002, 44)
{
word pd50;
pd50 = (* (( (ptr) (* (( (ptr) gf←c40888)+247)/* var←c35416 */ ))+7) );
return((word) ( *( (fPt) ((* (ptr) pd50 ))))((* (ptr) interface←v7808 ), 2147483647, pd50));
};
}
static word InterfaceType←P720(interface←v7912)
word interface←v7912;
{
word var←c7956;
/* InterfaceType: */
SOURCE(5052, 106)
SOURCE(5132, 26)
return((* (( (ptr) interface←v7912)+1) ));
}
static void TakeInstallationLock←P780()
{
W4 var←c40920;
register ptr gf←c40952 = (ptr) &globalframe;
/* TakeInstallationLock: */
SOURCE(5277, 150)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c40952)+16)/* LOCK←v2832 */ ));
SOURCE(5316, 111)
{
word var←c0604;
var←c0604 = (word) &var←c40920;
(void) (word) XR←Enable(( ((word) (fPt) NoName←Q7896) ), ( ((word) (fPt) NoName←Q8076) ), var←c0604);
};
SOURCE(5277, 150)
(void) (XR←MonitorExit((word) (( (bPt) gf←c40952)+16)/* LOCK←v2832 */ ));
return;
}
static word NoName←Q7896(formal←c0547)
word formal←c0547;
{
register ptr gf←c0546 = (ptr) &globalframe;
SOURCE(5339, 63)
lab←L100012: ;
if ((* (( (ptr) gf←c0546)+12)/* installationLock←v3280 */ )) {
}
else {
goto lab←L100010;
};
SOURCE(5365, 37)
(void) (XR←Wait((word) (( (bPt) gf←c0546)+16)/* LOCK←v2832 */ , (word) (( (bPt) gf←c0546)+52)/* installationLockReleased←v3308 */ )
);
goto lab←L100012;
lab←L100010: ;
SOURCE(5404, 23)
(* (( (ptr) gf←c0546)+12)/* installationLock←v3280 */ ) = 1;
return(0);
}
static void GiveInstallationLock←P840()
{
register ptr gf←c40984 = (ptr) &globalframe;
/* GiveInstallationLock: */
SOURCE(5433, 99)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c40984)+16)/* LOCK←v2832 */ ));
SOURCE(5472, 24)
(* (( (ptr) gf←c40984)+12)/* installationLock←v3280 */ ) = 0;
SOURCE(5498, 34)
(void) (XR←Broadcast((word) (( (bPt) gf←c40984)+52)/* installationLockReleased←v3308 */ ));
SOURCE(5433, 99)
(void) (XR←MonitorExit((word) (( (bPt) gf←c40984)+16)/* LOCK←v2832 */ ));
return;
}
static void TakeInspectionLock←P900()
{
W4 var←c41016;
register ptr gf←c41048 = (ptr) &globalframe;
/* TakeInspectionLock: */
SOURCE(5538, 142)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c41048)+16)/* LOCK←v2832 */ ));
SOURCE(5575, 105)
{
word var←c0605;
var←c0605 = (word) &var←c41016;
(void) (word) XR←Enable(( ((word) (fPt) NoName←Q7956) ), ( ((word) (fPt) NoName←Q8016) ), var←c0605);
};
SOURCE(5538, 142)
(void) (XR←MonitorExit((word) (( (bPt) gf←c41048)+16)/* LOCK←v2832 */ ));
return;
}
static word NoName←Q7956(formal←c0551)
word formal←c0551;
{
register ptr gf←c0550 = (ptr) &globalframe;
SOURCE(5598, 59)
lab←L100017: ;
if ((* (( (ptr) gf←c0550)+19)/* inspectionLock←v3336 */ )) {
}
else {
goto lab←L100015;
};
SOURCE(5622, 35)
(void) (XR←Wait((word) (( (bPt) gf←c0550)+16)/* LOCK←v2832 */ , (word) (( (bPt) gf←c0550)+80)/* inspectionLockReleased←v3364 */ )
);
goto lab←L100017;
lab←L100015: ;
SOURCE(5659, 21)
(* (( (ptr) gf←c0550)+19)/* inspectionLock←v3336 */ ) = 1;
return(0);
}
static void GiveInspectionLock←P960()
{
register ptr gf←c41080 = (ptr) &globalframe;
/* GiveInspectionLock: */
SOURCE(5686, 93)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c41080)+16)/* LOCK←v2832 */ ));
SOURCE(5723, 22)
(* (( (ptr) gf←c41080)+19)/* inspectionLock←v3336 */ ) = 0;
SOURCE(5747, 32)
(void) (XR←Broadcast((word) (( (bPt) gf←c41080)+80)/* inspectionLockReleased←v3364 */ ));
SOURCE(5686, 93)
(void) (XR←MonitorExit((word) (( (bPt) gf←c41080)+16)/* LOCK←v2832 */ ));
return;
}
extern void XR←BeginInstallation()
{
register ptr gf←c41112 = (ptr) &globalframe;
word dummy←v14768 = 1;
/* BeginInstallation: */
SOURCE(5785, 517)
SOURCE(5887, 22)
(void) TakeInstallationLock←P780();
SOURCE(5911, 391)
if ((0 == (* (( (ptr) gf←c41112)+8)/* initialized←v3168 */ ))) {
SOURCE(5938, 29)
(* (( (ptr) gf←c41112)+37)/* globalConfig←v3700 */ ) = XR←NewObject(32, (* (( (ptr) gf←c41112)+44) ));
SOURCE(5969, 26)
(* (( (ptr) (* (( (ptr) gf←c41112)+37)/* globalConfig←v3700 */ ))+5) ) = 1;
SOURCE(5997, 27)
(* (( (ptr) (* (( (ptr) gf←c41112)+37)/* globalConfig←v3700 */ ))+7) ) = 1;
SOURCE(6026, 46)
(* (( (ptr) (* (( (ptr) gf←c41112)+37)/* globalConfig←v3700 */ ))+6) ) = XR←NewObject(8, (* (( (ptr) gf←c41112)+51) ));
SOURCE(6074, 28)
(* (( (ptr) gf←c41112)+28)/* currentConfig←v3448 */ ) = (* (( (ptr) gf←c41112)+37)/* globalConfig←v3700 */ );
SOURCE(6104, 40)
(* (( (ptr) gf←c41112)+26)/* uncommittedGlobalConfig←v3392 */ ) = XR←NewObject(32, (* (( (ptr) gf←c41112)+44) ));
SOURCE(6146, 37)
(* (( (ptr) (* (( (ptr) gf←c41112)+26)/* uncommittedGlobalConfig←v3392 */ ))+5) ) = 1;
SOURCE(6185, 38)
(* (( (ptr) (* (( (ptr) gf←c41112)+26)/* uncommittedGlobalConfig←v3392 */ ))+7) ) = 1;
SOURCE(6225, 57)
(* (( (ptr) (* (( (ptr) gf←c41112)+26)/* uncommittedGlobalConfig←v3392 */ ))+6) ) = XR←NewObject(8, (* (( (ptr) gf←c41112)+51)
));
SOURCE(6284, 18)
(* (( (ptr) gf←c41112)+8)/* initialized←v3168 */ ) = 1;
};
}
static void CheckInstallation←P1080(formal←c0631)
word formal←c0631;
{
W7 var←c41144;
/* declaration of report←v8232 skipped */
register ptr gf←c41176 = (ptr) &globalframe;
/* declaration of var←c35672 skipped */
word dummy←v14812 = 1;
var←c41144.f4/* report←v8232 */ = formal←c0631;
/* CheckInstallation: */
SOURCE(6311, 656)
{
word tmpAddr51;
tmpAddr51 = (word) (( (ptr) &var←c41144)+5)/* var←c35672 */ ;
(* (ptr) tmpAddr51 ) = ( ((word) (fPt) CheckDuplicate←P5148) );
(* (( (ptr) tmpAddr51) + 1) ) = 1;
};
SOURCE(6625, 68)
(void) EnumerateEnviron←P2880((* (( (ptr) (* (( (ptr) gf←c41176)+26)/* uncommittedGlobalConfig←v3392 */ ))+6) ), (word) (
( (bPt) &var←c41144)+20)/* var←c35672 */ );
SOURCE(6695, 103)
{
register word l←v14944;
l←v14944 = (* (( (ptr) gf←c41176)+31)/* interfacesNeedingWork←v3532 */ );
lab←L100021: ;
if ((l←v14944 != 0)) {
}
else {
goto lab←L100018;
};
SOURCE(6767, 31)
(void) CheckInterface←P1140((* (ptr) l←v14944 ), var←c41144.f4/* report←v8232 */ );
l←v14944 = (* (( (ptr) l←v14944)+1) );
goto lab←L100021;
lab←L100018: ;
};
SOURCE(6809, 158)
{
register word l←v15072;
l←v15072 = (* (( (ptr) gf←c41176)+30)/* typeClashes←v3504 */ );
lab←L100025: ;
if ((l←v15072 != 0)) {
}
else {
goto lab←L100022;
};
SOURCE(6871, 96)
{
word var←c35704;
{
word pd52;
pd52 = (* (( (ptr) (* (( (ptr) gf←c41176)+247)/* var←c35416 */ ))+7) );
var←c35704 = (word) ( *( (fPt) ((* (ptr) pd52 ))))((* (ptr) l←v15072 ), 2147483647, pd52);
};
{
W6 var←c35736;
var←c35736.f0 = 0;
var←c35736.f1 = 0;
var←c35736.f2 = 4;
var←c35736.f3 = var←c35704;
var←c35736.f4 = (* (( (ptr) l←v15072)+1) );
var←c35736.f5 = (* (( (ptr) l←v15072)+2) );
{
word pd53;
pd53 = (word) (var←c41144.f4/* report←v8232 */ );
(void) ( *( (fPt) ((* (ptr) pd53 ))))(var←c35736, pd53);
};
};
};
l←v15072 = (* (( (ptr) l←v15072)+3) );
goto lab←L100025;
lab←L100022: ;
};
}
static void CheckDuplicate←P5148(interface←v14916, formal←c41240)
word interface←v14916;
word formal←c41240;
{
register ptr gf←c41208 = (ptr) &globalframe;
W2 var←c0168;
word var←c0606;
formal←c41240 = (formal←c41240 - 20);
/* CheckDuplicate: */
SOURCE(6432, 188)
SOURCE(6480, 140)
{
W2 var←c35768;
var←c35768.f0 = (* (ptr) interface←v14916 );
var←c35768.f1 = 0;
(void) Lookup←P2820((word) &var←c0168, var←c35768, (* (( (ptr) (* (( (ptr) gf←c41208)+37)/* globalConfig←v3700 */ ))+6) ))
;
};
var←c0606 = var←c0168.f0;
if ((0 != var←c0606)) {
SOURCE(6570, 50)
{
W3 var←c35800;
W6 var←c0607;
var←c35800.f0 = interface←v14916;
var←c35800.f1 = 0;
var←c35800.f2 = 3;
(* (W3Pt) (word) &var←c0607 ) = var←c35800;
(* (W3Pt) (( (ptr) (word) &var←c0607) + 3) ) = (* (W3Pt) &dummy54 );
{
word pd55;
pd55 = (* (( (ptr) formal←c41240)+4) );
(void) ( *( (fPt) ((* (ptr) pd55 ))))(var←c0607, pd55);
};
};
};
}
static void CheckInterface←P1140(interface←v8292, report←v8320)
word interface←v8292;
word report←v8320;
{
word dummy←v15200 = 1;
/* CheckInterface: */
SOURCE(6982, 999)
SOURCE(7081, 900)
{
register word i←v15244 = 0;
register word noName←c35832;
{
word idx56;
noName←c35832 = (
idx56 = (* (( (ptr) interface←v8292)+3) ),
SGNCK(idx56)
);
};
if (( (int)i←v15244 >= (int)noName←c35832)) {
goto lab←L100026;
};
lab←L100029: ;
SOURCE(7120, 861)
{
W3 var←c35896;
{
word var←c35864;
var←c35864 = (* (( (ptr) interface←v8292)+2) );
{
word limit57;
var←c35896 = (* (( (W3Pt) (( (ptr) var←c35864)+3))+(
limit57 = (* (( (ptr) var←c35864)+2) ),
BCK(i←v15244, limit57)
)) );
};
};
{
word var←c36088;
var←c36088 = var←c35896.f1;
switch (var←c36088) {
case 1:
{
W3 peItem←v15288;
peItem←v15288 = var←c35896;
SOURCE(7202, 283)
if (((* (( (ptr) peItem←v15288.f2)+5) ) != 0) || ((peItem←v15288.f0 - 2) <= 1)) {
SOURCE(7271, 214)
{
register word l←v15332;
l←v15332 = peItem←v15288.f2;
lab←L100033: ;
if ((l←v15332 != 0)) {
/*1*/ }
else {
/*1*/ goto lab←L100030;
/*1*/ };
SOURCE(7343, 142)
if ((peItem←v15288.f0 == 0)) {
SOURCE(7372, 63)
/*1*/ {
/*1*/ W4 var←c35928;
/*1*/ W6 var←c0608;
/*1*/ var←c35928.f0 = interface←v8292;
/*1*/ var←c35928.f1 = i←v15244;
/*1*/ var←c35928.f2 = 1;
/*1*/ var←c35928.f3 = (* (( (ptr) l←v15332)+4) );
/*1*/ (* (W4Pt) (word) &var←c0608 ) = (var←c35928
/*1*/ );
/*1*/ (* (W2Pt) (( (ptr) (word) &var←c0608) + 4) ) = (* (W2Pt) &dummy54 );
/*1*/ (void) ( *( (fPt) ((* (ptr) report←v8320 ))))(var←c0608, report←v8320);
/*1*/ };
/*1*/ }
else {
SOURCE(7435, 50)
/*1*/ {
/*1*/ W4 var←c35960;
/*1*/ W6 var←c0609;
/*1*/ var←c35960.f0 = interface←v8292;
/*1*/ var←c35960.f1 = i←v15244;
/*1*/ var←c35960.f2 = 2;
/*1*/ var←c35960.f3 = (* (( (ptr) l←v15332)+4) );
/*1*/ (* (W4Pt) (word) &var←c0609 ) = (var←c35960
/*1*/ );
/*1*/ (* (W2Pt) (( (ptr) (word) &var←c0609) + 4) ) = (* (W2Pt) &dummy54 );
/*1*/ (void) ( *( (fPt) ((* (ptr) report←v8320 ))))(var←c0609, report←v8320);
/*1*/ };
/*1*/ };
l←v15332 = (* (( (ptr) l←v15332)+5) );
goto lab←L100033;
lab←L100030: ;
};
};
};
break;
case 2:
{
W3 veItem←v15460;
veItem←v15460 = var←c35896;
SOURCE(7539, 266)
if (((* (( (ptr) veItem←v15460.f2)+2) ) != 0) || (veItem←v15460.f0 != 0)) {
SOURCE(7592, 213)
{
register word l←v15504;
l←v15504 = veItem←v15460.f2;
lab←L100037: ;
if ((l←v15504 != 0)) {
/*1*/ }
else {
/*1*/ goto lab←L100034;
/*1*/ };
SOURCE(7663, 142)
if ((veItem←v15460.f0 == 0)) {
SOURCE(7692, 63)
/*1*/ {
/*1*/ W4 var←c35992;
/*1*/ W6 var←c0610;
/*1*/ var←c35992.f0 = interface←v8292;
/*1*/ var←c35992.f1 = i←v15244;
/*1*/ var←c35992.f2 = 1;
/*1*/ var←c35992.f3 = (* (( (ptr) l←v15504)+1) );
/*1*/ (* (W4Pt) (word) &var←c0610 ) = (var←c35992
/*1*/ );
/*1*/ (* (W2Pt) (( (ptr) (word) &var←c0610) + 4) ) = (* (W2Pt) &dummy54 );
/*1*/ (void) ( *( (fPt) ((* (ptr) report←v8320 ))))(var←c0610, report←v8320);
/*1*/ };
/*1*/ }
else {
SOURCE(7755, 50)
/*1*/ {
/*1*/ W4 var←c36024;
/*1*/ W6 var←c0611;
/*1*/ var←c36024.f0 = interface←v8292;
/*1*/ var←c36024.f1 = i←v15244;
/*1*/ var←c36024.f2 = 2;
/*1*/ var←c36024.f3 = (* (( (ptr) l←v15504)+1) );
/*1*/ (* (W4Pt) (word) &var←c0611 ) = (var←c36024
/*1*/ );
/*1*/ (* (W2Pt) (( (ptr) (word) &var←c0611) + 4) ) = (* (W2Pt) &dummy54 );
/*1*/ (void) ( *( (fPt) ((* (ptr) report←v8320 ))))(var←c0611, report←v8320);
/*1*/ };
/*1*/ };
l←v15504 = (* (( (ptr) l←v15504)+2) );
goto lab←L100037;
lab←L100034: ;
};
};
};
break;
case 3:
{
W3 piItem←v15632;
piItem←v15632 = var←c35896;
SOURCE(7854, 127)
{
register word l←v15676;
l←v15676 = piItem←v15632.f2;
lab←L100041: ;
if ((l←v15676 != 0)) {
}
else {
goto lab←L100038;
};
SOURCE(7918, 63)
{
W4 var←c36056;
W6 var←c0612;
var←c36056.f0 = interface←v8292;
var←c36056.f1 = i←v15244;
var←c36056.f2 = 0;
var←c36056.f3 = (* (( (ptr) l←v15676)+3) );
(* (W4Pt) (word) &var←c0612 ) = (var←c36056
);
(* (W2Pt) (( (ptr) (word) &var←c0612) + 4) ) = (* (W2Pt) &dummy54 );
(void) ( *( (fPt) ((* (ptr) report←v8320 ))))(var←c0612, report←v8320);
};
l←v15676 = (* (( (ptr) l←v15676)+4) );
goto lab←L100041;
lab←L100038: ;
};
};
break;
default:
break;
};
};
};
i←v15244 = (i←v15244 + 1);
if (( (int)i←v15244 < (int)noName←c35832)) {
goto lab←L100029;
};
lab←L100026: ;
};
}
extern void XR←CommitInstallation()
{
W6 var←c41272;
register ptr gf←c41304 = (ptr) &globalframe;
/* declaration of var←c36120 skipped */
word dummy←v15804 = 1;
/* CommitInstallation: */
SOURCE(8017, 972)
{
word tmpAddr58;
tmpAddr58 = (word) (( (ptr) &var←c41272)+4)/* var←c36120 */ ;
(* (ptr) tmpAddr58 ) = ( ((word) (fPt) MakeCommitted←P5640) );
(* (( (ptr) tmpAddr58) + 1) ) = 1;
};
SOURCE(8217, 20)
(void) TakeInspectionLock←P900();
SOURCE(8239, 67)
(void) EnumerateEnviron←P2880((* (( (ptr) (* (( (ptr) gf←c41304)+26)/* uncommittedGlobalConfig←v3392 */ ))+6) ), (word) (
( (bPt) &var←c41272)+16)/* var←c36120 */ );
SOURCE(8308, 40)
(void) EmptyInterfaces←P3000((* ((( (ptr) gf←c41304)+26)/* uncommittedGlobalConfig←v3392 */ ) ));
SOURCE(8350, 146)
{
register word l←v15936;
l←v15936 = (* (( (ptr) (* (( (ptr) gf←c41304)+26)/* uncommittedGlobalConfig←v3392 */ ))+4) );
lab←L100045: ;
if ((l←v15936 != 0)) {
}
else {
goto lab←L100042;
};
SOURCE(8436, 60)
{
word var←c36152;
var←c36152 = XR←NewObject(12, (* (( (ptr) gf←c41304)+53) ));
(* (W2Pt) var←c36152 ) = (* (W2Pt) l←v15936 );
(* (( (ptr) var←c36152)+2) ) = (* (( (ptr) (* (( (ptr) gf←c41304)+37)/* globalConfig←v3700 */ ))+4) );
(* (( (ptr) (* (( (ptr) gf←c41304)+37)/* globalConfig←v3700 */ ))+4) ) = var←c36152;
};
l←v15936 = (* (( (ptr) l←v15936)+2) );
goto lab←L100045;
lab←L100042: ;
};
SOURCE(8507, 38)
(* (( (ptr) (* (( (ptr) gf←c41304)+26)/* uncommittedGlobalConfig←v3392 */ ))+4) ) = 0;
SOURCE(8547, 128)
{
register word needsWork←v15980;
needsWork←v15980 = (* (( (ptr) gf←c41304)+31)/* interfacesNeedingWork←v3532 */ );
lab←L100049: ;
if ((needsWork←v15980 != 0)) {
}
else {
goto lab←L100046;
};
SOURCE(8643, 32)
(void) CommitInterface←P1260((* (ptr) (needsWork←v15980) ));
needsWork←v15980 = (* (( (ptr) needsWork←v15980)+1) );
goto lab←L100049;
lab←L100046: ;
};
SOURCE(8686, 199)
if (((* (( (ptr) gf←c41304)+35)/* lastUncommittedTypeExport←v3644 */ ) != 0)) {
SOURCE(8726, 44)
(* (( (ptr) (* (( (ptr) gf←c41304)+35)/* lastUncommittedTypeExport←v3644 */ ))+4) ) = (* (( (ptr) gf←c41304)+33)/* typeExports←v3588 */ );
SOURCE(8772, 36)
(* (( (ptr) gf←c41304)+33)/* typeExports←v3588 */ ) = (* (( (ptr) gf←c41304)+34)/* uncommittedTypeExports←v3616 */ );
SOURCE(8810, 56)
(* (( (ptr) gf←c41304)+35)/* lastUncommittedTypeExport←v3644 */ ) = 0;
(* (( (ptr) gf←c41304)+34)/* uncommittedTypeExports←v3616 */ ) = 0;
SOURCE(8868, 17)
(* (( (ptr) gf←c41304)+30)/* typeClashes←v3504 */ ) = 0;
};
SOURCE(8890, 27)
(* (( (ptr) gf←c41304)+31)/* interfacesNeedingWork←v3532 */ ) = 0;
SOURCE(8919, 24)
(* (( (ptr) gf←c41304)+27)/* newProgsAndConfigs←v3420 */ ) = 0;
SOURCE(8945, 20)
(void) GiveInspectionLock←P960();
SOURCE(8967, 22)
(void) GiveInstallationLock←P840();
}
static void MakeCommitted←P5640(interface←v15908, formal←c41368)
word interface←v15908;
word formal←c41368;
{
register ptr gf←c41336 = (ptr) &globalframe;
formal←c41368 = (formal←c41368 - 16);
/* MakeCommitted: */
SOURCE(8123, 89)
SOURCE(8170, 42)
(void) Insert←P60(interface←v15908, (* (( (ptr) (* (( (ptr) gf←c41336)+37)/* globalConfig←v3700 */ ))+6) ));
}
static void CommitInterface←P1260(interface←v8396)
word interface←v8396;
{
word dummy←v16108 = 1;
/* CommitInterface: */
SOURCE(8995, 141)
SOURCE(9073, 63)
{
register word i←v16152 = 0;
register word noName←c36184;
{
word idx59;
noName←c36184 = (
idx59 = (* (( (ptr) interface←v8396)+3) ),
SGNCK(idx59)
);
};
if (( (int)i←v16152 >= (int)noName←c36184)) {
goto lab←L100050;
};
lab←L100053: ;
SOURCE(9112, 24)
(void) CommitItem←P1320(interface←v8396, i←v16152);
i←v16152 = (i←v16152 + 1);
if (( (int)i←v16152 < (int)noName←c36184)) {
goto lab←L100053;
};
lab←L100050: ;
};
}
static void CommitItem←P1320(interface←v8456, i←v8484)
word interface←v8456;
word i←v8484;
{
word dummy←v16196 = 1;
/* CommitItem: */
SOURCE(9151, 1225)
SOURCE(9232, 1075)
{
W3 var←c36248;
{
word var←c36216;
var←c36216 = (* (( (ptr) interface←v8456)+2) );
{
word limit60;
var←c36248 = (* (( (W3Pt) (( (ptr) var←c36216)+3))+(
limit60 = (* (( (ptr) var←c36216)+2) ),
BCK(i←v8484, limit60)
)) );
};
};
{
word var←c36472;
var←c36472 = var←c36248.f1;
switch (var←c36472) {
case 0:
{
W2 n←v16240;
n←v16240 = (* (W2Pt) &var←c36248 );
SOURCE(9291, 6)
return;
};
case 1:
{
W3 up←v16284;
up←v16284 = var←c36248;
if ( ( (0 != (* (ptr) (* (( (ptr) interface←v8456)+2) ) )) ? ((up←v16284.f0 - 2) <= 1) : 0 ) ) {
}
else {
SOURCE(9452, 366)
SOURCE(9452, 366)
{
word prev←v16328;
word var←c36280;
word var←c0613;
word var←c36344;
SOURCE(9476, 125)
{
word limit62;
{
/*1*/ word limit61;
/*1*/ var←c36280 = (* (( (ptr) interface←v8456)+2) );
/*1*/ var←c0613 = (* (( (W3Pt) (( (ptr) var←c36280)+3))+(
/*1*/ limit61 = (* (( (ptr) var←c36280)+2) ),
/*1*/ BCK(i←v8484, limit61)
/*1*/ )) ).f0;
/*1*/ };
if ((var←c0613 == 1)) {
/*1*/ prev←v16328 = (* ((( (ptr) interface←v8456)+4)+(
/*1*/ limit62 = (* (( (ptr) interface←v8456)+3) ),
/*1*/ BCK(i←v8484, limit62)
/*1*/ )) );
/*1*/ }
else {
/*1*/ prev←v16328 = 0;
/*1*/ };
};
SOURCE(9603, 91)
{
word var←c36312;
var←c36312 = (word) GetStartTrap←P2640((* (( (ptr) up←v16284.f2)+1) ), (* (( (ptr) up←v16284.f2)+2) ), (* (( (ptr) up←v16284.f2)+3)
/*1*/ ), (* (( (ptr) up←v16284.f2)+4) ), (* (ptr) up←v16284.f2 ));
{
/*1*/ word limit63;
/*1*/ (* ((( (ptr) interface←v8456)+4)+(
/*1*/ limit63 = (* (( (ptr) interface←v8456)+3) ),
/*1*/ BCK(i←v8484, limit63)
/*1*/ )) ) = var←c36312;
/*1*/ };
};
SOURCE(9696, 42)
{
word limit64;
var←c36344 = (* (( (ptr) interface←v8456)+2) );
(* (( (W3Pt) (( (ptr) var←c36344)+3))+(
/*1*/ limit64 = (* (( (ptr) var←c36344)+2) ),
/*1*/ BCK(i←v8484, limit64)
/*1*/ )) ).f0 = 2;
};
SOURCE(9740, 75)
if ((prev←v16328 != 0)) {
SOURCE(9764, 51)
SOURCE(9766, 49)
{
/*1*/ word limit65;
/*1*/ (* (( (ptr) prev←v16328)+2) ) = (* ((( (ptr) interface←v8456)+4)+(
/*1*/ limit65 = (* (( (ptr) interface←v8456)+3) ),
/*1*/ BCK(i←v8484, limit65)
/*1*/ )) );
/*1*/ };
};
};
};
};
break;
case 2:
{
W3 uv←v16384;
uv←v16384 = var←c36248;
if ( ( (0 != (* (ptr) (* (( (ptr) interface←v8456)+2) ) )) ? (uv←v16384.f0 == 3) : 0 ) ) {
}
else {
{
word var←c36376;
SOURCE(9961, 49)
{
word limit66;
(* ((( (ptr) interface←v8456)+4)+(
/*1*/ limit66 = (* (( (ptr) interface←v8456)+3) ),
/*1*/ BCK(i←v8484, limit66)
/*1*/ )) ) = (* (ptr) uv←v16384.f2 );
};
SOURCE(10012, 38)
{
word limit67;
var←c36376 = (* (( (ptr) interface←v8456)+2) );
(* (( (W3Pt) (( (ptr) var←c36376)+3))+(
/*1*/ limit67 = (* (( (ptr) var←c36376)+2) ),
/*1*/ BCK(i←v8484, limit67)
/*1*/ )) ).f0 = 3;
};
};
};
};
break;
case 3:
{
W3 id←v16428;
id←v16428 = var←c36248;
if (((id←v16428.f0 - 1) <= 2)) {
}
else {
{
word var←c36440;
SOURCE(10163, 98)
{
word var←c36408;
var←c36408 = (word) GetUnboundTrap←P2700((* (ptr) id←v16428.f2 ), (* (( (ptr) id←v16428.f2)+1) ), (* (( (ptr) id←v16428.f2)+2)
/*1*/ ));
{
/*1*/ word limit68;
/*1*/ (* ((( (ptr) interface←v8456)+4)+(
/*1*/ limit68 = (* (( (ptr) interface←v8456)+3) ),
/*1*/ BCK(i←v8484, limit68)
/*1*/ )) ) = var←c36408;
/*1*/ };
};
SOURCE(10263, 44)
{
word limit69;
var←c36440 = (* (( (ptr) interface←v8456)+2) );
(* (( (W3Pt) (( (ptr) var←c36440)+3))+(
/*1*/ limit69 = (* (( (ptr) var←c36440)+2) ),
/*1*/ BCK(i←v8484, limit69)
/*1*/ )) ).f0 = 1;
};
};
};
};
break;
default:
break;
};
};
};
SOURCE(10332, 44)
SOURCE(10333, 43)
{
word var←c36536;
word var←c36504;
{
word limit70;
var←c36504 = (* (( (ptr) interface←v8456)+2) );
var←c36536 = (word) (( (W3Pt) (( (bPt) var←c36504)+12))+(
limit70 = (* (( (ptr) var←c36504)+2) ),
BCK(i←v8484, limit70)
));
};
(* (( (ptr) var←c36536)+1) ) = 0;
};
}
extern void XR←AbortInstallation()
{
register ptr gf←c41400 = (ptr) &globalframe;
word dummy←v16472 = 1;
/* AbortInstallation: */
SOURCE(10383, 478)
SOURCE(10487, 40)
(void) EmptyInterfaces←P3000((* ((( (ptr) gf←c41400)+26)/* uncommittedGlobalConfig←v3392 */ ) ));
SOURCE(10529, 127)
{
register word needsWork←v16516;
needsWork←v16516 = (* (( (ptr) gf←c41400)+31)/* interfacesNeedingWork←v3532 */ );
lab←L100057: ;
if ((needsWork←v16516 != 0)) {
}
else {
goto lab←L100054;
};
SOURCE(10625, 31)
(void) AbortInterface←P1440((* (ptr) (needsWork←v16516) ));
needsWork←v16516 = (* (( (ptr) needsWork←v16516)+1) );
goto lab←L100057;
lab←L100054: ;
};
SOURCE(10667, 27)
(* (( (ptr) gf←c41400)+31)/* interfacesNeedingWork←v3532 */ ) = 0;
SOURCE(10696, 38)
(* (( (ptr) (* (( (ptr) gf←c41400)+26)/* uncommittedGlobalConfig←v3392 */ ))+4) ) = 0;
SOURCE(10736, 24)
(* (( (ptr) gf←c41400)+27)/* newProgsAndConfigs←v3420 */ ) = 0;
SOURCE(10762, 56)
(* (( (ptr) gf←c41400)+35)/* lastUncommittedTypeExport←v3644 */ ) = 0;
(* (( (ptr) gf←c41400)+34)/* uncommittedTypeExports←v3616 */ ) = 0;
SOURCE(10820, 17)
(* (( (ptr) gf←c41400)+30)/* typeClashes←v3504 */ ) = 0;
SOURCE(10839, 22)
(void) GiveInstallationLock←P840();
}
static void AbortInterface←P1440(interface←v8560)
word interface←v8560;
{
word dummy←v16644 = 1;
/* AbortInterface: */
SOURCE(10867, 139)
SOURCE(10944, 62)
{
register word i←v16688 = 0;
register word noName←c36568;
{
word idx71;
noName←c36568 = (
idx71 = (* (( (ptr) interface←v8560)+3) ),
SGNCK(idx71)
);
};
if (( (int)i←v16688 >= (int)noName←c36568)) {
goto lab←L100058;
};
lab←L100061: ;
SOURCE(10983, 23)
(void) AbortItem←P1500(interface←v8560, i←v16688);
i←v16688 = (i←v16688 + 1);
if (( (int)i←v16688 < (int)noName←c36568)) {
goto lab←L100061;
};
lab←L100058: ;
};
}
static void AbortItem←P1500(interface←v8620, i←v8648)
word interface←v8620;
word i←v8648;
{
word dummy←v16732 = 1;
/* AbortItem: */
SOURCE(11021, 201)
SOURCE(11101, 121)
{
word var←c36632;
word var←c36600;
{
word limit72;
var←c36600 = (* (( (ptr) interface←v8620)+2) );
var←c36632 = (* (( (W3Pt) (( (ptr) var←c36600)+3))+(
limit72 = (* (( (ptr) var←c36600)+2) ),
BCK(i←v8648, limit72)
)) ).f1;
};
if ((var←c36632 == 0)) {
SOURCE(11151, 6)
return;
}
else {
SOURCE(11178, 44)
SOURCE(11179, 43)
{
word var←c36696;
word var←c36664;
{
word limit73;
var←c36664 = (* (( (ptr) interface←v8620)+2) );
var←c36696 = (word) (( (W3Pt) (( (bPt) var←c36664)+12))+(
limit73 = (* (( (ptr) var←c36664)+2) ),
BCK(i←v8648, limit73)
));
};
(* (( (ptr) var←c36696)+1) ) = 0;
};
};
};
}
static word NewEnvironRefTab←P1560()
{
register ptr gf←c41432 = (ptr) &globalframe;
word environ←v8708;
/* NewEnvironRefTab: */
SOURCE(11229, 154)
SOURCE(11229, 154)
environ←v8708 = 0;
SOURCE(11286, 97)
{
word var←c36760;
word var←c36792;
{
word pd74;
pd74 = (* (( (ptr) (* (( (ptr) gf←c41432)+246)/* var←c35192 */ ))+5) );
var←c36760 = (word) ( *( (fPt) ((* (ptr) pd74 ))))(17, (word) (( (bPt) gf←c41432)+756)/* var←c34168 */ , (word) (( (bPt) gf←c41432)+748)
/* var←c34136 */ , pd74);
};
var←c36792 = XR←NewObject(8, (* (( (ptr) gf←c41432)+51) ));
(* (ptr) var←c36792 ) = 1;
(* (( (ptr) var←c36792)+1) ) = var←c36760;
return(var←c36792);
};
}
static word InterfaceMatch←P1620(key1←v25620, key2←v25648)
word key1←v25620;
word key2←v25648;
{
word var←c25692;
word k1←v16776;
word k2←v16804;
/* InterfaceMatch: */
SOURCE(11389, 141)
SOURCE(11434, 30)
k1←v16776 = key1←v25620;
SOURCE(11466, 30)
k2←v16804 = key2←v25648;
SOURCE(11498, 32)
return((word) KeyMatch←P3060((* (W2Pt) k1←v16776 ), (* (W2Pt) k2←v16804 )));
}
static word InterfaceHash←P1680(key←v25752)
word key←v25752;
{
word var←c25796;
word k←v16848;
word name←v16876;
word hash←v16904 = 0;
word i←v16932 = 0;
/* InterfaceHash: */
SOURCE(11536, 215)
SOURCE(11579, 28)
k←v16848 = key←v25752;
SOURCE(11609, 26)
name←v16876 = (* (ptr) k←v16848 );
SOURCE(11666, 60)
lab←L100064: ;
if (((word) (* (( (bPt) name←v16876)+i←v16932) ) != 0)) {
}
else {
goto lab←L100062;
};
SOURCE(11691, 26)
hash←v16904 = (hash←v16904 + (word) (* (( (bPt) name←v16876)+i←v16932) ));
SOURCE(11719, 7)
i←v16932 = (i←v16932 + 1);
goto lab←L100064;
lab←L100062: ;
SOURCE(11737, 14)
return(hash←v16904);
}
extern void XR←PushScope(name←v8768)
word name←v8768;
{
register ptr gf←c41464 = (ptr) &globalframe;
word dummy←v16976 = 1;
/* PushScope: */
SOURCE(11757, 766)
SOURCE(11840, 43)
if ((0 == (* (( (ptr) gf←c41464)+8)/* initialized←v3168 */ ))) {
SOURCE(11864, 19)
(void) XR←BeginInstallation();
};
SOURCE(11899, 188)
if ( ( ((* (( (ptr) gf←c41464)+28)/* currentConfig←v3448 */ ) == (* (( (ptr) gf←c41464)+37)/* globalConfig←v3700 */ )) ? ((* (
( (ptr) gf←c41464)+29)/* currentProgram←v3476 */ ) != 0) : 0 ) ) {
SOURCE(11959, 20)
(void) XR←CommitInstallation();
SOURCE(12067, 20)
(* (( (ptr) gf←c41464)+29)/* currentProgram←v3476 */ ) = 0;
};
SOURCE(12092, 433)
{
word newScope←v17020;
SOURCE(12094, 168)
{
word var←c36856;
word var←c36920;
if ((0 != (* (( (ptr) gf←c41464)+9)/* installationScopesStarted←v3196 */ ))) {
var←c36856 = (word) NewEnvironRefTab←P1560();
}
else {
var←c36856 = XR←NewObject(8, (* (( (ptr) gf←c41464)+51) ));
};
var←c36920 = XR←NewObject(32, (* (( (ptr) gf←c41464)+44) ));
(* (ptr) var←c36920 ) = (* (( (ptr) gf←c41464)+28)/* currentConfig←v3448 */ );
(* (( (ptr) var←c36920)+1) ) = name←v8768;
(* (( (ptr) var←c36920)+6) ) = var←c36856;
newScope←v17020 = var←c36920;
};
SOURCE(12264, 211)
if (((* (( (ptr) gf←c41464)+28)/* currentConfig←v3448 */ ) == (* (( (ptr) gf←c41464)+37)/* globalConfig←v3700 */ ))) {
SOURCE(12301, 94)
{
word var←c36952;
var←c36952 = XR←NewObject(12, (* (( (ptr) gf←c41464)+53) ));
(* (ptr) var←c36952 ) = 1;
(* (( (ptr) var←c36952)+1) ) = newScope←v17020;
(* (( (ptr) var←c36952)+2) ) = (* (( (ptr) (* (( (ptr) gf←c41464)+26)/* uncommittedGlobalConfig←v3392 */ ))+4) );
(* (( (ptr) (* (( (ptr) gf←c41464)+26)/* uncommittedGlobalConfig←v3392 */ ))+4) ) = var←c36952;
};
}
else {
SOURCE(12402, 73)
{
word var←c36984;
var←c36984 = XR←NewObject(12, (* (( (ptr) gf←c41464)+53) ));
(* (ptr) var←c36984 ) = 1;
(* (( (ptr) var←c36984)+1) ) = newScope←v17020;
(* (( (ptr) var←c36984)+2) ) = (* (( (ptr) (* (( (ptr) gf←c41464)+28)/* currentConfig←v3448 */ ))+4) );
(* (( (ptr) (* (( (ptr) gf←c41464)+28)/* currentConfig←v3448 */ ))+4) ) = var←c36984;
};
};
SOURCE(12477, 24)
(* (( (ptr) gf←c41464)+28)/* currentConfig←v3448 */ ) = newScope←v17020;
SOURCE(12503, 20)
(* (( (ptr) gf←c41464)+29)/* currentProgram←v3476 */ ) = 0;
};
}
extern void XR←PopScope()
{
register ptr gf←c41496 = (ptr) &globalframe;
word dummy←v17064 = 1;
/* PopScope: */
SOURCE(12532, 177)
SOURCE(12609, 35)
if (((* (ptr) (* (( (ptr) gf←c41496)+28)/* currentConfig←v3448 */ ) ) == 0)) {
SOURCE(12644, 5)
(void) XR←RaiseUnnamedError();
};
SOURCE(12651, 36)
(* (( (ptr) gf←c41496)+28)/* currentConfig←v3448 */ ) = (* (ptr) (* (( (ptr) gf←c41496)+28)/* currentConfig←v3448 */ ) );
SOURCE(12689, 20)
(* (( (ptr) gf←c41496)+29)/* currentProgram←v3476 */ ) = 0;
}
extern word XR←ImportInterface(name←v8844, type←v8872, size←v8900)
word name←v8844;
word type←v8872;
word size←v8900;
{
register ptr gf←c41528 = (ptr) &globalframe;
word var←c8944;
W2 key←v17108;
/* ImportInterface: */
SOURCE(12716, 198)
SOURCE(12823, 23)
key←v17108.f0 = name←v8844;
key←v17108.f1 = type←v8872;
SOURCE(12848, 66)
return((word) GetAnyInterface←P1980(key←v17108, size←v8900, (* (( (ptr) gf←c41528)+28)/* currentConfig←v3448 */ )));
}
extern word XR←ExportInterface(name←v9004, type←v9032, size←v9060)
word name←v9004;
word type←v9032;
word size←v9060;
{
register ptr gf←c41560 = (ptr) &globalframe;
word var←c9104;
W2 key←v17152;
/* ExportInterface: */
SOURCE(12920, 199)
SOURCE(13027, 23)
key←v17152.f0 = name←v9004;
key←v17152.f1 = type←v9032;
SOURCE(13052, 67)
return((word) GetAnyInterface←P1980(key←v17152, size←v9060, (* (( (ptr) gf←c41560)+28)/* currentConfig←v3448 */ )));
}
static word GetAnyInterface←P1980(key←v9164, size←v9192, config←v9220)
W2 key←v9164;
word size←v9192;
word config←v9220;
{
register ptr gf←c41592 = (ptr) &globalframe;
word interface←v9264;
word found←v17196 = 0;
/* GetAnyInterface: */
SOURCE(13125, 895)
SOURCE(13125, 895)
interface←v9264 = 0;
SOURCE(13241, 96)
if ((config←v9220 == (* (( (ptr) gf←c41592)+37)/* globalConfig←v3700 */ ))) {
SOURCE(13269, 68)
{
W2 var←c37144;
(void) Lookup←P2820((word) &var←c37144, key←v9164, (* (( (ptr) (* (( (ptr) gf←c41592)+26)/* uncommittedGlobalConfig←v3392 */ ))+6)
));
interface←v9264 = var←c37144.f1;
found←v17196 = var←c37144.f0;
};
};
SOURCE(13339, 69)
if ((0 == found←v17196)) {
SOURCE(13357, 51)
{
W2 var←c37176;
(void) Lookup←P2820((word) &var←c37176, key←v9164, (* (( (ptr) config←v9220)+6) ));
interface←v9264 = var←c37176.f1;
found←v17196 = var←c37176.f0;
};
};
if ( ( (0 != (* (( (ptr) config←v9220)+5) )) ? (0 == found←v17196) : 0 ) ) {
SOURCE(13457, 206)
if ((key←v9164.f1 != 0)) {
SOURCE(13499, 35)
interface←v9264 = (word) NewInterface←P2100(size←v9192, key←v9164);
SOURCE(13536, 127)
if ((config←v9220 == (* (( (ptr) gf←c41592)+37)/* globalConfig←v3700 */ ))) {
SOURCE(13564, 61)
(void) Insert←P60(interface←v9264, (* (( (ptr) (* (( (ptr) gf←c41592)+26)/* uncommittedGlobalConfig←v3392 */ ))+6) ));
}
else {
SOURCE(13625, 38)
(void) Insert←P60(interface←v9264, (* (( (ptr) config←v9220)+6) ));
};
};
}
else {
if ( ( (0 != (* (( (ptr) config←v9220)+5) )) ? (0 != found←v17196) : 0 ) ) {
SOURCE(13699, 104)
if (((* (( (ptr) interface←v9264)+3) ) == 0)) {
SOURCE(13726, 58)
return((word) GetAnyInterface←P1980(key←v9164, size←v9192, (* (ptr) config←v9220 )));
}
else {
SOURCE(13784, 19)
return(interface←v9264);
};
}
else {
if ( ( (0 == (* (( (ptr) config←v9220)+5) )) ? (0 == found←v17196) : 0 ) ) {
SOURCE(13836, 49)
{
word var←c37240;
var←c37240 = (word) NewInterface←P2100(0, key←v9164);
(void) Insert←P60(var←c37240, (* (( (ptr) config←v9220)+6) ));
};
SOURCE(13887, 50)
return((word) GetAnyInterface←P1980(key←v9164, size←v9192, (* (ptr) config←v9220 )));
}
else {
if ( ( (0 == (* (( (ptr) config←v9220)+5) )) ? (0 != found←v17196) : 0 ) ) {
SOURCE(13970, 50)
return((word) GetAnyInterface←P1980(key←v9164, size←v9192, (* (ptr) config←v9220 )));
};
};
};
};
SOURCE(13125, 895)
return(interface←v9264);
}
extern void XR←HideNames()
{
register ptr gf←c41624 = (ptr) &globalframe;
word dummy←v17240 = 1;
/* HideNames: */
SOURCE(14121, 106)
SOURCE(14200, 27)
(* (( (ptr) (* (( (ptr) gf←c41624)+28)/* currentConfig←v3448 */ ))+5) ) = 1;
}
static word NewInterface←P2100(size←v9340, key←v9368)
word size←v9340;
W2 key←v9368;
{
register ptr gf←c41656 = (ptr) &globalframe;
word interface←v9412;
word dummy←v17284 = 1;
/* NewInterface: */
SOURCE(14233, 302)
SOURCE(14233, 302)
interface←v9412 = 0;
SOURCE(14338, 40)
{
word var←c37336;
word var←c37368;
word var←c37400;
var←c37336 = SGNCK(size←v9340);
var←c37368 = ((word) var←c37336 << 2);
var←c37400 = XR←NewObject((16 + var←c37368), (* (( (ptr) gf←c41656)+43) ));
(* (( (ptr) var←c37400)+3) ) = var←c37336;
interface←v9412 = var←c37400;
};
SOURCE(14380, 19)
(* (W2Pt) interface←v9412 ) = key←v9368;
SOURCE(14401, 134)
if (( (int)size←v9340 > (int)0)) {
SOURCE(14420, 37)
(* (( (ptr) interface←v9412)+2) ) = (word) NewAuxInterface←P2160(size←v9340);
SOURCE(14459, 46)
(* (ptr) (* (( (ptr) interface←v9412)+2) ) ) = 0;
SOURCE(14507, 28)
(* (( (ptr) (* (( (ptr) interface←v9412)+2) ))+1) ) = 0;
};
SOURCE(14233, 302)
return(interface←v9412);
}
static word NewAuxInterface←P2160(size←v9472)
word size←v9472;
{
register ptr gf←c41688 = (ptr) &globalframe;
word aux←v9516;
word dummy←v17328 = 1;
/* NewAuxInterface: */
SOURCE(14544, 199)
SOURCE(14544, 199)
aux←v9516 = 0;
SOURCE(14647, 37)
{
word var←c37432;
word var←c37464;
word var←c37496;
var←c37432 = SGNCK(size←v9472);
var←c37464 = ((word) var←c37432 * 12);
var←c37496 = XR←NewObject((12 + var←c37464), (* (( (ptr) gf←c41688)+58) ));
(* (( (ptr) var←c37496)+2) ) = var←c37432;
aux←v9516 = var←c37496;
};
SOURCE(14686, 57)
{
register word i←v17372 = 0;
register word noName←c37528;
noName←c37528 = size←v9472;
if (( (int)i←v17372 >= (int)noName←c37528)) {
goto lab←L100065;
};
lab←L100068: ;
SOURCE(14713, 30)
{
word var←c37560;
{
word limit75;
var←c37560 = (word) (( (W3Pt) (( (bPt) aux←v9516)+12))+(
limit75 = (* (( (ptr) aux←v9516)+2) ),
BCK(i←v17372, limit75)
));
};
(* (ptr) var←c37560 ) = 0;
(* (( (ptr) var←c37560)+1) ) = 0;
};
i←v17372 = (i←v17372 + 1);
if (( (int)i←v17372 < (int)noName←c37528)) {
goto lab←L100068;
};
lab←L100065: ;
};
SOURCE(14544, 199)
return(aux←v9516);
}
extern void XR←ExportProc(interface←v9576, item←v9604, proc←v9632, unitsOut←v9660, unitsIn←v9688, argsIn←v9716)
word interface←v9576;
word item←v9604;
word proc←v9632;
word unitsOut←v9660;
word unitsIn←v9688;
word argsIn←v9716;
{
register ptr gf←c41720 = (ptr) &globalframe;
word dummy←v17416 = 1;
/* ExportProc: */
SOURCE(14758, 580)
SOURCE(14925, 264)
{
word var←c37624;
word var←c37592;
word var←c37880;
word var←c37816;
word var←c37848;
{
word limit76;
var←c37592 = (* (( (ptr) interface←v9576)+2) );
var←c37624 = (* (( (W3Pt) (( (ptr) var←c37592)+3))+(
limit76 = (* (( (ptr) var←c37592)+2) ),
BCK(item←v9604, limit76)
)) ).f1;
};
switch (var←c37624) {
case 0: case 3:
SOURCE(14995, 96)
{
word var←c37688;
word var←c37656;
word var←c37720;
{
word limit77;
var←c37656 = (* (( (ptr) interface←v9576)+2) );
var←c37688 = (word) (( (W3Pt) (( (bPt) var←c37656)+12))+(
limit77 = (* (( (ptr) var←c37656)+2) ),
BCK(item←v9604, limit77)
));
};
{
word var←c37752;
word var←c37784;
var←c37752 = XR←NewObject(24, (* (( (ptr) gf←c41720)+60) ));
var←c37784 = var←c37752;
(* (ptr) var←c37784 ) = proc←v9632;
(* (( (ptr) var←c37784)+1) ) = unitsOut←v9660;
(* (( (ptr) var←c37784)+2) ) = unitsIn←v9688;
(* (( (ptr) var←c37784)+3) ) = argsIn←v9716;
(* (( (ptr) var←c37784)+4) ) = (* (( (ptr) gf←c41720)+29)/* currentProgram←v3476 */ );
var←c37720 = var←c37752;
};
(* (( (ptr) var←c37688)+1) ) = 1;
(* (( (ptr) var←c37688)+2) ) = var←c37720;
};
break;
case 1:
SOURCE(15119, 70)
{
word limit78;
var←c37880 = (* (( (ptr) interface←v9576)+2) );
var←c37816 = XR←NewObject(24, (* (( (ptr) gf←c41720)+60) ));
(* (ptr) var←c37816 ) = proc←v9632;
(* (( (ptr) var←c37816)+1) ) = unitsOut←v9660;
(* (( (ptr) var←c37816)+2) ) = unitsIn←v9688;
(* (( (ptr) var←c37816)+3) ) = argsIn←v9716;
(* (( (ptr) var←c37816)+4) ) = (* (( (ptr) gf←c41720)+29)/* currentProgram←v3476 */ );
{
word limit79;
var←c37848 = (* (( (ptr) interface←v9576)+2) );
(* (( (ptr) var←c37816)+5) ) = (* (( (W3Pt) (( (ptr) var←c37848)+3))+(
limit79 = (* (( (ptr) var←c37848)+2) ),
BCK(item←v9604, limit79)
)) ).f2;
};
(* (( (W3Pt) (( (ptr) var←c37880)+3))+(
limit78 = (* (( (ptr) var←c37880)+2) ),
BCK(item←v9604, limit78)
)) ).f2 = var←c37816;
};
break;
case 2:
SOURCE(15215, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(15231, 29)
(void) InterfaceNeedsWork←P2580(interface←v9576);
SOURCE(15262, 76)
{
word var←c37912;
var←c37912 = XR←NewObject(12, (* (( (ptr) gf←c41720)+63) ));
(* (ptr) var←c37912 ) = interface←v9576;
(* (( (ptr) var←c37912)+1) ) = SGNCK(item←v9604);
(* (( (ptr) var←c37912)+2) ) = (* (( (ptr) (* (( (ptr) gf←c41720)+29)/* currentProgram←v3476 */ ))+5) );
(* (( (ptr) (* (( (ptr) gf←c41720)+29)/* currentProgram←v3476 */ ))+5) ) = var←c37912;
};
}
extern void XR←ImportProc(interface←v9792, item←v9820, unitsOut←v9848, unitsIn←v9876, argsIn←v9904)
word interface←v9792;
word item←v9820;
word unitsOut←v9848;
word unitsIn←v9876;
word argsIn←v9904;
{
register ptr gf←c41752 = (ptr) &globalframe;
word dummy←v17460 = 1;
word var←c37944;
word var←c0614;
/* ImportProc: */
SOURCE(15344, 574)
SOURCE(15499, 70)
{
word limit80;
var←c37944 = (* (( (ptr) interface←v9792)+2) );
var←c0614 = (* (( (W3Pt) (( (ptr) var←c37944)+3))+(
limit80 = (* (( (ptr) var←c37944)+2) ),
BCK(item←v9820, limit80)
)) ).f0;
};
if (((var←c0614 - 2) <= 1)) {
SOURCE(15563, 6)
return;
};
SOURCE(15571, 243)
{
word var←c38008;
word var←c37976;
word var←c38264;
word var←c38200;
word var←c38232;
{
word limit81;
var←c37976 = (* (( (ptr) interface←v9792)+2) );
var←c38008 = (* (( (W3Pt) (( (ptr) var←c37976)+3))+(
limit81 = (* (( (ptr) var←c37976)+2) ),
BCK(item←v9820, limit81)
)) ).f1;
};
switch (var←c38008) {
case 0:
SOURCE(15626, 104)
{
word var←c38072;
word var←c38040;
word var←c38104;
{
word limit82;
var←c38040 = (* (( (ptr) interface←v9792)+2) );
var←c38072 = (word) (( (W3Pt) (( (bPt) var←c38040)+12))+(
limit82 = (* (( (ptr) var←c38040)+2) ),
BCK(item←v9820, limit82)
));
};
{
word var←c38136;
word var←c38168;
var←c38136 = XR←NewObject(20, (* (( (ptr) gf←c41752)+65) ));
var←c38168 = var←c38136;
(* (ptr) var←c38168 ) = unitsOut←v9848;
(* (( (ptr) var←c38168)+1) ) = unitsIn←v9876;
(* (( (ptr) var←c38168)+2) ) = argsIn←v9904;
(* (( (ptr) var←c38168)+3) ) = (* (( (ptr) gf←c41752)+29)/* currentProgram←v3476 */ );
var←c38104 = var←c38136;
};
(* (( (ptr) var←c38072)+1) ) = 3;
(* (( (ptr) var←c38072)+2) ) = var←c38104;
};
break;
case 3:
SOURCE(15750, 64)
{
word limit83;
var←c38264 = (* (( (ptr) interface←v9792)+2) );
var←c38200 = XR←NewObject(20, (* (( (ptr) gf←c41752)+65) ));
(* (ptr) var←c38200 ) = unitsOut←v9848;
(* (( (ptr) var←c38200)+1) ) = unitsIn←v9876;
(* (( (ptr) var←c38200)+2) ) = argsIn←v9904;
(* (( (ptr) var←c38200)+3) ) = (* (( (ptr) gf←c41752)+29)/* currentProgram←v3476 */ );
{
word limit84;
var←c38232 = (* (( (ptr) interface←v9792)+2) );
(* (( (ptr) var←c38200)+4) ) = (* (( (W3Pt) (( (ptr) var←c38232)+3))+(
limit84 = (* (( (ptr) var←c38232)+2) ),
BCK(item←v9820, limit84)
)) ).f2;
};
(* (( (W3Pt) (( (ptr) var←c38264)+3))+(
limit83 = (* (( (ptr) var←c38264)+2) ),
BCK(item←v9820, limit83)
)) ).f2 = var←c38200;
};
break;
case 1:
break;
case 2:
SOURCE(15873, 5)
(void) XR←RaiseUnnamedError();
break;
};
};
SOURCE(15889, 29)
(void) InterfaceNeedsWork←P2580(interface←v9792);
}
extern void XR←ExportVar(interface←v9964, item←v9992, addr←v10020)
word interface←v9964;
word item←v9992;
word addr←v10020;
{
register ptr gf←c41784 = (ptr) &globalframe;
word dummy←v17504 = 1;
/* ExportVar: */
SOURCE(15924, 402)
SOURCE(16047, 239)
{
word var←c38328;
word var←c38296;
word var←c38584;
word var←c38520;
word var←c38552;
{
word limit85;
var←c38296 = (* (( (ptr) interface←v9964)+2) );
var←c38328 = (* (( (W3Pt) (( (ptr) var←c38296)+3))+(
limit85 = (* (( (ptr) var←c38296)+2) ),
BCK(item←v9992, limit85)
)) ).f1;
};
switch (var←c38328) {
case 0: case 3:
SOURCE(16117, 67)
{
word var←c38392;
word var←c38360;
word var←c38424;
{
word limit86;
var←c38360 = (* (( (ptr) interface←v9964)+2) );
var←c38392 = (word) (( (W3Pt) (( (bPt) var←c38360)+12))+(
limit86 = (* (( (ptr) var←c38360)+2) ),
BCK(item←v9992, limit86)
));
};
{
word var←c38456;
word var←c38488;
var←c38456 = XR←NewObject(12, (* (( (ptr) gf←c41784)+68) ));
var←c38488 = var←c38456;
(* (ptr) var←c38488 ) = addr←v10020;
(* (( (ptr) var←c38488)+1) ) = (* (( (ptr) gf←c41784)+29)/* currentProgram←v3476 */ );
var←c38424 = var←c38456;
};
(* (( (ptr) var←c38392)+1) ) = 2;
(* (( (ptr) var←c38392)+2) ) = var←c38424;
};
break;
case 1:
SOURCE(16212, 5)
(void) XR←RaiseUnnamedError();
break;
case 2:
SOURCE(16243, 43)
{
word limit87;
var←c38584 = (* (( (ptr) interface←v9964)+2) );
var←c38520 = XR←NewObject(12, (* (( (ptr) gf←c41784)+68) ));
(* (ptr) var←c38520 ) = addr←v10020;
(* (( (ptr) var←c38520)+1) ) = (* (( (ptr) gf←c41784)+29)/* currentProgram←v3476 */ );
{
word limit88;
var←c38552 = (* (( (ptr) interface←v9964)+2) );
(* (( (ptr) var←c38520)+2) ) = (* (( (W3Pt) (( (ptr) var←c38552)+3))+(
limit88 = (* (( (ptr) var←c38552)+2) ),
BCK(item←v9992, limit88)
)) ).f2;
};
(* (( (W3Pt) (( (ptr) var←c38584)+3))+(
limit87 = (* (( (ptr) var←c38584)+2) ),
BCK(item←v9992, limit87)
)) ).f2 = (var←c38520
);
};
break;
};
};
SOURCE(16297, 29)
(void) InterfaceNeedsWork←P2580(interface←v9964);
}
extern void XR←ExportType(typeName←v10092, abstract←v10120, concrete←v10148)
word typeName←v10092;
word abstract←v10120;
word concrete←v10148;
{
register ptr gf←c41816 = (ptr) &globalframe;
word export←v17548;
word doExport←v17576 = 1;
/* ExportType: */
SOURCE(16332, 755)
SOURCE(16424, 68)
export←v17548 = (word) FindExporter←P2460(abstract←v10120, (* (( (ptr) gf←c41816)+34)/* uncommittedTypeExports←v3616 */ ))
;
SOURCE(16517, 63)
if ((export←v17548 == 0)) {
SOURCE(16536, 44)
export←v17548 = (word) FindExporter←P2460(abstract←v10120, (* (( (ptr) gf←c41816)+33)/* typeExports←v3588 */ ));
};
if ( ( (export←v17548 != 0) ? ((* (( (ptr) export←v17548)+2) ) != concrete←v10148) : 0 ) ) {
SOURCE(16650, 82)
{
word var←c38616;
var←c38616 = XR←NewObject(16, (* (( (ptr) gf←c41816)+71) ));
(* (ptr) var←c38616 ) = typeName←v10092;
(* (( (ptr) var←c38616)+1) ) = (* (( (ptr) gf←c41816)+29)/* currentProgram←v3476 */ );
(* (( (ptr) var←c38616)+2) ) = (* (( (ptr) export←v17548)+3) );
(* (( (ptr) var←c38616)+3) ) = (* (( (ptr) gf←c41816)+30)/* typeClashes←v3504 */ );
(* (( (ptr) gf←c41816)+30)/* typeClashes←v3504 */ ) = var←c38616;
};
}
else {
if ( ( (export←v17548 != 0) ? ((* (( (ptr) export←v17548)+2) ) == concrete←v10148) : 0 ) ) {
SOURCE(16786, 16)
doExport←v17576 = 0;
};
};
SOURCE(16821, 266)
if ((0 != doExport←v17576)) {
SOURCE(16840, 247)
if (((* (( (ptr) gf←c41816)+34)/* uncommittedTypeExports←v3616 */ ) == 0)) {
SOURCE(16875, 111)
{
word var←c38648;
{
word var←c38680;
word var←c38712;
var←c38680 = XR←NewObject(20, (* (( (ptr) gf←c41816)+73) ));
var←c38712 = var←c38680;
(* (ptr) var←c38712 ) = typeName←v10092;
(* (( (ptr) var←c38712)+1) ) = abstract←v10120;
(* (( (ptr) var←c38712)+2) ) = concrete←v10148;
(* (( (ptr) var←c38712)+3) ) = (* (( (ptr) gf←c41816)+29)/* currentProgram←v3476 */ );
var←c38648 = var←c38680;
};
(* (( (ptr) gf←c41816)+35)/* lastUncommittedTypeExport←v3644 */ ) = var←c38648;
(* (( (ptr) gf←c41816)+34)/* uncommittedTypeExports←v3616 */ ) = var←c38648;
};
}
else {
SOURCE(16986, 101)
{
word var←c38744;
var←c38744 = XR←NewObject(20, (* (( (ptr) gf←c41816)+73) ));
(* (ptr) var←c38744 ) = typeName←v10092;
(* (( (ptr) var←c38744)+1) ) = abstract←v10120;
(* (( (ptr) var←c38744)+2) ) = concrete←v10148;
(* (( (ptr) var←c38744)+3) ) = (* (( (ptr) gf←c41816)+29)/* currentProgram←v3476 */ );
(* (( (ptr) var←c38744)+4) ) = (* (( (ptr) gf←c41816)+34)/* uncommittedTypeExports←v3616 */ );
(* (( (ptr) gf←c41816)+34)/* uncommittedTypeExports←v3616 */ ) = var←c38744;
};
};
};
}
static word FindExporter←P2460(abstract←v10208, list←v10236)
word abstract←v10208;
word list←v10236;
{
word var←c10280;
/* FindExporter: */
SOURCE(17096, 197)
SOURCE(17177, 94)
{
register word l←v17620;
l←v17620 = list←v10236;
lab←L100072: ;
if ((l←v17620 != 0)) {
}
else {
goto lab←L100069;
};
SOURCE(17226, 45)
if (((* (( (ptr) l←v17620)+1) ) == abstract←v10208)) {
SOURCE(17262, 9)
return(l←v17620);
};
l←v17620 = (* (( (ptr) l←v17620)+4) );
goto lab←L100072;
lab←L100069: ;
};
SOURCE(17282, 11)
return(0);
}
static word ConcreteTypeFromAbstractType←P2520(abstract←v10340)
word abstract←v10340;
{
register ptr gf←c41848 = (ptr) &globalframe;
word concrete←v10384;
word export←v17664;
/* ConcreteTypeFromAbstractType: */
SOURCE(17299, 252)
SOURCE(17409, 57)
export←v17664 = (word) FindExporter←P2460(abstract←v10340, (* (( (ptr) gf←c41848)+33)/* typeExports←v3588 */ ));
SOURCE(17468, 83)
if ((export←v17664 != 0)) {
SOURCE(17487, 35)
return((* (( (ptr) export←v17664)+2) ));
}
else {
SOURCE(17522, 29)
return(0);
};
}
static void InterfaceNeedsWork←P2580(interface←v10444)
word interface←v10444;
{
register ptr gf←c41880 = (ptr) &globalframe;
word dummy←v17708 = 1;
/* InterfaceNeedsWork: */
SOURCE(17557, 274)
SOURCE(17638, 120)
{
register word ints←v17752;
ints←v17752 = (* (( (ptr) gf←c41880)+31)/* interfacesNeedingWork←v3532 */ );
lab←L100076: ;
if ((ints←v17752 != 0)) {
}
else {
goto lab←L100073;
};
SOURCE(17721, 37)
if (((* (ptr) ints←v17752 ) == interface←v10444)) {
SOURCE(17752, 6)
return;
};
ints←v17752 = (* (( (ptr) ints←v17752)+1) );
goto lab←L100076;
lab←L100073: ;
};
SOURCE(17769, 62)
{
word var←c38776;
var←c38776 = XR←NewObject(8, (* (( (ptr) gf←c41880)+48) ));
(* (ptr) var←c38776 ) = interface←v10444;
(* (( (ptr) var←c38776)+1) ) = (* (( (ptr) gf←c41880)+31)/* interfacesNeedingWork←v3532 */ );
(* (( (ptr) gf←c41880)+31)/* interfacesNeedingWork←v3532 */ ) = var←c38776;
};
}
static word GetStartTrap←P2640(unitsOut←v10576, unitsIn←v10604, argsIn←v10632, prog←v10660, proc←v10688)
word unitsOut←v10576;
word unitsIn←v10604;
word argsIn←v10632;
word prog←v10660;
word proc←v10688;
{
register ptr gf←c41912 = (ptr) &globalframe;
word var←c10748;
word original←v17880;
word trapInfo←v17936;
/* GetStartTrap: */
SOURCE(17917, 498)
SOURCE(18033, 31)
original←v17880 = proc←v10688;
SOURCE(18185, 64)
trapInfo←v17936 = XR←NewObject(12, (* (( (ptr) gf←c41912)+75) ));
SOURCE(18251, 29)
(* (W2Pt) trapInfo←v17936 ) = (* (W2Pt) original←v17880 );
SOURCE(18282, 24)
(* (( (ptr) trapInfo←v17936)+2) ) = prog←v10660;
SOURCE(18308, 77)
{
word var←c38840;
var←c38840 = (word) XR←GetStartTrap(unitsOut←v10576, unitsIn←v10604, argsIn←v10632);
(* (ptr) original←v17880 ) = var←c38840;
(* (( (ptr) original←v17880)+1) ) = trapInfo←v17936;
};
SOURCE(18387, 28)
return(original←v17880);
}
static word GetUnboundTrap←P2700(unitsOut←v10808, unitsIn←v10836, argsIn←v10864)
word unitsOut←v10808;
word unitsIn←v10836;
word argsIn←v10864;
{
word var←c10908;
word trapDesc←v18192;
/* GetUnboundTrap: */
SOURCE(18422, 383)
SOURCE(18636, 62)
trapDesc←v18192 = (word) AllocateTrapDescriptor←P2760();
SOURCE(18700, 75)
{
word var←c38872;
var←c38872 = (word) XR←GetUnboundTrap(unitsOut←v10808, unitsIn←v10836, argsIn←v10864);
(* (ptr) trapDesc←v18192 ) = var←c38872;
(* (( (ptr) trapDesc←v18192)+1) ) = 2;
(* (( (ptr) trapDesc←v18192)+2) ) = 0;
};
SOURCE(18777, 28)
return(trapDesc←v18192);
}
static word AllocateTrapDescriptor←P2760()
{
register ptr gf←c41944 = (ptr) &globalframe;
word d←v11100;
/* AllocateTrapDescriptor: */
SOURCE(19043, 330)
SOURCE(19118, 156)
if (((* (( (ptr) gf←c41944)+39)/* trapDescriptors←v5100 */ ) == 0) || ((* (( (ptr) gf←c41944)+40)/* nextDescriptor←v5184 */ ) == 337)) {
SOURCE(19191, 63)
{
word var←c38904;
word var←c38968;
var←c38904 = XR←NewObject(4044, (* (( (ptr) gf←c41944)+77) ));
var←c38968 = XR←NewObject(8, (* (( (ptr) gf←c41944)+76) ));
(* (ptr) var←c38968 ) = var←c38904;
(* (( (ptr) var←c38968)+1) ) = (* (( (ptr) gf←c41944)+39)/* trapDescriptors←v5100 */ );
(* (( (ptr) gf←c41944)+39)/* trapDescriptors←v5100 */ ) = var←c38968;
};
SOURCE(19256, 18)
(* (( (ptr) gf←c41944)+40)/* nextDescriptor←v5184 */ ) = 0;
};
SOURCE(19287, 47)
SOURCE(19289, 45)
{
word idx89;
d←v11100 = (word) (( (W3Pt) (* (ptr) (* (( (ptr) gf←c41944)+39)/* trapDescriptors←v5100 */ ) ))+(
idx89 = (* (( (ptr) gf←c41944)+40)/* nextDescriptor←v5184 */ ),
BCK(idx89, 337)
));
};
SOURCE(19337, 36)
(* (( (ptr) gf←c41944)+40)/* nextDescriptor←v5184 */ ) = ((* (( (ptr) gf←c41944)+40)/* nextDescriptor←v5184 */ ) + 1);
SOURCE(19043, 330)
return(d←v11100);
}
static void Lookup←P2820(formal←c0392, key←v11172, e←v11200)
word formal←c0392;
W2 key←v11172;
word e←v11200;
{
register ptr gf←c41976 = (ptr) &globalframe;
word found←v11244;
word interface←v11272;
/* Lookup: */
SOURCE(19379, 519)
SOURCE(19379, 519)
interface←v11272 = 0;
SOURCE(19465, 401)
{
W2 var←c39000;
var←c39000 = (* (W2Pt) e←v11200 );
{
word var←c39096;
var←c39096 = var←c39000.f0;
if ((var←c39096 == 0)) {
{
W2 listrep←v18420;
listrep←v18420 = var←c39000;
SOURCE(19515, 119)
{
register word l←v18464;
l←v18464 = listrep←v18420.f1;
lab←L100081: ;
if ((l←v18464 != 0)) {
}
else {
goto lab←L100078;
};
SOURCE(19578, 56)
if ((0 != (word) KeyMatch←P3060((* (W2Pt) (* (ptr) l←v18464 ) ), key←v11172))) {
SOURCE(19613, 21)
interface←v11272 = (* (ptr) l←v18464 );
found←v11244 = 1;
goto lab←L100077;
};
l←v18464 = (* (( (ptr) l←v18464)+1) );
goto lab←L100081;
lab←L100078: ;
};
SOURCE(19646, 18)
found←v11244 = 0;
interface←v11272 = 0;
goto lab←L100077;
};
}
else {
if ((var←c39096 == 1)) {
{
W2 tabrep←v18592;
tabrep←v18592 = var←c39000;
SOURCE(19706, 162)
{
word found←v18636;
word interface←v18664 = 0;
SOURCE(19737, 27)
(* (W2Pt) (* (( (ptr) gf←c41976)+32)/* keyInterfaceCache←v3560 */ ) ) = key←v11172;
SOURCE(19766, 64)
{
W2 var←c39064;
{
word pd90;
pd90 = (* (( (ptr) (* (( (ptr) gf←c41976)+246)/* var←c35192 */ ))+7) );
(void) ( *( (fPt) ((* (ptr) pd90 ))))((word) &var←c39064, tabrep←v18592.f1, (* (( (ptr) gf←c41976)+32)/* keyInterfaceCache←v3560 */ ), pd90)
;
};
interface←v18664 = var←c39064.f1;
found←v18636 = var←c39064.f0;
};
SOURCE(19832, 34)
found←v11244 = found←v18636;
interface←v11272 = interface←v18664;
goto lab←L100077;
};
};
}
else {
};
};
};
};
SOURCE(19880, 18)
found←v11244 = 0;
interface←v11272 = 0;
/* removed tail goto */
lab←L100077: ;
(* (ptr) formal←c0392 ) = found←v11244;
(* (( (ptr) formal←c0392)+1) ) = interface←v11272;
return;
}
static void EnumerateEnviron←P2880(e←v11332, p←v11360)
word e←v11332;
word p←v11360;
{
/* EnumerateEnviron: */
SOURCE(19904, 111)
SOURCE(19975, 40)
(void) MaybeMonitorEnumerateEnviron←P2940(e←v11332, p←v11360, 1);
}
static void MaybeMonitorEnumerateEnviron←P2940(e←v11480, formal←c0632, monitor←v11536)
word e←v11480;
word formal←c0632;
word monitor←v11536;
{
W7 var←c42008;
/* declaration of p←v11508 skipped */
register ptr gf←c42040 = (ptr) &globalframe;
/* declaration of var←c39128 skipped */
var←c42008.f4/* p←v11508 */ = formal←c0632;
/* MaybeMonitorEnumerateEnviron: */
SOURCE(20019, 426)
{
word tmpAddr91;
tmpAddr91 = (word) (( (ptr) &var←c42008)+5)/* var←c39128 */ ;
(* (ptr) tmpAddr91 ) = ( ((word) (fPt) EachPair←P6756) );
(* (( (ptr) tmpAddr91) + 1) ) = 1;
};
SOURCE(20117, 328)
{
W2 var←c39160;
var←c39160 = (* (W2Pt) e←v11480 );
{
word var←c39256;
var←c39256 = var←c39160.f0;
if ((var←c39256 == 0)) {
{
W2 listrep←v18720;
listrep←v18720 = var←c39160;
SOURCE(20167, 73)
{
register word l←v18764;
l←v18764 = listrep←v18720.f1;
lab←L100085: ;
if ((l←v18764 != 0)) {
}
else {
goto lab←L100082;
};
SOURCE(20230, 10)
{
word pd92;
pd92 = (word) (var←c42008.f4/* p←v11508 */ );
(void) ( *( (fPt) ((* (ptr) pd92 ))))((* (ptr) (l←v18764) ), pd92);
};
l←v18764 = (* (( (ptr) l←v18764)+1) );
goto lab←L100085;
lab←L100082: ;
};
};
}
else {
if ((var←c39256 == 1)) {
{
W2 tabrep←v18892;
tabrep←v18892 = var←c39160;
SOURCE(20284, 163)
SOURCE(20351, 94)
{
word var←c39224;
word pd93;
pd93 = (word) ( (0 != monitor←v11536) ? (* (( (ptr) (* (( (ptr) gf←c42040)+246)/* var←c35192 */ ))+13) ) : (* (( (ptr) (* (
( (ptr) gf←c42040)+248)/* var←c39192 */ ))+5) ) ) ;
var←c39224 = (word) ( *( (fPt) ((* (ptr) pd93 ))))(tabrep←v18892.f1, (word) (( (bPt) &var←c42008)+20)/* var←c39128 */ , pd93)
;
};
};
}
else {
};
};
};
};
}
static word EachPair←P6756(key←v30604, val←v30632, formal←c42072)
word key←v30604;
word val←v30632;
word formal←c42072;
{
word quit←v30676;
formal←c42072 = (formal←c42072 - 20);
/* EachPair: */
SOURCE(20286, 42)
SOURCE(20286, 42)
quit←v30676 = 0;
SOURCE(20330, 16)
{
word pd94;
pd94 = (* (( (ptr) formal←c42072)+4) );
(void) ( *( (fPt) ((* (ptr) pd94 ))))(val←v30632, pd94);
};
SOURCE(20286, 42)
return(quit←v30676);
}
static void EmptyInterfaces←P3000(config←v11656)
word config←v11656;
{
register ptr gf←c42104 = (ptr) &globalframe;
/* EmptyInterfaces: */
SOURCE(20470, 151)
SOURCE(20522, 99)
{
word var←c39288;
var←c39288 = (* (ptr) (* (( (ptr) config←v11656)+6) ) );
if ((var←c39288 == 0)) {
SOURCE(20572, 15)
(* (( (ptr) (* (( (ptr) config←v11656)+6) ))+1) ) = 0;
}
else {
if ((var←c39288 == 1)) {
SOURCE(20599, 22)
{
word pd95;
pd95 = (* (( (ptr) (* (( (ptr) gf←c42104)+246)/* var←c35192 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd95 ))))((* ((( (ptr) (* (( (ptr) config←v11656)+6) ))+1)) ), pd95);
};
}
else {
};
};
};
}
static word KeyMatch←P3060(k1←v11716, k2←v11744)
W2 k1←v11716;
W2 k2←v11744;
{
word var←c11788;
word dummy←v18980 = 1;
/* KeyMatch: */
SOURCE(20644, 234)
SOURCE(20722, 48)
if (( (int)(word) strcmp(k1←v11716.f0, k2←v11744.f0) != (int)0)) {
SOURCE(20757, 13)
return(0);
};
SOURCE(20772, 81)
if ((k1←v11716.f1 == 0) || (k2←v11744.f1 == 0)) {
SOURCE(20841, 12)
return(1);
};
SOURCE(20855, 23)
return((k1←v11716.f1 == k2←v11744.f1));
}
extern void XR←PushRename()
{
/* PushRename: */
}
extern void XR←PopRename()
{
/* PopRename: */
}
extern void XR←DeclareGlobalFrame(name←v12012, frame←v12040, type←v12068, main←v12096)
word name←v12012;
word frame←v12040;
word type←v12068;
word main←v12096;
{
register ptr gf←c42136 = (ptr) &globalframe;
/* DeclareGlobalFrame: */
SOURCE(21090, 605)
SOURCE(21206, 78)
if ( ( ((* (( (ptr) gf←c42136)+28)/* currentConfig←v3448 */ ) == (* (( (ptr) gf←c42136)+37)/* globalConfig←v3700 */ )) ? ((* (
( (ptr) gf←c42136)+29)/* currentProgram←v3476 */ ) != 0) : 0 ) ) {
SOURCE(21264, 20)
(void) XR←CommitInstallation();
};
SOURCE(21333, 364)
{
word program←v19024;
SOURCE(21335, 89)
program←v19024 = XR←NewObject(28, (* (( (ptr) gf←c42136)+45) ));
(* (ptr) program←v19024 ) = name←v12012;
(* (( (ptr) program←v19024)+1) ) = frame←v12040;
(* (( (ptr) program←v19024)+2) ) = type←v12068;
(* (( (ptr) program←v19024)+3) ) = XR←CheckProc(main←v12096);
(* (( (ptr) program←v19024)+4) ) = (* (( (ptr) gf←c42136)+28)/* currentConfig←v3448 */ );
SOURCE(21426, 207)
if (((* (( (ptr) gf←c42136)+28)/* currentConfig←v3448 */ ) == (* (( (ptr) gf←c42136)+37)/* globalConfig←v3700 */ ))) {
SOURCE(21461, 99)
{
word var←c39352;
var←c39352 = XR←NewObject(12, (* (( (ptr) gf←c42136)+53) ));
(* (( (ptr) var←c39352)+1) ) = program←v19024;
(* (( (ptr) var←c39352)+2) ) = (* (( (ptr) (* (( (ptr) gf←c42136)+26)/* uncommittedGlobalConfig←v3392 */ ))+4) );
(* (( (ptr) (* (( (ptr) gf←c42136)+26)/* uncommittedGlobalConfig←v3392 */ ))+4) ) = var←c39352;
};
}
else {
SOURCE(21560, 73)
{
word var←c39384;
var←c39384 = XR←NewObject(12, (* (( (ptr) gf←c42136)+53) ));
(* (( (ptr) var←c39384)+1) ) = program←v19024;
(* (( (ptr) var←c39384)+2) ) = (* (( (ptr) (* (( (ptr) gf←c42136)+28)/* currentConfig←v3448 */ ))+4) );
(* (( (ptr) (* (( (ptr) gf←c42136)+28)/* currentConfig←v3448 */ ))+4) ) = var←c39384;
};
};
SOURCE(21635, 34)
{
word var←c39416;
var←c39416 = XR←NewObject(8, (* (( (ptr) gf←c42136)+79) ));
(* (ptr) var←c39416 ) = program←v19024;
(* (( (ptr) var←c39416)+1) ) = (* (( (ptr) gf←c42136)+36)/* programs←v3672 */ );
(* (( (ptr) gf←c42136)+36)/* programs←v3672 */ ) = var←c39416;
};
SOURCE(21671, 24)
(* (( (ptr) gf←c42136)+29)/* currentProgram←v3476 */ ) = program←v19024;
};
}
static word ProgramFromFrame←P3300(frame←v12172)
word frame←v12172;
{
register ptr gf←c42168 = (ptr) &globalframe;
word var←c12216;
word dummy←v19068 = 1;
/* ProgramFromFrame: */
SOURCE(21704, 219)
SOURCE(21799, 102)
{
register word l←v19112;
l←v19112 = (* (( (ptr) gf←c42168)+36)/* programs←v3672 */ );
lab←L100089: ;
if ((l←v19112 != 0)) {
}
else {
goto lab←L100086;
};
SOURCE(21856, 45)
if (((* (( (ptr) (* (ptr) l←v19112 ))+1) ) == frame←v12172)) {
SOURCE(21886, 15)
return((* (ptr) l←v19112 ));
};
l←v19112 = (* (( (ptr) l←v19112)+1) );
goto lab←L100089;
lab←L100086: ;
};
SOURCE(21912, 11)
return(0);
}
static void DoStartConfig←P3360(config←v12276)
word config←v12276;
{
word dummy←v19240 = 1;
/* DoStartConfig: */
SOURCE(21929, 317)
SOURCE(21987, 21)
(* (( (ptr) config←v12276)+7) ) = 1;
SOURCE(22010, 236)
{
register word l←v19284;
l←v19284 = (* (( (ptr) config←v12276)+2) );
lab←L100093: ;
if ((l←v19284 != 0)) {
}
else {
goto lab←L100090;
};
SOURCE(22090, 156)
{
W2 var←c39448;
var←c39448 = (* (W2Pt) l←v19284 );
{
word var←c39480;
var←c39480 = var←c39448.f0;
if ((var←c39480 == 1)) {
{
W2 config←v19328;
config←v19328 = var←c39448;
SOURCE(22149, 28)
(void) DoStartConfig←P3360(config←v19328.f1);
};
}
else {
if ((var←c39480 == 0)) {
{
W2 program←v19372;
program←v19372 = var←c39448;
SOURCE(22215, 31)
(void) DoStartProgram←P3420(program←v19372.f1);
};
}
else {
SOURCE(22259, 5)
(void) XR←RaiseUnnamedError();
};
};
};
};
l←v19284 = (* (( (ptr) l←v19284)+2) );
goto lab←L100093;
lab←L100090: ;
};
}
static void DoStartProgram←P3420(program←v12336)
word program←v12336;
{
register ptr gf←c42200 = (ptr) &globalframe;
word startedInstallationScopes←v19416;
/* DoStartProgram: */
SOURCE(22279, 330)
SOURCE(22323, 59)
startedInstallationScopes←v19416 = (* (( (ptr) gf←c42200)+9)/* installationScopesStarted←v3196 */ );
SOURCE(22384, 30)
if ((0 != (* (( (ptr) program←v12336)+6) ))) {
SOURCE(22408, 6)
return;
};
SOURCE(22416, 193)
if ((0 != (word) FixStartTraps←P3540(program←v12336))) {
SOURCE(22449, 14)
{
word pd96;
pd96 = (* (( (ptr) program←v12336)+3) );
(void) ( *( (fPt) ((* (ptr) pd96 ))))(pd96);
};
SOURCE(22465, 81)
startedInstallationScopes←v19416 = (startedInstallationScopes←v19416 != (* (( (ptr) gf←c42200)+9)/* installationScopesStarted←v3196 */ ));
SOURCE(22548, 61)
if ((0 != startedInstallationScopes←v19416)) {
SOURCE(22582, 27)
{
word var←c39512;
var←c39512 = (word) FixStartTraps←P3540(program←v12336);
};
};
};
}
static word ListStartOrder←P3480()
{
register ptr gf←c42232 = (ptr) &globalframe;
word list←v12480;
/* ListStartOrder: */
SOURCE(22653, 203)
SOURCE(22653, 203)
list←v12480 = 0;
SOURCE(22731, 125)
{
register word tail←v19460;
tail←v19460 = (* (( (ptr) gf←c42232)+41)/* startOrder←v5576 */ );
lab←L100097: ;
if ((tail←v19460 != 0)) {
}
else {
goto lab←L100094;
};
SOURCE(22801, 55)
{
word var←c39544;
word var←c39608;
{
W2 var←c39576;
var←c39576.f0 = 0;
var←c39576.f1 = (* (ptr) tail←v19460 );
var←c39544 = (word) QualifiedName←P4440(var←c39576);
};
var←c39608 = XR←NewObject(8, (* (( (ptr) gf←c42232)+80) ));
(* (ptr) var←c39608 ) = var←c39544;
(* (( (ptr) var←c39608)+1) ) = list←v12480;
list←v12480 = var←c39608;
};
tail←v19460 = (* (( (ptr) tail←v19460)+1) );
goto lab←L100097;
lab←L100094: ;
};
SOURCE(22653, 203)
return(list←v12480);
}
static word FixStartTraps←P3540(program←v12624)
word program←v12624;
{
register ptr gf←c42264 = (ptr) &globalframe;
word doStart←v12668;
/* FixStartTraps: */
SOURCE(22871, 619)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c42264)+16)/* LOCK←v2832 */ ));
SOURCE(22944, 29)
doStart←v12668 = (0 == (* (( (ptr) program←v12624)+6) ));
SOURCE(22975, 22)
(* (( (ptr) program←v12624)+6) ) = 1;
SOURCE(23000, 415)
{
register word l←v19588;
l←v19588 = (* (( (ptr) program←v12624)+5) );
lab←L100101: ;
if ((l←v19588 != 0)) {
}
else {
goto lab←L100098;
};
{
word int←v19716;
word item←v19744;
word var←c39640;
word var←c0615;
SOURCE(23069, 34)
int←v19716 = (* (ptr) l←v19588 );
SOURCE(23105, 25)
item←v19744 = (* (( (ptr) l←v19588)+1) );
SOURCE(23134, 281)
{
word limit97;
var←c39640 = (* (( (ptr) int←v19716)+2) );
var←c0615 = (* (( (W3Pt) (( (ptr) var←c39640)+3))+(
limit97 = (* (( (ptr) var←c39640)+2) ),
BCK(item←v19744, limit97)
)) ).f0;
};
if ((var←c0615 == 2)) {
SOURCE(23190, 230)
{
word t←v19788;
word trapInfo←v19816;
SOURCE(23192, 56)
{
word limit98;
t←v19788 = (* ((( (ptr) int←v19716)+4)+(
limit98 = (* (( (ptr) int←v19716)+3) ),
BCK(item←v19744, limit98)
)) );
};
SOURCE(23250, 66)
trapInfo←v19816 = XR←Narrow((* (( (ptr) t←v19788)+1) ), (* (( (ptr) gf←c42264)+75) ));
SOURCE(23318, 97)
if (((* (( (ptr) trapInfo←v19816)+2) ) == program←v12624)) {
{
word var←c39672;
SOURCE(23356, 22)
(* (W2Pt) t←v19788 ) = (* (W2Pt) trapInfo←v19816 );
SOURCE(23380, 35)
{
word limit99;
var←c39672 = (* (( (ptr) int←v19716)+2) );
(* (( (W3Pt) (( (ptr) var←c39672)+3))+(
/*1*/ limit99 = (* (( (ptr) var←c39672)+2) ),
/*1*/ BCK(item←v19744, limit99)
/*1*/ )) ).f0 = 3;
};
};
};
};
};
};
l←v19588 = (* (( (ptr) l←v19588)+2) );
goto lab←L100101;
lab←L100098: ;
};
SOURCE(23436, 54)
if ((0 != doStart←v12668)) {
SOURCE(23452, 38)
{
word var←c39704;
var←c39704 = XR←NewObject(8, (* (( (ptr) gf←c42264)+79) ));
(* (ptr) var←c39704 ) = program←v12624;
(* (( (ptr) var←c39704)+1) ) = (* (( (ptr) gf←c42264)+41)/* startOrder←v5576 */ );
(* (( (ptr) gf←c42264)+41)/* startOrder←v5576 */ ) = var←c39704;
};
};
SOURCE(22871, 619)
(void) (XR←MonitorExit((word) (( (bPt) gf←c42264)+16)/* LOCK←v2832 */ ));
return(doStart←v12668);
}
extern void XR←StartCedarModule(config←v12728)
word config←v12728;
{
register ptr gf←c42296 = (ptr) &globalframe;
/* EnsureConfigStarted: */
SOURCE(23497, 275)
SOURCE(23567, 25)
if ((config←v12728 == 0)) {
SOURCE(23586, 6)
return;
};
SOURCE(23594, 29)
if ((0 != (* (( (ptr) config←v12728)+7) ))) {
SOURCE(23617, 6)
return;
};
SOURCE(23625, 124)
if ((0 != (* (( (ptr) gf←c42296)+10)/* cedarCoreStarted←v3224 */ ))) {
SOURCE(23652, 34)
(void) XR←StartCedarModule((* (ptr) (config←v12728) ));
SOURCE(23688, 29)
if ((0 != (* (( (ptr) config←v12728)+7) ))) {
SOURCE(23711, 6)
return;
};
}
else {
SOURCE(23726, 23)
(* (( (ptr) gf←c42296)+10)/* cedarCoreStarted←v3224 */ ) = 1;
};
SOURCE(23751, 21)
(void) DoStartConfig←P3360(config←v12728);
}
extern void XR←Start(frame←v12788)
word frame←v12788;
{
register ptr gf←c42328 = (ptr) &globalframe;
/* StartFrame: */
SOURCE(23778, 260)
SOURCE(23834, 24)
if ((frame←v12788 == 0)) {
SOURCE(23852, 6)
return;
};
SOURCE(23860, 180)
{
word program←v19896;
SOURCE(23862, 42)
program←v19896 = (word) ProgramFromFrame←P3300(frame←v12788);
SOURCE(23906, 48)
if ((program←v19896 == 0)) {
SOURCE(23926, 28)
{
word var←c0454;
var←c0454 = frame←v12788;
(void) XR←RaiseError((word) (( (bPt) gf←c42328)+336)/* var←c32472 */ , (word) &var←c0454);
};
};
SOURCE(23956, 59)
if ((0 != (* (( (ptr) program←v19896)+6) ))) {
SOURCE(23980, 35)
{
word var←c0455;
var←c0455 = program←v19896;
(void) XR←RaiseError((* (( (ptr) gf←c42328)+38)/* StartFault←v4092 */ ), (word) &var←c0455);
};
};
SOURCE(24017, 21)
(void) StartProgram←P3960(program←v19896);
};
}
extern void XR←StartModule(args←v12848, frame←v12876, rets←v12904)
word args←v12848;
word frame←v12876;
word rets←v12904;
{
/* StartModule: */
SOURCE(24047, 110)
SOURCE(24140, 17)
(void) XR←Start(frame←v12876);
}
static word ListStartTraps←P3780()
{
register ptr gf←c42360 = (ptr) &globalframe;
word list←v13072;
/* ListStartTraps: */
SOURCE(24200, 205)
SOURCE(24200, 205)
list←v13072 = 0;
SOURCE(24278, 127)
{
register word tail←v19940;
tail←v19940 = (* (( (ptr) gf←c42360)+42)/* startTrapped←v5744 */ );
lab←L100105: ;
if ((tail←v19940 != 0)) {
}
else {
goto lab←L100102;
};
SOURCE(24350, 55)
{
word var←c39736;
word var←c39800;
{
W2 var←c39768;
var←c39768.f0 = 0;
var←c39768.f1 = (* (ptr) tail←v19940 );
var←c39736 = (word) QualifiedName←P4440(var←c39768);
};
var←c39800 = XR←NewObject(8, (* (( (ptr) gf←c42360)+80) ));
(* (ptr) var←c39800 ) = var←c39736;
(* (( (ptr) var←c39800)+1) ) = list←v13072;
list←v13072 = var←c39800;
};
tail←v19940 = (* (( (ptr) tail←v19940)+1) );
goto lab←L100105;
lab←L100102: ;
};
SOURCE(24200, 205)
return(list←v13072);
}
static void LogStartTrap←P3840(program←v13216)
word program←v13216;
{
register ptr gf←c42392 = (ptr) &globalframe;
/* LogStartTrap: */
SOURCE(24420, 90)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c42392)+16)/* LOCK←v2832 */ ));
SOURCE(24468, 42)
{
word var←c39832;
var←c39832 = XR←NewObject(8, (* (( (ptr) gf←c42392)+79) ));
(* (ptr) var←c39832 ) = program←v13216;
(* (( (ptr) var←c39832)+1) ) = (* (( (ptr) gf←c42392)+42)/* startTrapped←v5744 */ );
(* (( (ptr) gf←c42392)+42)/* startTrapped←v5744 */ ) = var←c39832;
};
SOURCE(24420, 90)
(void) (XR←MonitorExit((word) (( (bPt) gf←c42392)+16)/* LOCK←v2832 */ ));
return;
}
extern void XR←StartProgram(program←v13276)
word program←v13276;
{
/* XRStartProgram: */
SOURCE(24516, 107)
SOURCE(24579, 21)
(void) LogStartTrap←P3840(program←v13276);
SOURCE(24602, 21)
(void) StartProgram←P3960(program←v13276);
}
static void StartProgram←P3960(program←v13336)
word program←v13336;
{
register ptr gf←c42424 = (ptr) &globalframe;
/* StartProgram: */
SOURCE(24629, 307)
SOURCE(24690, 148)
if ( ( ((* (( (ptr) gf←c42424)+28)/* currentConfig←v3448 */ ) == (* (( (ptr) gf←c42424)+37)/* globalConfig←v3700 */ )) ? ((* (
( (ptr) gf←c42424)+29)/* currentProgram←v3476 */ ) != 0) : 0 ) ) {
SOURCE(24796, 20)
(void) XR←CommitInstallation();
SOURCE(24818, 20)
(* (( (ptr) gf←c42424)+29)/* currentProgram←v3476 */ ) = 0;
};
SOURCE(24844, 35)
(void) XR←StartCedarModule((* ((( (ptr) program←v13336)+4)) ));
SOURCE(24881, 30)
if ((0 != (* (( (ptr) program←v13336)+6) ))) {
SOURCE(24905, 6)
return;
};
SOURCE(24913, 23)
(void) DoStartProgram←P3420(program←v13336);
}
extern word XR←FirstControl()
{
register ptr gf←c42456 = (ptr) &globalframe;
word var←c13396;
word dummy←v20068 = 1;
/* FirstControl: */
SOURCE(24942, 112)
SOURCE(25033, 21)
return((* (( (ptr) gf←c42456)+28)/* currentConfig←v3448 */ ));
}
static void AddToCM←P4080(item←v13456)
W2 item←v13456;
{
register ptr gf←c42488 = (ptr) &globalframe;
word dummy←v20112 = 1;
/* AddToCM: */
SOURCE(25060, 372)
SOURCE(25132, 300)
if (((* (( (ptr) (* (( (ptr) gf←c42488)+28)/* currentConfig←v3448 */ ))+2) ) == 0)) {
SOURCE(25182, 46)
{
word var←c39864;
word var←c39896;
var←c39864 = XR←NewObject(12, (* (( (ptr) gf←c42488)+53) ));
var←c39896 = var←c39864;
(* (W2Pt) var←c39896 ) = item←v13456;
(* (( (ptr) (* (( (ptr) gf←c42488)+28)/* currentConfig←v3448 */ ))+2) ) = var←c39864;
};
SOURCE(25230, 69)
(* (( (ptr) (* (( (ptr) gf←c42488)+28)/* currentConfig←v3448 */ ))+3) ) = (* (( (ptr) (* (( (ptr) gf←c42488)+28)/* currentConfig←v3448 */ ))+2)
);
}
else {
SOURCE(25308, 50)
{
word var←c39928;
word var←c39960;
var←c39928 = XR←NewObject(12, (* (( (ptr) gf←c42488)+53) ));
var←c39960 = var←c39928;
(* (W2Pt) var←c39960 ) = item←v13456;
(* (( (ptr) (* (( (ptr) (* (( (ptr) gf←c42488)+28)/* currentConfig←v3448 */ ))+3) ))+2) ) = var←c39928;
};
SOURCE(25360, 72)
(* (( (ptr) (* (( (ptr) gf←c42488)+28)/* currentConfig←v3448 */ ))+3) ) = (* (( (ptr) (* (( (ptr) (* (( (ptr) gf←c42488)+28)
/* currentConfig←v3448 */ ))+3) ))+2) );
};
}
extern void XR←AddControl(name←v13516)
word name←v13516;
{
register ptr gf←c42520 = (ptr) &globalframe;
word itemName←v20156 = 0;
/* AddControl: */
SOURCE(25441, 369)
SOURCE(25515, 295)
{
register word l←v20200;
l←v20200 = (* (( (ptr) (* (( (ptr) gf←c42520)+28)/* currentConfig←v3448 */ ))+4) );
lab←L100109: ;
if ((l←v20200 != 0)) {
}
else {
goto lab←L100106;
};
SOURCE(25591, 157)
{
W2 var←c39992;
var←c39992 = (* (W2Pt) l←v20200 );
{
word var←c40024;
var←c40024 = var←c39992.f0;
if ((var←c40024 == 0)) {
{
W2 program←v20244;
program←v20244 = var←c39992;
SOURCE(25652, 31)
itemName←v20156 = (* (ptr) program←v20244.f1 );
};
}
else {
if ((var←c40024 == 1)) {
{
W2 config←v20288;
config←v20288 = var←c39992;
SOURCE(25719, 29)
itemName←v20156 = (* (( (ptr) config←v20288.f1)+1) );
};
}
else {
};
};
};
};
SOURCE(25759, 51)
if (( (int)(word) strcmp(itemName←v20156, name←v13516) == (int)0)) {
SOURCE(25794, 16)
(void) AddToCM←P4080((* (W2Pt) (l←v20200) ));
SOURCE(25812, 5)
goto lab←L100107;
};
l←v20200 = (* (( (ptr) l←v20200)+2) );
goto lab←L100109;
lab←L100106: ;
lab←L100107: ;
};
}
extern void XR←RaiseUnbound(p←v13576)
word p←v13576;
{
register ptr gf←c42552 = (ptr) &globalframe;
word newProc←v20332;
word r←v20360;
/* RaiseUnbound: */
SOURCE(25833, 236)
SOURCE(25909, 76)
{
word var←c0485;
var←c0485 = p←v13576;
{
word var←c0486;
(void) (XR←RaiseSignal((* (( (ptr) (* (( (ptr) gf←c42552)+245)/* var←c35096 */ ))+20) ), (word) &var←c0486, (word) &var←c0485)
);
newProc←v20332 = var←c0486;
};
};
SOURCE(25987, 43)
r←v20360 = p←v13576;
SOURCE(26032, 37)
(* (W2Pt) r←v20360 ) = (* (W2Pt) newProc←v20332 );
}
extern word XR←IsBound(p←v13656)
word p←v13656;
{
word var←c13716;
word t←v20432;
/* IsBound: */
SOURCE(26075, 186)
SOURCE(26155, 21)
t←v20432 = p←v13656;
SOURCE(26178, 27)
if ((t←v20432 == 0)) {
SOURCE(26192, 13)
return(0);
};
SOURCE(26207, 40)
if (((* (( (ptr) t←v20432)+1) ) == 2)) {
SOURCE(26234, 13)
return(0);
};
SOURCE(26249, 12)
return(1);
}
extern void XR←Unload(config←v13776)
word config←v13776;
{
/* Unload: */
SOURCE(26267, 14)
SOURCE(26325, 5)
(void) XR←RaiseUnnamedError();
}
static void CedarCoreReport←P4380(problem←v25856)
W6 problem←v25856;
{
register ptr gf←c42584 = (ptr) &globalframe;
/* CedarCoreReport: */
SOURCE(26336, 80)
SOURCE(26368, 48)
{
word var←c40056;
var←c40056 = XR←NewObject(28, (* (( (ptr) gf←c42584)+82) ));
(* (W6Pt) var←c40056 ) = problem←v25856;
(* (( (ptr) var←c40056)+6) ) = (* (( (ptr) gf←c42584)+11)/* cedarCoreErrors←v3252 */ );
(* (( (ptr) gf←c42584)+11)/* cedarCoreErrors←v3252 */ ) = var←c40056;
};
}
static word QualifiedName←P4440(pc←v13836)
W2 pc←v13836;
{
register ptr gf←c42616 = (ptr) &globalframe;
word var←c13880;
/* QualifiedName: */
SOURCE(26422, 485)
SOURCE(26509, 398)
{
W2 var←c40088;
var←c40088 = pc←v13836;
{
word var←c40440;
var←c40440 = var←c40088.f0;
if ((var←c40440 == 0)) {
{
W2 p←v20476;
p←v20476 = var←c40088;
SOURCE(26575, 96)
{
W2 var←c40184;
word var←c40152;
word var←c40216;
var←c40184.f0 = 1;
var←c40184.f1 = (* (( (ptr) p←v20476.f1)+4) );
var←c40152 = (word) QualifiedName←P4440(var←c40184);
{
word pd100;
pd100 = (* (( (ptr) (* (( (ptr) gf←c42616)+247)/* var←c35416 */ ))+7) );
var←c40216 = (word) ( *( (fPt) ((* (ptr) pd100 ))))((* (ptr) p←v20476.f1 ), 2147483647, pd100);
};
{
word pd101;
pd101 = (* (( (ptr) (* (( (ptr) gf←c42616)+249)/* var←c40248 */ ))+6) );
return((word) ( *( (fPt) ((* (ptr) pd101 ))))(var←c40152, var←c40216, pd101));
};
};
};
}
else {
if ((var←c40440 == 1)) {
{
W2 c←v20520;
c←v20520 = var←c40088;
SOURCE(26721, 159)
if ((c←v20520.f1 == (* (( (ptr) gf←c42616)+37)/* globalConfig←v3700 */ ))) {
SOURCE(26751, 18)
return(0);
}
else {
SOURCE(26769, 111)
{
W2 var←c40344;
word var←c40312;
word var←c40376;
word var←c40408;
var←c40344.f0 = 1;
var←c40344.f1 = (* (ptr) c←v20520.f1 );
var←c40312 = (word) QualifiedName←P4440(var←c40344);
{
word pd102;
pd102 = (* (( (ptr) (* (( (ptr) gf←c42616)+247)/* var←c35416 */ ))+7) );
var←c40376 = (word) ( *( (fPt) ((* (ptr) pd102 ))))((* (( (ptr) c←v20520.f1)+1) ), 2147483647, pd102);
};
{
word pd103;
pd103 = (* (( (ptr) (* (( (ptr) gf←c42616)+249)/* var←c40248 */ ))+37) );
var←c40408 = (word) ( *( (fPt) ((* (ptr) pd103 ))))(46, pd103);
};
{
word pd104;
pd104 = (* (( (ptr) (* (( (ptr) gf←c42616)+249)/* var←c40248 */ ))+5) );
return((word) ( *( (fPt) ((* (ptr) pd104 ))))(var←c40312, var←c40376, var←c40408, 0, 0, pd104));
};
};
};
};
}
else {
SOURCE(26896, 11)
return(0);
};
};
};
};
}
static word ProgramListFromName←P4500(name←v13940, optionalList←v13968)
word name←v13940;
word optionalList←v13968;
{
register ptr gf←c42648 = (ptr) &globalframe;
word var←c14096;
word makeCopy←v20564;
word copy←v20592 = 0;
word copyTail←v20620 = 0;
word cName←v20648;
word start←v20676;
/* ProgramListFromName: */
SOURCE(26913, 574)
SOURCE(27029, 35)
makeCopy←v20564 = (optionalList←v13968 == 0);
SOURCE(27105, 39)
{
word pd105;
pd105 = (* (( (ptr) (* (( (ptr) gf←c42648)+247)/* var←c35416 */ ))+5) );
cName←v20648 = (word) ( *( (fPt) ((* (ptr) pd105 ))))(name←v13940, pd105);
};
SOURCE(27146, 7)
start←v20676 = (* (( (ptr) gf←c42648)+36)/* programs←v3672 */ );
SOURCE(27181, 174)
if ((optionalList←v13968 != 0)) {
SOURCE(27210, 83)
if (( (int)(word) strcmp(cName←v20648, (* (ptr) (* (ptr) optionalList←v13968 ) )) == (int)0)) {
SOURCE(27261, 32)
optionalList←v13968 = (* (( (ptr) optionalList←v13968)+1) );
};
SOURCE(27295, 38)
if ((optionalList←v13968 == 0)) {
SOURCE(27322, 11)
return(0);
};
SOURCE(27335, 20)
start←v20676 = optionalList←v13968;
};
SOURCE(27360, 105)
{
register word p←v20888;
p←v20888 = start←v20676;
lab←L100113: ;
if ((p←v20888 != 0)) {
}
else {
goto lab←L100110;
};
SOURCE(27416, 49)
if (( (int)(word) strcmp(cName←v20648, (* (ptr) (* (ptr) p←v20888 ) )) == (int)0)) {
SOURCE(27456, 9)
return(p←v20888);
};
p←v20888 = (* (( (ptr) p←v20888)+1) );
goto lab←L100113;
lab←L100110: ;
};
SOURCE(27476, 11)
return(0);
}
static void ConvertToRefTab←P4560()
{
register ptr gf←c42680 = (ptr) &globalframe;
/* ConvertToRefTab: */
SOURCE(27493, 490)
SOURCE(27522, 22)
(void) TakeInstallationLock←P780();
SOURCE(27546, 20)
(void) TakeInspectionLock←P900();
SOURCE(27568, 349)
{
W2 var←c40472;
var←c40472 = (* (W2Pt) (* (( (ptr) (* (( (ptr) gf←c42680)+37)/* globalConfig←v3700 */ ))+6) ) );
if ((var←c40472.f0 == 0)) {
{
W2 elist←v21016;
elist←v21016 = var←c40472;
SOURCE(27636, 283)
{
word lsave←v21060;
word tab←v21088;
SOURCE(27638, 7)
lsave←v21060 = elist←v21016.f1;
SOURCE(27677, 73)
{
word pd106;
pd106 = (* (( (ptr) (* (( (ptr) gf←c42680)+246)/* var←c35192 */ ))+5) );
tab←v21088 = (word) ( *( (fPt) ((* (ptr) pd106 ))))(17, (word) (( (bPt) gf←c42680)+756)/* var←c34168 */ , (word) (( (bPt) gf←c42680)+748)
/* var←c34136 */ , pd106);
};
SOURCE(27752, 97)
{
register word l←v21216;
l←v21216 = lsave←v21060;
lab←L100117: ;
if ((l←v21216 != 0)) {
}
else {
goto lab←L100114;
};
SOURCE(27808, 41)
{
word var←c40504;
word pd107;
pd107 = (* (( (ptr) (* (( (ptr) gf←c42680)+246)/* var←c35192 */ ))+10) );
var←c40504 = (word) ( *( (fPt) ((* (ptr) pd107 ))))(tab←v21088, (* (ptr) l←v21216 ), (* (ptr) l←v21216 ), pd107);
};
l←v21216 = (* (( (ptr) l←v21216)+1) );
goto lab←L100117;
lab←L100114: ;
};
SOURCE(27860, 57)
{
word var←c40536;
var←c40536 = XR←NewObject(8, (* (( (ptr) gf←c42680)+51) ));
(* (ptr) var←c40536 ) = 1;
(* (( (ptr) var←c40536)+1) ) = tab←v21088;
(* (( (ptr) (* (( (ptr) gf←c42680)+37)/* globalConfig←v3700 */ ))+6) ) = var←c40536;
};
};
};
}
else {
};
};
SOURCE(27939, 22)
(void) GiveInstallationLock←P840();
SOURCE(27963, 20)
(void) GiveInspectionLock←P960();
}
static void PutCedarCoreProblems←P4620()
{
/* PutCedarCoreProblems: */
}
extern void XR←VerboseCommit()
{
W7 var←c42712;
/* declaration of var←c40568 skipped */
/* declaration of problems←v21344 skipped */
/* VerboseCommit: */
SOURCE(28038, 215)
{
word tmpAddr108;
tmpAddr108 = (word) (( (ptr) &var←c42712)+4)/* var←c40568 */ ;
(* (ptr) tmpAddr108 ) = ( ((word) (fPt) RecordProblems←P7776) );
(* (( (ptr) tmpAddr108) + 1) ) = 1;
};
SOURCE(28096, 30)
var←c42712.f6/* problems←v21344 */ = 0;
SOURCE(28198, 33)
(void) CheckInstallation←P1080((word) ((( (bPt) &var←c42712)+16)/* var←c40568 */ ));
SOURCE(28233, 20)
(void) XR←CommitInstallation();
}
static void RecordProblems←P7776(problem←v32360, formal←c42776)
W6 problem←v32360;
word formal←c42776;
{
register ptr gf←c42744 = (ptr) &globalframe;
formal←c42776 = (formal←c42776 - 16);
/* RecordProblems: */
SOURCE(28128, 65)
SOURCE(28159, 34)
{
word var←c40600;
var←c40600 = XR←NewObject(28, (* (( (ptr) gf←c42744)+82) ));
(* (W6Pt) var←c40600 ) = problem←v32360;
(* (( (ptr) var←c40600)+6) ) = (* (( (ptr) formal←c42776)+6) );
(* (( (ptr) formal←c42776)+6) ) = var←c40600;
};
}
static void EnableAborts←P4740(pCondition←v14288)
word pCondition←v14288;
{
/* EnableAborts: */
SOURCE(28259, 174)
SOURCE(28417, 16)
(void) XR←EnableAborts(pCondition←v14288);
}
static void NoName←Q8016(formal←c0532, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
word formal←c0532;
word formal←c200004;
word formal←c200005;
word formal←c200006;
word formal←c200007;
{
register ptr gf←c0602 = (ptr) &globalframe;
if ((formal←c200005 == XR←Unwind)) {
(void) (XR←MonitorExit((word) (( (bPt) gf←c0602)+16)/* LOCK←v2832 */ ));
};
(* (ptr) formal←c0532 ) = 0;
(* (( (ptr) formal←c0532)+1) ) = 0;
return;
}
static void NoName←Q8076(formal←c0537, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
word formal←c0537;
word formal←c200000;
word formal←c200001;
word formal←c200002;
word formal←c200003;
{
register ptr gf←c0603 = (ptr) &globalframe;
if ((formal←c200001 == XR←Unwind)) {
(void) (XR←MonitorExit((word) (( (bPt) gf←c0603)+16)/* LOCK←v2832 */ ));
};
(* (ptr) formal←c0537 ) = 0;
(* (( (ptr) formal←c0537)+1) ) = 0;
return;
}
/* file: InstallationScopesImpl, module: InstallationScopesImpl, compiled at: January 18, 1993 1:40:16 pm PST */
extern void XR←install←InstallationScopesImpl() {
XR←FillWords(&dummy54, 3, 0);
NoName←Q7836();
}
extern void XR←run←InstallationScopesImpl() { XR←Start(&globalframe); }