From 51a388aaaf4529e38406671c735b4cfb6fa0a939 Mon Sep 17 00:00:00 2001 From: Sascha Wildner Date: Fri, 3 Oct 2008 19:56:11 +0000 Subject: [PATCH] Silence remaining "'packed' attribute ignored for field of type..." warnings. Verified-with: md5 --- sys/boot/pc32/libi386/biospnp.c | 56 +++-- usr.bin/doscmd/dos.h | 356 ++++++++++++++++---------------- usr.bin/doscmd/ems.h | 48 ++--- usr.bin/doscmd/xms.h | 10 +- 4 files changed, 234 insertions(+), 236 deletions(-) diff --git a/sys/boot/pc32/libi386/biospnp.c b/sys/boot/pc32/libi386/biospnp.c index f78fa69de5..77d0c17ca3 100644 --- a/sys/boot/pc32/libi386/biospnp.c +++ b/sys/boot/pc32/libi386/biospnp.c @@ -24,7 +24,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/boot/i386/libi386/biospnp.c,v 1.9 2003/08/25 23:28:31 obrien Exp $ - * $DragonFly: src/sys/boot/pc32/libi386/biospnp.c,v 1.4 2003/11/10 06:08:36 dillon Exp $ + * $DragonFly: src/sys/boot/pc32/libi386/biospnp.c,v 1.5 2008/10/03 19:56:10 swildner Exp $ */ /* @@ -37,8 +37,6 @@ #include #include -#define __packed __attribute__((__packed__)) - static int biospnp_init(void); static void biospnp_enumerate(void); @@ -50,38 +48,38 @@ struct pnphandler biospnphandler = struct pnp_ICstructure { - u_int8_t pnp_signature[4] __packed; - u_int8_t pnp_version __packed; - u_int8_t pnp_length __packed; - u_int16_t pnp_BIOScontrol __packed; - u_int8_t pnp_checksum __packed; - u_int32_t pnp_eventflag __packed; - u_int16_t pnp_rmip __packed; - u_int16_t pnp_rmcs __packed; - u_int16_t pnp_pmip __packed; - u_int32_t pnp_pmcs __packed; - u_int8_t pnp_OEMdev[4] __packed; - u_int16_t pnp_rmds __packed; - u_int32_t pnp_pmds __packed; -}; + u_int8_t pnp_signature[4]; + u_int8_t pnp_version; + u_int8_t pnp_length; + u_int16_t pnp_BIOScontrol; + u_int8_t pnp_checksum; + u_int32_t pnp_eventflag; + u_int16_t pnp_rmip; + u_int16_t pnp_rmcs; + u_int16_t pnp_pmip; + u_int32_t pnp_pmcs; + u_int8_t pnp_OEMdev[4]; + u_int16_t pnp_rmds; + u_int32_t pnp_pmds; +} __packed; struct pnp_devNode { - u_int16_t dn_size __packed; - u_int8_t dn_handle __packed; - u_int8_t dn_id[4] __packed; - u_int8_t dn_type[3] __packed; - u_int16_t dn_attrib __packed; - u_int8_t dn_data[1] __packed; -}; + u_int16_t dn_size; + u_int8_t dn_handle; + u_int8_t dn_id[4]; + u_int8_t dn_type[3]; + u_int16_t dn_attrib; + u_int8_t dn_data[1]; +} __packed; struct pnp_isaConfiguration { - u_int8_t ic_revision __packed; - u_int8_t ic_nCSN __packed; - u_int16_t ic_rdport __packed; - u_int16_t ic_reserved __packed; -}; + u_int8_t ic_revision; + u_int8_t ic_nCSN; + u_int16_t ic_rdport; + u_int16_t ic_reserved; +} __packed; static struct pnp_ICstructure *pnp_Icheck = NULL; static u_int16_t pnp_NumNodes; diff --git a/usr.bin/doscmd/dos.h b/usr.bin/doscmd/dos.h index 978d826cfe..e518e6acef 100644 --- a/usr.bin/doscmd/dos.h +++ b/usr.bin/doscmd/dos.h @@ -30,7 +30,7 @@ * BSDI dos.h,v 2.2 1996/04/08 19:32:28 bostic Exp * * $FreeBSD: src/usr.bin/doscmd/dos.h,v 1.2.2.1 2002/04/25 11:04:51 tg Exp $ - * $DragonFly: src/usr.bin/doscmd/dos.h,v 1.2 2003/06/17 04:29:25 dillon Exp $ + * $DragonFly: src/usr.bin/doscmd/dos.h,v 1.3 2008/10/03 19:56:11 swildner Exp $ */ /* @@ -119,48 +119,48 @@ typedef struct { * use the first 21 bytes. */ typedef struct { - u_char drive __attribute__ ((packed)); - u_char pattern[11] __attribute__ ((packed)); - u_char flag __attribute__ ((packed)); - u_char reserved1[4] __attribute__ ((packed)); - search_t *searchptr __attribute__ ((packed)); - u_char attr __attribute__ ((packed)); - u_short time __attribute__ ((packed)); - u_short date __attribute__ ((packed)); - u_long size __attribute__ ((packed)); - u_char name[13] __attribute__ ((packed)); -}/* __attribute__((__packed__))*/ find_block_t; + u_char drive; + u_char pattern[11]; + u_char flag; + u_char reserved1[4]; + search_t *searchptr; + u_char attr; + u_short time; + u_short date; + u_long size; + u_char name[13]; +} __packed find_block_t; /* * DOS directory entry structure */ typedef struct { - u_char name[8] __attribute__ ((packed)); - u_char ext[3] __attribute__ ((packed)); - u_char attr __attribute__ ((packed)); - u_char reserved[10] __attribute__ ((packed)); - u_short time __attribute__ ((packed)); - u_short date __attribute__ ((packed)); - u_short start __attribute__ ((packed)); - u_long size __attribute__ ((packed)); -} dosdir_t; + u_char name[8]; + u_char ext[3]; + u_char attr; + u_char reserved[10]; + u_short time; + u_short date; + u_short start; + u_long size; +} __packed dosdir_t; /* * The Current Drive Structure */ typedef struct { - u_char path[0x43] __attribute__ ((packed)); - u_short flag __attribute__ ((packed)); - u_short dpb_off __attribute__ ((packed)); - u_short dpb_seg __attribute__ ((packed)); - u_short redirector_off __attribute__ ((packed)); - u_short redirector_seg __attribute__ ((packed)); - u_char paramter_int21[2] __attribute__ ((packed)); - u_short offset __attribute__ ((packed)); - u_char dummy __attribute__ ((packed)); - u_char ifs_driver[4] __attribute__ ((packed)); - u_char dummy2[2] __attribute__ ((packed)); -}/* __attribute__((__packed__))*/ CDS; + u_char path[0x43]; + u_short flag; + u_short dpb_off; + u_short dpb_seg; + u_short redirector_off; + u_short redirector_seg; + u_char paramter_int21[2]; + u_short offset; + u_char dummy; + u_char ifs_driver[4]; + u_char dummy2[2]; +} __packed CDS; #define CDS_remote 0x8000 #define CDS_ready 0x4000 @@ -173,162 +173,162 @@ typedef struct { * The List of Lists (used to get the CDS and a few other numbers) */ typedef struct { - u_char dummy1[0x16] __attribute__ ((packed)); - u_short cds_offset __attribute__ ((packed)); - u_short cds_seg __attribute__ ((packed)); - u_char dummy2[6] __attribute__ ((packed)); - u_char numberbdev __attribute__ ((packed)); - u_char lastdrive __attribute__ ((packed)); -} LOL; + u_char dummy1[0x16]; + u_short cds_offset; + u_short cds_seg; + u_char dummy2[6]; + u_char numberbdev; + u_char lastdrive; +} __packed LOL; /* * The System File Table */ typedef struct { -/*00*/ u_short nfiles __attribute__ ((packed)); /* Number file handles referring to this file */ -/*02*/ u_short open_mode __attribute__ ((packed)); /* Open mode (bit 15 -> by FCB) */ -/*04*/ u_char attribute __attribute__ ((packed)); -/*05*/ u_short info __attribute__ ((packed)); /* 15 -> remote, 14 -> dont set date */ -/*07*/ u_char ddr_dpb[4] __attribute__ ((packed)); /* Device Driver Header/Drive Paramter Block */ -/*0b*/ u_short fd __attribute__ ((packed)); -/*0d*/ u_short time __attribute__ ((packed)); -/*0f*/ u_short date __attribute__ ((packed)); -/*11*/ u_long size __attribute__ ((packed)); -/*15*/ u_long offset __attribute__ ((packed)); -/*19*/ u_short rel_cluster __attribute__ ((packed)); -/*1b*/ u_short abs_cluster __attribute__ ((packed)); -/*1d*/ u_char dir_sector[2] __attribute__ ((packed)); -/*1f*/ u_char dir_entry __attribute__ ((packed)); -/*20*/ u_char name[8] __attribute__ ((packed)); -/*28*/ u_char ext[3] __attribute__ ((packed)); -/*2b*/ u_char sharesft[4] __attribute__ ((packed)); -/*2f*/ u_char sharenet[2] __attribute__ ((packed)); -/*31*/ u_short psp __attribute__ ((packed)); -/*33*/ u_char share_off[2] __attribute__ ((packed)); -/*35*/ u_char local_end[2] __attribute__ ((packed)); -/*37*/ u_char ifd_driver[4] __attribute__ ((packed)); -} /*__attribute__((__packed__))*/ SFT; +/*00*/ u_short nfiles; /* Number file handles referring to this file */ +/*02*/ u_short open_mode; /* Open mode (bit 15 -> by FCB) */ +/*04*/ u_char attribute; +/*05*/ u_short info; /* 15 -> remote, 14 -> dont set date */ +/*07*/ u_char ddr_dpb[4]; /* Device Driver Header/Drive Paramter Block */ +/*0b*/ u_short fd; +/*0d*/ u_short time; +/*0f*/ u_short date; +/*11*/ u_long size; +/*15*/ u_long offset; +/*19*/ u_short rel_cluster; +/*1b*/ u_short abs_cluster; +/*1d*/ u_char dir_sector[2]; +/*1f*/ u_char dir_entry; +/*20*/ u_char name[8]; +/*28*/ u_char ext[3]; +/*2b*/ u_char sharesft[4]; +/*2f*/ u_char sharenet[2]; +/*31*/ u_short psp; +/*33*/ u_char share_off[2]; +/*35*/ u_char local_end[2]; +/*37*/ u_char ifd_driver[4]; +} __packed SFT; /* * Format of PCDOS 4.01 swappable data area * (Sorry, but you need a wide screen to make this look nice) */ typedef struct { - u_char err_crit __attribute__ ((packed)); /* 00h BYTE critical error flag */ - u_char InDOS __attribute__ ((packed)); /* 01h BYTE InDOS flag (count of active INT 21 calls) */ - u_char err_drive __attribute__ ((packed)); /* 02h BYTE ??? drive number or FFh */ - u_char err_locus __attribute__ ((packed)); /* 03h BYTE locus of last error */ - u_short err_code __attribute__ ((packed)); /* 04h WORD extended error code of last error */ - u_char err_suggest __attribute__ ((packed)); /* 06h BYTE suggested action for last error */ - u_char err_class __attribute__ ((packed)); /* 07h BYTE class of last error */ - u_short err_di __attribute__ ((packed)); - u_short err_es __attribute__ ((packed)); /* 08h DWORD ES:DI pointer for last error */ - u_short dta_off __attribute__ ((packed)); - u_short dta_seg __attribute__ ((packed)); /* 0Ch DWORD current DTA */ - u_short psp __attribute__ ((packed)); /* 10h WORD current PSP */ - u_short int_23_sp __attribute__ ((packed)); /* 12h WORD stores SP across an INT 23 */ - u_short wait_status __attribute__ ((packed)); /* 14h WORD return code from last process termination (zerod after reading with AH=4Dh) */ - u_char current_drive __attribute__ ((packed)); /* 16h BYTE current drive */ - u_char break_flag __attribute__ ((packed)); /* 17h BYTE extended break flag */ - u_char unknown1[2] __attribute__ ((packed)); /* 18h 2 BYTEs ??? */ - u_short int_21_ax __attribute__ ((packed)); /* 1Ah WORD value of AX on call to INT 21 */ - u_short net_psp __attribute__ ((packed)); /* 1Ch WORD PSP segment for sharing/network */ - u_short net_number __attribute__ ((packed)); /* 1Eh WORD network machine number for sharing/network (0000h = us) */ - u_short first_mem __attribute__ ((packed)); /* 20h WORD first usable memory block found when allocating memory */ - u_short best_mem __attribute__ ((packed)); /* 22h WORD best usable memory block found when allocating memory */ - u_short last_mem __attribute__ ((packed)); /* 24h WORD last usable memory block found when allocating memory */ - u_char unknown[10] __attribute__ ((packed)); /* 26h 2 BYTEs ??? (don't seem to be referenced) */ - u_char monthday __attribute__ ((packed)); /* 30h BYTE day of month */ - u_char month __attribute__ ((packed)); /* 31h BYTE month */ - u_short year __attribute__ ((packed)); /* 32h WORD year - 1980 */ - u_short days __attribute__ ((packed)); /* 34h WORD number of days since 1-1-1980 */ - u_char weekday __attribute__ ((packed)); /* 36h BYTE day of week (0 = Sunday) */ - u_char unknown2[3] __attribute__ ((packed)); /* 37h BYTE ??? */ - u_char ddr_head[30] __attribute__ ((packed)); /* 38h 30 BYTEs device driver request header */ - u_short ddre_ip __attribute__ ((packed)); - u_short ddre_cs __attribute__ ((packed)); /* 58h DWORD pointer to device driver entry point (used in calling driver) */ - u_char ddr_head2[22] __attribute__ ((packed)); /* 5Ch 22 BYTEs device driver request header */ - u_char ddr_head3[30] __attribute__ ((packed)); /* 72h 30 BYTEs device driver request header */ - u_char unknown3[6] __attribute__ ((packed)); /* 90h 6 BYTEs ??? */ - u_char clock_xfer[6] __attribute__ ((packed)); /* 96h 6 BYTEs CLOCK$ transfer record (see AH=52h) */ - u_char unknown4[2] __attribute__ ((packed)); /* 9Ch 2 BYTEs ??? */ - u_char filename1[128] __attribute__ ((packed)); /* 9Eh 128 BYTEs buffer for filename */ - u_char filename2[128] __attribute__ ((packed)); /* 11Eh 128 BYTEs buffer for filename */ - u_char findfirst[21] __attribute__ ((packed)); /* 19Eh 21 BYTEs findfirst/findnext search data block (see AH=4Eh) */ - u_char foundentry[32] __attribute__ ((packed)); /* 1B3h 32 BYTEs directory entry for found file */ - u_char cds[88] __attribute__ ((packed)); /* 1D3h 88 BYTEs copy of current directory structure for drive being accessed */ - u_char fcbname[11] __attribute__ ((packed)); /* 22Bh 11 BYTEs ??? FCB-format filename */ - u_char unknown5 __attribute__ ((packed)); /* 236h BYTE ??? */ - u_char wildcard[11] __attribute__ ((packed)); /* 237h 11 BYTEs wildcard destination specification for rename (FCB format) */ - u_char unknown6[11] __attribute__ ((packed)); /* 242h 2 BYTEs ??? */ - u_char attrmask __attribute__ ((packed)); /* 24Dh BYTE attribute mask for directory search??? */ - u_char open_mode __attribute__ ((packed)); /* 24Eh BYTE open mode */ - u_char unknown7[3] __attribute__ ((packed)); /* 24fh BYTE ??? */ - u_char virtual_dos __attribute__ ((packed)); /* 252h BYTE flag indicating how DOS function was invoked (00h = direct INT 20/INT 21, FFh = server call AX=5D00h) */ - u_char unknown8[9] __attribute__ ((packed)); /* 253h BYTE ??? */ - u_char term_type __attribute__ ((packed)); /* 25Ch BYTE type of process termination (00h-03h) */ - u_char unknown9[3] __attribute__ ((packed)); /* 25Dh BYTE ??? */ - u_short dpb_off __attribute__ ((packed)); - u_short dpb_seg __attribute__ ((packed)); /* 260h DWORD pointer to Drive Parameter Block for critical error invocation */ - u_short int21_sf_off __attribute__ ((packed)); - u_short int21_sf_seg __attribute__ ((packed)); /* 264h DWORD pointer to stack frame containing user registers on INT 21 */ - u_short store_sp __attribute__ ((packed)); /* 268h WORD stores SP??? */ - u_short dosdpb_off __attribute__ ((packed)); - u_short dosdpb_seg __attribute__ ((packed)); /* 26Ah DWORD pointer to DOS Drive Parameter Block for ??? */ - u_short disk_buf_seg __attribute__ ((packed)); /* 26Eh WORD segment of disk buffer */ - u_short unknown10[4] __attribute__ ((packed)); /* 270h WORD ??? */ - u_char media_id __attribute__ ((packed)); /* 278h BYTE Media ID byte returned by AH=1Bh,1Ch */ - u_char unknown11 __attribute__ ((packed)); /* 279h BYTE ??? (doesn't seem to be referenced) */ - u_short unknown12[2] __attribute__ ((packed)); /* 27Ah DWORD pointer to ??? */ - u_short sft_off __attribute__ ((packed)); - u_short sft_seg __attribute__ ((packed)); /* 27Eh DWORD pointer to current SFT */ - u_short cds_off __attribute__ ((packed)); - u_short cds_seg __attribute__ ((packed)); /* 282h DWORD pointer to current directory structure for drive being accessed */ - u_short fcb_off __attribute__ ((packed)); - u_short fcb_seg __attribute__ ((packed)); /* 286h DWORD pointer to caller's FCB */ - u_short unknown13[2] __attribute__ ((packed)); /* 28Ah WORD ??? */ - u_short jft_off __attribute__ ((packed)); - u_short jft_seg __attribute__ ((packed)); /* 28Eh DWORD pointer to a JFT entry in process handle table (see AH=26h) */ - u_short filename1_off __attribute__ ((packed)); /* 292h WORD offset in DOS CS of first filename argument */ - u_short filename2_off __attribute__ ((packed)); /* 294h WORD offset in DOS CS of second filename argument */ - u_short unknown14[12] __attribute__ ((packed)); /* 296h WORD ??? */ - u_short file_offset_lo __attribute__ ((packed)); - u_short file_offset_hi __attribute__ ((packed)); /* 2AEh DWORD offset in file??? */ - u_short unknown15 __attribute__ ((packed)); /* 2B2h WORD ??? */ - u_short partial_bytes __attribute__ ((packed)); /* 2B4h WORD bytes in partial sector */ - u_short number_sectors __attribute__ ((packed)); /* 2B6h WORD number of sectors */ - u_short unknown16[3] __attribute__ ((packed)); /* 2B8h WORD ??? */ - u_short nbytes_lo __attribute__ ((packed)); - u_short nbytes_hi __attribute__ ((packed)); /* 2BEh DWORD number of bytes appended to file */ - u_short qpdb_off __attribute__ ((packed)); - u_short qpdb_seg __attribute__ ((packed)); /* 2C2h DWORD pointer to ??? disk buffer */ - u_short asft_off __attribute__ ((packed)); - u_short asft_seg __attribute__ ((packed)); /* 2C6h DWORD pointer to ??? SFT */ - u_short int21_bx __attribute__ ((packed)); /* 2CAh WORD used by INT 21 dispatcher to store caller's BX */ - u_short int21_ds __attribute__ ((packed)); /* 2CCh WORD used by INT 21 dispatcher to store caller's DS */ - u_short temporary __attribute__ ((packed)); /* 2CEh WORD temporary storage while saving/restoring caller's registers */ - u_short prevcall_off __attribute__ ((packed)); - u_short prevcall_seg __attribute__ ((packed)); /* 2D0h DWORD pointer to prev call frame (offset 264h) if INT 21 reentered also switched to for duration of INT 24 */ - u_char unknown17[9] __attribute__ ((packed)); /* 2D4h WORD ??? */ - u_short ext_action __attribute__ ((packed)); /* 2DDh WORD multipurpose open action */ - u_short ext_attr __attribute__ ((packed)); /* 2DFh WORD multipurpose attribute */ - u_short ext_mode __attribute__ ((packed)); /* 2E1h WORD multipurpose mode */ - u_char unknown17a[9] __attribute__ ((packed)); - u_short lol_ds __attribute__ ((packed)); /* 2ECh WORD stores DS during call to [List-of-Lists + 37h] */ - u_char unknown18[5] __attribute__ ((packed)); /* 2EEh WORD ??? */ - u_char usernameptr[4] __attribute__ ((packed)); /* 2F3h DWORD pointer to user-supplied filename */ - u_char unknown19[4] __attribute__ ((packed)); /* 2F7h DWORD pointer to ??? */ - u_char lol_ss[2] __attribute__ ((packed)); /* 2FBh WORD stores SS during call to [List-of-Lists + 37h] */ - u_char lol_sp[2] __attribute__ ((packed)); /* 2FDh WORD stores SP during call to [List-of-Lists + 37h] */ - u_char lol_flag __attribute__ ((packed)); /* 2FFh BYTE flag, nonzero if stack switched in calling [List-of-Lists+37h] */ - u_char searchdata[21] __attribute__ ((packed)); /* 300h 21 BYTEs FindFirst search data for source file(s) of a rename operation (see AH=4Eh) */ - u_char renameentry[32] __attribute__ ((packed)); /* 315h 32 BYTEs directory entry for file being renamed */ - u_char errstack[331] __attribute__ ((packed)); /* 335h 331 BYTEs critical error stack */ - u_char diskstack[384] __attribute__ ((packed)); /* 480h 384 BYTEs disk stack (functions greater than 0Ch, INT 25, INT 26) */ - u_char iostack[384] __attribute__ ((packed)); /* 600h 384 BYTEs character I/O stack (functions 01h through 0Ch) */ - u_char int_21_08_flag __attribute__ ((packed)); /* 780h BYTE flag affecting AH=08h (see AH=64h) */ - u_char unknown20[11] __attribute__ ((packed)); /* 781h BYTE ??? looks like a drive number */ -} /*__attribute__((__packed__))*/ SDA; + u_char err_crit; /* 00h BYTE critical error flag */ + u_char InDOS; /* 01h BYTE InDOS flag (count of active INT 21 calls) */ + u_char err_drive; /* 02h BYTE ??? drive number or FFh */ + u_char err_locus; /* 03h BYTE locus of last error */ + u_short err_code; /* 04h WORD extended error code of last error */ + u_char err_suggest; /* 06h BYTE suggested action for last error */ + u_char err_class; /* 07h BYTE class of last error */ + u_short err_di; + u_short err_es; /* 08h DWORD ES:DI pointer for last error */ + u_short dta_off; + u_short dta_seg; /* 0Ch DWORD current DTA */ + u_short psp; /* 10h WORD current PSP */ + u_short int_23_sp; /* 12h WORD stores SP across an INT 23 */ + u_short wait_status; /* 14h WORD return code from last process termination (zerod after reading with AH=4Dh) */ + u_char current_drive; /* 16h BYTE current drive */ + u_char break_flag; /* 17h BYTE extended break flag */ + u_char unknown1[2]; /* 18h 2 BYTEs ??? */ + u_short int_21_ax; /* 1Ah WORD value of AX on call to INT 21 */ + u_short net_psp; /* 1Ch WORD PSP segment for sharing/network */ + u_short net_number; /* 1Eh WORD network machine number for sharing/network (0000h = us) */ + u_short first_mem; /* 20h WORD first usable memory block found when allocating memory */ + u_short best_mem; /* 22h WORD best usable memory block found when allocating memory */ + u_short last_mem; /* 24h WORD last usable memory block found when allocating memory */ + u_char unknown[10]; /* 26h 2 BYTEs ??? (don't seem to be referenced) */ + u_char monthday; /* 30h BYTE day of month */ + u_char month; /* 31h BYTE month */ + u_short year; /* 32h WORD year - 1980 */ + u_short days; /* 34h WORD number of days since 1-1-1980 */ + u_char weekday; /* 36h BYTE day of week (0 = Sunday) */ + u_char unknown2[3]; /* 37h BYTE ??? */ + u_char ddr_head[30]; /* 38h 30 BYTEs device driver request header */ + u_short ddre_ip; + u_short ddre_cs; /* 58h DWORD pointer to device driver entry point (used in calling driver) */ + u_char ddr_head2[22]; /* 5Ch 22 BYTEs device driver request header */ + u_char ddr_head3[30]; /* 72h 30 BYTEs device driver request header */ + u_char unknown3[6]; /* 90h 6 BYTEs ??? */ + u_char clock_xfer[6]; /* 96h 6 BYTEs CLOCK$ transfer record (see AH=52h) */ + u_char unknown4[2]; /* 9Ch 2 BYTEs ??? */ + u_char filename1[128]; /* 9Eh 128 BYTEs buffer for filename */ + u_char filename2[128]; /* 11Eh 128 BYTEs buffer for filename */ + u_char findfirst[21]; /* 19Eh 21 BYTEs findfirst/findnext search data block (see AH=4Eh) */ + u_char foundentry[32]; /* 1B3h 32 BYTEs directory entry for found file */ + u_char cds[88]; /* 1D3h 88 BYTEs copy of current directory structure for drive being accessed */ + u_char fcbname[11]; /* 22Bh 11 BYTEs ??? FCB-format filename */ + u_char unknown5; /* 236h BYTE ??? */ + u_char wildcard[11]; /* 237h 11 BYTEs wildcard destination specification for rename (FCB format) */ + u_char unknown6[11]; /* 242h 2 BYTEs ??? */ + u_char attrmask; /* 24Dh BYTE attribute mask for directory search??? */ + u_char open_mode; /* 24Eh BYTE open mode */ + u_char unknown7[3]; /* 24fh BYTE ??? */ + u_char virtual_dos; /* 252h BYTE flag indicating how DOS function was invoked (00h = direct INT 20/INT 21, FFh = server call AX=5D00h) */ + u_char unknown8[9]; /* 253h BYTE ??? */ + u_char term_type; /* 25Ch BYTE type of process termination (00h-03h) */ + u_char unknown9[3]; /* 25Dh BYTE ??? */ + u_short dpb_off; + u_short dpb_seg; /* 260h DWORD pointer to Drive Parameter Block for critical error invocation */ + u_short int21_sf_off; + u_short int21_sf_seg; /* 264h DWORD pointer to stack frame containing user registers on INT 21 */ + u_short store_sp; /* 268h WORD stores SP??? */ + u_short dosdpb_off; + u_short dosdpb_seg; /* 26Ah DWORD pointer to DOS Drive Parameter Block for ??? */ + u_short disk_buf_seg; /* 26Eh WORD segment of disk buffer */ + u_short unknown10[4]; /* 270h WORD ??? */ + u_char media_id; /* 278h BYTE Media ID byte returned by AH=1Bh,1Ch */ + u_char unknown11; /* 279h BYTE ??? (doesn't seem to be referenced) */ + u_short unknown12[2]; /* 27Ah DWORD pointer to ??? */ + u_short sft_off; + u_short sft_seg; /* 27Eh DWORD pointer to current SFT */ + u_short cds_off; + u_short cds_seg; /* 282h DWORD pointer to current directory structure for drive being accessed */ + u_short fcb_off; + u_short fcb_seg; /* 286h DWORD pointer to caller's FCB */ + u_short unknown13[2]; /* 28Ah WORD ??? */ + u_short jft_off; + u_short jft_seg; /* 28Eh DWORD pointer to a JFT entry in process handle table (see AH=26h) */ + u_short filename1_off; /* 292h WORD offset in DOS CS of first filename argument */ + u_short filename2_off; /* 294h WORD offset in DOS CS of second filename argument */ + u_short unknown14[12]; /* 296h WORD ??? */ + u_short file_offset_lo; + u_short file_offset_hi; /* 2AEh DWORD offset in file??? */ + u_short unknown15; /* 2B2h WORD ??? */ + u_short partial_bytes; /* 2B4h WORD bytes in partial sector */ + u_short number_sectors; /* 2B6h WORD number of sectors */ + u_short unknown16[3]; /* 2B8h WORD ??? */ + u_short nbytes_lo; + u_short nbytes_hi; /* 2BEh DWORD number of bytes appended to file */ + u_short qpdb_off; + u_short qpdb_seg; /* 2C2h DWORD pointer to ??? disk buffer */ + u_short asft_off; + u_short asft_seg; /* 2C6h DWORD pointer to ??? SFT */ + u_short int21_bx; /* 2CAh WORD used by INT 21 dispatcher to store caller's BX */ + u_short int21_ds; /* 2CCh WORD used by INT 21 dispatcher to store caller's DS */ + u_short temporary; /* 2CEh WORD temporary storage while saving/restoring caller's registers */ + u_short prevcall_off; + u_short prevcall_seg; /* 2D0h DWORD pointer to prev call frame (offset 264h) if INT 21 reentered also switched to for duration of INT 24 */ + u_char unknown17[9]; /* 2D4h WORD ??? */ + u_short ext_action; /* 2DDh WORD multipurpose open action */ + u_short ext_attr; /* 2DFh WORD multipurpose attribute */ + u_short ext_mode; /* 2E1h WORD multipurpose mode */ + u_char unknown17a[9]; + u_short lol_ds; /* 2ECh WORD stores DS during call to [List-of-Lists + 37h] */ + u_char unknown18[5]; /* 2EEh WORD ??? */ + u_char usernameptr[4]; /* 2F3h DWORD pointer to user-supplied filename */ + u_char unknown19[4]; /* 2F7h DWORD pointer to ??? */ + u_char lol_ss[2]; /* 2FBh WORD stores SS during call to [List-of-Lists + 37h] */ + u_char lol_sp[2]; /* 2FDh WORD stores SP during call to [List-of-Lists + 37h] */ + u_char lol_flag; /* 2FFh BYTE flag, nonzero if stack switched in calling [List-of-Lists+37h] */ + u_char searchdata[21]; /* 300h 21 BYTEs FindFirst search data for source file(s) of a rename operation (see AH=4Eh) */ + u_char renameentry[32];/* 315h 32 BYTEs directory entry for file being renamed */ + u_char errstack[331]; /* 335h 331 BYTEs critical error stack */ + u_char diskstack[384]; /* 480h 384 BYTEs disk stack (functions greater than 0Ch, INT 25, INT 26) */ + u_char iostack[384]; /* 600h 384 BYTEs character I/O stack (functions 01h through 0Ch) */ + u_char int_21_08_flag; /* 780h BYTE flag affecting AH=08h (see AH=64h) */ + u_char unknown20[11]; /* 781h BYTE ??? looks like a drive number */ +} __packed SDA; struct exehdr { u_short magic; diff --git a/usr.bin/doscmd/ems.h b/usr.bin/doscmd/ems.h index f210b9e998..78b8900d0d 100644 --- a/usr.bin/doscmd/ems.h +++ b/usr.bin/doscmd/ems.h @@ -26,7 +26,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/usr.bin/doscmd/ems.h,v 1.3 1999/08/28 01:00:13 peter Exp $ - * $DragonFly: src/usr.bin/doscmd/ems.h,v 1.2 2003/06/17 04:29:26 dillon Exp $ + * $DragonFly: src/usr.bin/doscmd/ems.h,v 1.3 2008/10/03 19:56:11 swildner Exp $ */ #ifndef EMS_H @@ -243,9 +243,9 @@ typedef union { */ typedef struct { - u_short handle __attribute__ ((packed)); /* handle */ - u_short npages __attribute__ ((packed)); /* pages allocated */ -} EMShandlepage; + u_short handle; /* handle */ + u_short npages; /* pages allocated */ +} __packed EMShandlepage; /* * EMS map/unmap multiple, only used to pass information to and from @@ -253,10 +253,10 @@ typedef struct { */ typedef struct { - u_short log __attribute__ ((packed)); /* logical page number */ - u_short phys __attribute__ ((packed)); /* physical page (position) or - segment address inside frame */ -} EMSmapunmap; + u_short log; /* logical page number */ + u_short phys; /* physical page (position) or + segment address inside frame */ +} __packed EMSmapunmap; /* * EMS handle directory, only used to pass information to and from @@ -264,10 +264,10 @@ typedef struct { */ typedef struct { - u_short log __attribute__ ((packed)); /* logical page number */ - Hname name __attribute__ ((packed)); /* Handle name */ + u_short log; /* logical page number */ + Hname name; /* Handle name */ -} EMShandledir; +} __packed EMShandledir; /* * Structure for get/set page map: This structure is used to save and @@ -288,9 +288,9 @@ typedef struct { */ typedef struct { - u_short segm __attribute__ ((packed)); /* segment address inside frame */ - u_short phys __attribute__ ((packed)); /* physical page (position) */ -} EMSaddrarray; + u_short segm; /* segment address inside frame */ + u_short phys; /* physical page (position) */ +} __packed EMSaddrarray; /* * EMS move memory call structure, only used to pass information to and from @@ -298,17 +298,17 @@ typedef struct { */ typedef struct { - u_long length __attribute__ ((packed)); /* length of region */ + u_long length; /* length of region */ #define EMS_MOVE_CONV 0 #define EMS_MOVE_EMS 1 - u_char src_type __attribute__ ((packed)); /* source type (0,1) */ - u_short src_handle __attribute__ ((packed)); /* source handle */ - u_short src_offset __attribute__ ((packed)); /* source offset */ - u_short src_seg __attribute__ ((packed)); /* source type */ - u_char dst_type __attribute__ ((packed)); /* destination type (0,1) */ - u_short dst_handle __attribute__ ((packed)); /* destination handle */ - u_short dst_offset __attribute__ ((packed)); /* destination offset */ - u_short dst_seg __attribute__ ((packed)); /* destination type */ -} EMSmovemem; + u_char src_type; /* source type (0,1) */ + u_short src_handle; /* source handle */ + u_short src_offset; /* source offset */ + u_short src_seg; /* source type */ + u_char dst_type; /* destination type (0,1) */ + u_short dst_handle; /* destination handle */ + u_short dst_offset; /* destination offset */ + u_short dst_seg; /* destination type */ +} __packed EMSmovemem; #endif /* EMS_H */ diff --git a/usr.bin/doscmd/xms.h b/usr.bin/doscmd/xms.h index 09ff361c84..f74c354069 100644 --- a/usr.bin/doscmd/xms.h +++ b/usr.bin/doscmd/xms.h @@ -26,7 +26,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/usr.bin/doscmd/xms.h,v 1.2 1999/08/28 01:00:27 peter Exp $ - * $DragonFly: src/usr.bin/doscmd/xms.h,v 1.2 2003/06/17 04:29:26 dillon Exp $ + * $DragonFly: src/usr.bin/doscmd/xms.h,v 1.3 2008/10/03 19:56:11 swildner Exp $ */ #ifndef XMS_H @@ -113,10 +113,10 @@ struct EMM { struct XMSinfo { u_char handle; /* the handle */ - u_char num_locks __attribute__ ((packed)); /* number of locks */ - u_long size __attribute__ ((packed)); /* size of memory */ - u_long phys_addr __attribute__ ((packed)); /* "physical" address */ -}; + u_char num_locks; /* number of locks */ + u_long size; /* size of memory */ + u_long phys_addr; /* "physical" address */ +} __packed; /* * Handle management inside the emulator for extendend memory pages, -- 2.41.0