* [9fans] xd
@ 2009-05-20 10:55 hugo rivera
2009-05-20 11:39 ` erik quanstrom
0 siblings, 1 reply; 3+ messages in thread
From: hugo rivera @ 2009-05-20 10:55 UTC (permalink / raw)
To: Fans of the OS Plan 9 from Bell Labs
I have an xd(1) question. Am I wrong or xd gets the byte ordering wrong?
1. While working on native plan 9 I always got the opposite byte
ordering from what I expected.
2. xd output from p9p shows exactly the opposite byte ordering that
hexdump output.
Perhaps there's something wrong with xd.
--
Hugo
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [9fans] xd
2009-05-20 10:55 [9fans] xd hugo rivera
@ 2009-05-20 11:39 ` erik quanstrom
2009-05-20 12:02 ` hugo rivera
0 siblings, 1 reply; 3+ messages in thread
From: erik quanstrom @ 2009-05-20 11:39 UTC (permalink / raw)
To: 9fans
On Wed May 20 06:57:14 EDT 2009, uair00@gmail.com wrote:
> I have an xd(1) question. Am I wrong or xd gets the byte ordering wrong?
no. xd is correct. if you're running on an intel,
you're running on a little-endian machine which
means that numbers are stored in the reverse order
they are written.
#include <u.h>
#include <libc.h>
void
main(void)
{
uchar e[8] = {0, 1, 2, 3, 4, 5, 6, 7};
int i;
uvlong l;
l = *(uvlong*)e;
print("%.16llux\n", l);
l = 0x01020304050607ull;
memcpy(e, &l, 8);
for(i = 0; i < nelem(e); i++)
print("%.2ux", e[i]);
print("\n");
}
see http://en.wikipedia.org/wiki/Endianness
> 2. xd output from p9p shows exactly the opposite byte ordering that
> hexdump output.
> Perhaps there's something wrong with xd.
neither is wrong. hexdump is just underspecified. hexdump
doesn't say what the endianness of its output is. xd on the other
hand does:
Formats other than -c are specified by pairs of characters
telling size and style, `4x' by default. The sizes are
1 or b 1-byte units.
2 or w 2-byte big-endian units.
4 or l 4-byte big-endian units.
8 or v 8-byte big-endian units.
so numbers will be printed in reverse on an intel machine.
but the same network packet will be printed the same way
by xd on a big-endian sender and a little-endian recipient.
- erik
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [9fans] xd
2009-05-20 11:39 ` erik quanstrom
@ 2009-05-20 12:02 ` hugo rivera
0 siblings, 0 replies; 3+ messages in thread
From: hugo rivera @ 2009-05-20 12:02 UTC (permalink / raw)
To: Fans of the OS Plan 9 from Bell Labs
Uh, thanks for the reply.
Now that I think about it endianness was the obvious reason behind this.
Saludos
2009/5/20, erik quanstrom <quanstro@quanstro.net>:
> On Wed May 20 06:57:14 EDT 2009, uair00@gmail.com wrote:
> > I have an xd(1) question. Am I wrong or xd gets the byte ordering wrong?
>
>
> no. xd is correct. if you're running on an intel,
> you're running on a little-endian machine which
> means that numbers are stored in the reverse order
> they are written.
>
> #include <u.h>
> #include <libc.h>
>
> void
> main(void)
> {
> uchar e[8] = {0, 1, 2, 3, 4, 5, 6, 7};
> int i;
> uvlong l;
>
> l = *(uvlong*)e;
> print("%.16llux\n", l);
>
> l = 0x01020304050607ull;
> memcpy(e, &l, 8);
> for(i = 0; i < nelem(e); i++)
> print("%.2ux", e[i]);
> print("\n");
> }
>
> see http://en.wikipedia.org/wiki/Endianness
>
>
> > 2. xd output from p9p shows exactly the opposite byte ordering that
> > hexdump output.
> > Perhaps there's something wrong with xd.
>
>
> neither is wrong. hexdump is just underspecified. hexdump
> doesn't say what the endianness of its output is. xd on the other
> hand does:
>
> Formats other than -c are specified by pairs of characters
> telling size and style, `4x' by default. The sizes are
>
> 1 or b 1-byte units.
> 2 or w 2-byte big-endian units.
> 4 or l 4-byte big-endian units.
> 8 or v 8-byte big-endian units.
>
> so numbers will be printed in reverse on an intel machine.
> but the same network packet will be printed the same way
> by xd on a big-endian sender and a little-endian recipient.
>
>
> - erik
>
>
--
Hugo
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-05-20 12:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-05-20 10:55 [9fans] xd hugo rivera
2009-05-20 11:39 ` erik quanstrom
2009-05-20 12:02 ` hugo rivera
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).