Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Dec 2002 12:34:42 -0800
From:      Maxime Henrion <mux@freebsd.org>
To:        Nate Lawson <nate@root.org>
Cc:        phk@FreeBSD.ORG, "M. Warner Losh" <imp@bsdimp.com>, arch@FreeBSD.ORG
Subject:   Re: le??toh, etc in userland
Message-ID:  <20021209203442.GB27086@elvis.mu.org>
In-Reply-To: <Pine.BSF.4.21.0212091220220.25027-100000@root.org>
References:  <74122.1039458137@critter.freebsd.dk> <Pine.BSF.4.21.0212091220220.25027-100000@root.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Nate Lawson wrote:
> On Mon, 9 Dec 2002 phk@FreeBSD.ORG wrote:
> > In message <20021209.095032.102181079.imp@bsdimp.com>, "M. Warner Losh" writes:
> > 
> > >We should provide an implementation of {b,l}e{16,32}toh and
> > >hto{b,l}e{16,32} in libc.  Any objections?
> > 
> > None as such.
> > 
> > I would really like to also have the "byte-encoding" version in a
> > more general place than in GEOM, but I am not aware of any suitable
> > standards in this area.
> > 
> > The reason of these is that the data encoded/decoded may not live
> > on native alignment boundaries, so the normal "swap-as-needed" 
> > functions are not very efficient.
> 
> Already present in CAM (sys/cam/ssi_all.h):
> static __inline void scsi_ulto2b(u_int32_t val, u_int8_t *bytes);
> static __inline void scsi_ulto3b(u_int32_t val, u_int8_t *bytes);
> static __inline void scsi_ulto4b(u_int32_t val, u_int8_t *bytes);
> static __inline u_int32_t scsi_2btoul(u_int8_t *bytes);
> static __inline u_int32_t scsi_3btoul(u_int8_t *bytes);
> static __inline int32_t scsi_3btol(u_int8_t *bytes);
> static __inline u_int32_t scsi_4btoul(u_int8_t *bytes);
> 
> I would love to have a 64 bit version and map these to a generic host
> version.  It should use u_int8_t instead of u_char though.

It should even use uintXX_t instead of u_intXX_t, since the former is
the standard C99 types.

Maxime

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021209203442.GB27086>