From owner-freebsd-hackers Mon Nov 3 18:30:42 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id SAA27070 for hackers-outgoing; Mon, 3 Nov 1997 18:30:42 -0800 (PST) (envelope-from owner-freebsd-hackers) Received: from smtp04.primenet.com (smtp04.primenet.com [206.165.5.85]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id SAA27057 for ; Mon, 3 Nov 1997 18:30:36 -0800 (PST) (envelope-from tlambert@usr09.primenet.com) Received: (from daemon@localhost) by smtp04.primenet.com (8.8.7/8.8.7) id TAA24712; Mon, 3 Nov 1997 19:30:35 -0700 (MST) Received: from usr09.primenet.com(206.165.6.209) via SMTP by smtp04.primenet.com, id smtpd024698; Mon Nov 3 19:30:27 1997 Received: (from tlambert@localhost) by usr09.primenet.com (8.8.5/8.8.5) id TAA14861; Mon, 3 Nov 1997 19:30:24 -0700 (MST) From: Terry Lambert Message-Id: <199711040230.TAA14861@usr09.primenet.com> Subject: Re: gcc and bitfields To: jwm@CSUA.Berkeley.EDU (John Milford) Date: Tue, 4 Nov 1997 02:30:23 +0000 (GMT) Cc: kuku@gilberto.physik.rwth-aachen.de, freebsd-hackers@freefall.freebsd.org In-Reply-To: <199711021618.IAA02063@soda.CSUA.Berkeley.EDU> from "John Milford" at Nov 2, 97 08:18:29 am X-Mailer: ELM [version 2.4 PL23] Content-Type: text Sender: owner-freebsd-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > By default gcc pads structures to make make the size a multiple of 4 bytes. > Try: > > struct C_OPEN { > int a; > int b; > unsigned xdt:1; > unsigned reserved:15; > } __attribute__ ((packed)); Or you can keep the code portable to DOS by not using the bogus GNUish namespace intrusion "__attribute__": #pragma pack(1) struct C_OPEN { int a; int b; unsigned xdt:1; unsigned reserved:15; }; #pragma pack(4) /* * GCC will take "pack()" (no arguments) to reset; I don't remember * if MSVC++ can, however... you should check, and use the no argument * version, if possible. */ Also: cd /sys/i386/include grep pragma *.h ...there's already precedent favoring "#pragma pack()" over "__attribute__" in FreeBSD. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.