/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: February 21, 1992 9:37:30 pm PST */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: TiogaFileIOImpl, module: TiogaFileIOImpl */ /* switches: bcfhklnouw */ #include #include static char versionStamp[] = "@(#)mob_version [2052959156,1196779364] TiogaFileIOImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef word (*fPt)(); typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7; typedef W7 *W7Pt; #define SOURCE(p, l) /* source p, l */ #define SGNCK(i) ((int) (word) (i) < 0 ? XR_RaiseArithmeticFault(): i ) #define MIN(cast, x, y) ( ( cast x) < ( cast y) ? (x) : (y) ) #define MAX(cast, x, y) ( ( cast x) > ( cast y) ? (x) : (y) ) static void NoName_Q804(); static void TiogaFileIOImpl_P0(); static word GetFileId_P60(); static void PutFileId_P120(); static word Get16_P180(); static void Put16_P240(); static word GetTrailerLen_P300(); static void PutTrailerLen_P360(); static void GetParts_P420(); static word PutParts_P480(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300z]\253\264\300GUgd@t\000\000"}; static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"}; static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\203\256\002\131\300\364\237\146\374\100\150\000\000"}; static struct { word f0[4]; word f4; word f5; word f6; word f7; word f8; word f9; word f10; word f11; word f12; word f13; word f14; word f15; word f16; word f17; word f18; word f19; word f20; word f21[3]; } globalframe = { {0}, (word) PutParts_P480, 0, (word) GetParts_P420, 0, (word) PutTrailerLen_P360, 0, (word) GetTrailerLen_P300, 0, (word) Put16_P240, 0, (word) Get16_P180, 0, (word) PutFileId_P120, 0, (word) GetFileId_P60, 0, (word) TiogaFileIOImpl_P0, {0} }; static void NoName_Q804() { register ptr gf_c079 = (ptr) &globalframe; word var_c8148; (void) XR_DeclareGlobalFrame((word) "TiogaFileIOImpl", &globalframe, (word) XR_GetTypeIndexS((word) (&string1)), (word) ( ( (bPt) gf_c079)+80)/* var_c7860 */ ); var_c8148 = (word) XR_ImportInterface((word) "IO", (word) XR_GetTypeIndexS((word) (&string2)), 103); (* (( (ptr) gf_c079)+22)/* var_c7892 */ ) = var_c8148; (void) XR_ImportProcS(var_c8148, 67641090); (void) XR_ImportProcS(var_c8148, 1071364); (void) XR_ImportProcS(var_c8148, 67378689); (void) XR_ImportProcS(var_c8148, 67377409); (void) XR_ImportProcS(var_c8148, 67377921); (void) XR_ImportProcS(var_c8148, 528642); (void) XR_ImportProcS(var_c8148, 67372801); (void) XR_ImportProcS(var_c8148, 530946); var_c8148 = (word) XR_ExportInterface((word) "TiogaFileIO", (word) XR_GetTypeIndexS((word) (&string3)), 2); (* (( (ptr) gf_c079)+23)/* var_c8180 */ ) = var_c8148; (void) XR_ExportProcS(var_c8148, (word) (( (bPt) gf_c079)+24)/* var_c7636 */ , 470548483); (void) XR_ExportProcS(var_c8148, (word) (( (bPt) gf_c079)+16)/* var_c7604 */ , 67633410); } static void TiogaFileIOImpl_P0(formal_c014, formal_c013) word formal_c014; word formal_c013; { /* TiogaFileIOImpl: */ } static word GetFileId_P60(s_v3144, index_v3172) word s_v3144; word index_v3172; { register ptr gf_c8212 = (ptr) &globalframe; word id_v3216; /* GetFileId: */ SOURCE(787, 163) SOURCE(787, 163) id_v3216 = 0; SOURCE(861, 21) { word pd4; pd4 = (* (( (ptr) (* (( (ptr) gf_c8212)+22)/* var_c7892 */ ))+30) ); (void) ( *( (fPt) ((* (ptr) pd4 ))))(s_v3144, index_v3172, pd4); }; SOURCE(884, 66) { register word i_v4124 = 0; lab_L100003: ; SOURCE(921, 29) { word var_c7924; { word pd5; pd5 = (* (( (ptr) (* (( (ptr) gf_c8212)+22)/* var_c7892 */ ))+11) ); var_c7924 = (word) ( *( (fPt) ((* (ptr) pd5 ))))(s_v3144, pd5); }; (* (( (bPt) &id_v3216)+(i_v4124 + 2)) ) = var_c7924; }; if ((i_v4124 >= 1)) { goto lab_L100000; }; i_v4124 = (i_v4124 + 1); goto lab_L100003; lab_L100000: ; }; SOURCE(787, 163) return(id_v3216); } static void PutFileId_P120(s_v3276, id_v3304) word s_v3276; word id_v3304; { register ptr gf_c8244 = (ptr) &globalframe; /* PutFileId: */ SOURCE(956, 109) SOURCE(1000, 65) { register word i_v4168 = 0; lab_L100007: ; SOURCE(1037, 28) { word byte_v7556; byte_v7556 = (word) (* (( (bPt) &id_v3304)+(i_v4168 + 2)) ); { word pd6; pd6 = (* (( (ptr) (* (( (ptr) gf_c8244)+22)/* var_c7892 */ ))+21) ); (void) ( *( (fPt) ((* (ptr) pd6 ))))(s_v3276, byte_v7556, pd6); }; }; if ((i_v4168 >= 1)) { goto lab_L100004; }; i_v4168 = (i_v4168 + 1); goto lab_L100007; lab_L100004: ; }; } static word Get16_P180(s_v3364) word s_v3364; { register ptr gf_c8276 = (ptr) &globalframe; word var_c3408; word b0_v4212; word b1_v4240; /* Get16: */ SOURCE(1070, 117) SOURCE(1115, 24) { word pd7; pd7 = (* (( (ptr) (* (( (ptr) gf_c8276)+22)/* var_c7892 */ ))+11) ); b0_v4212 = (word) ( *( (fPt) ((* (ptr) pd7 ))))(s_v3364, pd7); }; SOURCE(1141, 24) { word pd8; pd8 = (* (( (ptr) (* (( (ptr) gf_c8276)+22)/* var_c7892 */ ))+11) ); b1_v4240 = (word) ( *( (fPt) ((* (ptr) pd8 ))))(s_v3364, pd8); }; SOURCE(1167, 20) return(((b0_v4212 << 8) + b1_v4240)); } static void Put16_P240(s_v3468, val_v3496) word s_v3468; word val_v3496; { register ptr gf_c8308 = (ptr) &globalframe; word b0_v4284; word b1_v4312; /* Put16: */ SOURCE(1193, 129) SOURCE(1234, 23) b0_v4284 = (val_v3496 >> 8); SOURCE(1259, 25) b1_v4312 = (val_v3496 & 0377); SOURCE(1286, 17) { word pd9; pd9 = (* (( (ptr) (* (( (ptr) gf_c8308)+22)/* var_c7892 */ ))+21) ); (void) ( *( (fPt) ((* (ptr) pd9 ))))(s_v3468, b0_v4284, pd9); }; SOURCE(1305, 17) { word pd10; pd10 = (* (( (ptr) (* (( (ptr) gf_c8308)+22)/* var_c7892 */ ))+21) ); (void) ( *( (fPt) ((* (ptr) pd10 ))))(s_v3468, b1_v4312, pd10); }; } static word GetTrailerLen_P300(s_v3556) word s_v3556; { word var_c3600; word h1_v4356; word h0_v4384; /* GetTrailerLen: */ SOURCE(1328, 148) SOURCE(1381, 21) h1_v4356 = (word) Get16_P180(s_v3556); SOURCE(1432, 21) h0_v4384 = (word) Get16_P180(s_v3556); SOURCE(1455, 21) return(((h0_v4384 << 16) + h1_v4356)); } static void PutTrailerLen_P360(s_v3660, len_v3688) word s_v3660; word len_v3688; { word h1_v4428; word h0_v4456; /* PutTrailerLen: */ SOURCE(1482, 161) SOURCE(1531, 28) h1_v4428 = ( (((unsigned)len_v3688 << 16) >> 16) ); SOURCE(1561, 26) h0_v4456 = (len_v3688 >> 16); SOURCE(1589, 12) (void) Put16_P240(s_v3660, h1_v4428); SOURCE(1631, 12) (void) Put16_P240(s_v3660, h0_v4456); } static void GetParts_P420(formal_c062, s_v3748, start_v3776, len_v3804) word formal_c062; word s_v3748; word start_v3776; word len_v3804; { register ptr gf_c8340 = (ptr) &globalframe; W7 var_c3848; word start1_v4500; word rem_v4528; word fileEnd_v4556; word dataLen_v4584; word commentLen_v4612; word controlLen_v4640; word propsLen_v4668; word fileLen_v4696; word end1_v4724; word commentStart_v4752; word start2_v4780; word end2_v4808; word controlStart_v4836; word start3_v4864; word propsStart_v4892; word controlTrailerStart_v4920; /* GetParts: */ SOURCE(1649, 2389) SOURCE(1737, 32) start1_v4500 = SGNCK(start_v3776); SOURCE(1787, 46) { word pd11; word idx12; pd11 = (* (( (ptr) (* (( (ptr) gf_c8340)+22)/* var_c7892 */ ))+31) ); rem_v4528 = ( idx12 = (word) ((word) ( *( (fPt) ((* (ptr) pd11 ))))(s_v3748, pd11) - start1_v4500), SGNCK(idx12) ); }; SOURCE(1835, 43) { word idx13; word x14; word idx15; fileEnd_v4556 = ( idx15 = (word) (start1_v4500 + (x14 = ( idx13 = (word) (MAX((int)(word), 0, len_v3804)), SGNCK(idx13) ), MIN( (unsigned) , rem_v4528, x14))), SGNCK(idx15) ); }; SOURCE(2034, 1692) SOURCE(2100, 111) if ((14 > (fileEnd_v4556 - start1_v4500))) { SOURCE(2148, 15) goto lab_L100009; } else { SOURCE(2163, 48) controlTrailerStart_v4920 = (fileEnd_v4556 - 14); }; SOURCE(2253, 215) if (((word) GetFileId_P60(s_v3748, controlTrailerStart_v4920) != 34199)) { SOURCE(2312, 15) goto lab_L100009; } else { SOURCE(2352, 27) propsLen_v4668 = (word) GetTrailerLen_P300(s_v3748); SOURCE(2381, 26) dataLen_v4584 = (word) GetTrailerLen_P300(s_v3748); SOURCE(2409, 26) fileLen_v4696 = (word) GetTrailerLen_P300(s_v3748); SOURCE(2437, 31) { word pd16; pd16 = (* (( (ptr) (* (( (ptr) gf_c8340)+22)/* var_c7892 */ ))+29) ); if (( (int)(word) ( *( (fPt) ((* (ptr) pd16 ))))(s_v3748, pd16) != (int)fileEnd_v4556)) { SOURCE(2468, 5) (void) XR_RaiseUnnamedError(); }; }; }; SOURCE(2478, 37) if ((fileLen_v4696 != (fileEnd_v4556 - start1_v4500))) { SOURCE(2515, 9) goto lab_L100009; }; SOURCE(2526, 106) if ((propsLen_v4668 > (controlTrailerStart_v4920 - start1_v4500))) { SOURCE(2576, 15) goto lab_L100009; } else { SOURCE(2591, 41) propsStart_v4892 = (controlTrailerStart_v4920 - propsLen_v4668); }; SOURCE(2665, 91) if ((dataLen_v4584 > (propsStart_v4892 - start1_v4500))) { SOURCE(2705, 15) goto lab_L100009; } else { SOURCE(2720, 36) { word var_c7956; var_c7956 = SGNCK((start1_v4500 + dataLen_v4584)); commentStart_v4752 = var_c7956; end1_v4724 = var_c7956; }; }; SOURCE(2795, 106) if (( (int)6 > (int)(propsStart_v4892 - commentStart_v4752))) { SOURCE(2847, 15) goto lab_L100009; } else { SOURCE(2862, 39) start2_v4780 = (commentStart_v4752 + 6); }; SOURCE(2934, 151) if (((word) GetFileId_P60(s_v3748, commentStart_v4752) != 0)) { SOURCE(2985, 15) goto lab_L100009; } else { SOURCE(3024, 29) commentLen_v4612 = (word) GetTrailerLen_P300(s_v3748); SOURCE(3055, 30) { word pd17; pd17 = (* (( (ptr) (* (( (ptr) gf_c8340)+22)/* var_c7892 */ ))+29) ); if (( (int)(word) ( *( (fPt) ((* (ptr) pd17 ))))(s_v3748, pd17) != (int)start2_v4780)) { SOURCE(3085, 5) (void) XR_RaiseUnnamedError(); }; }; }; SOURCE(3095, 161) if ((commentLen_v4612 < (start2_v4780 - commentStart_v4752))) { SOURCE(3136, 15) goto lab_L100009; } else { SOURCE(3151, 105) if ((commentLen_v4612 > (propsStart_v4892 - commentStart_v4752))) { SOURCE(3196, 15) goto lab_L100009; } else { SOURCE(3211, 45) { word var_c7988; var_c7988 = (commentStart_v4752 + commentLen_v4612); controlStart_v4836 = var_c7988; end2_v4808 = var_c7988; }; }; }; SOURCE(3295, 106) if (( (int)6 > (int)(propsStart_v4892 - controlStart_v4836))) { SOURCE(3347, 15) goto lab_L100009; } else { SOURCE(3362, 39) start3_v4864 = (controlStart_v4836 + 6); }; SOURCE(3434, 151) if (((word) GetFileId_P60(s_v3748, controlStart_v4836) != 40394)) { SOURCE(3485, 15) goto lab_L100009; } else { SOURCE(3524, 29) controlLen_v4640 = (word) GetTrailerLen_P300(s_v3748); SOURCE(3555, 30) { word pd18; pd18 = (* (( (ptr) (* (( (ptr) gf_c8340)+22)/* var_c7892 */ ))+29) ); if (( (int)(word) ( *( (fPt) ((* (ptr) pd18 ))))(s_v3748, pd18) != (int)start3_v4864)) { SOURCE(3585, 5) (void) XR_RaiseUnnamedError(); }; }; }; SOURCE(3595, 42) if ((controlLen_v4640 != (fileEnd_v4556 - controlStart_v4836))) { SOURCE(3637, 9) goto lab_L100009; }; goto lab_L100010; lab_L100009: ; SOURCE(3662, 62) XR_FillWords(&var_c3848, 7, 0); var_c3848.f1 = start1_v4500; var_c3848.f2 = (fileEnd_v4556 - start1_v4500); goto lab_L100008; lab_L100010: ; SOURCE(3729, 84) if (( (int)end1_v4724 > (int)start1_v4500)) { SOURCE(3751, 22) { word pd19; pd19 = (* (( (ptr) (* (( (ptr) gf_c8340)+22)/* var_c7892 */ ))+30) ); (void) ( *( (fPt) ((* (ptr) pd19 ))))(s_v3748, (end1_v4724 - 1), pd19); }; SOURCE(3775, 38) { word pd20; pd20 = (* (( (ptr) (* (( (ptr) gf_c8340)+22)/* var_c7892 */ ))+11) ); if (((word) ( *( (fPt) ((* (ptr) pd20 ))))(s_v3748, pd20) == 0)) { SOURCE(3799, 14) end1_v4724 = (end1_v4724 - 1); }; }; }; SOURCE(3816, 84) if (( (int)end2_v4808 > (int)start2_v4780)) { SOURCE(3838, 22) { word pd21; pd21 = (* (( (ptr) (* (( (ptr) gf_c8340)+22)/* var_c7892 */ ))+30) ); (void) ( *( (fPt) ((* (ptr) pd21 ))))(s_v3748, (end2_v4808 - 1), pd21); }; SOURCE(3862, 38) { word pd22; pd22 = (* (( (ptr) (* (( (ptr) gf_c8340)+22)/* var_c7892 */ ))+11) ); if (((word) ( *( (fPt) ((* (ptr) pd22 ))))(s_v3748, pd22) == 0)) { SOURCE(3886, 14) end2_v4808 = (end2_v4808 - 1); }; }; }; SOURCE(3903, 135) var_c3848.f0 = 1; var_c3848.f1 = start1_v4500; var_c3848.f2 = (end1_v4724 - start1_v4500); var_c3848.f3 = start2_v4780; var_c3848.f4 = (end2_v4808 - start2_v4780); var_c3848.f5 = start3_v4864; var_c3848.f6 = (propsStart_v4892 - start3_v4864); /* removed tail goto */ lab_L100008: ; (* (W7Pt) formal_c062 ) = var_c3848; return; } static word PutParts_P480(s_v3908, put_v3936) word s_v3908; word put_v3936; { register ptr gf_c8372 = (ptr) &globalframe; word var_c4096; word s2_v5004; word s3_v5032; word dataLen_v5060; word commentLen_v5088; word controlLen_v5116; word fileLen_v5144; word part2Len_v5172; word part3Len_v5200; word dataStart_v5256; word commentStart_v5284; word controlStart_v5312; /* PutParts: */ SOURCE(4044, 1298) SOURCE(4128, 21) { word pd23; pd23 = (* (( (ptr) (* (( (ptr) gf_c8372)+22)/* var_c7892 */ ))+34) ); s2_v5004 = (word) ( *( (fPt) ((* (ptr) pd23 ))))(0, pd23); }; SOURCE(4151, 21) { word pd24; pd24 = (* (( (ptr) (* (( (ptr) gf_c8372)+22)/* var_c7892 */ ))+34) ); s3_v5032 = (word) ( *( (fPt) ((* (ptr) pd24 ))))(0, pd24); }; SOURCE(4344, 26) { word pd25; pd25 = (* (( (ptr) (* (( (ptr) gf_c8372)+22)/* var_c7892 */ ))+29) ); dataStart_v5256 = (word) ( *( (fPt) ((* (ptr) pd25 ))))(s_v3908, pd25); }; SOURCE(4372, 14) (void) ( *( (fPt) ((* (ptr) put_v3936 ))))(s_v3908, s2_v5004, s3_v5032, put_v3936); SOURCE(4388, 162) lab_L100013: ; SOURCE(4431, 29) { word pd26; pd26 = (* (( (ptr) (* (( (ptr) gf_c8372)+22)/* var_c7892 */ ))+29) ); commentStart_v5284 = (word) ( *( (fPt) ((* (ptr) pd26 ))))(s_v3908, pd26); }; SOURCE(4462, 38) dataLen_v5060 = (commentStart_v5284 - dataStart_v5256); SOURCE(4502, 48) if (((dataLen_v5060 & 1) != 0)) { SOURCE(4528, 22) { word pd27; pd27 = (* (( (ptr) (* (( (ptr) gf_c8372)+22)/* var_c7892 */ ))+21) ); (void) ( *( (fPt) ((* (ptr) pd27 ))))(s_v3908, 0, pd27); }; } else { SOURCE(4550, 4) goto lab_L100012; }; goto lab_L100013; lab_L100012: ; SOURCE(4566, 165) lab_L100016: ; SOURCE(4609, 27) { word pd28; word idx29; pd28 = (* (( (ptr) (* (( (ptr) gf_c8372)+22)/* var_c7892 */ ))+31) ); part2Len_v5172 = ( idx29 = (word) ( *( (fPt) ((* (ptr) pd28 ))))(s2_v5004, pd28), SGNCK(idx29) ); }; SOURCE(4638, 39) commentLen_v5088 = (part2Len_v5172 + 6); SOURCE(4679, 52) if (((commentLen_v5088 & 1) != 0)) { SOURCE(4708, 23) { word pd30; pd30 = (* (( (ptr) (* (( (ptr) gf_c8372)+22)/* var_c7892 */ ))+21) ); (void) ( *( (fPt) ((* (ptr) pd30 ))))(s2_v5004, 0, pd30); }; } else { SOURCE(4731, 4) goto lab_L100015; }; goto lab_L100016; lab_L100015: ; SOURCE(4746, 29) (void) PutFileId_P120(s_v3908, 0); SOURCE(4777, 28) (void) PutTrailerLen_P360(s_v3908, commentLen_v5088); SOURCE(4807, 33) { word var_c8084; { word pd31; pd31 = (* (( (ptr) (* (( (ptr) gf_c8372)+22)/* var_c7892 */ ))+35) ); var_c8084 = (word) ( *( (fPt) ((* (ptr) pd31 ))))(s2_v5004, 1, pd31); }; { word pd32; pd32 = (* (( (ptr) (* (( (ptr) gf_c8372)+22)/* var_c7892 */ ))+93) ); (void) ( *( (fPt) ((* (ptr) pd32 ))))(s_v3908, var_c8084, 0, 2147483647, pd32); }; }; SOURCE(4842, 29) { word pd33; pd33 = (* (( (ptr) (* (( (ptr) gf_c8372)+22)/* var_c7892 */ ))+29) ); controlStart_v5312 = (word) ( *( (fPt) ((* (ptr) pd33 ))))(s_v3908, pd33); }; SOURCE(4873, 51) if (((controlStart_v5312 - commentStart_v5284) != commentLen_v5088)) { SOURCE(4924, 5) (void) XR_RaiseUnnamedError(); }; SOURCE(4932, 27) { word pd34; word idx35; pd34 = (* (( (ptr) (* (( (ptr) gf_c8372)+22)/* var_c7892 */ ))+31) ); part3Len_v5200 = ( idx35 = (word) ( *( (fPt) ((* (ptr) pd34 ))))(s3_v5032, pd34), SGNCK(idx35) ); }; SOURCE(4961, 67) controlLen_v5116 = (part3Len_v5200 + 20); SOURCE(5030, 29) (void) PutFileId_P120(s_v3908, 40394); SOURCE(5061, 28) (void) PutTrailerLen_P360(s_v3908, controlLen_v5116); SOURCE(5091, 33) { word var_c8116; { word pd36; pd36 = (* (( (ptr) (* (( (ptr) gf_c8372)+22)/* var_c7892 */ ))+35) ); var_c8116 = (word) ( *( (fPt) ((* (ptr) pd36 ))))(s3_v5032, 1, pd36); }; { word pd37; pd37 = (* (( (ptr) (* (( (ptr) gf_c8372)+22)/* var_c7892 */ ))+93) ); (void) ( *( (fPt) ((* (ptr) pd37 ))))(s_v3908, var_c8116, 0, 2147483647, pd37); }; }; SOURCE(5126, 30) (void) PutFileId_P120(s_v3908, 34199); SOURCE(5158, 26) (void) PutTrailerLen_P360(s_v3908, 0); SOURCE(5186, 25) (void) PutTrailerLen_P360(s_v3908, dataLen_v5060); SOURCE(5213, 57) { word var_c086; fileLen_v5144 = ((dataLen_v5060 + commentLen_v5088) + controlLen_v5116); var_c086 = fileLen_v5144; (void) PutTrailerLen_P360(s_v3908, var_c086); }; SOURCE(5272, 47) { word pd38; pd38 = (* (( (ptr) (* (( (ptr) gf_c8372)+22)/* var_c7892 */ ))+29) ); if ((((word) ( *( (fPt) ((* (ptr) pd38 ))))(s_v3908, pd38) - dataStart_v5256) != fileLen_v5144)) { SOURCE(5319, 5) (void) XR_RaiseUnnamedError(); }; }; SOURCE(5327, 15) return(SGNCK(dataLen_v5060)); } /* file: TiogaFileIOImpl, module: TiogaFileIOImpl, compiled at: February 21, 1992 9:37:29 pm PST */ extern void XR_install_TiogaFileIOImpl() { NoName_Q804(); } extern void XR_run_TiogaFileIOImpl() { XR_Start(&globalframe); }