Re: [PATCH] subset of RFC2553

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



   From: Bruce Allan <bwa@us.ibm.com>
   Date: 12 Feb 2003 15:15:39 -0800

I don't like how sockaddr_storage works, so you'll have to clean
it up before we move it to a generic spot.

   +struct sockaddr_storage {
   +	sa_family_t  ss_family;			/* address family */
   +	/* Following fields are implementation specific */
   +	char      __ss_pad1[_SS_PAD1SIZE];
   +				/* 6 byte pad, this is to make implementation */
   +				/* specific pad up to alignment field that */
   +				/* follows explicit in the data structure */
   +	int64_t   __ss_align; 	/* field to force desired structure */
   +				/* storage alignment */
   +	char      __ss_pad2[_SS_PAD2SIZE];
   +				/* 112 byte pad to achieve desired size, */
   +				/* _SS_MAXSIZE value minus size of ss_family */
   +				/* __ss_pad1, __ss_align fields is 112 */
   +};

All of this pad stuff is really unnecessary, just specify ss_family
and then "stuff" where "stuff" can be something like "char __data[0];"
Then you can add "attribute((aligned(64)))" or whatever to the
declaration as well.

And if you're going to put some 64-bit type in here, use "__u64"
which actually makes you consistent with the rest of the kernel.

You could also do something like:

	__u64	data[_SS_MAXSIZE / sizeof(__u64)];

Anything but this pad stuff...
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux