Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Sep 2011 09:39:31 -0500
From:      Warner Losh <imp@bsdimp.com>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        Marcel Moolenaar <marcel@xcllnt.net>, freebsd-arch@FreeBSD.org
Subject:   Re: ntohq/htonq?
Message-ID:  <B76A2235-C31A-46B6-BB99-EC9A661D83BD@bsdimp.com>
In-Reply-To: <201109140747.21979.jhb@freebsd.org>
References:  <306FD881-6140-4DE2-AFF1-95C8079E4187@xcllnt.net> <201109140747.21979.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On Sep 14, 2011, at 6:47 AM, John Baldwin wrote:

> On Tuesday, September 13, 2011 10:36:49 pm Marcel Moolenaar wrote:
>> All,
>>=20
>> Is there a reason not to add ntohq and htonq to the short
>> and long versions we (and everyone else) already has?
>>=20
>> Juniper has 64-bit entities that go over the wire in
>> network byte order and, while these macros are absolutely
>> arcane, I see no reason not to complete them with 64-bit
>> variants.
>>=20
>> I did some googling and htonq and ntohq seem to be de
>> facto names used, but oddly enough no OS has them defined.
>> It's surreal. Are there better alternatives we should
>> migrate to?
>=20
> I don't have a better idea.  I do wish the names encoded the size =
instead like=20
> we do for the [lb]etoh*() and hto[lb]e*() macros (that is ntoh64(), =
etc.). =20
> However, given that ntohl() and ntohs() are standardized we've =
probably lost=20
> the opportunity to fix that misfeature of ntoh*() and hton*() and a =
'q' suffix=20
> is consistent (though hackish).
>=20
> I guess the one other possiblity is to add *16 and *32 aliases for 's' =
and 'l'=20
> and then add *64 for the new one if we think that using the names is =
better=20
> for the future (e.g. ntoh128() when it comes (or will that be ntoho()=20=

> (octword?))).
>=20

Looks like the hotel ate my reply...

hton64/ntoh64 is what Linux has in the kernel.  htonll and ntohll is =
what Solaris and AIX have.

So (1)  I'd shy away from htonq since that's not as well established as =
the other two in the OS (although googling suggests that many programs =
use it). (2) I'd provide both htonll and hton64 with a note saying that =
hton128 is the wave of the future.

Warner




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B76A2235-C31A-46B6-BB99-EC9A661D83BD>