/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: July 24, 1992 4:57:50 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: BootTimeImpl, module: BootTimeImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [206839039,1539428759] BootTimeImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef word (*fPt)();
#define SOURCE(p, l) /* source p, l */
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
static void NoName←Q168();
static void BootTimeImpl←P0();
static word Get←P60();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\014\124\034\377\300\133\301\321\227\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\257\264\171\134\300\142\321\237\137\100\150\000\000"};
static struct {
   word f0[5]; word f5; word f6; word f7; 
   word f8; word f9[3]; 
   } globalframe = {
   {0}, 2147483647, (word) Get←P60, 0, 
   (word) BootTimeImpl←P0, {0}
   };

static void NoName←Q168()
   {
   register ptr gf←c017 =  (ptr) &globalframe;
   word var←c3616;
   (void) XR←DeclareGlobalFrame((word) "BootTimeImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c017)+32)
      /* var←c3552 */ );
   var←c3616 = (word) XR←ImportInterface((word) "BasicTime", (word) XR←GetTypeIndexS((word) (&string2)), 24);
   (* (( (ptr) gf←c017)+10)/* var←c3584 */  ) = var←c3616;
   (void) XR←ImportProcS(var←c3616, 67636482);
   (void) XR←ImportProcS(var←c3616, 134220544);
   var←c3616 = (word) XR←ExportInterface((word) "BootTime", (word) XR←GetTypeIndexS((word) (&string3)), 1);
   (* (( (ptr) gf←c017)+11)/* var←c3648 */  ) = var←c3616;
   (void) XR←ExportProcS(var←c3616, (word) (( (bPt) gf←c017)+24)/* var←c3520 */ , 67108864);
   }

static void BootTimeImpl←P0(formal←c09, formal←c08)
   word formal←c09;
   word formal←c08;
   {
   /* BootTimeImpl: */ 
   /* moved to installation proc */ 
   }

static word Get←P60()
   {
   register ptr gf←c3680 =  (ptr) &globalframe;
   word var←c2660;
   /* Get: */ 
SOURCE(182, 373)
SOURCE(227, 307)
   if ((0 == (* (( (ptr) gf←c3680)+4)/* bootTimeComputed←v2468 */  ))) {
SOURCE(256, 278)
      {
         W2 enow←v2852;
         word ticksSinceBoot←v2880;
         word msSinceBoot←v2908;
         word dms←v2936;
         word ds←v2964;
SOURCE(258, 53)
         {
            word pd4;
            pd4 = (* (( (ptr) (* (( (ptr) gf←c3680)+10)/* var←c3584 */  ))+15) );
            (void) ( *( (fPt) ((*  (ptr) pd4 ))))((word) (&enow←v2852), pd4);
            };
SOURCE(313, 42)
         ticksSinceBoot←v2880 = (word) XR←TicksSinceBoot();
SOURCE(357, 47)
         msSinceBoot←v2908 = (word) XR←TicksToMsec(ticksSinceBoot←v2880);
SOURCE(406, 50)
         dms←v2936 = ((enow←v2852.f1 / 1000) - SGNCK(msSinceBoot←v2908));
SOURCE(458, 18)
         ds←v2964 = IOP2( / ,  (int)dms←v2936,  (int)1000);
SOURCE(478, 30)
         {
            word pd5;
            pd5 = (* (( (ptr) (* (( (ptr) gf←c3680)+10)/* var←c3584 */  ))+17) );
            (* (( (ptr) gf←c3680)+5)/* bootTime←v2496 */  ) = (word) ( *( (fPt) ((*  (ptr) pd5 ))))(enow←v2852.f0, ds←v2964, pd5);
            };
SOURCE(510, 24)
         (* (( (ptr) gf←c3680)+4)/* bootTimeComputed←v2468 */  ) = 1;
         };
      };
SOURCE(537, 18)
   return((* (( (ptr) gf←c3680)+5)/* bootTime←v2496 */  ));
   }

/* file: BootTimeImpl, module: BootTimeImpl, compiled at: July 24, 1992 4:57:49 pm PDT */ 
extern void XR←install←BootTimeImpl() {
   NoName←Q168();
   }
extern void XR←run←BootTimeImpl() { XR←Start(&globalframe); }