/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */ /* time: January 26, 1993 8:43:13 pm PST */ /* C2C version: October 7, 1992 (native) */ /* ref-counting: off */ /* file: UnixSysCallsImpl, module: UnixSysCallsImpl */ /* switches: bcfhklnouw */ #include <cedar/InstallationSupport.h> #include <cedar/CedarExtra.h> #include <sys/mman.h> static char versionStamp[] = "@(#)mob←version [3903818339,1514255853] UnixSysCallsImpl"; 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 {word f0, f1, f2, f3, f4, f5, f6;} W7; typedef struct {W8 f; W7 r;} W15; typedef struct {word f0, f1;} W2; typedef W2 *W2Pt; #define SOURCE(p, l) /* source p, l */ static void NoName←Q1008(); static void UnixSysCallsImpl←P0(); static word Close←P60(); static word FSync←P120(); static word GetDEnts←P180(); static word GetDTableSize←P240(); static word GetDTableSize1←P300(); static word GetTimeOfDay←P360(); static word LSeek←P420(); static word MMap←P480(); static word MUnmap←P540(); static word Open←P600(); static word Read←P660(); static word FStat←P720(); static word Unlink←P780(); static word Write←P840(); static void AssignStat←P900(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\350\257\212\143\300\132\101\265\355\100\164\000\000"}; static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\011\071\113\334\300\244\027\111\067\100\150\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\061\347\231\302\300\102\104\205\246\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; 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[3]; } globalframe = { {0}, (word) AssignStat←P900, 0, (word) Write←P840, 0, (word) Unlink←P780, 0, (word) FStat←P720, 0, (word) Read←P660, 0, (word) Open←P600, 0, (word) MUnmap←P540, 0, (word) MMap←P480, 0, (word) LSeek←P420, 0, (word) GetTimeOfDay←P360, 0, (word) GetDTableSize1←P300, 0, (word) GetDTableSize←P240, 0, (word) GetDEnts←P180, 0, (word) FSync←P120, 0, (word) Close←P60, 0, (word) UnixSysCallsImpl←P0, {0} }; #define CONSTRUCT←MMAP←FLAGS(shared, private, fixed) ( ((word)(shared))*((word)(MAP←SHARED)) + ((word)(private))*((word)(MAP←PRIVATE)) + ((word)(fixed))*((word)(MAP←FIXED))) static void NoName←Q1008() { register ptr gf←c073 = (ptr) &globalframe; word var←c12036; (void) XR←DeclareGlobalFrame((word) "UnixSysCallsImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) ( ( (bPt) gf←c073)+136)/* var←c11428 */ ); var←c12036 = (word) XR←ImportInterface((word) "ProcessorFace", (word) XR←GetTypeIndexS((word) (&string2)), 5); (* (( (ptr) gf←c073)+36)/* var←c11844 */ ) = var←c12036; (void) XR←ImportProcS(var←c12036, 67109120); var←c12036 = (word) XR←ExportInterface((word) "UnixSysCalls", (word) XR←GetTypeIndexS((word) (&string3)), 77); (* (( (ptr) gf←c073)+37)/* var←c12068 */ ) = var←c12036; (void) XR←ExportProcS(var←c12036, (word) (( (bPt) gf←c073)+128)/* var←c11396 */ , 67372289); (void) XR←ExportProcS(var←c12036, (word) (( (bPt) gf←c073)+120)/* var←c11364 */ , 67373313); (void) XR←ExportProcS(var←c12036, (word) (( (bPt) gf←c073)+112)/* var←c11332 */ , 67897859); (void) XR←ExportProcS(var←c12036, (word) (( (bPt) gf←c073)+104)/* var←c11300 */ , 67111936); (void) XR←ExportProcS(var←c12036, (word) (( (bPt) gf←c073)+88)/* var←c11236 */ , 67640066); (void) XR←ExportProcS(var←c12036, (word) (( (bPt) gf←c073)+80)/* var←c11204 */ , 67904515); (void) XR←ExportProcS(var←c12036, (word) (( (bPt) gf←c073)+72)/* var←c11172 */ , 68691974); (void) XR←ExportProcS(var←c12036, (word) (( (bPt) gf←c073)+64)/* var←c11140 */ , 67643650); (void) XR←ExportProcS(var←c12036, (word) (( (bPt) gf←c073)+56)/* var←c11108 */ , 67906563); (void) XR←ExportProcS(var←c12036, (word) (( (bPt) gf←c073)+48)/* var←c11076 */ , 67907587); (void) XR←ExportProcS(var←c12036, (word) (( (bPt) gf←c073)+40)/* var←c11044 */ , 67650050); (void) XR←ExportProcS(var←c12036, (word) (( (bPt) gf←c073)+32)/* var←c11012 */ , 67389697); (void) XR←ExportProcS(var←c12036, (word) (( (bPt) gf←c073)+24)/* var←c10980 */ , 67914499); var←c12036 = (word) XR←ExportInterface((word) "UnixSysCallExtensions", (word) XR←GetTypeIndexS((word) (&string4)), 1); (* (( (ptr) gf←c073)+37)/* var←c12068 */ ) = var←c12036; (void) XR←ExportProcS(var←c12036, (word) (( (bPt) gf←c073)+96)/* var←c11268 */ , 67371009); } static void UnixSysCallsImpl←P0(formal←c021, formal←c020) word formal←c021; word formal←c020; { /* UnixSysCallsImpl: */ } static word Close←P60(fd←v3052) word fd←v3052; { word var←c3096; /* Close: */ SOURCE(247, 139) SOURCE(367, 19) return((word) XR←Close(fd←v3052)); } static word FSync←P120(fd←v3156) word fd←v3156; { word var←c3200; /* FSync: */ SOURCE(396, 139) SOURCE(516, 19) return((word) XR←FSync(fd←v3156)); } static word GetDEnts←P180(fd←v3260, buf←v3288, nBytes←v3316) word fd←v3260; word buf←v3288; word nBytes←v3316; { word var←c3360; /* GetDEnts: */ SOURCE(541, 244) SOURCE(750, 35) return((word) XR←GetDEnts(fd←v3260, buf←v3288, nBytes←v3316)); } static word GetDTableSize←P240() { word var←c3420; /* GetDTableSize: */ SOURCE(792, 151) SOURCE(918, 25) return((word) XR←GetDTableSize()); } static word GetDTableSize1←P300(kind←v3480) word kind←v3480; { word var←c3524; /* GetDTableSize1: */ SOURCE(949, 199) SOURCE(1113, 35) return((word) XR←GetDTableSize1(kind←v3480)); } static word GetTimeOfDay←P360(tp←v3584, tzp←v3612) word tp←v3584; word tzp←v3612; { word var←c3656; /* GetTimeOfDay: */ SOURCE(1159, 250) SOURCE(1378, 31) return((word) XR←GetTimeOfDay(tp←v3584, tzp←v3612)); } static word LSeek←P420(d←v3716, offset←v3744, whence←v3772) word d←v3716; word offset←v3744; word whence←v3772; { word var←c3816; /* LSeek: */ SOURCE(1416, 210) SOURCE(1592, 34) return((word) XR←LSeek(d←v3716, offset←v3744, whence←v3772)); } static word MMap←P480(addr←v3876, nbytes←v3904, prot←v3932, flags←v3960, d←v3988, offset←v4016) word addr←v3876; word nbytes←v3904; word prot←v3932; word flags←v3960; word d←v3988; word offset←v4016; { word var←c4060; word var←c11716; /* MMap: */ SOURCE(1632, 840) SOURCE(2305, 167) var←c11716 = (word) CONSTRUCT←MMAP←FLAGS((flags←v3960 & 1), (((unsigned)flags←v3960 << 30) >> 31), (((unsigned)flags←v3960 << 28) >> 31)) ; if (((word) XR←MMap(addr←v3876, nbytes←v3904, prot←v3932, var←c11716, d←v3988, offset←v4016) == addr←v3876)) { return(0); } else { return( (word) -1); }; } static word MUnmap←P540(addr←v4120, nbytes←v4148) word addr←v4120; word nbytes←v4148; { word var←c4192; /* MUnmap: */ SOURCE(2478, 198) SOURCE(2646, 30) return((word) XR←MUnmap(addr←v4120, nbytes←v4148)); } static word Open←P600(path←v4252, flags←v4280, mode←v4308) word path←v4252; word flags←v4280; word mode←v4308; { word var←c4352; /* Open: */ SOURCE(2684, 222) SOURCE(2873, 33) return((word) XR←Open(path←v4252, flags←v4280, mode←v4308)); } static word Read←P660(d←v4412, buf←v4440, nBytes←v4468) word d←v4412; word buf←v4440; word nBytes←v4468; { word var←c4512; /* Read: */ SOURCE(2913, 225) SOURCE(3108, 30) return((word) XR←Read(d←v4412, buf←v4440, nBytes←v4468)); } static word FStat←P720(fd←v4572, buf←v4600) word fd←v4572; word buf←v4600; { register ptr gf←c12100 = (ptr) &globalframe; word var←c4644; /* FStat: */ SOURCE(3153, 443) SOURCE(3427, 169) { word var←c11876; { word pd5; pd5 = (* (( (ptr) (* (( (ptr) gf←c12100)+36)/* var←c11844 */ ))+5) ); var←c11876 = (word) ( *( (fPt) ((* (ptr) pd5 ))))(pd5); }; if ((var←c11876 == 1)) { SOURCE(3480, 25) return((word) XR←FStat(fd←v4572, buf←v4600)); } else { if ((var←c11876 == 0)) { SOURCE(3515, 83) { W15 buf3←v8092; word res←v8120; SOURCE(3517, 11) XR←FillWords(&buf3←v8092, 15, 0); SOURCE(3530, 29) res←v8120 = (word) XR←FStat(fd←v4572, (word) &buf3←v8092); SOURCE(3561, 22) (void) AssignStat←P900(buf←v4600, (word) &buf3←v8092); SOURCE(3585, 11) return(res←v8120); }; } else { SOURCE(3611, 5) (void) XR←RaiseUnnamedError(); }; }; }; } static word Unlink←P780(path←v4704) word path←v4704; { word var←c4748; /* Unlink: */ SOURCE(3625, 159) SOURCE(3762, 22) return((word) XR←Unlink(path←v4704)); } static word Write←P840(d←v4808, buf←v4836, nBytes←v4864) word d←v4808; word buf←v4836; word nBytes←v4864; { word var←c4908; /* Write: */ SOURCE(3793, 203) SOURCE(3965, 31) return((word) XR←Write(d←v4808, buf←v4836, nBytes←v4864)); } static void AssignStat←P900(s4←v5508, s3←v5536) word s4←v5508; word s3←v5536; { /* AssignStat: */ SOURCE(4719, 432) SOURCE(4804, 15) (* (hPt) s4←v5508 ) = (* (hPt) s3←v5536 ); SOURCE(4821, 15) (* (( (ptr) s4←v5508)+1) ) = XR←ExtractField((word) s3←v5536, 16, 32); SOURCE(4838, 17) (* (( (hPt) s4←v5508)+4) ) = (* (( (hPt) s3←v5536)+3) ); SOURCE(4857, 19) (* (( (hPt) s4←v5508)+5) ) = (* (( (hPt) s3←v5536)+4) ); SOURCE(4878, 15) (* (( (hPt) s4←v5508)+6) ) = (* (( (hPt) s3←v5536)+5) ); SOURCE(4895, 15) (* (( (hPt) s4←v5508)+7) ) = (* (( (hPt) s3←v5536)+6) ); SOURCE(4912, 17) (* (( (hPt) s4←v5508)+8) ) = (* (( (hPt) s3←v5536)+7) ); SOURCE(4931, 17) (* (( (ptr) s4←v5508)+5) ) = (* (( (ptr) s3←v5536)+4) ); SOURCE(4950, 19) (* (( (ptr) s4←v5508)+6) ) = (* (( (ptr) s3←v5536)+5) ); SOURCE(4971, 21) (* (( (ptr) s4←v5508)+7) ) = (* (( (ptr) s3←v5536)+6) ); SOURCE(4994, 19) (* (( (ptr) s4←v5508)+8) ) = (* (( (ptr) s3←v5536)+7) ); SOURCE(5015, 21) (* (( (ptr) s4←v5508)+9) ) = (* (( (ptr) s3←v5536)+8) ); SOURCE(5038, 19) (* (( (ptr) s4←v5508)+10) ) = (* (( (ptr) s3←v5536)+9) ); SOURCE(5059, 21) (* (( (ptr) s4←v5508)+11) ) = (* (( (ptr) s3←v5536)+10) ); SOURCE(5082, 23) (* (( (ptr) s4←v5508)+12) ) = (* (( (ptr) s3←v5536)+11) ); SOURCE(5107, 21) (* (( (ptr) s4←v5508)+13) ) = (* (( (ptr) s3←v5536)+12) ); SOURCE(5130, 21) (* (W2Pt) (( (ptr) s4←v5508)+14) ) = (* (W2Pt) (( (ptr) s3←v5536)+13) ); } /* file: UnixSysCallsImpl, module: UnixSysCallsImpl, compiled at: January 26, 1993 8:43:12 pm PST */ extern void XR←install←UnixSysCallsImpl() { NoName←Q1008(); } extern void XR←run←UnixSysCallsImpl() { XR←Start(&globalframe); }