/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: February 22, 1992 0:02:58 am PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: ChecksumImpl, module: ChecksumImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1147330776,1533280433] ChecksumImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q216();
static void ChecksumImpl←P0();
static word ComputeChecksum←P60();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\104\142\340\330\300\133\144\000\261\100\150\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\122\171\164\025\300\243\020\252\320\100\164\000\000"};
static struct {
word f0[4]; word f4; word f5; word f6;
word f7[2];
} globalframe = {
{0}, (word) ComputeChecksum←P60, 0, (word) ChecksumImpl←P0,
{0}
};
static void NoName←Q216()
{
register ptr gf←c016 = (ptr) &globalframe;
word var←c4052;
(void) XR←DeclareGlobalFrame((word) "ChecksumImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c016)+24)
/* var←c3924 */ );
var←c4052 = (word) XR←ExportInterface((word) "Checksum", (word) XR←GetTypeIndexS((word) (&string2)), 3);
(* (( (ptr) gf←c016)+8)/* var←c4020 */ ) = var←c4052;
(void) XR←ExportProcS(var←c4052, (word) (( (bPt) gf←c016)+16)/* var←c3892 */ , 68157444);
}
static void ChecksumImpl←P0(formal←c06, formal←c05)
word formal←c06;
word formal←c05;
{
/* ChecksumImpl: */
}
static word ComputeChecksum←P60(cs←v2516, nHalfWords←v2544, p←v2572, offset←v2600)
word cs←v2516;
word nHalfWords←v2544;
word p←v2572;
word offset←v2600;
{
word checksum←v2656;
word phw←v2712;
/* ComputeChecksum: */
SOURCE(118, 462)
SOURCE(336, 42)
phw←v2712 = p←v2572;
SOURCE(380, 145)
{
register word i←v2860;
register word noName←c3956;
i←v2860 = offset←v2600;
noName←c3956 = (nHalfWords←v2544 + offset←v2600);
if ((i←v2860 >= noName←c3956)) {
goto lab←L100000;
};
lab←L100003: ;
{
word t←v2904;
SOURCE(430, 40)
t←v2904 = (cs←v2516 + (word) (* (( (hPt) phw←v2712)+i←v2860) ));
SOURCE(472, 22)
t←v2904 = ((( (((unsigned)t←v2904 << 16) >> 16) ) + ((unsigned)t←v2904 >> 16)) << 1);
SOURCE(496, 18)
t←v2904 = (( (((unsigned)t←v2904 << 16) >> 16) ) + ((unsigned)t←v2904 >> 16));
SOURCE(516, 9)
cs←v2516 = ( (((unsigned)t←v2904 << 16) >> 16) );
};
i←v2860 = (i←v2860 + 1);
if ((i←v2860 < noName←c3956)) {
goto lab←L100003;
};
lab←L100000: ;
};
SOURCE(536, 31)
if ((cs←v2516 == 65535)) {
SOURCE(561, 6)
cs←v2516 = 0;
};
SOURCE(569, 11)
return(cs←v2516);
}
/* file: ChecksumImpl, module: ChecksumImpl, compiled at: February 22, 1992 0:02:58 am PST */
extern void XR←install←ChecksumImpl() {
NoName←Q216();
}
extern void XR←run←ChecksumImpl() { XR←Start(&globalframe); }