linux-c-programming.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Confuse with big endian bitwise field
@ 2007-06-26 10:20 Li YanBo
  2007-06-26 18:09 ` Kristof Provost
  2007-06-28 14:39 ` Arjan van de Ven
  0 siblings, 2 replies; 7+ messages in thread
From: Li YanBo @ 2007-06-26 10:20 UTC (permalink / raw)
  To: linux-c-programming; +Cc: kernelnewbies

hi all,

I am try  to define a hardware specific struct, it is like below:

struct xxx {
        __be32 pdu_cnt:6;
        __be32 y:3;
        __be32 wep_key:2;
        __be32 uses_wep_key:1;
        __be32 keep_alive:1;
        __be32 buff_tail_addr:19;

        __be32 cts_11g:1;
        __be32 rts_11g:1;
        __be32 x:2;
        __be32 frag_size:12;
        __be32 payload_len:12;
        __be32 frag_num:4;
}

but I am confuse with how to assign the values to the fields
"buff_tail_addr" and "payload_len", I think there  are two ways to
assign values to them, but I don't know which is right?

eg: I declare a variable  struct xxx X;

1: X.buff_tail_addr = 0x3456;                        X.payload_len = 0x20;
2: X.buff_tail_addr = cpu_to_be32(0x3456);    X.payload_len = cpu_to_be16(0x20);

There are two way I think to assign values. Could anyone tell me which
is right or both are wrong? I will be appreciate for any hints, thanks
in advance!

BR

lyb

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

end of thread, other threads:[~2007-07-10  3:58 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-26 10:20 Confuse with big endian bitwise field Li YanBo
2007-06-26 18:09 ` Kristof Provost
2007-06-28 14:39 ` Arjan van de Ven
2007-06-28 14:59   ` Li YanBo
2007-06-28 15:25   ` Ranjan Sinha
2007-07-03  4:12     ` Li YanBo
2007-07-10  3:58       ` Li YanBo

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).