Re: [PATCH 2/2] byteorder: eliminate pointer bytorder api

Harvey Harrison
2008-05-20T22:30:33Z

On Tue, 2008-05-20 at 15:19 -0700, David Miller wrote:
> From: Harvey Harrison <harvey.harrison@gmail.com>
> Date: Tue, 20 May 2008 15:15:25 -0700
>
> > Obviously I missed that part, my apologies. Would it be acceptable if,
> > taking the possibly arch-specific parts, moved the [endian]_to_cpup
> > name over to get_[endian]
>
> Why are we fiddling with interface names that have been fine for about
> 10 years?

Saw a lot of (or similar in a private helper):

*(__be32 *)ptr = cpu_to_be32(val);

So I came up with

void put_be32(val, ptr);

This looked a lot like the put_unaligned_be32 helpers and only left a
gap that was get_be32(ptr).

But this was exactly the same as the existing be32_to_cpup, so I wasn't
sure if I should add it or not. In the end I just went ahead and did
it and wanted to see what the patch would be like moving over existing
users to the new api looked like.

On top of that I did the cpu_to_be32p removal, which probably was not
the brightest thing ever.

So, that leaves (repeat for various endian values, be32 is an example):

1) should put_be32(val, ptr) be added (it seems useful and lots of code
is already rolling their own if they aren't opencoding it)

2) should get_be32 be added purely to have a symmetric api, even through
it is equivalent to be32_to_cpup? (nice that it looks just like
get_unaligned_be32...makes alignment explicit)

3) if 2) should existiing be32_to_cpup users be moved over to the new
api

4) if 3) should cpu_to_be32p be moved/changed at all (unlikely)

I hope that explains where I was coming from with this set of patches.

Harvey