/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: February 21, 1992 9:29:22 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: XNSImpl, module: XNSImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#define XRM←BITAND(x, y) (((word)(x)) & ((word)(y)))
static char versionStamp[] = "@(#)mob←version [1958439282,1016290241] XNSImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q240();
static void XNSImpl←P0();
static void GetThisHost←P60();
static word IsMulticastHost←P120();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\164\273\151\162\300\074\223\133\301\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\350\273\366\267\300\017\164\046\072\100\150\000\000"};
static struct {
   word f0[4]; word f4; word f5; word f6; 
   word f7; word f8; word f9[3]; 
   } globalframe = {
   {0}, (word) IsMulticastHost←P120, 0, (word) GetThisHost←P60, 
   0, (word) XNSImpl←P0, {0}
   };

static void NoName←Q240()
   {
   register ptr gf←c014 =  (ptr) &globalframe;
   word var←c3776;
   (void) XR←DeclareGlobalFrame((word) "XNSImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c014)+32)
      /* var←c3648 */ );
   var←c3776 = (word) XR←ImportInterface((word) "ProcessorFace", (word) XR←GetTypeIndexS((word) (&string2)), 5);
   (* (( (ptr) gf←c014)+10)/* var←c3680 */  ) = var←c3776;
   var←c3776 = (word) XR←ExportInterface((word) "XNS", (word) XR←GetTypeIndexS((word) (&string3)), 2);
   (* (( (ptr) gf←c014)+11)/* var←c3808 */  ) = var←c3776;
   (void) XR←ExportProcS(var←c3776, (word) (( (bPt) gf←c014)+24)/* var←c3616 */ , 134217728);
   (void) XR←ExportProcS(var←c3776, (word) (( (bPt) gf←c014)+16)/* var←c3584 */ , 67633409);
   }

static void XNSImpl←P0(formal←c08, formal←c07)
   word formal←c08;
   word formal←c07;
   {
   /* XNSImpl: */ 
   }

static void GetThisHost←P60(formal←c011)
   word formal←c011;
   {
   register ptr gf←c3840 =  (ptr) &globalframe;
   W2 var←c2632;
   /* GetThisHost: */ 
SOURCE(113, 103)
SOURCE(169, 47)
SOURCE(171, 43)
   var←c2632 = (*  (W2Pt) (* (( (ptr) (* (( (ptr) gf←c3840)+10)/* var←c3680 */  ))+4) ) );
   /* removed tail goto */ 
   (*  (W2Pt) formal←c011 ) = var←c2632;
   return;
   }

static word IsMulticastHost←P120(host←v2692)
   W2 host←v2692;
   {
   word var←c2736;
   /* IsMulticastHost: */ 
SOURCE(223, 105)
SOURCE(288, 40)
   return(((word) XRM←BITAND((*  (bPt) &host←v2692 ), 1) != 0));
   }

/* file: XNSImpl, module: XNSImpl, compiled at: February 21, 1992 9:29:21 pm PST */ 
extern void XR←install←XNSImpl() {
   NoName←Q240();
   }
extern void XR←run←XNSImpl() { XR←Start(&globalframe); }