fix: build of aac(4)

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

fix: build of aac(4)

Jan Klemkow
Hi,

aac(4) doesn't build in the current status.  The following diff fixes
compile errors.  Also, with the AAC_DEBUG option.  I removed the
prototypes of the inline functions in aacvar.h because of a K&R style
compile error and that the prototypes are directly followed by their
implementation.

ok?

Bye,
Jan

Index: dev/ic/aac.c
===================================================================
RCS file: /mount/openbsd/cvs/src/sys/dev/ic/aac.c,v
retrieving revision 1.70
diff -u -p -r1.70 aac.c
--- dev/ic/aac.c 11 Apr 2017 14:43:49 -0000 1.70
+++ dev/ic/aac.c 5 Oct 2019 11:06:18 -0000
@@ -2129,7 +2129,7 @@ aac_internal_cache_cmd(struct scsi_xfer
  struct scsi_read_cap_data rcd;
  u_int8_t target = link->target;
 
- AAC_DPRINTF(AAC_D_CMD, ("aac_internal_cache_cmd: ",
+ AAC_DPRINTF(AAC_D_CMD, ("%s: aac_internal_cache_cmd: ",
  sc->aac_dev.dv_xname));
 
  switch (xs->cmd->opcode) {
@@ -2277,7 +2277,7 @@ aac_scsi_cmd(struct scsi_xfer *xs)
  blockcnt = _2btol(rwb->length);
  }
 
- AAC_DPRINTF(AAC_D_CMD, ("blkno=%d bcount=%d ",
+ AAC_DPRINTF(AAC_D_CMD, ("opcode=%d blkno=%d bcount=%d ",
  xs->cmd->opcode, blockno, blockcnt));
 
  if (blockno >= sc->aac_hdr[target].hd_size ||
Index: dev/ic/aacvar.h
===================================================================
RCS file: /mount/openbsd/cvs/src/sys/dev/ic/aacvar.h,v
retrieving revision 1.13
diff -u -p -r1.13 aacvar.h
--- dev/ic/aacvar.h 1 Apr 2016 04:16:27 -0000 1.13
+++ dev/ic/aacvar.h 5 Oct 2019 15:01:12 -0000
@@ -429,11 +429,6 @@ int aac_attach(struct aac_softc *);
 int aac_intr(void *);
 
 /* These all require correctly aligned buffers */
-static __inline__ void aac_enc16(u_int8_t *, u_int16_t);
-static __inline__ void aac_enc32(u_int8_t *, u_int32_t);
-static __inline__ u_int16_t aac_dec16(u_int8_t *);
-static __inline__ u_int32_t aac_dec32(u_int8_t *);
-
 static __inline__ void
 aac_enc16(addr, value)
  u_int8_t *addr;

Reply | Threaded
Open this post in threaded view
|

Re: fix: build of aac(4)

Theo de Raadt-2
I believe aac hasn't worked in a long time.  Was never enabled on amd64.

On i386, it was disabled by

revision 1.406
date: 2005/03/18 22:39:59;  author: deraadt;  state: Exp;  lines: +3 -3;
shut off aac(4) unless Adaptec stops behaving like assholes

Adaptec wouldn't give us documentation.  FreeBSD people had docs,
because employees were there.  Wikipedia page uses the past-tense verb
"was" in referring to them.

Not sure this is worth it.

> aac(4) doesn't build in the current status.  The following diff fixes
> compile errors.  Also, with the AAC_DEBUG option.  I removed the
> prototypes of the inline functions in aacvar.h because of a K&R style
> compile error and that the prototypes are directly followed by their
> implementation.
>
> ok?
>
> Bye,
> Jan
>
> Index: dev/ic/aac.c
> ===================================================================
> RCS file: /mount/openbsd/cvs/src/sys/dev/ic/aac.c,v
> retrieving revision 1.70
> diff -u -p -r1.70 aac.c
> --- dev/ic/aac.c 11 Apr 2017 14:43:49 -0000 1.70
> +++ dev/ic/aac.c 5 Oct 2019 11:06:18 -0000
> @@ -2129,7 +2129,7 @@ aac_internal_cache_cmd(struct scsi_xfer
>   struct scsi_read_cap_data rcd;
>   u_int8_t target = link->target;
>  
> - AAC_DPRINTF(AAC_D_CMD, ("aac_internal_cache_cmd: ",
> + AAC_DPRINTF(AAC_D_CMD, ("%s: aac_internal_cache_cmd: ",
>   sc->aac_dev.dv_xname));
>  
>   switch (xs->cmd->opcode) {
> @@ -2277,7 +2277,7 @@ aac_scsi_cmd(struct scsi_xfer *xs)
>   blockcnt = _2btol(rwb->length);
>   }
>  
> - AAC_DPRINTF(AAC_D_CMD, ("blkno=%d bcount=%d ",
> + AAC_DPRINTF(AAC_D_CMD, ("opcode=%d blkno=%d bcount=%d ",
>   xs->cmd->opcode, blockno, blockcnt));
>  
>   if (blockno >= sc->aac_hdr[target].hd_size ||
> Index: dev/ic/aacvar.h
> ===================================================================
> RCS file: /mount/openbsd/cvs/src/sys/dev/ic/aacvar.h,v
> retrieving revision 1.13
> diff -u -p -r1.13 aacvar.h
> --- dev/ic/aacvar.h 1 Apr 2016 04:16:27 -0000 1.13
> +++ dev/ic/aacvar.h 5 Oct 2019 15:01:12 -0000
> @@ -429,11 +429,6 @@ int aac_attach(struct aac_softc *);
>  int aac_intr(void *);
>  
>  /* These all require correctly aligned buffers */
> -static __inline__ void aac_enc16(u_int8_t *, u_int16_t);
> -static __inline__ void aac_enc32(u_int8_t *, u_int32_t);
> -static __inline__ u_int16_t aac_dec16(u_int8_t *);
> -static __inline__ u_int32_t aac_dec32(u_int8_t *);
> -
>  static __inline__ void
>  aac_enc16(addr, value)
>   u_int8_t *addr;
>

Reply | Threaded
Open this post in threaded view
|

Re: fix: build of aac(4)

Theo de Raadt-2
I guess I mean: unless you plan to get this working, maybe it should
be deleted to create a vaccum (which some historical can fill at some
later point with working code)

I vaguely remember newer Adaptec controllers becoming quite different
from previous ones in little ways, all undocumented, and causing much
frustration.  This event described happened during our push for greater
vendor documentation.  Many vendors provided documentation to the
open source community, and flourished.  Others, not so much on either
count.  I don't know if there was a relationship between the two but
I can hope.

> I believe aac hasn't worked in a long time.  Was never enabled on amd64.
>
> On i386, it was disabled by
>
> revision 1.406
> date: 2005/03/18 22:39:59;  author: deraadt;  state: Exp;  lines: +3 -3;
> shut off aac(4) unless Adaptec stops behaving like assholes
>
> Adaptec wouldn't give us documentation.  FreeBSD people had docs,
> because employees were there.  Wikipedia page uses the past-tense verb
> "was" in referring to them.
>
> Not sure this is worth it.
>
> > aac(4) doesn't build in the current status.  The following diff fixes
> > compile errors.  Also, with the AAC_DEBUG option.  I removed the
> > prototypes of the inline functions in aacvar.h because of a K&R style
> > compile error and that the prototypes are directly followed by their
> > implementation.
> >
> > ok?
> >
> > Bye,
> > Jan
> >
> > Index: dev/ic/aac.c
> > ===================================================================
> > RCS file: /mount/openbsd/cvs/src/sys/dev/ic/aac.c,v
> > retrieving revision 1.70
> > diff -u -p -r1.70 aac.c
> > --- dev/ic/aac.c 11 Apr 2017 14:43:49 -0000 1.70
> > +++ dev/ic/aac.c 5 Oct 2019 11:06:18 -0000
> > @@ -2129,7 +2129,7 @@ aac_internal_cache_cmd(struct scsi_xfer
> >   struct scsi_read_cap_data rcd;
> >   u_int8_t target = link->target;
> >  
> > - AAC_DPRINTF(AAC_D_CMD, ("aac_internal_cache_cmd: ",
> > + AAC_DPRINTF(AAC_D_CMD, ("%s: aac_internal_cache_cmd: ",
> >   sc->aac_dev.dv_xname));
> >  
> >   switch (xs->cmd->opcode) {
> > @@ -2277,7 +2277,7 @@ aac_scsi_cmd(struct scsi_xfer *xs)
> >   blockcnt = _2btol(rwb->length);
> >   }
> >  
> > - AAC_DPRINTF(AAC_D_CMD, ("blkno=%d bcount=%d ",
> > + AAC_DPRINTF(AAC_D_CMD, ("opcode=%d blkno=%d bcount=%d ",
> >   xs->cmd->opcode, blockno, blockcnt));
> >  
> >   if (blockno >= sc->aac_hdr[target].hd_size ||
> > Index: dev/ic/aacvar.h
> > ===================================================================
> > RCS file: /mount/openbsd/cvs/src/sys/dev/ic/aacvar.h,v
> > retrieving revision 1.13
> > diff -u -p -r1.13 aacvar.h
> > --- dev/ic/aacvar.h 1 Apr 2016 04:16:27 -0000 1.13
> > +++ dev/ic/aacvar.h 5 Oct 2019 15:01:12 -0000
> > @@ -429,11 +429,6 @@ int aac_attach(struct aac_softc *);
> >  int aac_intr(void *);
> >  
> >  /* These all require correctly aligned buffers */
> > -static __inline__ void aac_enc16(u_int8_t *, u_int16_t);
> > -static __inline__ void aac_enc32(u_int8_t *, u_int32_t);
> > -static __inline__ u_int16_t aac_dec16(u_int8_t *);
> > -static __inline__ u_int32_t aac_dec32(u_int8_t *);
> > -
> >  static __inline__ void
> >  aac_enc16(addr, value)
> >   u_int8_t *addr;
> >
>