Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!sun!amdcad!ames!ucbcad!ucbvax!CUNIXC.COLUMBIA.EDU!cck From: cck@CUNIXC.COLUMBIA.EDU (Charlie C. Kim) Newsgroups: comp.protocols.appletalk Subject: CAP Bug report #0012 Message-ID: <8711050251.AA01837@columbia.edu> Date: Wed, 4-Nov-87 21:52:46 EST Article-I.D.: columbia.8711050251.AA01837 Posted: Wed Nov 4 21:52:46 1987 Date-Received: Sat, 7-Nov-87 18:35:48 EST Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 107 CAP Pre-Release Distribution 4.00 with Patches 5,6,7 Bug Report: 0012 Date: 11/4/87 Problem: Make cap work on a Sequent running 4.2 BSD Reported by: Ritchey Ruff at the Computer Science Department of Oregon State Priority: High if you are have a Sequent, Low otherwise Diagnosis: Sequent is byte swapped... Solution: Apply patches following (two files: lib/abnbp.h & afp/afpcommon/afpcmd.c). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *** /tmp/,RCSt1026805 Wed Nov 4 16:22:39 1987 --- afpcmd.c Wed Nov 4 16:22:18 1987 *************** *** 34,43 /* This should only be defined if you are byte swapped and you can be sure */ /* (byte *) would be the same as a (word *) or (dword *) */ #define LOOSE_BYTESWAPPED #endif /* machines that aren't byteswapped include: ibm032, pyr, sun, hpux, etc */ #define NULL 0 char *PackNames[] = { --- 34,48 ----- /* This should only be defined if you are byte swapped and you can be sure */ /* (byte *) would be the same as a (word *) or (dword *) */ #define LOOSE_BYTESWAPPED #endif + /* what kinda of processor is a sequent based on anyway? ns32000? */ + #ifdef sequent + # define BYTESWAPPED + #endif + /* machines that aren't byteswapped include: ibm032, pyr, sun, hpux, etc */ #define NULL 0 char *PackNames[] = { %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *** /tmp/,RCSt1027149 Wed Nov 4 16:26:36 1987 --- abnbp.h Wed Nov 4 16:24:59 1987 *************** *** 59,72 byte enume; /* enumerator */ byte name[MAX_TUPLE_SIZE]; /* the entity name */ } NBPTuple; typedef struct { ! #ifndef vax /* assume most machines don't do this */ ! byte control : 4, /* control */ ! tcnt : 4; /* tuple count */ ! #else byte tcnt : 4, /* tuple count */ control : 4; /* control */ #endif byte id; /* NBP identifier */ NBPTuple tuple[nbpTupleMax]; /* start of first tuple, */ --- 59,71 ----- byte enume; /* enumerator */ byte name[MAX_TUPLE_SIZE]; /* the entity name */ } NBPTuple; typedef struct { ! #if defined(vax)||defined(sequent) ! /* then these structure elements need to be reversed */ ! /* because the machines are byteswapped */ byte tcnt : 4, /* tuple count */ control : 4; /* control */ #else byte control : 4, /* control */ tcnt : 4; /* tuple count */ *************** *** 65,74 byte control : 4, /* control */ tcnt : 4; /* tuple count */ #else byte tcnt : 4, /* tuple count */ control : 4; /* control */ #endif byte id; /* NBP identifier */ NBPTuple tuple[nbpTupleMax]; /* start of first tuple, */ } NBP; /* space for rest */ --- 64,76 ----- #if defined(vax)||defined(sequent) /* then these structure elements need to be reversed */ /* because the machines are byteswapped */ byte tcnt : 4, /* tuple count */ control : 4; /* control */ + #else + byte control : 4, /* control */ + tcnt : 4; /* tuple count */ #endif byte id; /* NBP identifier */ NBPTuple tuple[nbpTupleMax]; /* start of first tuple, */ } NBP; /* space for rest */ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%