[comp.protocols.appletalk] CAP Bug report #0012

cck@CUNIXC.COLUMBIA.EDU (Charlie C. Kim) (11/05/87)

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 */
  


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%