Thomas Graf wrote:
* Randy Dunlap <[EMAIL PROTECTED]> 2006-11-10 10:23
On Fri, 10 Nov 2006 01:08:23 -0500 Paul Moore wrote:

An Introduction To Using Generic Netlink
===============================================================================
3.1.2. The genl_family Structure

Generic Netlink services are defined by the genl_family structure, which is
shown below:

  struct genl_family
  {
        unsigned int            id;
        unsigned int            hdrsize;
        char                    name[GENL_NAMSIZ];
        unsigned int            version;
        unsigned int            maxattr;
        struct nlattr **        attrbuf;
        struct list_head        ops_list;
        struct list_head        family_list;
  };
Any alignment/packing concerns here?  or that is already
handled, just not presented here?

I thought I chose GENL_NAMESIZ wisely but to be sure I checked
with Mr. Alignment himself, Arnaldo:

Hm, looks OK to me.  Am I missing something?

struct genl_family {
        unsigned int               id;                   /* 0(0)     4 */
        unsigned int               hdrsize;              /* 4(0)     4 */
        char                       name[16];             /* 8(0)    16 */
        unsigned int               version;              /* 24(0)     4 */
        unsigned int               maxattr;              /* 28(0)     4 */
        /* ---------- cacheline 1 boundary ---------- */
        struct nlattr * *          attrbuf;              /* 32(0)     4 */
        struct list_head           ops_list;             /* 36(0)     8 */
        struct list_head           family_list;          /* 44(0)     8 */
}; /* size: 52 */

How about field size issues?  Usually for int's etc. that are in
userspace interfaces, we use __u32 etc.

--
~Randy
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to