From fc21b24c1690faedb620e5a6928b3a9dd7f3148b Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Sun, 20 Apr 1997 21:22:55 +0000 Subject: [PATCH] Last minute fix for Crays. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1615 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/des/qud_cksm.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/lib/des/qud_cksm.c b/lib/des/qud_cksm.c index e9606909d..fde9721db 100644 --- a/lib/des/qud_cksm.c +++ b/lib/des/qud_cksm.c @@ -72,11 +72,19 @@ DES_LONG des_quad_cksum(input, output, length, out_count, seed) DES_LONG z0,z1,t0,t1; int i; long l=0; +#ifdef _CRAY + typedef struct { + unsigned int a:32; + unsigned int b:32; + } XXX; +#else + typedef DES_LONG XXX; +#endif unsigned char *cp; - DES_LONG *lp; + XXX *lp; if (out_count < 1) out_count=1; - lp=(DES_LONG*)output; + lp=(XXX*)output; z0=B0((*seed)[0])|B1((*seed)[1])|B2((*seed)[2])|B3((*seed)[3]); z1=B0((*seed)[4])|B1((*seed)[5])|B2((*seed)[6])|B3((*seed)[7]); @@ -109,8 +117,14 @@ DES_LONG des_quad_cksum(input, output, length, out_count, seed) { /* The MIT library assumes that the checksum is * composed of 2*out_count 32 bit ints */ - *lp++ = z0; - *lp++ = z1; +#ifdef _CRAY + lp->a = z0; + lp->b = z1; + lp++; +#else + *lp++ = (XXX)z0; + *lp++ = (XXX)z1; +#endif } } return(z0);