Observations from an old timer playing with 64 bit numbers...

Randall Stewart rrs at lakerest.net
Wed Jun 23 19:57:18 UTC 2010


On Jun 23, 2010, at 12:41 PM, Julian Elischer wrote:

> On 6/23/10 10:12 AM, Luigi Rizzo wrote:
>> On Wed, Jun 23, 2010 at 09:50:26AM -0700, Randall Stewart wrote:
>> ...
>>>>> strong objection!
>>>>> We should instead use names with exact sizes (16,32,64).
>>>
>>> So please tell me why you object so strongly? We have the 16/32/64  
>>> bit
>>> names which
>>> are nice but are not expected so folks seem to not use them. I have
>>
>> people's ignorance is not an excuse for not doing things right.
>> We'd still be using BYTE, WORD and DWORD otherwise.
>>
>> I think there is no doubt that we should use the 16/32/64 bit names
>> if we could start from scratch, and the only reason for not doing
>> so is avoiding gratuitous changes to existing/stable code.
>>
>> The case of *to*ll does not apply, in that there is no actual legacy
>> to adapt to. And btw there is tons of places which use the 16/32/64  
>> bit
>> names in the filesystem, usb and generic device drivers. In fact,
>> many more than ntohl/htonl
>>
>> 	>  grep -r be32 ~/FreeBSD/head/sys/ | grep -v .svn | wc
>> 	    1438    6397  145174
>> 	>  grep -r le32 ~/FreeBSD/head/sys/ | grep -v .svn | wc
>> 	    2203   10269  210989
>> 	>  grep -r ntohl ~/FreeBSD/head/sys/ | grep -v .svn | wc
>> 	     854    4009   84855
>> 	>  grep -r htonl ~/FreeBSD/head/sys/ | grep -v .svn | wc
>> 	     738    3604   72970
>
>
> what he said..
>
> if you want to have ntohll in SCTP then that is your choice,
SCTP does not have a case for sending 64 bit things... This is my
day job and other folks looking for nothll() and friends...


> but I think it
> should be a local define to be64toh or ntoh64
> I do prefer the ntoh64 version but beXXtoh or whatever it looks like  
> others are using is ok to me too since 'net' is a pretty wide  
> definition and not ALL protocols are big endian.


Well thats fine, we can let folks continue rolling there own if thats
what y'all want. I really don't care actually... I already have the  
ifdef's in place
in my day-job app code.. so its no big deal ;-)

I will make this last comment.. directed at Luigi in response to:

>> people's ignorance is not an excuse for not doing things right

Then I would strongly suggest you go fix the manual page for ntohl/ 
ntohs and
point people to the be64toh() functions... then people would NOT be  
ignorant.

The problem is there is NO clue in the system...


R

------------------------------
Randall Stewart
803-317-4952 (cell)



More information about the freebsd-net mailing list