/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: August 31, 1992 9:14:45 am PDT */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: SafeStorageImpl, module: SafeStorageImpl */ /* switches: bcfhklnouw */ #include #include static char versionStamp[] = "@(#)mob_version [722927241,3266122908] SafeStorageImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef word (*fPt)(); typedef struct {word f0, f1;} W2; #define SOURCE(p, l) /* source p, l */ #define SGNCK(i) ((int) (word) (i) < 0 ? XR_RaiseArithmeticFault(): i ) static void NoName_Q1992(); static void SafeStorageImpl_P0(); static word GetSystemZone_P60(); static word GetZone_P120(); static word New_P180(); static void Free_P240(); static word GetUntracedZone_P300(); static word UntracedNew_P360(); static word GetPermanentZone_P420(); static word SetCollectionInterval_P480(); static void ReclaimCollectibleObjects_P540(); static word CurrentByteCount_P600(); static word CurrentObjectCount_P660(); static word TotalByteCount_P720(); static word TotalObjectCount_P780(); static word HeapSize_P840(); static word GetCanonicalReferentType_P900(); static word EquivalentTypes_P960(); static word GetCanonicalType_P1020(); static word IsReferentType_P1080(); extern void XR_AssignRef(); extern void XR_AssignRefInit(); extern word XR_NewObject(); extern word XR_NewUntracedObject(); extern word XR_CheckProc(); extern word XR_Narrow(); extern word XR_GetReferentType(); extern void XR_AssignRefComposite(); extern void XR_AssignRefCompositeInit(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\053\026\376\211\300\302\255\024\234\100\164\000\000"}; static struct {unsigned f; char r[4];} string2 = {131074, "\0040\000"}; static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\277\374\326\303\300\302\136\022\175\100\150\000\000"}; static struct { word f0[12]; word f12; word f13; word f14; word f15; word f16; word f17; word f18; word f19; word f20; word f21; word f22; word f23; word f24; word f25; word f26; word f27; word f28; word f29; word f30; word f31; word f32; word f33; word f34; word f35; word f36; word f37; word f38; word f39; word f40; word f41; word f42; word f43; word f44; word f45; word f46; word f47; word f48; word f49; word f50; word f51; word f52; word f53; word f54; word f55; word f56; word f57; word f58; word f59; word f60; word f61; word f62; word f63; word f64; word f65; word f66; word f67[2]; } globalframe = { {0}, (word) XR_AssignRefCompositeInit, 0, (word) XR_AssignRefComposite, 0, (word) XR_GetReferentType, 0, (word) XR_Narrow, 0, (word) XR_CheckProc, 0, (word) XR_NewUntracedObject, 0, (word) XR_NewObject, 0, (word) XR_AssignRefInit, 0, (word) XR_AssignRef, 0, (word) IsReferentType_P1080, 0, (word) GetCanonicalType_P1020, 0, (word) EquivalentTypes_P960, 0, (word) GetCanonicalReferentType_P900, 0, (word) HeapSize_P840, 0, (word) TotalObjectCount_P780, 0, (word) TotalByteCount_P720, 0, (word) CurrentObjectCount_P660, 0, (word) CurrentByteCount_P600, 0, (word) ReclaimCollectibleObjects_P540, 0, (word) SetCollectionInterval_P480, 0, (word) GetPermanentZone_P420, 0, (word) UntracedNew_P360, 0, (word) GetUntracedZone_P300, 0, (word) Free_P240, 0, (word) New_P180, 0, (word) GetZone_P120, 0, (word) GetSystemZone_P60, 0, (word) SafeStorageImpl_P0, {0} }; static void NoName_Q1992() { register ptr gf_c0116 = (ptr) &globalframe; word var_c11748; (void) XR_DeclareGlobalFrame((word) "SafeStorageImpl", &globalframe, (word) XR_GetTypeIndex((word) &string1, 0, (word) &string2) , (word) (( (bPt) gf_c0116)+264)/* var_c11236 */ ); var_c11748 = (word) XR_ExportInterface((word) "SafeStorage", (word) XR_GetTypeIndexS((word) (&string3)), 27); (* (( (ptr) gf_c0116)+68)/* var_c11716 */ ) = var_c11748; (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+256)/* var_c11204 */ , 67108864); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+208)/* var_c11012 */ , 67109120); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+224)/* var_c11076 */ , 67109376); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+200)/* var_c10980 */ , 67372545); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+192)/* var_c10948 */ , 526082); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+184)/* var_c10916 */ , 67111680); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+176)/* var_c10884 */ , 67111936); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+168)/* var_c10852 */ , 67112192); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+160)/* var_c10820 */ , 67112448); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+152)/* var_c10788 */ , 67112704); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+64)/* var_c10436 */ , 67375105); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+144)/* var_c10756 */ , 67375361); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+136)/* var_c10724 */ , 67637762); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+128)/* var_c10692 */ , 67375873); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+120)/* var_c10660 */ , 67638274); (void) XR_ExportProcS(var_c11748, (word) (( (bPt) gf_c0116)+72)/* var_c10468 */ , 67638530); (void) XR_ExportVar(var_c11748, 22, (word) (( (bPt) gf_c0116)+28)); (void) XR_ExportVar(var_c11748, 23, (word) (( (bPt) gf_c0116)+32)); (void) XR_ExportVar(var_c11748, 24, (word) (( (bPt) gf_c0116)+36)); (void) XR_ExportVar(var_c11748, 25, (word) (( (bPt) gf_c0116)+40)); (void) XR_ExportVar(var_c11748, 26, (word) (( (bPt) gf_c0116)+44)); } static void SafeStorageImpl_P0(formal_c036, formal_c035) word formal_c036; word formal_c035; { register ptr gf_c11780 = (ptr) &globalframe; /* SafeStorageImpl: */ SOURCE(33, 6371) SOURCE(801, 37) (* (( (ptr) gf_c11780)+4)/* systemZone_v2636 */ ) = (word) GetZone_P120((word) (( (bPt) gf_c11780)+240)/* var_c11140 */ , (word) ( ( (bPt) gf_c11780)+232)/* var_c11108 */ ); } static word GetSystemZone_P60() { register ptr gf_c11812 = (ptr) &globalframe; word var_c4192; /* GetSystemZone: */ SOURCE(841, 64) SOURCE(887, 18) return((* (( (ptr) gf_c11812)+4)/* systemZone_v2636 */ )); } static word GetZone_P120(new_v4260, free_v4288) word new_v4260; word free_v4288; { word var_c4332; word zone_v7224; /* GetZone: */ SOURCE(910, 173) SOURCE(982, 56) zone_v7224 = (word) ( *( (fPt) ((* (ptr) new_v4260 ))))(0, 8, 0, new_v4260); SOURCE(1040, 19) (* (ptr) zone_v7224 ) = new_v4260; (* (( (ptr) zone_v7224)+1) ) = free_v4288; SOURCE(1061, 22) return(zone_v7224); } static word New_P180(self_v8816, units_v8844, type_v8872) word self_v8816; word units_v8844; word type_v8872; { word var_c8916; /* New: */ SOURCE(1087, 73) SOURCE(1104, 56) return((word) XR_NewObject(SGNCK(units_v8844), type_v8872)); } static void Free_P240(self_v8976, object_v9004) word self_v8976; word object_v9004; { /* Free: */ } static word GetUntracedZone_P300() { register ptr gf_c11844 = (ptr) &globalframe; word var_c4408; /* GetUntracedZone: */ SOURCE(1255, 151) SOURCE(1309, 45) if (((* (( (ptr) gf_c11844)+5)/* untracedZone_v2776 */ ) != 0)) { SOURCE(1334, 20) return((* (( (ptr) gf_c11844)+5)/* untracedZone_v2776 */ )); }; SOURCE(1356, 50) { word var_c11300; { word var_c11332; var_c11332 = (word) GetZone_P120((word) (( (bPt) gf_c11844)+216)/* var_c11044 */ , (word) (( (bPt) gf_c11844)+232)/* var_c11108 */ ) ; (* (( (ptr) gf_c11844)+5)/* untracedZone_v2776 */ ) = var_c11332; var_c11300 = var_c11332; }; return(var_c11300); }; } static word UntracedNew_P360(self_v9064, units_v9092, type_v9120) word self_v9064; word units_v9092; word type_v9120; { word var_c9164; word r_v7268; /* UntracedNew: */ SOURCE(1412, 191) SOURCE(1447, 65) r_v7268 = (word) XR_NewUntracedObject(SGNCK(units_v9092), type_v9120); SOURCE(1514, 77) (void) Basics_FillWords(r_v7268, (units_v9092 >> 2), 0); SOURCE(1593, 10) return(r_v7268); } static word GetPermanentZone_P420() { word var_c4476; /* GetPermanentZone: */ SOURCE(1607, 73) SOURCE(1656, 24) return((word) GetSystemZone_P60()); } static word SetCollectionInterval_P480(newInterval_v4544) word newInterval_v4544; { word previous_v4588; /* SetCollectionInterval: */ SOURCE(1686, 269) SOURCE(1902, 53) previous_v4588 = (word) XR_SetBytesAfterWhichToCollect(newInterval_v4544); SOURCE(1686, 269) return(previous_v4588); } static void ReclaimCollectibleObjects_P540(suspendMe_v4648, traceAndSweep_v4676) word suspendMe_v4648; word traceAndSweep_v4676; { /* ReclaimCollectibleObjects: */ SOURCE(1961, 179) SOURCE(2124, 16) (void) XR_GCollect(); } static word CurrentByteCount_P600() { word var_c4736; /* CurrentByteCount: */ SOURCE(2146, 135) SOURCE(2268, 13) return((word) XR_GCCurrentByteCount()); } static word CurrentObjectCount_P660() { word var_c4796; /* CurrentObjectCount: */ SOURCE(2285, 139) SOURCE(2411, 13) return((word) XR_GCCurrentObjectCount()); } static word TotalByteCount_P720() { word var_c4856; /* TotalByteCount: */ SOURCE(2428, 131) SOURCE(2546, 13) return((word) XR_GCTotalByteCount()); } static word TotalObjectCount_P780() { word var_c4916; /* TotalObjectCount: */ SOURCE(2563, 135) SOURCE(2685, 13) return((word) XR_GCTotalObjectCount()); } static word HeapSize_P840() { word var_c4976; /* HeapSize: */ SOURCE(2701, 119) SOURCE(2807, 13) return((word) XR_GCHeapSize()); } static word GetCanonicalReferentType_P900(ref_v5036) word ref_v5036; { word type_v5092; /* GetCanonicalReferentType: */ SOURCE(2897, 116) SOURCE(2985, 28) type_v5092 = (word) XR_GetReferentType(ref_v5036); SOURCE(2897, 116) return(type_v5092); } static word EquivalentTypes_P960(t1_v5152, t2_v5180) word t1_v5152; word t2_v5180; { word var_c5224; /* EquivalentTypes: */ SOURCE(3017, 124) SOURCE(3090, 51) return(((word) GetCanonicalType_P1020(t1_v5152) == (word) GetCanonicalType_P1020(t2_v5180))); } static word GetCanonicalType_P1020(type_v5284) word type_v5284; { word var_c5328; /* GetCanonicalType: */ SOURCE(3147, 97) SOURCE(3232, 12) return(type_v5284); } static word IsReferentType_P1080(ref_v5388, type_v5416) word ref_v5388; word type_v5416; { word var_c5472; /* IsReferentType: */ SOURCE(3250, 152) SOURCE(3334, 30) if ((ref_v5388 == 0)) { SOURCE(3352, 12) return(1); }; SOURCE(3366, 36) return((type_v5416 == (word) XR_GetReferentType(ref_v5388))); } extern void XR_AssignRef(dstPtr_v5800, src_v5828) word dstPtr_v5800; word src_v5828; { /* XRAssignRef: */ SOURCE(3691, 112) SOURCE(3789, 14) (* (ptr) dstPtr_v5800 ) = src_v5828; } extern void XR_AssignRefInit(dstPtr_v5924, src_v5952) word dstPtr_v5924; word src_v5952; { /* XRAssignRefInit: */ SOURCE(3807, 120) SOURCE(3913, 14) (* (ptr) dstPtr_v5924 ) = src_v5952; } extern word XR_NewObject(nAddressingUnits_v6048, type_v6076) word nAddressingUnits_v6048; word type_v6076; { register ptr gf_c11876 = (ptr) &globalframe; word new_v6120; word ptr_v8080; /* XRNewObject: */ SOURCE(3931, 362) SOURCE(3931, 362) new_v6120 = 0; SOURCE(4134, 54) ptr_v8080 = (word) GC_malloc((nAddressingUnits_v6048 + 8)); SOURCE(4190, 37) if ((ptr_v8080 == 0)) { SOURCE(4206, 21) (void) XR_RaiseError((word) (( (bPt) gf_c11876)+28), 0); }; SOURCE(4229, 38) new_v6120 = (ptr_v8080 + 8); SOURCE(4269, 24) { word ref_v10292; ref_v10292 = new_v6120; { word p_v8624; p_v8624 = (ref_v10292 - 4); SOURCE(5938, 9) (* (ptr) p_v8624 ) = type_v6076; }; }; SOURCE(3931, 362) return(new_v6120); } extern word XR_NewUntracedObject(nAddressingUnits_v6192, type_v6220) word nAddressingUnits_v6192; word type_v6220; { register ptr gf_c11908 = (ptr) &globalframe; word new_v6264; word ptr_v8268; /* XRNewUntracedObject: */ SOURCE(4297, 398) SOURCE(4297, 398) new_v6264 = 0; SOURCE(4530, 60) ptr_v8268 = (word) GC_malloc_atomic((nAddressingUnits_v6192 + 8)); SOURCE(4592, 37) if ((ptr_v8268 == 0)) { SOURCE(4608, 21) (void) XR_RaiseError((word) (( (bPt) gf_c11908)+28), 0); }; SOURCE(4631, 38) new_v6264 = (ptr_v8268 + 8); SOURCE(4671, 24) { word ref_v10216; ref_v10216 = new_v6264; { word p_v10248; p_v10248 = (ref_v10216 - 4); SOURCE(5938, 9) (* (ptr) p_v10248 ) = type_v6220; }; }; SOURCE(4297, 398) return(new_v6264); } extern word XR_CheckProc(proc_v6336) word proc_v6336; { register ptr gf_c11940 = (ptr) &globalframe; word var_c6396; word x_v8456; /* XRCheckProc: */ SOURCE(4699, 254) SOURCE(4819, 40) x_v8456 = proc_v6336; SOURCE(4861, 62) if ( ( (x_v8456 != 0) ? ((* (( (ptr) x_v8456)+1) ) == 1) : 0 ) ) { SOURCE(4890, 33) { word var_c095; var_c095 = proc_v6336; (void) (XR_RaiseSignal((word) (( (bPt) gf_c11940)+40), 0, (word) &var_c095)); }; }; SOURCE(4925, 28) return(proc_v6336); } extern word XR_Narrow(ref_v6456, type_v6484) word ref_v6456; word type_v6484; { register ptr gf_c11972 = (ptr) &globalframe; word var_c6540; word var_c11620; word ref_v10168; /* NarrowRef: */ SOURCE(4959, 202) SOURCE(5055, 27) if ((ref_v6456 == 0)) { SOURCE(5071, 11) return(ref_v6456); }; SOURCE(5084, 44) ref_v10168 = ref_v6456; { word p_v8584; p_v8584 = (ref_v10168 - 4); SOURCE(5760, 12) var_c11620 = (* (ptr) p_v8584 ); }; if ((type_v6484 == var_c11620)) { SOURCE(5117, 11) return(ref_v6456); }; SOURCE(5130, 31) { W2 var_c0102; (* (ptr) (word) &var_c0102 ) = ref_v6456; (* (( (ptr) (word) &var_c0102) + 1) ) = type_v6484; (void) XR_RaiseError((word) (( (bPt) gf_c11972)+36), (word) &var_c0102); }; } extern word XR_GetReferentType(ref_v6612) word ref_v6612; { word var_c6668; /* GetReferentType: */ SOURCE(5167, 158) SOURCE(5267, 29) if ((ref_v6612 == 0)) { SOURCE(5283, 13) return(0); }; SOURCE(5298, 27) { word var_c11684; word ref_v10092; ref_v10092 = ref_v6612; { word p_v10124; p_v10124 = (ref_v10092 - 4); SOURCE(5760, 12) var_c11684 = (* (ptr) p_v10124 ); }; return(var_c11684); }; } extern void XR_AssignRefComposite(dst_v6944, src_v6972, type_v7000, size_v7028) word dst_v6944; word src_v6972; word type_v7000; word size_v7028; { /* XRAssignRefComposite: */ SOURCE(5953, 210) SOURCE(6094, 69) (void) Basics_CopyWords(dst_v6944, src_v6972, size_v7028); } extern void XR_AssignRefCompositeInit(dst_v7100, src_v7128, type_v7156, size_v7184) word dst_v7100; word src_v7128; word type_v7156; word size_v7184; { /* XRAssignRefCompositeInit: */ SOURCE(6169, 214) SOURCE(6314, 69) (void) Basics_CopyWords(dst_v7100, src_v7128, size_v7184); } /* file: SafeStorageImpl, module: SafeStorageImpl, compiled at: August 31, 1992 9:14:44 am PDT */ extern void XR_install_SafeStorageImpl() { NoName_Q1992(); } extern void XR_run_SafeStorageImpl() { XR_Start(&globalframe); }