/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: February 21, 1992 9:44:59 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: UXTimeImpl, module: UXTimeImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3629548630,3112650541] UXTimeImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
#define SOURCE(p, l) /* source p, l */
static void NoName←Q600();
static void UXTimeImpl←P0();
static word DOWN←P60();
static word UP←P120();
static word Now←P180();
static word Period←P240();
static word Update←P300();
static word GMTDOWN←P360();
static word GMTUP←P420();
static word ToGMT←P480();
static word FromGMT←P540();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\330\126\204\126\300\271\207\107\055\100\164\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\212\174\364\337\300\361\376\000\156\100\150\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\325\206\070\326\300\224\310\304\225\100\150\000\000"};
static struct {
word f0[6]; 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[3];
} globalframe = {
{0}, (word) FromGMT←P540, 0, (word) ToGMT←P480,
0, (word) GMTUP←P420, 0, (word) GMTDOWN←P360,
0, (word) Update←P300, 0, (word) Period←P240,
0, (word) Now←P180, 0, (word) UP←P120,
0, (word) DOWN←P60, 0, (word) UXTimeImpl←P0,
{0}
};
static void NoName←Q600()
{
register ptr gf←c040 = (ptr) &globalframe;
word var←c4588;
(void) XR←DeclareGlobalFrame((word) "UXTimeImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c040)+96)
/* var←c4428 */ );
var←c4588 = (word) XR←ImportInterface((word) "BasicTime", (word) XR←GetTypeIndexS((word) (&string2)), 24);
(* (( (ptr) gf←c040)+26)/* var←c4460 */ ) = var←c4588;
(void) XR←ImportProcS(var←c4588, 67111424);
var←c4588 = (word) XR←ExportInterface((word) "UXTime", (word) XR←GetTypeIndexS((word) (&string3)), 10);
(* (( (ptr) gf←c040)+27)/* var←c4620 */ ) = var←c4588;
(void) XR←ExportVar(var←c4588, 0, (word) (( (bPt) gf←c040)+16));
(void) XR←ExportVar(var←c4588, 1, (word) (( (bPt) gf←c040)+20));
(void) XR←ExportProcS(var←c4588, (word) (( (bPt) gf←c040)+72)/* var←c4332 */ , 67109632);
(void) XR←ExportProcS(var←c4588, (word) (( (bPt) gf←c040)+64)/* var←c4300 */ , 67634178);
(void) XR←ExportProcS(var←c4588, (word) (( (bPt) gf←c040)+56)/* var←c4268 */ , 67634434);
(void) XR←ExportProcS(var←c4588, (word) (( (bPt) gf←c040)+32)/* var←c4172 */ , 67372545);
(void) XR←ExportProcS(var←c4588, (word) (( (bPt) gf←c040)+24)/* var←c4140 */ , 67372801);
(void) XR←ExportProcS(var←c4588, (word) (( (bPt) gf←c040)+88)/* var←c4396 */ , 67373057);
(void) XR←ExportProcS(var←c4588, (word) (( (bPt) gf←c040)+80)/* var←c4364 */ , 67373313);
}
static void UXTimeImpl←P0(formal←c016, formal←c015)
word formal←c016;
word formal←c015;
{
/* UXTimeImpl: */
}
static word DOWN←P60(time←v2916)
word time←v2916;
{
word secs←v2960;
/* DOWN: */
SOURCE(211, 85)
SOURCE(275, 21)
secs←v2960 = time←v2916;
SOURCE(211, 85)
return(secs←v2960);
}
static word UP←P120(secs←v3020)
word secs←v3020;
{
word time←v3064;
/* UP: */
SOURCE(302, 83)
SOURCE(364, 21)
time←v3064 = secs←v3020;
SOURCE(302, 83)
return(time←v3064);
}
static word Now←P180()
{
register ptr gf←c4652 = (ptr) &globalframe;
word time←v3124;
word now←v3832;
/* Now: */
SOURCE(391, 103)
SOURCE(437, 36)
{
word pd4;
pd4 = (* (( (ptr) (* (( (ptr) gf←c4652)+26)/* var←c4460 */ ))+14) );
now←v3832 = (word) ( *( (fPt) ((* (ptr) pd4 ))))(pd4);
};
SOURCE(475, 19)
time←v3124 = (word) FromGMT←P540(now←v3832);
SOURCE(391, 103)
return(time←v3124);
}
static word Period←P240(from←v3184, to←v3212)
word from←v3184;
word to←v3212;
{
word delta←v3256;
/* Period: */
SOURCE(500, 99)
SOURCE(570, 29)
delta←v3256 = ((word) DOWN←P60(from←v3184) - (word) DOWN←P60(to←v3212));
SOURCE(500, 99)
return(delta←v3256);
}
static word Update←P300(base←v3316, period←v3344)
word base←v3316;
word period←v3344;
{
word time←v3388;
/* Update: */
SOURCE(605, 111)
SOURCE(686, 30)
{
word var←c4492;
var←c4492 = ((word) DOWN←P60(base←v3316) + period←v3344);
time←v3388 = (word) UP←P120(var←c4492);
};
SOURCE(605, 111)
return(time←v3388);
}
static word GMTDOWN←P360(gmt←v3448)
word gmt←v3448;
{
word secs←v3492;
/* GMTDOWN: */
SOURCE(841, 93)
SOURCE(914, 20)
secs←v3492 = gmt←v3448;
SOURCE(841, 93)
return(secs←v3492);
}
static word GMTUP←P420(secs←v3552)
word secs←v3552;
{
word gmt←v3596;
/* GMTUP: */
SOURCE(940, 91)
SOURCE(1011, 20)
gmt←v3596 = secs←v3552;
SOURCE(940, 91)
return(gmt←v3596);
}
static word ToGMT←P480(time←v3656)
word time←v3656;
{
word gmt←v3700;
/* ToGMT: */
SOURCE(1037, 110)
SOURCE(1108, 39)
{
word var←c4524;
var←c4524 = ((word) DOWN←P60(time←v3656) + 63158400);
gmt←v3700 = (word) GMTUP←P420(var←c4524);
};
SOURCE(1037, 110)
return(gmt←v3700);
}
static word FromGMT←P540(gmt←v3760)
word gmt←v3760;
{
word time←v3804;
/* FromGMT: */
SOURCE(1153, 112)
SOURCE(1226, 39)
{
word var←c4556;
var←c4556 = ((word) GMTDOWN←P360(gmt←v3760) - 63158400);
time←v3804 = (word) UP←P120(var←c4556);
};
SOURCE(1153, 112)
return(time←v3804);
}
/* file: UXTimeImpl, module: UXTimeImpl, compiled at: February 21, 1992 9:44:59 pm PST */
extern void XR←install←UXTimeImpl() {
NoName←Q600();
}
extern void XR←run←UXTimeImpl() { XR←Start(&globalframe); }