architecture conditional

Tobin C. Harding me at tobin.cc
Mon Oct 16 16:36:42 EDT 2017


On Mon, Oct 16, 2017 at 06:10:53PM +0200, Greg KH wrote:
> On Mon, Oct 16, 2017 at 09:37:17PM +1100, Tobin C. Harding wrote:
> > What is the correct way to write code that is conditionally compiled depending on 32/64 bit?
> 
> Not to write code that is dependent on such a thing in the first place
> :)
> 
> > I found
> > 
> > CONFIG_X86_64
> > CONFIG_64BIT
> > 
> > Do we still support other word sizes?
> 
> No, but those are not what you should be looking for, it all depends on
> the architecture and where in the kernel you need to do this (arch
> specific code, driver, kernel, networking, etc.)
> 
> Any specific hints on why you think you need this?

Hashing the kernel pointers. Wanting to call the SipHash functions. We need to call a different
function depending on the size of the pointer.

u64 siphash_1u64(const u64 a, const siphash_key_t *key);
u64 siphash_1u32(const u32 a, const siphash_key_t *key);

Jason A. Donenfeld suggested (offered to) add a helper function in siphash, along the lines of
siphash_1u() but we still need to know the exact size of the return value (so we can drop half of it
if it is 64 bits). We just want a 32 bit identifier returned after hashing the address.

thanks,
Tobin.



More information about the Kernelnewbies mailing list