From owner-cvs-src@FreeBSD.ORG Mon Dec 13 05:26:06 2004 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 38E6016A4CE; Mon, 13 Dec 2004 05:26:06 +0000 (GMT) Received: from electra.cse.Buffalo.EDU (electra.cse.Buffalo.EDU [128.205.32.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id D0E1843D1D; Mon, 13 Dec 2004 05:26:05 +0000 (GMT) (envelope-from kensmith@cse.Buffalo.EDU) Received: from electra.cse.Buffalo.EDU (kensmith@localhost [127.0.0.1]) iBD5Q3Io016675; Mon, 13 Dec 2004 00:26:03 -0500 (EST) Received: (from kensmith@localhost) by electra.cse.Buffalo.EDU (8.12.10/8.12.9/Submit) id iBD5Q26t016669; Mon, 13 Dec 2004 00:26:02 -0500 (EST) Date: Mon, 13 Dec 2004 00:26:01 -0500 From: Ken Smith To: Ken Smith Message-ID: <20041213052601.GB12611@electra.cse.Buffalo.EDU> References: <200412122012.iBCKCou6068020@repoman.freebsd.org> <20041212204111.GB5503@electra.cse.Buffalo.EDU> <20041212205321.GA28802@odin.ac.hmc.edu> <20041212212850.GA1493@freebie.xs4all.nl> <20041212215540.GD5960@electra.cse.Buffalo.EDU> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20041212215540.GD5960@electra.cse.Buffalo.EDU> User-Agent: Mutt/1.4.1i cc: Brooks Davis cc: Brooks Davis cc: cvs-src@FreeBSD.ORG cc: cvs-all@FreeBSD.ORG cc: src-committers@FreeBSD.ORG cc: Wilko Bulte Subject: Re: cvs commit: src/sbin/ifconfig ifconfig.c src/sys/net if.c if.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Dec 2004 05:26:06 -0000 On Sun, Dec 12, 2004 at 04:55:40PM -0500, Ken Smith wrote: > I didn't check as thoroughly as Brooks said he did but I whipped up > a very crude little test and ran it on beast: > > #include > #include > #include "if.h" > > main() > { > struct if_data foo; > u_char *addr1, *addr2; > > printf("sizeof if_data %d\n", sizeof(foo)); > addr1 = (u_char *)&foo; > addr2 = (u_char *)&foo.ifi_mtu; > printf("offset ifi_mtu %d\n", (int)(addr2 - addr1)); > } > As a community service... Don't write code like that... :-) I was having a little trouble finding the right combination of headers to get offsetof() working. This should be better: #include #include #include #include #include #include "if.h" main() { struct if_data foo; size_t distance; printf("sizeof if_data %d\n", sizeof(foo)); distance = offsetof(struct if_data, ifi_mtu); printf("offset ifi_mtu %lu\n", (unsigned long)distance); } -- Ken Smith - From there to here, from here to | kensmith@cse.buffalo.edu there, funny things are everywhere. | - Theodore Geisel |