Date: Fri, 23 Jan 2015 13:40:28 -0800 From: John-Mark Gurney <jmg@funkthat.com> To: Daisuke Aoyama <aoyama@peach.ne.jp> Cc: freebsd-arm@freebsd.org, Rui Paulo <rpaulo@me.com> Subject: Re: mount_smbfs Message-ID: <20150123214028.GQ1949@funkthat.com> In-Reply-To: <62AC231D96DE425FB72E0C6DA6ACBF1F@ad.peach.ne.jp> References: <54B9DCD1.3040306@foxvalley.net> <4759EAA0-D4AA-4923-9350-B7E753819169@me.com> <6E32991C3BD8465DB8DB0E65DFDA47AA@ad.peach.ne.jp> <20150123195403.GO1949@funkthat.com> <62AC231D96DE425FB72E0C6DA6ACBF1F@ad.peach.ne.jp>
index | next in thread | previous in thread | raw e-mail
Daisuke Aoyama wrote this message on Sat, Jan 24, 2015 at 06:28 +0900:
> Thank you for a comment.
> I didn't think about endian functions.
>
> >Please use {l,b}e16dec, or if the code is suppose to be native endian,
> >make it dependant on __NO_STRICT_ALIGNMENT and add the proper endian
> >swap, not __arm__ as there are other arches that require the same fix...
>
> I make a patch again for supporting BE CPU.
>
> man page don't mention about strict alignment, if le16enc is not using byte access,
> you need expand it like this:
le16enc is documented to work any alignment... from byteorder(9):
The be16enc(), be16dec(), be32enc(), be32dec(), be64enc(), be64dec(),
le16enc(), le16dec(), le32enc(), le32dec(), le64enc(), and le64dec()
functions encode and decode integers to/from byte strings on any
^^^
alignment in big/little endian format.
^^^^^^^^^
>
> + le16enc(cp, le16toh(NBENCODE(toupper(*name))));
> vvvvvv
> + *(cp + 0) = le16toh(NBENCODE(toupper(*name))) & 0xffU;
> + *(cp + 1) = (le16toh(NBENCODE(toupper(*name))) >> 8) & 0xffU;
--
John-Mark Gurney Voice: +1 415 225 5579
"All that I will do, has been done, All that I have, has not."
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150123214028.GQ1949>
