[PATCH] remove kernel headers from hdparm

Tito farmatito at tiscali.it
Fri Apr 28 23:29:54 UTC 2006


On Friday 28 April 2006 21:17, Rob Landley wrote:
> On Friday 28 April 2006 8:35 am, Tito wrote:
> > In the meanwhile here is the patch.
> > It contains also a minor fix to the code
> > (for buggy logic)
> > and reduces the size as the elements
> > in linux/hdreg.h are defined only
> > when needed
> >
> >   text    data     bss     dec     hex filename
> >   27422     176     904   28502    6f56 hdparm.o.orig
> >   27294     176     888   28358    6ec6 hdparm.o
> >
> > This is tested and safe.
> 
> Reducing the size is definitely attractive.  Do you know what's responsible 
> for that?

Some data structs that are defined only when they are needed
and some size optimisations.

> > Please apply.
> >
> > PS: just take a look at this:
> >
> > #if BB_BIG_ENDIAN && !defined(__USE_XOPEN)
> > # define __USE_XOPEN
> > /* From /linux/byteorder/big_endian.h */
> > #define __le16_to_cpus(x) __swab16s((x))
> > #else
> > /* From /linux/byteorder/little_endian.h */
> > #define __le16_to_cpus(x) do {} while (0)
> > #endif
> >
> > as this is tested only for little endian and maybe
> > should be moved to platform.h?
> 
> That looks outright disgusting.  I note also that it's only used in two 
> places.
> 
> Wasn't there a proposal recently for something like TO_BIG_ENDIAN(value), 
> FROM_BIG_ENDIAN(value), TO_LITTLE_ENDIAN(value), and 
> FROM_LITTLE_ENDIAN(value)?
> 
> I'd like to disguise this in platform.h, yes.  But I'd also like to try to 
> find a more generic solution to whatever problem it's trying to solve.
> 
> Rob



More information about the busybox mailing list