/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: February 21, 1992 7:27:21 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: ProcessorFaceImpl, module: ProcessorFaceImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2124677674,4279112002] ProcessorFaceImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q360();
static void ProcessorFaceImpl←P0();
static void GetProcessorID←P60();
static word GetProcessorType←P120();
static word GetProcessorTypeName←P180();
static word ProcessorTypeFromName←P240();
static word LastProcessorType←P300();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\176\244\002\052\300\377\016\021\102\100\164\000\000"};
static struct {unsigned f; char r[4];} string2 = {196611, "\004G\300"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\374\377\221\350\300\202\044\047\115\100\150\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\011\071\113\334\300\244\027\111\067\100\150\000\000"};
static struct {unsigned f; char r[12];} string6 = {655372, "decstation\000"};
static struct {unsigned f; char r[8];} string8 = {393224, "rs6000\000"};
static struct {unsigned f; char r[8];} string10 = {262152, "sun3\000\000\000"};
static struct {unsigned f; char r[8];} string12 = {262152, "sun4\000\000\000"};
static struct {unsigned f; char r[8];} string14 = {458760, "unknown"};
static struct {
word f0[12]; word f12; word f13; word f14;
word f15; word f16; word f17; word f18;
word f19; word f20; word f21; word f22;
word f23[3];
} globalframe = {
{0}, (word) LastProcessorType←P300, 0, (word) ProcessorTypeFromName←P240,
0, (word) GetProcessorTypeName←P180, 0, (word) GetProcessorType←P120,
0, (word) GetProcessorID←P60, 0, (word) ProcessorFaceImpl←P0,
{0}
};
extern void XR←getxnshostid();
static void NoName←Q360()
{
register ptr gf←c030 = (ptr) &globalframe;
word var←c4336;
(void) XR←DeclareGlobalFrame((word) "ProcessorFaceImpl", &globalframe, (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
, (word) (( (bPt) gf←c030)+88)/* var←c4176 */ );
var←c4336 = (word) XR←ImportInterface((word) "AtomPrivate", (word) XR←GetTypeIndexS((word) (&string3)), 2);
(* (( (ptr) gf←c030)+24)/* var←c4208 */ ) = var←c4336;
(void) XR←ImportProcS(var←c4336, 67371265);
var←c4336 = (word) XR←ExportInterface((word) "ProcessorFace", (word) XR←GetTypeIndexS((word) (&string4)), 5);
(* (( (ptr) gf←c030)+25)/* var←c4368 */ ) = var←c4336;
(void) XR←ExportVar(var←c4336, 0, (word) (( (bPt) gf←c030)+16)/* processorID←v2468 */ );
(void) XR←ExportProcS(var←c4336, (word) (( (bPt) gf←c030)+72)/* var←c4112 */ , 67109120);
(void) XR←ExportProcS(var←c4336, (word) (( (bPt) gf←c030)+64)/* var←c4080 */ , 67371521);
(void) XR←ExportProcS(var←c4336, (word) (( (bPt) gf←c030)+56)/* var←c4048 */ , 67371777);
(void) XR←ExportProcS(var←c4336, (word) (( (bPt) gf←c030)+48)/* var←c4016 */ , 67109888);
}
static void ProcessorFaceImpl←P0(formal←c019, formal←c017)
word formal←c019;
word formal←c017;
{
register ptr gf←c4400 = (ptr) &globalframe;
/* ProcessorFaceImpl: */
SOURCE(107, 1714)
SOURCE(192, 64)
(void) GetProcessorID←P60((word) ((( (bPt) gf←c4400)+16)/* processorID←v2468 */ ));
SOURCE(1519, 302)
SOURCE(1521, 60)
{
word pd5;
pd5 = (* (( (ptr) (* (( (ptr) gf←c4400)+24)/* var←c4208 */ ))+5) );
(* (( (ptr) gf←c4400)+6)/* decAtom←v2552 */ ) = (word) ( *( (fPt) ((* (ptr) pd5 ))))((word) (&string6), pd5);
};
SOURCE(1583, 59)
{
word pd7;
pd7 = (* (( (ptr) (* (( (ptr) gf←c4400)+24)/* var←c4208 */ ))+5) );
(* (( (ptr) gf←c4400)+7)/* rs6000Atom←v2580 */ ) = (word) ( *( (fPt) ((* (ptr) pd7 ))))((word) (&string8), pd7);
};
SOURCE(1644, 55)
{
word pd9;
pd9 = (* (( (ptr) (* (( (ptr) gf←c4400)+24)/* var←c4208 */ ))+5) );
(* (( (ptr) gf←c4400)+8)/* sun3Atom←v2608 */ ) = (word) ( *( (fPt) ((* (ptr) pd9 ))))((word) (&string10), pd9);
};
SOURCE(1701, 55)
{
word pd11;
pd11 = (* (( (ptr) (* (( (ptr) gf←c4400)+24)/* var←c4208 */ ))+5) );
(* (( (ptr) gf←c4400)+9)/* sun4Atom←v2636 */ ) = (word) ( *( (fPt) ((* (ptr) pd11 ))))((word) (&string12), pd11);
};
SOURCE(1758, 61)
{
word pd13;
pd13 = (* (( (ptr) (* (( (ptr) gf←c4400)+24)/* var←c4208 */ ))+5) );
(* (( (ptr) gf←c4400)+10)/* unknownAtom←v2664 */ ) = (word) ( *( (fPt) ((* (ptr) pd13 ))))((word) (&string14), pd13);
};
}
static void GetProcessorID←P60(formal←c021)
word formal←c021;
{
W2 processorID←v2856;
/* GetProcessorID: */
SOURCE(260, 272)
SOURCE(499, 33)
(void) XR←getxnshostid((word) (&processorID←v2856));
/* removed tail goto */
(* (W2Pt) formal←c021 ) = processorID←v2856;
return;
}
static word GetProcessorType←P120()
{
word var←c2916;
/* GetProcessorType: */
SOURCE(539, 198)
SOURCE(721, 16)
return((word) XR←GetProcessorType());
}
static word GetProcessorTypeName←P180(type←v2976)
word type←v2976;
{
register ptr gf←c4432 = (ptr) &globalframe;
word var←c3020;
/* GetProcessorTypeName: */
SOURCE(865, 255)
SOURCE(954, 166)
{
word var←c4272;
var←c4272 = type←v2976;
switch (var←c4272) {
case 0:
SOURCE(980, 17)
return((* (( (ptr) gf←c4432)+8)/* sun3Atom←v2608 */ ));
case 1:
SOURCE(1007, 17)
return((* (( (ptr) gf←c4432)+9)/* sun4Atom←v2636 */ ));
case 2:
SOURCE(1036, 19)
return((* (( (ptr) gf←c4432)+7)/* rs6000Atom←v2580 */ ));
case 3:
SOURCE(1071, 16)
return((* (( (ptr) gf←c4432)+6)/* decAtom←v2552 */ ));
default:
SOURCE(1100, 20)
return((* (( (ptr) gf←c4432)+10)/* unknownAtom←v2664 */ ));
};
};
}
static word ProcessorTypeFromName←P240(name←v3080)
word name←v3080;
{
register ptr gf←c4464 = (ptr) &globalframe;
word var←c3124;
/* ProcessorTypeFromName: */
SOURCE(1126, 278)
SOURCE(1216, 188)
{
word var←c4304;
var←c4304 = name←v3080;
if ((var←c4304 == (* (( (ptr) gf←c4464)+8)/* sun3Atom←v2608 */ ))) {
SOURCE(1246, 13)
return(0);
};
if ((var←c4304 == (* (( (ptr) gf←c4464)+9)/* sun4Atom←v2636 */ ))) {
SOURCE(1273, 13)
return(1);
};
if ((var←c4304 == (* (( (ptr) gf←c4464)+7)/* rs6000Atom←v2580 */ ))) {
SOURCE(1302, 15)
return(2);
};
if ((var←c4304 == (* (( (ptr) gf←c4464)+6)/* decAtom←v2552 */ ))) {
SOURCE(1330, 19)
return(3);
};
SOURCE(1362, 42)
return( (word) -1);
};
}
static word LastProcessorType←P300()
{
word var←c3184;
/* LastProcessorType: */
SOURCE(1410, 98)
SOURCE(1482, 26)
return(3);
}
/* file: ProcessorFaceImpl, module: ProcessorFaceImpl, compiled at: February 21, 1992 7:27:21 pm PST */
extern void XR←install←ProcessorFaceImpl() {
NoName←Q360();
}
extern void XR←run←ProcessorFaceImpl() { XR←Start(&globalframe); }