All of lore.kernel.org
 help / color / mirror / Atom feed
* Purpose of using __be16 inside a data structure?
@ 2011-08-09  7:25 陳國成
  2011-08-24  5:16 ` Adam Lee
  2011-10-24 19:54 ` Kevin O'Gorman
  0 siblings, 2 replies; 7+ messages in thread
From: 陳國成 @ 2011-08-09  7:25 UTC (permalink / raw)
  To: kernelnewbies

Hi all,

Please tell me the difference between using unsigned short and __be16 to
declear a variable in a data structure.
For example, in include/net/inet_sock.h, struct inet_sock is decleared as

struct inet_sock {
        __be16                  inet_dport;
};

not

 struct inet_sock {
        unsigned short                  inet_dport;
};

I think it has something to do with endianness. But I see that both __le16
and __be16 are unsigned short when using gcc with -E option for
little-endian and big-endian platform. Can someone give me more information?

* little-endian
typedef unsigned short __u16;
typedef __u16 __le16;
typedef __u16 __be16;

* big-endian
typedef unsigned short __u16;
typedef __u16 __le16;
typedef __u16 __be16;
Regards,
GC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110809/f270b41a/attachment-0001.html 

^ permalink raw reply	[flat|nested] 7+ messages in thread
* Purpose of using __be16 inside a data structure?
@ 2011-08-14  0:41 陳國成
  2011-08-14  6:21 ` Michael Blizek
  0 siblings, 1 reply; 7+ messages in thread
From: 陳國成 @ 2011-08-14  0:41 UTC (permalink / raw)
  To: kernelnewbies

Hi all,

Please tell me the difference between using unsigned short and __be16
to declear a variable in a data structure.
For example, in include/net/inet_sock.h, struct inet_sock is decleared as

struct inet_sock {
??????? __be16????????????????? inet_dport;
};

not

struct inet_sock {
????????unsigned short????????????????? inet_dport;
};

I think it has something to do with endianness. But I see that both
__le16 and __be16 are unsigned short when using gcc with -E option?for
little-endian and big-endian platform. Can someone give me more
information?

* little-endian
typedef unsigned short __u16;
typedef __u16 __le16;
typedef __u16 __be16;

* big-endian
typedef unsigned short __u16;
typedef __u16 __le16;
typedef __u16 __be16;

Regards,
GC

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-10-25 14:25 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-09  7:25 Purpose of using __be16 inside a data structure? 陳國成
2011-08-24  5:16 ` Adam Lee
2011-08-25  5:41   ` 陳國成
2011-10-24 19:54 ` Kevin O'Gorman
2011-10-25 14:25   ` Jonathan Neuschäfer
  -- strict thread matches above, loose matches on Subject: below --
2011-08-14  0:41 陳國成
2011-08-14  6:21 ` Michael Blizek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.