/* 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); }