I couldn't find a better way to avoid compiler warnings about
redundant and/or inconsistent declaration of ffs(). I'd like to
be able to declare prototypes in general headers without committing
to implementing them as `static inline' or `extern', but there
seems to be no way to do this with gcc-2.6.1. E.g.,
int foo(void);
static __inline int foo(void) { return 1; }
causes a warning about the linkage mismatch, while the opposite
order causes a warning about the redundant declaration.
that add it too, and end up fighting an unwanted battle right now,
I'm just going to back away from both and start including my own private
copies of everything. I'm not going to use _anything_ from libkern
until we decide its fate.
I just know I'm going to get flamed for adding for the miserable
abortion that is libkern, but what am I supposed to do? At least I
didn't drag in the ctype stuff! :-)
"gcc -Wstrict-prototypes" doesn't emit warnings about them.
Write each min/max functions on a single line so that the similarity and
triviality of the functions is more obvious.
Put the quad min/max functions in the correct place (aphabetical order).
The u_quad min/max functions are missing. Only 3 or 4 of the min/max
functions are actually used. sys/socketvar.h ``should use "lmin" but
it doesn't exist now''. lmin does exist now, but isn't used. Since we
depend on gcc for `inline', perhaps we should depend on it for __typeof
and function-expressions and use only macros min() and max() that work
for any types (I'm not sure how to handle mixed types).