/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: February 21, 1992 11:44:58 pm PST */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: UnixDirectoryImpl, module: UnixDirectoryImpl */ /* switches: bcfhklnouw */ #include <cedar/InstallationSupport.h> #include <cedar/CedarExtra.h> static char versionStamp[] = "@(#)mob←version [3733482609,980103212] UnixDirectoryImpl"; 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, f7;} W8; typedef struct {W8 f; W8 r;} W16; #define SOURCE(p, l) /* source p, l */ #define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i ) static void NoName←Q480(); static void UnixDirectoryImpl←P0(); static word OpenDir←P60(); static word CloseDir←P120(); static word ReadDir←P180(); static word TellDir←P240(); static void SeekDir←P300(); static void RewindDir←P360(); static word NameFromDirEntP←P420(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\336\210\154\161\300\072\153\060\054\100\200\000\000"}; static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\336\210lq\300:k0,@t\000\000"}; static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\211\056\077\074\300\127\047\310\242\100\150\000\000"}; static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\220\270\074\115\300\121\012\115\357\100\150\000\000"}; static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\177\003\016\022\300\223\057\020\003\100\150\000\000"}; static struct {unsigned f; char r[20];} string6 = {1245204, "\211\007\006\104\151\162\122\145\160\300\177\003\016\022\300\223\057\020\003"}; static struct { word f0[5]; 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[4]; } globalframe = { {0}, (word) NameFromDirEntP←P420, 0, (word) RewindDir←P360, 0, (word) SeekDir←P300, 0, (word) TellDir←P240, 0, (word) ReadDir←P180, 0, (word) CloseDir←P120, 0, (word) OpenDir←P60, 0, (word) UnixDirectoryImpl←P0, {0} }; static void NoName←Q480() { register ptr gf←c048 = (ptr) &globalframe; word var←c9480; (* (( (ptr) gf←c048)+4) ) = (word) XR←GetTypeIndexS((word) (&string1)); (void) XR←DeclareGlobalFrame((word) "UnixDirectoryImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string2)), (word) ( ( (bPt) gf←c048)+76)/* var←c9160 */ ); var←c9480 = (word) XR←ImportInterface((word) "UnixSysCalls", (word) XR←GetTypeIndexS((word) (&string3)), 77); (* (( (ptr) gf←c048)+21)/* var←c9192 */ ) = var←c9480; (void) XR←ImportProcS(var←c9480, 67904515); (void) XR←ImportProcS(var←c9480, 67897859); (void) XR←ImportProcS(var←c9480, 67372289); (void) XR←ImportProcS(var←c9480, 67650050); (void) XR←ImportProcS(var←c9480, 67906563); var←c9480 = (word) XR←ImportInterface((word) "UXStrings", (word) XR←GetTypeIndexS((word) (&string4)), 9); (* (( (ptr) gf←c048)+22)/* var←c9352 */ ) = var←c9480; (void) XR←ImportProcS(var←c9480, 67633922); (void) XR←ImportProcS(var←c9480, 67371521); var←c9480 = (word) XR←ExportInterface((word) "UnixDirectory", (word) XR←GetTypeIndexS((word) (&string5)), 8); (* (( (ptr) gf←c048)+23)/* var←c9512 */ ) = var←c9480; (void) XR←ExportType((word) "DirRep", (word) XR←GetTypeIndexS((word) (&string6)), (word) XR←GetTypeIndexS((word) (&string1)) ); (void) XR←ExportProcS(var←c9480, (word) (( (bPt) gf←c048)+68)/* var←c9128 */ , 67371265); (void) XR←ExportProcS(var←c9480, (word) (( (bPt) gf←c048)+52)/* var←c9064 */ , 67371521); (void) XR←ExportProcS(var←c9480, (word) (( (bPt) gf←c048)+44)/* var←c9032 */ , 67371777); (void) XR←ExportProcS(var←c9480, (word) (( (bPt) gf←c048)+36)/* var←c9000 */ , 525314); (void) XR←ExportProcS(var←c9480, (word) (( (bPt) gf←c048)+28)/* var←c8968 */ , 263425); (void) XR←ExportProcS(var←c9480, (word) (( (bPt) gf←c048)+60)/* var←c9096 */ , 67372545); (void) XR←ExportProcS(var←c9480, (word) (( (bPt) gf←c048)+20)/* var←c8936 */ , 67372801); } static void UnixDirectoryImpl←P0(formal←c015, formal←c014) word formal←c015; word formal←c014; { /* UnixDirectoryImpl: */ } static word OpenDir←P60(fileName←v3344) word fileName←v3344; { register ptr gf←c9544 = (ptr) &globalframe; word dirp←v3388; word mode←v4008 = 0; word fd←v4036; W16 stat←v4064; word buf←v4092; /* OpenDir: */ SOURCE(768, 638) SOURCE(768, 638) dirp←v3388 = 0; SOURCE(913, 68) { word pd7; pd7 = (* (( (ptr) (* (( (ptr) gf←c9544)+21)/* var←c9192 */ ))+48) ); fd←v4036 = (word) ( *( (fPt) ((* (ptr) pd7 ))))(fileName←v3344, 0, mode←v4008, pd7); }; SOURCE(983, 20) XR←FillWords(&stat←v4064, 16, 0); SOURCE(1005, 30) buf←v4092 = (word) &stat←v4064; SOURCE(1037, 31) if ((fd←v4036 == (word) -1)) { SOURCE(1056, 12) return(0); }; SOURCE(1070, 89) { word pd8; pd8 = (* (( (ptr) (* (( (ptr) gf←c9544)+21)/* var←c9192 */ ))+70) ); if (((word) ( *( (fPt) ((* (ptr) pd8 ))))(fd←v4036, buf←v4092, pd8) == (word) -1)) { SOURCE(1118, 27) { word var←c9256; word pd9; pd9 = (* (( (ptr) (* (( (ptr) gf←c9544)+21)/* var←c9192 */ ))+9) ); var←c9256 = (word) ( *( (fPt) ((* (ptr) pd9 ))))(fd←v4036, pd9); }; SOURCE(1147, 12) return(0); }; }; SOURCE(1164, 99) if ((( * (bPt) (( (bPt) buf←v4092)+8) >> 4) != 4)) { SOURCE(1193, 27) (void) XR←SetErrno(20); SOURCE(1222, 27) { word var←c9288; word pd10; pd10 = (* (( (ptr) (* (( (ptr) gf←c9544)+21)/* var←c9192 */ ))+9) ); var←c9288 = (word) ( *( (fPt) ((* (ptr) pd10 ))))(fd←v4036, pd10); }; SOURCE(1251, 12) return(0); }; SOURCE(1268, 123) { word var←c9320; word var←c9384; { word pd11; word idx12; pd11 = (* (( (ptr) (* (( (ptr) gf←c9544)+22)/* var←c9352 */ ))+6) ); var←c9320 = (word) ( *( (fPt) ((* (ptr) pd11 ))))(( idx12 = (* (( (ptr) buf←v4092)+12) ), SGNCK(idx12) ), pd11); }; var←c9384 = XR←NewObject(24, (* (( (ptr) gf←c9544)+4) )); (* (ptr) var←c9384 ) = var←c9320; { word idx13; (* (( (ptr) var←c9384)+1) ) = ( idx13 = (* (( (ptr) buf←v4092)+12) ), SGNCK(idx13) ); }; (* (( (ptr) var←c9384)+2) ) = fd←v4036; dirp←v3388 = var←c9384; }; SOURCE(1393, 13) return(dirp←v3388); } static word CloseDir←P120(dirp←v3448) word dirp←v3448; { register ptr gf←c9576 = (ptr) &globalframe; word var←c3492; word fd←v4136; /* CloseDir: */ SOURCE(1411, 135) SOURCE(1466, 16) fd←v4136 = (* (( (ptr) dirp←v3448)+2) ); SOURCE(1484, 15) (* (( (ptr) dirp←v3448)+2) ) = (word) -1; SOURCE(1501, 12) (* (( (ptr) dirp←v3448)+3) ) = 0; SOURCE(1515, 31) { word pd14; pd14 = (* (( (ptr) (* (( (ptr) gf←c9576)+21)/* var←c9192 */ ))+9) ); return((word) ( *( (fPt) ((* (ptr) pd14 ))))(fd←v4136, pd14)); }; } static word ReadDir←P180(dirp←v3552) word dirp←v3552; { register ptr gf←c9608 = (ptr) &globalframe; word var←c3596; word dp←v4180; word fd←v4208; word buffer←v4236; word bsize←v4264; word saveloc←v4292 = 0; word recLen←v4320; word fileNo←v4348; /* ReadDir: */ SOURCE(1552, 783) SOURCE(1627, 16) fd←v4208 = (* (( (ptr) dirp←v3552)+2) ); SOURCE(1645, 29) buffer←v4236 = (* (ptr) dirp←v3552 ); SOURCE(1676, 23) bsize←v4264 = (* (( (ptr) dirp←v3552)+1) ); SOURCE(1747, 526) lab←L100002: ; SOURCE(1761, 137) if (( (int)(* (( (ptr) dirp←v3552)+4) ) != (int)0)) { SOURCE(1785, 18) saveloc←v4292 = (* (( (ptr) dirp←v3552)+3) ); SOURCE(1813, 55) SOURCE(1815, 31) dp←v4180 = (buffer←v4236 + saveloc←v4292); SOURCE(1848, 18) recLen←v4320 = (* (( (hPt) dp←v4180)+4) ); SOURCE(1871, 27) (* (( (ptr) dirp←v3552)+3) ) = (saveloc←v4292 + recLen←v4320); }; SOURCE(1903, 56) if (( (int)(* (( (ptr) dirp←v3552)+3) ) >= (int)(* (( (ptr) dirp←v3552)+4) ))) { SOURCE(1935, 24) (* (( (ptr) dirp←v3552)+4) ) = 0; (* (( (ptr) dirp←v3552)+3) ) = 0; }; SOURCE(1964, 164) if (( (int)(* (( (ptr) dirp←v3552)+4) ) == (int)0)) { SOURCE(1996, 53) SOURCE(1997, 52) { word pd15; pd15 = (* (( (ptr) (* (( (ptr) gf←c9608)+21)/* var←c9192 */ ))+14) ); (* (( (ptr) dirp←v3552)+4) ) = (word) ( *( (fPt) ((* (ptr) pd15 ))))(fd←v4208, buffer←v4236, bsize←v4264, pd15); }; SOURCE(2052, 40) if (( (int)(* (( (ptr) dirp←v3552)+4) ) == (int)0)) { SOURCE(2074, 18) (* (( (ptr) dirp←v3552)+3) ) = saveloc←v4292; }; SOURCE(2094, 34) if (( (int)(* (( (ptr) dirp←v3552)+4) ) <= (int)0)) { SOURCE(2116, 12) return(0); }; }; SOURCE(2141, 76) SOURCE(2143, 32) dp←v4180 = (buffer←v4236 + (* (( (ptr) dirp←v3552)+3) )); SOURCE(2177, 18) recLen←v4320 = (* (( (hPt) dp←v4180)+4) ); SOURCE(2197, 18) fileNo←v4348 = (* (( (ptr) dp←v4180)+1) ); SOURCE(2220, 32) if ((recLen←v4320 <= 0)) { SOURCE(2240, 12) return(0); }; SOURCE(2254, 19) if ((fileNo←v4348 != 0)) { SOURCE(2273, 4) goto lab←L100001; }; goto lab←L100002; lab←L100001: ; SOURCE(2296, 24) SOURCE(2297, 23) (* (( (ptr) dirp←v3552)+5) ) = (* (ptr) dp←v4180 ); SOURCE(2324, 11) return(dp←v4180); } static word TellDir←P240(dirp←v3656) word dirp←v3656; { word var←c3700; /* TellDir: */ SOURCE(2341, 74) SOURCE(2395, 20) return((* (( (ptr) dirp←v3656)+5) )); } static void SeekDir←P300(dirp←v3760, loc←v3788) word dirp←v3760; word loc←v3788; { register ptr gf←c9640 = (ptr) &globalframe; word currentLocation←v4392; word fd←v4420; /* SeekDir: */ SOURCE(2421, 248) SOURCE(2471, 34) currentLocation←v4392 = (* (( (ptr) dirp←v3760)+5) ); SOURCE(2507, 16) fd←v4420 = (* (( (ptr) dirp←v3760)+2) ); SOURCE(2525, 38) if (( (int)currentLocation←v4392 == (int)loc←v3788)) { SOURCE(2557, 6) return; }; SOURCE(2565, 12) (* (( (ptr) dirp←v3760)+3) ) = 0; SOURCE(2579, 13) (* (( (ptr) dirp←v3760)+4) ) = 0; SOURCE(2594, 56) { word var←c9448; word pd16; pd16 = (* (( (ptr) (* (( (ptr) gf←c9640)+21)/* var←c9192 */ ))+40) ); var←c9448 = (word) ( *( (fPt) ((* (ptr) pd16 ))))(fd←v4420, loc←v3788, 0, pd16); }; SOURCE(2652, 17) (* (( (ptr) dirp←v3760)+5) ) = loc←v3788; } static void RewindDir←P360(dirp←v3848) word dirp←v3848; { /* RewindDir: */ SOURCE(2675, 90) SOURCE(2739, 26) (void) SeekDir←P300(dirp←v3848, 0); } static word NameFromDirEntP←P420(dp←v3908) word dp←v3908; { register ptr gf←c9672 = (ptr) &globalframe; word name←v3952; /* NameFromDirEntP: */ SOURCE(2771, 123) SOURCE(2771, 123) name←v3952 = 0; SOURCE(2849, 45) { word pd17; pd17 = (* (( (ptr) (* (( (ptr) gf←c9672)+22)/* var←c9352 */ ))+7) ); name←v3952 = (word) ( *( (fPt) ((* (ptr) pd17 ))))((word) (( (bPt) dp←v3908)+12), 2147483647, pd17); }; SOURCE(2771, 123) return(name←v3952); } /* file: UnixDirectoryImpl, module: UnixDirectoryImpl, compiled at: February 21, 1992 11:44:57 pm PST */ extern void XR←install←UnixDirectoryImpl() { NoName←Q480(); } extern void XR←run←UnixDirectoryImpl() { XR←Start(&globalframe); }