svn commit: r198706 - head/sys/sys
Ed Schouten
ed at 80386.nl
Sun Nov 1 15:33:41 UTC 2009
Hi Robert,
* Robert Watson <rwatson at FreeBSD.org> wrote:
> The underlying change seems fine, especially in -CURRENT, but I'm
> confused by the paragraph here on alignment and safety. What do you
> mean by safe, and does it matter?
With safe I mean that all useful members still begin at the same offset
within the structure. I'm not sure whether it matters at all, because I
can imagine d_devs could be moved around without having any effect, but
I'm not going to make any predictions on that.
> From a casual glance (perhaps mistaken), it looks like this changes
> the KBI, so all modules declaring struct cdevsw will need to be
> rebuilt.
It shouldn't, right?
- uid_t d_uid;
- gid_t d_gid;
- mode_t d_mode;
- const char *d_kind;
+
+ int32_t d_spare0[3];
+ void *d_spare1[3];
/* These fields should not be messed with by drivers */
- LIST_ENTRY(cdevsw) d_list;
d_uid, d_gid and d_mode is equal to:
int32_t d_uid;
int32_t d_gid;
int16_t d_mode;
Because d_kind is a pointer, there will be a hole in the structure of at
least 2 bytes (maybe even 6), which means we can safely extend d_mode to
32 bits as well. I could have decided to leave it at uint16_t, but that
would only obfuscate it even more when we would try to reclaim some
space there.
d_list is just two pointers, so I merged it with d_kind into an array of
three pointers.
--
Ed Schouten <ed at 80386.nl>
WWW: http://80386.nl/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-head/attachments/20091101/e1ea844e/attachment.pgp
More information about the svn-src-head
mailing list