From owner-svn-src-head@FreeBSD.ORG Sun Nov 1 15:15:44 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E34E51065696; Sun, 1 Nov 2009 15:15:44 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id BFE048FC20; Sun, 1 Nov 2009 15:15:44 +0000 (UTC) Received: from fledge.watson.org (fledge.watson.org [65.122.17.41]) by cyrus.watson.org (Postfix) with ESMTPS id 5758646B06; Sun, 1 Nov 2009 10:15:44 -0500 (EST) Date: Sun, 1 Nov 2009 15:15:44 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Ed Schouten In-Reply-To: <200910311035.n9VAZfIb082932@svn.freebsd.org> Message-ID: References: <200910311035.n9VAZfIb082932@svn.freebsd.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r198706 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Nov 2009 15:15:45 -0000 On Sat, 31 Oct 2009, Ed Schouten wrote: > Turn unused structure fields of cdevsw into spares. > > d_uid, d_gid and d_mode are unused, because permissions are stored in > cdevpriv nowadays. d_kind doesn't seem to be used at all. We no longer > keep a list of cdevsw's, so d_list is also unused. > > uid_t and gid_t are 32 bits, but mode_t is 16 bits, Because of alignment > constraints of d_kind, we can safely turn it into three 32-bit integers. > d_kind and d_list is equal in size to three pointers. 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? From a casual glance (perhaps mistaken), it looks like this changes the KBI, so all modules declaring struct cdevsw will need to be rebuilt. Robert N M Watson Computer Laboratory University of Cambridge > > Discussed with: kib > > Modified: > head/sys/sys/conf.h > > Modified: head/sys/sys/conf.h > ============================================================================== > --- head/sys/sys/conf.h Sat Oct 31 09:03:48 2009 (r198705) > +++ head/sys/sys/conf.h Sat Oct 31 10:35:41 2009 (r198706) > @@ -210,15 +210,13 @@ struct cdevsw { > d_kqfilter_t *d_kqfilter; > d_purge_t *d_purge; > d_mmap_single_t *d_mmap_single; > - 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; > LIST_HEAD(, cdev) d_devs; > - int d_spare3; > + int d_spare2; > union { > struct cdevsw *gianttrick; > SLIST_ENTRY(cdevsw) postfree_list; >