Subject: Re: Generic Netlink HOW-TO based on Jamal's original doc

From: Thomas Graf <[email-masked]>
Date: Fri, 10 Nov 2006 23:56:14 +0100

* Randy Dunlap <[email-masked]> 2006-11-10 14:49
> >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?

It is OK, I was merely trying to prove it :-)

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

This is kernel side only, struct genl_family lives in net/genetlink.h
and is not exported to userspace.