diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2013-06-24 22:52:09 -0700 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2013-06-24 22:52:09 -0700 |
commit | 96243bfec19d0f543de3ef590a482f7f6dcdaa3d (patch) | |
tree | 39806c342989a6306537ccbf60c8f573e08322d2 /src | |
parent | d30a927b79ee0faa5f4547d5d60570f8fcd11fc2 (diff) |
Drop Cray (WORD64/MUSTCOPY) support
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/FSlibInt.c | 263 | ||||
-rw-r--r-- | src/FSlibint.h | 43 | ||||
-rw-r--r-- | src/FSlibos.h | 5 |
3 files changed, 0 insertions, 311 deletions
diff --git a/src/FSlibInt.c b/src/FSlibInt.c index c6b1cb6..edc66ba 100644 --- a/src/FSlibInt.c +++ b/src/FSlibInt.c @@ -330,137 +330,6 @@ _FSRead( } } -#ifdef WORD64 -/* - * XXX This is a *really* stupid way of doing this.... - */ - -#define PACKBUFFERSIZE 4096 - - -/* - * _FSRead32 - Read bytes from the socket unpacking each 32 bits - * into a long (64 bits on a CRAY computer). - * - */ -static void -_doFSRead32( - register FSServer *svr, - register long *data, - register long size, - register char *packbuffer) -{ - long *lpack, - *lp; - long mask32 = 0x00000000ffffffff; - long maskw, - nwords, - i, - bits; - - _FSReadPad(svr, packbuffer, size); - - lp = data; - lpack = (long *) packbuffer; - nwords = size >> 2; - bits = 32; - - for (i = 0; i < nwords; i++) { - maskw = mask32 << bits; - *lp++ = (*lpack & maskw) >> bits; - bits = bits ^ 32; - if (bits) { - lpack++; - } - } -} - -void -_FSRead32( - FSServer *svr, - long *data, - long len) -{ - char packbuffer[PACKBUFFERSIZE]; - unsigned nwords = (PACKBUFFERSIZE >> 2); /* bytes to CARD32 */ - - for (; len > nwords; len -= nwords, data += nwords) { - _doFSRead32(svr, data, nwords, packbuffer); - } - _doFSRead32(svr, data, len, packbuffer); -} - - - -/* - * _FSRead16 - Read bytes from the socket unpacking each 16 bits - * into a long (64 bits on a CRAY computer). - * - */ -static void -_doFSRead16( - register FSServer *svr, - register short *data, - register long size, - char *packbuffer) -{ - long *lpack, - *lp; - long mask16 = 0x000000000000ffff; - long maskw, - nwords, - i, - bits; - - _FSRead(svr, packbuffer, size); /* don't do a padded read... */ - - lp = (long *) data; - lpack = (long *) packbuffer; - nwords = size >> 1; /* number of 16 bit words to be unpacked */ - bits = 48; - for (i = 0; i < nwords; i++) { - maskw = mask16 << bits; - *lp++ = (*lpack & maskw) >> bits; - bits -= 16; - if (bits < 0) { - lpack++; - bits = 48; - } - } -} - -void -_FSRead16( - FSServer *svr, - short *data, - long len) -{ - char packbuffer[PACKBUFFERSIZE]; - unsigned nwords = (PACKBUFFERSIZE >> 1); /* bytes to CARD16 */ - - for (; len > nwords; len -= nwords, data += nwords) { - _doFSRead16(svr, data, nwords, packbuffer); - } - _doFSRead16(svr, data, len, packbuffer); -} - -void -_FSRead16Pad( - FSServer *svr, - short *data, - long size) -{ - int slop = (size & 3); - short slopbuf[3]; - - _FSRead16(svr, data, size); - if (slop > 0) { - _FSRead16(svr, slopbuf, 4 - slop); - } -} - -#endif /* WORD64 */ - /* * _FSReadPad - Read bytes from the socket taking into account incomplete @@ -1141,138 +1010,6 @@ Data( #endif /* DataRoutineIsProcedure */ -#ifdef WORD64 -/* - * XXX This is a *really* stupid way of doing this. It should just use - * svr->bufptr directly, taking into account where in the word it is. - */ - -/* - * Data16 - Place 16 bit data in the buffer. - * - * "svr" is a pointer to a FSServer. - * "data" is a pointer to the data. - * "len" is the length in bytes of the data. - */ - -static void -doData16( - register FSServer *svr, - short *data, - unsigned len, - char *packbuffer) -{ - long *lp, - *lpack; - long i, - nwords, - bits; - long mask16 = 0x000000000000ffff; - - lp = (long *) data; - lpack = (long *) packbuffer; - *lpack = 0; - -/* nwords is the number of 16 bit values to be packed, - * the low order 16 bits of each word will be packed - * into 64 bit words - */ - nwords = len >> 1; - bits = 48; - - for (i = 0; i < nwords; i++) { - *lpack ^= (*lp & mask16) << bits; - bits -= 16; - lp++; - if (bits < 0) { - lpack++; - *lpack = 0; - bits = 48; - } - } - Data(svr, packbuffer, len); -} - -void -Data16( - FSServer *svr, - short *data, - unsigned len) -{ - char packbuffer[PACKBUFFERSIZE]; - unsigned nwords = (PACKBUFFERSIZE >> 1); /* bytes to CARD16 */ - - for (; len > nwords; len -= nwords, data += nwords) { - doData16(svr, data, nwords, packbuffer); - } - doData16(svr, data, len, packbuffer); -} - -/* - * Data32 - Place 32 bit data in the buffer. - * - * "svr" is a pointer to a FSServer. - * "data" is a pointer to the data. - * "len" is the length in bytes of the data. - */ - -static -doData32( - register FSServer *svr, - long *data, - unsigned len, - char *packbuffer) -{ - long *lp, - *lpack; - long i, - bits, - nwords; - long mask32 = 0x00000000ffffffff; - - lpack = (long *) packbuffer; - lp = data; - - *lpack = 0; - -/* nwords is the number of 32 bit values to be packed - * the low order 32 bits of each word will be packed - * into 64 bit words - */ - nwords = len >> 2; - bits = 32; - - for (i = 0; i < nwords; i++) { - *lpack ^= (*lp & mask32) << bits; - bits = bits ^ 32; - lp++; - if (bits) { - lpack++; - *lpack = 0; - } - } - Data(svr, packbuffer, len); -} - -void -Data32( - FSServer *svr, - short *data, - unsigned len) -{ - char packbuffer[PACKBUFFERSIZE]; - unsigned nwords = (PACKBUFFERSIZE >> 2); /* bytes to CARD32 */ - - for (; len > nwords; len -= nwords, data += nwords) { - doData32(svr, data, nwords, packbuffer); - } - doData32(svr, data, len, packbuffer); -} - -#endif /* WORD64 */ - - - /* * _FSFreeQ - free the queue of events, called by XCloseServer when there are * no more displays left on the display list diff --git a/src/FSlibint.h b/src/FSlibint.h index 00900fc..60a2ce6 100644 --- a/src/FSlibint.h +++ b/src/FSlibint.h @@ -113,27 +113,6 @@ extern FSServer *_FSHeadOfServerList; #define FSlibServerIOError (1L << 0) #define FSlibServerClosing (1L << 1) -/* Need to start requests on 64 bit word boundries - * on a CRAY computer so add a NoOp (127) if needed. - * A character pointer on a CRAY computer will be non-zero - * after shifting right 61 bits of it is not pointing to - * a word boundary. - */ - -#ifdef WORD64 -#define WORD64ALIGN if ((long)svr->bufptr >> 61) {\ - svr->last_req = svr->bufptr;\ - *(svr->bufptr) = FS_Noop;\ - *(svr->bufptr+1) = 0;\ - *(svr->bufptr+2) = 0;\ - *(svr->bufptr+3) = 1;\ - svr->request += 1;\ - svr->bufptr += 4;\ - } -#else /* else does not require alignment on 64-bit - * boundaries */ -#define WORD64ALIGN -#endif /* WORD64 */ /* * GetReq - Get the next available FS request packet in the buffer and @@ -145,7 +124,6 @@ extern FSServer *_FSHeadOfServerList; */ #define GetReq(name, req) \ - WORD64ALIGN\ if ((svr->bufptr + SIZEOF(fs##name##Req)) > svr->bufmax)\ _FSFlush(svr);\ req = (fs##name##Req *)(svr->last_req = svr->bufptr);\ @@ -158,7 +136,6 @@ extern FSServer *_FSHeadOfServerList; bytes after the request. "n" must be a multiple of 4! */ #define GetReqExtra(name, n, req) \ - WORD64ALIGN\ if ((svr->bufptr + SIZEOF(fs##name##Req) + n) > svr->bufmax)\ _FSFlush(svr);\ req = (fs##name##Req *)(svr->last_req = svr->bufptr);\ @@ -174,7 +151,6 @@ extern FSServer *_FSHeadOfServerList; */ #define GetResReq(name, rid, req) \ - WORD64ALIGN\ if ((svr->bufptr + SIZEOF(fsResourceReq)) > svr->bufmax)\ _FSFlush(svr);\ req = (fsResourceReq *) (svr->last_req = svr->bufptr);\ @@ -190,7 +166,6 @@ extern FSServer *_FSHeadOfServerList; */ #define GetEmptyReq(name, req) \ - WORD64ALIGN\ if ((svr->bufptr + SIZEOF(fsReq)) > svr->bufmax)\ _FSFlush(svr);\ req = (fsReq *) (svr->last_req = svr->bufptr);\ @@ -248,13 +223,11 @@ extern void Data(); /* * provide emulation routines for smaller architectures */ -#ifndef WORD64 #define Data16(dpy, data, len) Data((dpy), (char *)(data), (len)) #define Data32(dpy, data, len) Data((dpy), (char *)(data), (len)) #define _FSRead16Pad(dpy, data, len) _FSReadPad((dpy), (char *)(data), (len)) #define _FSRead16(dpy, data, len) _FSRead((dpy), (char *)(data), (len)) #define _FSRead32(dpy, data, len) _FSRead((dpy), (char *)(data), (len)) -#endif /* not WORD64 */ #define PackData16(dpy,data,len) Data16 (dpy, data, len) #define PackData32(dpy,data,len) Data32 (dpy, data, len) @@ -262,20 +235,6 @@ extern void Data(); #define min(a,b) (((a) < (b)) ? (a) : (b)) #define max(a,b) (((a) > (b)) ? (a) : (b)) -#ifdef MUSTCOPY -/* a little bit of magic */ -#define OneDataCard32(svr,dstaddr,srcvar) \ - { svr->bufptr -= 4; Data32 (svr, (char *) &(srcvar), 4); } - -#define STARTITERATE(tpvar,type,start,endcond,decr) \ - { register char *cpvar; \ - for (cpvar = (char *) start; endcond; cpvar = NEXTPTR(cpvar,type), decr) { \ - type dummy; memmove ((char *) &dummy, cpvar, SIZEOF(type)); \ - tpvar = (type *) cpvar; -#define ENDITERATE }} - -#else - /* srcvar must be a variable for large architecture version */ #define OneDataCard32(svr,dstaddr,srcvar) \ { *(unsigned long *)(dstaddr) = (srcvar); } @@ -283,8 +242,6 @@ extern void Data(); #define STARTITERATE(tpvar,type,start,endcond,decr) \ for (tpvar = (type *) start; endcond; tpvar++, decr) { #define ENDITERATE } -#endif /* MUSTCOPY - used machines whose C structs - * don't line up with proto */ #define FSCat(x,y) x##_##y diff --git a/src/FSlibos.h b/src/FSlibos.h index 0b5e5ea..615104d 100644 --- a/src/FSlibos.h +++ b/src/FSlibos.h @@ -129,12 +129,7 @@ in this Software without prior written authorization from The Open Group. #undef dirty #endif -#ifdef WORD64 -#define NMSKBITS 64 -#else #define NMSKBITS 32 -#endif - #define MSKCNT ((FS_OPEN_MAX + NMSKBITS - 1) / NMSKBITS) #ifdef LONG64 |