Silence remaining "'packed' attribute ignored for field of type..." warnings.
authorSascha Wildner <swildner@dragonflybsd.org>
Fri, 3 Oct 2008 19:56:11 +0000 (19:56 +0000)
committerSascha Wildner <swildner@dragonflybsd.org>
Fri, 3 Oct 2008 19:56:11 +0000 (19:56 +0000)
Verified-with: md5

sys/boot/pc32/libi386/biospnp.c
usr.bin/doscmd/dos.h
usr.bin/doscmd/ems.h
usr.bin/doscmd/xms.h

index f78fa69..77d0c17 100644 (file)
@@ -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 <isapnp.h>
 #include <btxv86.h>
 
-#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;
index 978d826..e518e6a 100644 (file)
@@ -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;
index f210b9e..78b8900 100644 (file)
@@ -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 */
index 09ff361..f74c354 100644 (file)
@@ -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,