/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1994 by Xerox Corporation. All rights reserved. */
/* time: March 16, 1994 12:09:49 pm PST */
/* C2C version: January 12, 1994 (sun4) */
/* 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 [3046554432,1988006759] UnixSysCallsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static void NoName←Q960();
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\265\226\273\100\300\166\176\223\147\100\150\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\211\056\077\074\300\127\047\310\242\100\150\000\000"};
static struct {unsigned f; char r[16];} string3 = {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[2];
} 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←Q960()
{
register ptr gf←c070 = (ptr) &globalframe;
word var←c12000;
(void) XR←DeclareGlobalFrame((word) "UnixSysCallsImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (
( (bPt) gf←c070)+136)/* var←c11488 */ );
var←c12000 = (word) XR←ExportInterface((word) "UnixSysCalls", (word) XR←GetTypeIndexS((word) (&string2)), 77);
(* (( (ptr) gf←c070)+36)/* var←c11968 */ ) = var←c12000;
(void) XR←ExportProcS(var←c12000, (word) (( (bPt) gf←c070)+128)/* var←c11456 */ , 67372289, (word) "Close");
(void) XR←ExportProcS(var←c12000, (word) (( (bPt) gf←c070)+120)/* var←c11424 */ , 67373313, (word) "FSync");
(void) XR←ExportProcS(var←c12000, (word) (( (bPt) gf←c070)+112)/* var←c11392 */ , 67897859, (word) "GetDEnts");
(void) XR←ExportProcS(var←c12000, (word) (( (bPt) gf←c070)+104)/* var←c11360 */ , 67111936, (word) "GetDTableSize");
(void) XR←ExportProcS(var←c12000, (word) (( (bPt) gf←c070)+88)/* var←c11296 */ , 67640066, (word) "GetTimeOfDay");
(void) XR←ExportProcS(var←c12000, (word) (( (bPt) gf←c070)+80)/* var←c11264 */ , 67904515, (word) "LSeek");
(void) XR←ExportProcS(var←c12000, (word) (( (bPt) gf←c070)+72)/* var←c11232 */ , 68691974, (word) "MMap");
(void) XR←ExportProcS(var←c12000, (word) (( (bPt) gf←c070)+64)/* var←c11200 */ , 67643650, (word) "MUnmap");
(void) XR←ExportProcS(var←c12000, (word) (( (bPt) gf←c070)+56)/* var←c11168 */ , 67906563, (word) "Open");
(void) XR←ExportProcS(var←c12000, (word) (( (bPt) gf←c070)+48)/* var←c11136 */ , 67907587, (word) "Read");
(void) XR←ExportProcS(var←c12000, (word) (( (bPt) gf←c070)+40)/* var←c11104 */ , 67650050, (word) "FStat");
(void) XR←ExportProcS(var←c12000, (word) (( (bPt) gf←c070)+32)/* var←c11072 */ , 67389697, (word) "Unlink");
(void) XR←ExportProcS(var←c12000, (word) (( (bPt) gf←c070)+24)/* var←c11040 */ , 67914499, (word) "Write");
var←c12000 = (word) XR←ExportInterface((word) "UnixSysCallExtensions", (word) XR←GetTypeIndexS((word) (&string3)), 1);
(* (( (ptr) gf←c070)+36)/* var←c11968 */ ) = var←c12000;
(void) XR←ExportProcS(var←c12000, (word) (( (bPt) gf←c070)+96)/* var←c11328 */ , 67371009, (word) "GetDTableSize1");
}
static void UnixSysCallsImpl←P0(formal←c020, formal←c019)
word formal←c020;
word formal←c019;
{
/* UnixSysCallsImpl: */
}
static word Close←P60(fd←v3048)
word fd←v3048;
{
word var←c3092;
/* Close: */
SOURCE(185, 139)
SOURCE(305, 19)
return((word) XR←Close(fd←v3048));
}
static word FSync←P120(fd←v3152)
word fd←v3152;
{
word var←c3196;
/* FSync: */
SOURCE(334, 139)
SOURCE(454, 19)
return((word) XR←FSync(fd←v3152));
}
static word GetDEnts←P180(fd←v3256, buf←v3284, nBytes←v3312)
word fd←v3256;
word buf←v3284;
word nBytes←v3312;
{
word var←c3356;
/* GetDEnts: */
SOURCE(479, 244)
SOURCE(688, 35)
return((word) XR←GetDEnts(fd←v3256, buf←v3284, nBytes←v3312));
}
static word GetDTableSize←P240()
{
word var←c3416;
/* GetDTableSize: */
SOURCE(730, 151)
SOURCE(856, 25)
return((word) XR←GetDTableSize());
}
static word GetDTableSize1←P300(kind←v3476)
word kind←v3476;
{
word var←c3520;
/* GetDTableSize1: */
SOURCE(887, 199)
SOURCE(1051, 35)
return((word) XR←GetDTableSize1(kind←v3476));
}
static word GetTimeOfDay←P360(tp←v3580, tzp←v3608)
word tp←v3580;
word tzp←v3608;
{
word var←c3652;
/* GetTimeOfDay: */
SOURCE(1097, 250)
SOURCE(1316, 31)
return((word) XR←GetTimeOfDay(tp←v3580, tzp←v3608));
}
static word LSeek←P420(d←v3712, offset←v3740, whence←v3768)
word d←v3712;
word offset←v3740;
word whence←v3768;
{
word var←c3812;
/* LSeek: */
SOURCE(1354, 210)
SOURCE(1530, 34)
return((word) XR←LSeek(d←v3712, offset←v3740, whence←v3768));
}
static word MMap←P480(addr←v3872, nbytes←v3900, prot←v3928, flags←v3956, d←v3984, offset←v4012)
word addr←v3872;
word nbytes←v3900;
word prot←v3928;
word flags←v3956;
word d←v3984;
word offset←v4012;
{
word var←c4056;
word var←c11776;
/* MMap: */
SOURCE(1570, 840)
SOURCE(2243, 167)
var←c11776 = (word) CONSTRUCT←MMAP←FLAGS( (unsigned) (flags←v3956 & 1), (unsigned) (((unsigned)flags←v3956 << 30) >> 31), (unsigned) (((unsigned)flags←v3956 << 28) >> 31))
;
if (((word) XR←MMap(addr←v3872, nbytes←v3900, prot←v3928, var←c11776, d←v3984, offset←v4012) == addr←v3872)) {
return(0);
}
else {
return( (word) -1);
};
}
static word MUnmap←P540(addr←v4116, nbytes←v4144)
word addr←v4116;
word nbytes←v4144;
{
word var←c4188;
/* MUnmap: */
SOURCE(2416, 198)
SOURCE(2584, 30)
return((word) XR←MUnmap(addr←v4116, nbytes←v4144));
}
static word Open←P600(path←v4248, flags←v4276, mode←v4304)
word path←v4248;
word flags←v4276;
word mode←v4304;
{
word var←c4348;
/* Open: */
SOURCE(2622, 222)
SOURCE(2811, 33)
return((word) XR←Open(path←v4248, flags←v4276, mode←v4304));
}
static word Read←P660(d←v4408, buf←v4436, nBytes←v4464)
word d←v4408;
word buf←v4436;
word nBytes←v4464;
{
word var←c4508;
/* Read: */
SOURCE(2851, 225)
SOURCE(3046, 30)
return((word) XR←Read(d←v4408, buf←v4436, nBytes←v4464));
}
static word FStat←P720(fd←v4568, buf←v4596)
word fd←v4568;
word buf←v4596;
{
word var←c4640;
word res←v8248;
/* FStat: */
SOURCE(3091, 212)
SOURCE(3265, 25)
res←v8248 = (word) XR←FStat(fd←v4568, buf←v4596);
SOURCE(3292, 11)
return(res←v8248);
}
static word Unlink←P780(path←v4700)
word path←v4700;
{
word var←c4744;
/* Unlink: */
SOURCE(3312, 159)
SOURCE(3449, 22)
return((word) XR←Unlink(path←v4700));
}
static word Write←P840(d←v4804, buf←v4832, nBytes←v4860)
word d←v4804;
word buf←v4832;
word nBytes←v4860;
{
word var←c4904;
/* Write: */
SOURCE(3480, 203)
SOURCE(3652, 31)
return((word) XR←Write(d←v4804, buf←v4832, nBytes←v4860));
}
static void AssignStat←P900(s4←v5972, ssp←v6000)
word s4←v5972;
word ssp←v6000;
{
/* AssignStat: */
SOURCE(5060, 652)
SOURCE(5141, 16)
{
word idx4;
(* (hPt) s4←v5972 ) = ((
idx4 = (word) ((* (ptr) ssp←v6000 ) + 32768),
BCK(idx4, 65536)
) - 32768);
};
SOURCE(5159, 16)
(* (( (ptr) s4←v5972)+1) ) = (* (( (ptr) ssp←v6000)+4) );
SOURCE(5177, 26)
{
word tadr5;
tadr5 = (word) (( (ptr) s4←v5972) + 2);
(* (ptr) tadr5 ) = ((* (ptr) tadr5 ) & 268435455) | (((word) ( * (bPt) (( (bPt) ssp←v6000)+22) >> 4)) << 28);
};
SOURCE(5205, 28)
{
word tadr6;
tadr6 = (word) (( (ptr) s4←v5972) + 2);
(* (ptr) tadr6 ) = ((* (ptr) tadr6 ) & 4160749567) | (((word) (((unsigned)(* (( (bPt) ssp←v6000)+22) ) << 28) >> 31)) << 27)
;
};
SOURCE(5235, 28)
{
word tadr7;
tadr7 = (word) (( (ptr) s4←v5972) + 2);
(* (ptr) tadr7 ) = ((* (ptr) tadr7 ) & 4227858431) | (((word) (((unsigned)(* (( (bPt) ssp←v6000)+22) ) << 29) >> 31)) << 26)
;
};
SOURCE(5265, 28)
{
word tadr8;
tadr8 = (word) (( (ptr) s4←v5972) + 2);
(* (ptr) tadr8 ) = ((* (ptr) tadr8 ) & 4261412863) | (((word) (((unsigned)(* (( (bPt) ssp←v6000)+22) ) << 30) >> 31)) << 25)
;
};
SOURCE(5295, 30)
{
word tadr9;
tadr9 = (word) (( (ptr) s4←v5972) + 2);
(* (ptr) tadr9 ) = ((* (ptr) tadr9 ) & 4265607167) | (((word) (((unsigned)(* (( (hPt) ssp←v6000)+11) ) << 23) >> 29)) << 22)
;
};
SOURCE(5327, 30)
{
word tadr10;
tadr10 = (word) (( (ptr) s4←v5972) + 2);
(* (ptr) tadr10 ) = ((* (ptr) tadr10 ) & 4291297279) | (((word) (((unsigned)(* (( (bPt) ssp←v6000)+23) ) << 26) >> 29))
<< 19);
};
SOURCE(5359, 32)
{
word tadr11;
tadr11 = (word) (( (ptr) s4←v5972) + 2);
(* (ptr) tadr11 ) = ((* (ptr) tadr11 ) & 4294508543) | (((word) ((* (( (bPt) ssp←v6000)+23) ) & 7)) << 16);
};
SOURCE(5393, 20)
{
word idx12;
(* (( (hPt) s4←v5972)+5) ) = (
idx12 = (* (( (ptr) ssp←v6000)+6) ),
BCK(idx12, 32768)
);
};
SOURCE(5415, 16)
{
word idx13;
(* (( (hPt) s4←v5972)+6) ) = ((
idx13 = (word) ((* (( (ptr) ssp←v6000)+7) ) + 32768),
BCK(idx13, 65536)
) - 32768);
};
SOURCE(5433, 16)
{
word idx14;
(* (( (hPt) s4←v5972)+7) ) = ((
idx14 = (word) ((* (( (ptr) ssp←v6000)+8) ) + 32768),
BCK(idx14, 65536)
) - 32768);
};
SOURCE(5451, 18)
{
word idx15;
(* (( (hPt) s4←v5972)+8) ) = ((
idx15 = (word) ((* (( (ptr) ssp←v6000)+9) ) + 32768),
BCK(idx15, 65536)
) - 32768);
};
SOURCE(5471, 18)
{
word idx16;
(* (( (ptr) s4←v5972)+5) ) = (
idx16 = (* (( (ptr) ssp←v6000)+12) ),
SGNCK(idx16)
);
};
SOURCE(5491, 24)
{
word idx17;
(* (( (ptr) s4←v5972)+6) ) = (
idx17 = (* (( (ptr) ssp←v6000)+14) ),
SGNCK(idx17)
);
};
SOURCE(5517, 26)
{
word idx18;
(* (( (ptr) s4←v5972)+7) ) = (
idx18 = (* (( (ptr) ssp←v6000)+15) ),
SGNCK(idx18)
);
};
SOURCE(5545, 24)
{
word idx19;
(* (( (ptr) s4←v5972)+8) ) = (
idx19 = (* (( (ptr) ssp←v6000)+16) ),
SGNCK(idx19)
);
};
SOURCE(5571, 26)
{
word idx20;
(* (( (ptr) s4←v5972)+9) ) = (
idx20 = (* (( (ptr) ssp←v6000)+17) ),
SGNCK(idx20)
);
};
SOURCE(5599, 24)
{
word idx21;
(* (( (ptr) s4←v5972)+10) ) = (
idx21 = (* (( (ptr) ssp←v6000)+18) ),
SGNCK(idx21)
);
};
SOURCE(5625, 26)
{
word idx22;
(* (( (ptr) s4←v5972)+11) ) = (
idx22 = (* (( (ptr) ssp←v6000)+19) ),
SGNCK(idx22)
);
};
SOURCE(5653, 17)
(* (( (ptr) s4←v5972)+12) ) = 4096;
SOURCE(5680, 32)
(* (( (ptr) s4←v5972)+13) ) = ((* (( (ptr) s4←v5972)+5) ) / (* (( (ptr) s4←v5972)+12) ));
}
/* file: UnixSysCallsImpl, module: UnixSysCallsImpl, compiled at: March 16, 1994 12:09:49 pm PST */
extern void XR←install←UnixSysCallsImpl() {
NoName←Q960();
}
extern void XR←run←UnixSysCallsImpl() { XR←Start(&globalframe); }