[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Remove non-ISO attributes from public headers.



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 2b6c1a8098078f7e53de7cf72227fddf01f0b2b6
# Parent  6f462a11a08e0715e0ebf851d193c01c82c1f4ae

Remove non-ISO attributes from public headers.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>

diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/asm-x86/domain.h
--- a/xen/include/asm-x86/domain.h      Fri Jul  1 21:25:45 2005
+++ b/xen/include/asm-x86/domain.h      Sat Jul  2 08:41:48 2005
@@ -68,7 +68,9 @@
 
 struct arch_vcpu
 {
-    struct vcpu_guest_context guest_context;
+    /* Needs 16-byte aligment for FXSAVE/FXRSTOR. */
+    struct vcpu_guest_context guest_context
+    __attribute__((__aligned__(16)));
 
     unsigned long      flags; /* TF_ */
 
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/public/arch-x86_32.h
--- a/xen/include/public/arch-x86_32.h  Fri Jul  1 21:25:45 2005
+++ b/xen/include/public/arch-x86_32.h  Sat Jul  2 08:41:48 2005
@@ -8,21 +8,6 @@
 
 #ifndef __XEN_PUBLIC_ARCH_X86_32_H__
 #define __XEN_PUBLIC_ARCH_X86_32_H__
-
-#ifndef PACKED
-/* GCC-specific way to pack structure definitions (no implicit padding). */
-#define PACKED __attribute__ ((packed))
-#endif
-
-/*
- * Pointers and other address fields inside interface structures are padded to
- * 64 bits. This means that field alignments aren't different between 32- and
- * 64-bit architectures. 
- */
-/* NB. Multi-level macro ensures __LINE__ is expanded before concatenation. */
-#define __MEMORY_PADDING(_X) u32 __pad_ ## _X
-#define _MEMORY_PADDING(_X)  __MEMORY_PADDING(_X)
-#define MEMORY_PADDING       _MEMORY_PADDING(__LINE__)
 
 /*
  * SEGMENT DESCRIPTOR TABLES
@@ -88,12 +73,12 @@
 #define TI_GET_IF(_ti)       ((_ti)->flags & 4)
 #define TI_SET_DPL(_ti,_dpl) ((_ti)->flags |= (_dpl))
 #define TI_SET_IF(_ti,_if)   ((_ti)->flags |= ((!!(_if))<<2))
-typedef struct {
-    u8       vector;  /* 0: exception vector                              */
-    u8       flags;   /* 1: 0-3: privilege level; 4: clear event enable?  */
-    u16      cs;      /* 2: code selector                                 */
-    memory_t address; /* 4: code address                                  */
-} PACKED trap_info_t; /* 8 bytes */
+typedef struct trap_info {
+    u8       vector;  /* exception vector                              */
+    u8       flags;   /* 0-3: privilege level; 4: clear event enable?  */
+    u16      cs;      /* code selector                                 */
+    memory_t address; /* code address                                  */
+} trap_info_t;
 
 typedef struct cpu_user_regs {
     u32 ebx;
@@ -125,13 +110,13 @@
  * in by FXSAVE if the CPU has feature FXSR; otherwise FSAVE is used.
  */
 typedef struct vcpu_guest_context {
+    /* FPU registers come first so they can be aligned for FXSAVE/FXRSTOR. */
+    struct { char x[512]; } fpu_ctxt;       /* User-level FPU registers     */
 #define VGCF_I387_VALID (1<<0)
 #define VGCF_VMX_GUEST  (1<<1)
 #define VGCF_IN_KERNEL  (1<<2)
     unsigned long flags;                    /* VGCF_* flags                 */
     cpu_user_regs_t user_regs;              /* User-level CPU registers     */
-    struct { char x[512]; } fpu_ctxt        /* User-level FPU registers     */
-    __attribute__((__aligned__(16)));       /* (needs 16-byte alignment)    */
     trap_info_t   trap_ctxt[256];           /* Virtual IDT                  */
     unsigned long ldt_base, ldt_ents;       /* LDT (linear address, # ents) */
     unsigned long gdt_frames[16], gdt_ents; /* GDT (machine frames, # ents) */
@@ -145,14 +130,11 @@
     unsigned long vm_assist;                /* VMASST_TYPE_* bitmap */
 } vcpu_guest_context_t;
 
-typedef struct {
+typedef struct arch_shared_info {
     /* MFN of a table of MFNs that make up p2m table */
     u64 pfn_to_mfn_frame_list;
 } arch_shared_info_t;
 
-typedef struct {
-} arch_vcpu_info_t;
-
 #endif
 
 #endif
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/public/grant_table.h
--- a/xen/include/public/grant_table.h  Fri Jul  1 21:25:45 2005
+++ b/xen/include/public/grant_table.h  Sat Jul  2 08:41:48 2005
@@ -71,17 +71,17 @@
  * [XEN]: This field is written by Xen and read by the sharing guest.
  * [GST]: This field is written by the guest and read by Xen.
  */
-typedef struct {
+typedef struct grant_entry {
     /* GTF_xxx: various type and flag information.  [XEN,GST] */
-    u16     flags;      /* 0 */
+    u16     flags;
     /* The domain being granted foreign privileges. [GST] */
-    domid_t domid;      /* 2 */
+    domid_t domid;
     /*
      * GTF_permit_access: Frame that @domid is allowed to map and access. [GST]
      * GTF_accept_transfer: Frame whose ownership transferred by @domid. [XEN]
      */
-    u32     frame;      /* 4 */
-} PACKED grant_entry_t; /* 8 bytes */
+    u32     frame;
+} grant_entry_t;
 
 /*
  * Type of grant entry.
@@ -148,18 +148,16 @@
  *     to be accounted to the correct grant reference!
  */
 #define GNTTABOP_map_grant_ref        0
-typedef struct {
-    /* IN parameters. */
-    memory_t    host_virt_addr;       /*  0 */
-    MEMORY_PADDING;
-    domid_t     dom;                  /*  8 */
-    grant_ref_t ref;                  /* 10 */
-    u16         flags;                /* 12: GNTMAP_* */
-    /* OUT parameters. */
-    s16         handle;               /* 14: +ve: handle; -ve: GNTST_* */
-    memory_t    dev_bus_addr;         /* 16 */
-    MEMORY_PADDING;
-} PACKED gnttab_map_grant_ref_t; /* 24 bytes */
+typedef struct gnttab_map_grant_ref {
+    /* IN parameters. */
+    memory_t    host_virt_addr;
+    domid_t     dom;
+    grant_ref_t ref;
+    u16         flags;                /* GNTMAP_* */
+    /* OUT parameters. */
+    s16         handle;               /* +ve: handle; -ve: GNTST_* */
+    memory_t    dev_bus_addr;
+} gnttab_map_grant_ref_t;
 
 /*
  * GNTTABOP_unmap_grant_ref: Destroy one or more grant-reference mappings
@@ -173,17 +171,14 @@
  *     mappings will remain in the device or host TLBs.
  */
 #define GNTTABOP_unmap_grant_ref      1
-typedef struct {
-    /* IN parameters. */
-    memory_t    host_virt_addr;       /*  0 */
-    MEMORY_PADDING;
-    memory_t    dev_bus_addr;         /*  8 */
-    MEMORY_PADDING;
-    u16         handle;               /* 16 */
-    /* OUT parameters. */
-    s16         status;               /* 18: GNTST_* */
-    u32         __pad;
-} PACKED gnttab_unmap_grant_ref_t; /* 24 bytes */
+typedef struct gnttab_unmap_grant_ref {
+    /* IN parameters. */
+    memory_t    host_virt_addr;
+    memory_t    dev_bus_addr;
+    u16         handle;
+    /* OUT parameters. */
+    s16         status;               /* GNTST_* */
+} gnttab_unmap_grant_ref_t;
 
 #define GNTUNMAP_DEV_FROM_VIRT (~0U)
 
@@ -197,28 +192,26 @@
  *  3. Xen may not support more than a single grant-table page per domain.
  */
 #define GNTTABOP_setup_table          2
-typedef struct {
-    /* IN parameters. */
-    domid_t     dom;                  /*  0 */
-    u16         nr_frames;            /*  2 */
-    u16         __pad;
-    /* OUT parameters. */
-    s16         status;               /*  6: GNTST_* */
-    unsigned long *frame_list;        /*  8 */
-    MEMORY_PADDING;
-} PACKED gnttab_setup_table_t; /* 16 bytes */
+typedef struct gnttab_setup_table {
+    /* IN parameters. */
+    domid_t     dom;
+    u16         nr_frames;
+    /* OUT parameters. */
+    s16         status;               /* GNTST_* */
+    unsigned long *frame_list;
+} gnttab_setup_table_t;
 
 /*
  * GNTTABOP_dump_table: Dump the contents of the grant table to the
  * xen console. Debugging use only.
  */
 #define GNTTABOP_dump_table           3
-typedef struct {
-    /* IN parameters. */
-    domid_t     dom;                  /*  0 */
-    /* OUT parameters. */
-    s16         status;               /* 2: GNTST_* */
-} PACKED gnttab_dump_table_t; /* 4 bytes */
+typedef struct gnttab_dump_table {
+    /* IN parameters. */
+    domid_t     dom;
+    /* OUT parameters. */
+    s16         status;               /* GNTST_* */
+} gnttab_dump_table_t;
 
 
 /*
@@ -265,16 +258,14 @@
     "no spare translation slot in the I/O MMU", \
     "permission denied"                         \
 }
-        
-                                                                               
        
-typedef struct {
-    union {                           /*  0 */
+
+typedef struct gnttab_op {
+    union {
         gnttab_map_grant_ref_t    map_grant_ref;
         gnttab_unmap_grant_ref_t  unmap_grant_ref;
         gnttab_setup_table_t      setup_table;
         gnttab_dump_table_t       dump_table;
-        u8                        __dummy[24];
-    } PACKED u;
-} PACKED gnttab_op_t; /* 32 bytes */
+    } u;
+} gnttab_op_t;
 
 #endif /* __XEN_PUBLIC_GRANT_TABLE_H__ */
diff -r 6f462a11a08e -r 2b6c1a809807 tools/xcs/xcs_proto.h
--- a/tools/xcs/xcs_proto.h     Fri Jul  1 21:25:45 2005
+++ b/tools/xcs/xcs_proto.h     Sat Jul  2 08:41:48 2005
@@ -75,7 +75,7 @@
         xcs_interface_msg_t interface;
         
         xcs_control_msg_t   control;   /* These are xcs data message types */
-    } PACKED u;
+    } u;
 } xcs_msg_t;
 
 /* message validation macros. */
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/public/vmx_assist.h
--- a/xen/include/public/vmx_assist.h   Fri Jul  1 21:25:45 2005
+++ b/xen/include/public/vmx_assist.h   Sat Jul  2 08:41:48 2005
@@ -43,7 +43,7 @@
                                g               : 1,
                                null_bit        : 1, 
                                reserved2       : 15;
-       }  __attribute__((packed)) fields;
+       } fields;
        unsigned int bytes;
 };
 
diff -r 6f462a11a08e -r 2b6c1a809807 
linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/entry.S
--- a/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/entry.S    Fri Jul  1 
21:25:45 2005
+++ b/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/entry.S    Sat Jul  2 
08:41:48 2005
@@ -127,7 +127,7 @@
          * Must be consistent with the definition in arch_x86_64.h:    
          *     struct switch_to_user {
          *        u64 rax, r11, rcx, flags, rip, cs, rflags, rsp, ss;
-         *     } PACKED;
+         *     };
          * #define VGCF_IN_SYSCALL (1<<8) 
          */
         .macro SWITCH_TO_USER flag
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/public/io/domain_controller.h
--- a/xen/include/public/io/domain_controller.h Fri Jul  1 21:25:45 2005
+++ b/xen/include/public/io/domain_controller.h Sat Jul  2 08:41:48 2005
@@ -16,13 +16,13 @@
  * CONTROLLER MESSAGING INTERFACE.
  */
 
-typedef struct {
+typedef struct control_msg {
     u8 type;     /*  0: echoed in response */
     u8 subtype;  /*  1: echoed in response */
     u8 id;       /*  2: echoed in response */
     u8 length;   /*  3: number of bytes in 'msg' */
     u8 msg[60];  /*  4: type-specific message data */
-} PACKED control_msg_t; /* 64 bytes */
+} control_msg_t; /* 64 bytes */
 
 /* These are used by the control message deferred ring. */
 #define CONTROL_RING_SIZE 8
@@ -38,16 +38,16 @@
 #define CONTROL_RING_MEM 520
 DEFINE_RING_TYPES(ctrl, control_msg_t, control_msg_t);
 
-typedef struct {
+typedef struct control_if {
     union {
-        ctrl_sring_t tx_ring; /*    0: guest -> controller  */
+        ctrl_sring_t tx_ring; /* guest -> controller  */
         char __x[CONTROL_RING_MEM];
-    } PACKED;
+    };
     union {
-        ctrl_sring_t rx_ring; /*  520: controller -> guest  */
+        ctrl_sring_t rx_ring; /* controller -> guest  */
         char __y[CONTROL_RING_MEM];
-    } PACKED;
-} PACKED control_if_t; /* 1040 bytes */
+    };
+} control_if_t;
 
 /*
  * Top-level command types.
@@ -103,12 +103,12 @@
 #define BLKIF_INTERFACE_STATUS_DISCONNECTED 1 /* Exists but is disconnected. */
 #define BLKIF_INTERFACE_STATUS_CONNECTED    2 /* Exists and is connected.    */
 #define BLKIF_INTERFACE_STATUS_CHANGED      3 /* A device has been added or 
removed. */
-typedef struct {
-    u32 handle; /*  0 */
-    u32 status; /*  4 */
-    u16 evtchn; /*  8: (only if status == BLKIF_INTERFACE_STATUS_CONNECTED). */
-    domid_t domid; /* 10: status != BLKIF_INTERFACE_STATUS_DESTROYED */
-} PACKED blkif_fe_interface_status_t; /* 12 bytes */
+typedef struct blkif_fe_interface_status {
+    u32 handle;
+    u32 status;
+    u16 evtchn;    /* (only if status == BLKIF_INTERFACE_STATUS_CONNECTED). */
+    domid_t domid; /* status != BLKIF_INTERFACE_STATUS_DESTROYED */
+} blkif_fe_interface_status_t;
 
 /*
  * CMSG_BLKIF_FE_DRIVER_STATUS:
@@ -124,46 +124,44 @@
  */
 #define BLKIF_DRIVER_STATUS_DOWN   0
 #define BLKIF_DRIVER_STATUS_UP     1
-typedef struct {
-    /* IN */
-    u32 status;        /*  0: BLKIF_DRIVER_STATUS_??? */
+typedef struct blkif_fe_driver_status {
+    /* IN */
+    u32 status;        /* BLKIF_DRIVER_STATUS_??? */
     /* OUT */
     /* Driver should query interfaces [0..max_handle]. */
-    u32 max_handle;    /*  4 */
-} PACKED blkif_fe_driver_status_t; /* 8 bytes */
+    u32 max_handle;
+} blkif_fe_driver_status_t;
 
 /*
  * CMSG_BLKIF_FE_INTERFACE_CONNECT:
  *  If successful, the domain controller will acknowledge with a
  *  STATUS_CONNECTED message.
  */
-typedef struct {
-    u32      handle;      /*  0 */
-    u32      __pad;
-    memory_t shmem_frame; /*  8 */
-    MEMORY_PADDING;
-} PACKED blkif_fe_interface_connect_t; /* 16 bytes */
+typedef struct blkif_fe_interface_connect {
+    u32      handle;
+    memory_t shmem_frame;
+} blkif_fe_interface_connect_t;
 
 /*
  * CMSG_BLKIF_FE_INTERFACE_DISCONNECT:
  *  If successful, the domain controller will acknowledge with a
  *  STATUS_DISCONNECTED message.
  */
-typedef struct {
-    u32 handle; /*  0 */
-} PACKED blkif_fe_interface_disconnect_t; /* 4 bytes */
+typedef struct blkif_fe_interface_disconnect {
+    u32 handle;
+} blkif_fe_interface_disconnect_t;
 
 /*
  * CMSG_BLKIF_FE_INTERFACE_QUERY:
  */
-typedef struct {
-    /* IN */
-    u32 handle; /*  0 */
-    /* OUT */
-    u32 status; /*  4 */
-    u16 evtchn; /*  8: (only if status == BLKIF_INTERFACE_STATUS_CONNECTED). */
-    domid_t domid; /* 10: status != BLKIF_INTERFACE_STATUS_DESTROYED */
-} PACKED blkif_fe_interface_query_t; /* 12 bytes */
+typedef struct blkif_fe_interface_query {
+    /* IN */
+    u32 handle;
+    /* OUT */
+    u32 status;
+    u16 evtchn;    /* (only if status == BLKIF_INTERFACE_STATUS_CONNECTED). */
+    domid_t domid; /* status != BLKIF_INTERFACE_STATUS_DESTROYED */
+} blkif_fe_interface_query_t;
 
 
 /******************************************************************************
@@ -218,14 +216,13 @@
  *  created. The controller will send a DOWN notification to the front-end
  *  driver.
  */
-typedef struct { 
-    /* IN */
-    domid_t    domid;         /*  0: Domain attached to new interface.   */
-    u16        __pad;
-    u32        blkif_handle;  /*  4: Domain-specific interface handle.   */
-    /* OUT */
-    u32        status;        /*  8 */
-} PACKED blkif_be_create_t; /* 12 bytes */
+typedef struct blkif_be_create { 
+    /* IN */
+    domid_t    domid;         /* Domain attached to new interface.   */
+    u32        blkif_handle;  /* Domain-specific interface handle.   */
+    /* OUT */
+    u32        status;
+} blkif_be_create_t;
 
 /*
  * CMSG_BLKIF_BE_DESTROY:
@@ -233,14 +230,13 @@
  *  torn down. The controller will send a DESTROYED notification to the
  *  front-end driver.
  */
-typedef struct { 
-    /* IN */
-    domid_t    domid;         /*  0: Identify interface to be destroyed. */
-    u16        __pad;
-    u32        blkif_handle;  /*  4: ...ditto...                         */
-    /* OUT */
-    u32        status;        /*  8 */
-} PACKED blkif_be_destroy_t; /* 12 bytes */
+typedef struct blkif_be_destroy { 
+    /* IN */
+    domid_t    domid;         /* Identify interface to be destroyed. */
+    u32        blkif_handle;  /* ...ditto...                         */
+    /* OUT */
+    u32        status;
+} blkif_be_destroy_t;
 
 /*
  * CMSG_BLKIF_BE_CONNECT:
@@ -248,17 +244,15 @@
  *  connected. The controller will send a CONNECTED notification to the
  *  front-end driver.
  */
-typedef struct { 
-    /* IN */
-    domid_t    domid;         /*  0: Domain attached to new interface.   */
-    u16        __pad;
-    u32        blkif_handle;  /*  4: Domain-specific interface handle.   */
-    memory_t   shmem_frame;   /*  8: Page cont. shared comms window.     */
-    MEMORY_PADDING;
-    u32        evtchn;        /* 16: Event channel for notifications.    */
-    /* OUT */
-    u32        status;        /* 20 */
-} PACKED blkif_be_connect_t;  /* 24 bytes */
+typedef struct blkif_be_connect {
+    /* IN */
+    domid_t    domid;         /* Domain attached to new interface.   */
+    u32        blkif_handle;  /* Domain-specific interface handle.   */
+    memory_t   shmem_frame;   /* Page cont. shared comms window.     */
+    u32        evtchn;        /* Event channel for notifications.    */
+    /* OUT */
+    u32        status;
+} blkif_be_connect_t;
 
 /*
  * CMSG_BLKIF_BE_DISCONNECT:
@@ -266,40 +260,36 @@
  *  disconnected. The controller will send a DOWN notification to the front-end
  *  driver.
  */
-typedef struct { 
-    /* IN */
-    domid_t    domid;         /*  0: Domain attached to new interface.   */
-    u16        __pad;
-    u32        blkif_handle;  /*  4: Domain-specific interface handle.   */
-    /* OUT */
-    u32        status;        /*  8 */
-} PACKED blkif_be_disconnect_t; /* 12 bytes */
+typedef struct blkif_be_disconnect { 
+    /* IN */
+    domid_t    domid;         /* Domain attached to new interface.   */
+    u32        blkif_handle;  /* Domain-specific interface handle.   */
+    /* OUT */
+    u32        status;
+} blkif_be_disconnect_t;
 
 /* CMSG_BLKIF_BE_VBD_CREATE */
-typedef struct { 
-    /* IN */
-    domid_t    domid;         /*  0: Identify blkdev interface.          */
-    u16        __pad;
-    u32        blkif_handle;  /*  4: ...ditto...                         */
-    blkif_pdev_t pdevice;     /*  8 */
-    u32        dev_handle;    /* 12: Extended device id field.           */
-    blkif_vdev_t vdevice;     /* 16: Interface-specific id for this VBD. */
-    u16        readonly;      /* 18: Non-zero -> VBD isn't writable.     */
-    /* OUT */
-    u32        status;        /* 20 */
-} PACKED blkif_be_vbd_create_t; /* 24 bytes */
+typedef struct blkif_be_vbd_create {
+    /* IN */
+    domid_t    domid;         /* Identify blkdev interface.          */
+    u32        blkif_handle;  /* ...ditto...                         */
+    blkif_pdev_t pdevice;
+    u32        dev_handle;    /* Extended device id field.           */
+    blkif_vdev_t vdevice;     /* Interface-specific id for this VBD. */
+    u16        readonly;      /* Non-zero -> VBD isn't writable.     */
+    /* OUT */
+    u32        status;
+} blkif_be_vbd_create_t;
 
 /* CMSG_BLKIF_BE_VBD_DESTROY */
-typedef struct {
-    /* IN */
-    domid_t    domid;         /*  0: Identify blkdev interface.          */
-    u16        __pad0;        /*  2 */
-    u32        blkif_handle;  /*  4: ...ditto...                         */
-    blkif_vdev_t vdevice;     /*  8: Interface-specific id of the VBD.   */
-    u16        __pad1;        /* 10 */
-    /* OUT */
-    u32        status;        /* 12 */
-} PACKED blkif_be_vbd_destroy_t; /* 16 bytes */
+typedef struct blkif_be_vbd_destroy {
+    /* IN */
+    domid_t    domid;         /* Identify blkdev interface.          */
+    u32        blkif_handle;  /* ...ditto...                         */
+    blkif_vdev_t vdevice;     /* Interface-specific id of the VBD.   */
+    /* OUT */
+    u32        status;
+} blkif_be_vbd_destroy_t;
 
 /*
  * CMSG_BLKIF_BE_DRIVER_STATUS:
@@ -307,9 +297,9 @@
  *  If the driver goes DOWN while interfaces are still UP, the controller
  *  will automatically send DOWN notifications.
  */
-typedef struct {
-    u32        status;        /*  0: BLKIF_DRIVER_STATUS_??? */
-} PACKED blkif_be_driver_status_t; /* 4 bytes */
+typedef struct blkif_be_driver_status {
+    u32        status;        /* BLKIF_DRIVER_STATUS_??? */
+} blkif_be_driver_status_t;
 
 
 /******************************************************************************
@@ -336,13 +326,13 @@
 #define NETIF_INTERFACE_STATUS_DISCONNECTED 1 /* Exists but is disconnected. */
 #define NETIF_INTERFACE_STATUS_CONNECTED    2 /* Exists and is connected.    */
 #define NETIF_INTERFACE_STATUS_CHANGED      3 /* A device has been added or 
removed. */
-typedef struct {
-    u32        handle; /*  0 */
-    u32        status; /*  4 */
-    u16        evtchn; /*  8: status == NETIF_INTERFACE_STATUS_CONNECTED */
-    u8         mac[6]; /* 10: status == NETIF_INTERFACE_STATUS_CONNECTED */
-    domid_t    domid;  /* 16: status != NETIF_INTERFACE_STATUS_DESTROYED */
-} PACKED netif_fe_interface_status_t; /* 18 bytes */
+typedef struct netif_fe_interface_status {
+    u32        handle;
+    u32        status;
+    u16        evtchn; /* status == NETIF_INTERFACE_STATUS_CONNECTED */
+    u8         mac[6]; /* status == NETIF_INTERFACE_STATUS_CONNECTED */
+    domid_t    domid;  /* status != NETIF_INTERFACE_STATUS_DESTROYED */
+} netif_fe_interface_status_t;
 
 /*
  * CMSG_NETIF_FE_DRIVER_STATUS:
@@ -358,49 +348,46 @@
  */
 #define NETIF_DRIVER_STATUS_DOWN   0
 #define NETIF_DRIVER_STATUS_UP     1
-typedef struct {
-    /* IN */
-    u32        status;        /*  0: NETIF_DRIVER_STATUS_??? */
+typedef struct netif_fe_driver_status {
+    /* IN */
+    u32        status;        /* NETIF_DRIVER_STATUS_??? */
     /* OUT */
     /* Driver should query interfaces [0..max_handle]. */
-    u32        max_handle;    /*  4 */
-} PACKED netif_fe_driver_status_t; /* 8 bytes */
+    u32        max_handle;
+} netif_fe_driver_status_t;
 
 /*
  * CMSG_NETIF_FE_INTERFACE_CONNECT:
  *  If successful, the domain controller will acknowledge with a
  *  STATUS_CONNECTED message.
  */
-typedef struct {
-    u32        handle;         /*  0 */
-    u32        __pad;          /*  4 */
-    memory_t   tx_shmem_frame; /*  8 */
-    MEMORY_PADDING;
-    memory_t   rx_shmem_frame; /* 16 */
-    MEMORY_PADDING;
-} PACKED netif_fe_interface_connect_t; /* 24 bytes */
+typedef struct netif_fe_interface_connect {
+    u32        handle;
+    memory_t   tx_shmem_frame;
+    memory_t   rx_shmem_frame;
+} netif_fe_interface_connect_t;
 
 /*
  * CMSG_NETIF_FE_INTERFACE_DISCONNECT:
  *  If successful, the domain controller will acknowledge with a
  *  STATUS_DISCONNECTED message.
  */
-typedef struct {
-    u32        handle;        /*  0 */
-} PACKED netif_fe_interface_disconnect_t; /* 4 bytes */
+typedef struct netif_fe_interface_disconnect {
+    u32        handle;
+} netif_fe_interface_disconnect_t;
 
 /*
  * CMSG_NETIF_FE_INTERFACE_QUERY:
  */
-typedef struct {
-    /* IN */
-    u32        handle; /*  0 */
-    /* OUT */
-    u32        status; /*  4 */
-    u16        evtchn; /*  8: status == NETIF_INTERFACE_STATUS_CONNECTED */
-    u8         mac[6]; /* 10: status == NETIF_INTERFACE_STATUS_CONNECTED */
-    domid_t    domid;  /* 16: status != NETIF_INTERFACE_STATUS_DESTROYED */
-} PACKED netif_fe_interface_query_t; /* 18 bytes */
+typedef struct netif_fe_interface_query {
+    /* IN */
+    u32        handle;
+    /* OUT */
+    u32        status;
+    u16        evtchn; /* status == NETIF_INTERFACE_STATUS_CONNECTED */
+    u8         mac[6]; /* status == NETIF_INTERFACE_STATUS_CONNECTED */
+    domid_t    domid;  /* status != NETIF_INTERFACE_STATUS_DESTROYED */
+} netif_fe_interface_query_t;
 
 
 /******************************************************************************
@@ -448,18 +435,15 @@
  *  created. The controller will send a DOWN notification to the front-end
  *  driver.
  */
-typedef struct { 
-    /* IN */
-    domid_t    domid;         /*  0: Domain attached to new interface.   */
-    u16        __pad0;        /*  2 */
-    u32        netif_handle;  /*  4: Domain-specific interface handle.   */
-    u8         mac[6];        /*  8 */
-    u16        __pad1;        /* 14 */
-    u8         be_mac[6];     /* 16 */
-    u16        __pad2;        /* 22 */
-    /* OUT */
-    u32        status;        /* 24 */
-} PACKED netif_be_create_t; /* 28 bytes */
+typedef struct netif_be_create { 
+    /* IN */
+    domid_t    domid;         /* Domain attached to new interface.   */
+    u32        netif_handle;  /* Domain-specific interface handle.   */
+    u8         mac[6];
+    u8         be_mac[6];
+    /* OUT */
+    u32        status;
+} netif_be_create_t;
 
 /*
  * CMSG_NETIF_BE_DESTROY:
@@ -467,30 +451,28 @@
  *  torn down. The controller will send a DESTROYED notification to the
  *  front-end driver.
  */
-typedef struct { 
-    /* IN */
-    domid_t    domid;         /*  0: Identify interface to be destroyed. */
-    u16        __pad;
-    u32        netif_handle;  /*  4: ...ditto...                         */
-    /* OUT */
-    u32   status;             /*  8 */
-} PACKED netif_be_destroy_t; /* 12 bytes */
+typedef struct netif_be_destroy { 
+    /* IN */
+    domid_t    domid;         /* Identify interface to be destroyed. */
+    u32        netif_handle;  /* ...ditto...                         */
+    /* OUT */
+    u32   status;
+} netif_be_destroy_t;
 
 /*
  * CMSG_NETIF_BE_CREDITLIMIT:
  *  Limit a virtual interface to "credit_bytes" bytes per "period_usec" 
  *  microseconds.  
  */
-typedef struct { 
-    /* IN */
-    domid_t    domid;          /*  0: Domain attached to new interface.   */
-    u16        __pad0;         /*  2 */
-    u32        netif_handle;   /*  4: Domain-specific interface handle.   */
-    u32        credit_bytes;   /*  8: Vifs credit of bytes per period.    */
-    u32        period_usec;    /* 12: Credit replenishment period.        */
-    /* OUT */
-    u32        status;         /* 16 */
-} PACKED netif_be_creditlimit_t; /* 20 bytes */
+typedef struct netif_be_creditlimit { 
+    /* IN */
+    domid_t    domid;          /* Domain attached to new interface.   */
+    u32        netif_handle;   /* Domain-specific interface handle.   */
+    u32        credit_bytes;   /* Vifs credit of bytes per period.    */
+    u32        period_usec;    /* Credit replenishment period.        */
+    /* OUT */
+    u32        status;
+} netif_be_creditlimit_t;
 
 /*
  * CMSG_NETIF_BE_CONNECT:
@@ -498,20 +480,16 @@
  *  connected. The controller will send a CONNECTED notification to the
  *  front-end driver.
  */
-typedef struct { 
-    /* IN */
-    domid_t    domid;          /*  0: Domain attached to new interface.   */
-    u16        __pad0;         /*  2 */
-    u32        netif_handle;   /*  4: Domain-specific interface handle.   */
-    memory_t   tx_shmem_frame; /*  8: Page cont. tx shared comms window.  */
-    MEMORY_PADDING;
-    memory_t   rx_shmem_frame; /* 16: Page cont. rx shared comms window.  */
-    MEMORY_PADDING;
-    u16        evtchn;         /* 24: Event channel for notifications.    */
-    u16        __pad1;         /* 26 */
-    /* OUT */
-    u32        status;         /* 28 */
-} PACKED netif_be_connect_t; /* 32 bytes */
+typedef struct netif_be_connect { 
+    /* IN */
+    domid_t    domid;          /* Domain attached to new interface.   */
+    u32        netif_handle;   /* Domain-specific interface handle.   */
+    memory_t   tx_shmem_frame; /* Page cont. tx shared comms window.  */
+    memory_t   rx_shmem_frame; /* Page cont. rx shared comms window.  */
+    u16        evtchn;         /* Event channel for notifications.    */
+    /* OUT */
+    u32        status;
+} netif_be_connect_t;
 
 /*
  * CMSG_NETIF_BE_DISCONNECT:
@@ -519,14 +497,13 @@
  *  disconnected. The controller will send a DOWN notification to the front-end
  *  driver.
  */
-typedef struct { 
-    /* IN */
-    domid_t    domid;         /*  0: Domain attached to new interface.   */
-    u16        __pad;
-    u32        netif_handle;  /*  4: Domain-specific interface handle.   */
-    /* OUT */
-    u32        status;        /*  8 */
-} PACKED netif_be_disconnect_t; /* 12 bytes */
+typedef struct netif_be_disconnect { 
+    /* IN */
+    domid_t    domid;         /* Domain attached to new interface.   */
+    u32        netif_handle;  /* Domain-specific interface handle.   */
+    /* OUT */
+    u32        status;
+} netif_be_disconnect_t;
 
 /*
  * CMSG_NETIF_BE_DRIVER_STATUS:
@@ -534,9 +511,9 @@
  *  If the driver goes DOWN while interfaces are still UP, the domain
  *  will automatically send DOWN notifications.
  */
-typedef struct {
-    u32        status;        /*  0: NETIF_DRIVER_STATUS_??? */
-} PACKED netif_be_driver_status_t; /* 4 bytes */
+typedef struct netif_be_driver_status {
+    u32        status;        /* NETIF_DRIVER_STATUS_??? */
+} netif_be_driver_status_t;
 
 
 
@@ -561,13 +538,13 @@
 #define USBIF_INTERFACE_STATUS_DESTROYED    0 /* Interface doesn't exist.    */
 #define USBIF_INTERFACE_STATUS_DISCONNECTED 1 /* Exists but is disconnected. */
 #define USBIF_INTERFACE_STATUS_CONNECTED    2 /* Exists and is connected.    */
-typedef struct {
-    u32 status; /*  0 */
-    u16 evtchn; /*  4: (only if status == BLKIF_INTERFACE_STATUS_CONNECTED). */
-    domid_t domid; /* 6: status != BLKIF_INTERFACE_STATUS_DESTROYED */
-    u32 bandwidth; /* 8 */
-    u32 num_ports; /* 12 */
-} PACKED usbif_fe_interface_status_changed_t; /* 12 bytes */
+typedef struct usbif_fe_interface_status_changed {
+    u32 status;
+    u16 evtchn;    /* (only if status == BLKIF_INTERFACE_STATUS_CONNECTED). */
+    domid_t domid; /* status != BLKIF_INTERFACE_STATUS_DESTROYED */
+    u32 bandwidth;
+    u32 num_ports;
+} usbif_fe_interface_status_changed_t;
 
 /*
  * CMSG_USBIF_FE_DRIVER_STATUS_CHANGED:
@@ -583,28 +560,27 @@
  */
 #define USBIF_DRIVER_STATUS_DOWN   0
 #define USBIF_DRIVER_STATUS_UP     1
-typedef struct {
-    /* IN */
-    u32 status;        /*  0: USBIF_DRIVER_STATUS_??? */
-} PACKED usbif_fe_driver_status_changed_t; /* 4 bytes */
+typedef struct usbif_fe_driver_status_changed {
+    /* IN */
+    u32 status;        /* USBIF_DRIVER_STATUS_??? */
+} usbif_fe_driver_status_changed_t;
 
 /*
  * CMSG_USBIF_FE_INTERFACE_CONNECT:
  *  If successful, the domain controller will acknowledge with a
  *  STATUS_CONNECTED message.
  */
-typedef struct {
-    u32      __pad;
-    memory_t shmem_frame; /*  8 */
-    MEMORY_PADDING;
-} PACKED usbif_fe_interface_connect_t; /* 16 bytes */
+typedef struct usbif_fe_interface_connect {
+    memory_t shmem_frame;
+} usbif_fe_interface_connect_t;
 
 /*
  * CMSG_BLKIF_FE_INTERFACE_DISCONNECT:
  *  If successful, the domain controller will acknowledge with a
  *  STATUS_DISCONNECTED message.
  */
-typedef struct {} PACKED usbif_fe_interface_disconnect_t; /* 4 bytes */
+typedef struct usbif_fe_interface_disconnect {
+} usbif_fe_interface_disconnect_t;
 
 
 /******************************************************************************
@@ -648,13 +624,12 @@
  *  created. The controller will send a DOWN notification to the front-end
  *  driver.
  */
-typedef struct { 
-    /* IN */
-    domid_t    domid;         /*  0: Domain attached to new interface.   */
-    u16        __pad;
-    /* OUT */
-    u32        status;        /*  8 */
-} PACKED usbif_be_create_t; /* 12 bytes */
+typedef struct usbif_be_create { 
+    /* IN */
+    domid_t    domid;         /* Domain attached to new interface.   */
+    /* OUT */
+    u32        status;
+} usbif_be_create_t;
 
 /*
  * CMSG_USBIF_BE_DESTROY:
@@ -662,13 +637,12 @@
  *  torn down. The controller will send a DESTROYED notification to the
  *  front-end driver.
  */
-typedef struct { 
-    /* IN */
-    domid_t    domid;         /*  0: Identify interface to be destroyed. */
-    u16        __pad;
-    /* OUT */
-    u32        status;        /*  8 */
-} PACKED usbif_be_destroy_t; /* 12 bytes */
+typedef struct usbif_be_destroy { 
+    /* IN */
+    domid_t    domid;         /* Identify interface to be destroyed. */
+    /* OUT */
+    u32        status;
+} usbif_be_destroy_t;
 
 /*
  * CMSG_USBIF_BE_CONNECT:
@@ -676,19 +650,17 @@
  *  connected. The controller will send a CONNECTED notification to the
  *  front-end driver.
  */
-typedef struct { 
-    /* IN */
-    domid_t    domid;         /*  0: Domain attached to new interface.   */
-    u16        __pad;
-    memory_t   shmem_frame;   /*  8: Page cont. shared comms window.     */
-    MEMORY_PADDING;
-    u32        evtchn;        /* 16: Event channel for notifications.    */
-    u32        bandwidth;     /* 20: Bandwidth allocated for isoch / int - us
+typedef struct usbif_be_connect { 
+    /* IN */
+    domid_t    domid;         /* Domain attached to new interface.   */
+    memory_t   shmem_frame;   /* Page cont. shared comms window.     */
+    u32        evtchn;        /* Event channel for notifications.    */
+    u32        bandwidth;     /* Bandwidth allocated for isoch / int - us
                                * per 1ms frame (ie between 0 and 900 or 800
                                * depending on USB version). */
     /* OUT */
-    u32        status;        /* 24 */
-} PACKED usbif_be_connect_t;  /* 28 bytes */
+    u32        status;
+} usbif_be_connect_t;
 
 /*
  * CMSG_USBIF_BE_DISCONNECT:
@@ -696,13 +668,12 @@
  *  disconnected. The controller will send a DOWN notification to the front-end
  *  driver.
  */
-typedef struct { 
-    /* IN */
-    domid_t    domid;         /*  0: Domain attached to new interface.   */
-    u16        __pad;
-    /* OUT */
-    u32        status;        /*  8 */
-} PACKED usbif_be_disconnect_t; /* 12 bytes */
+typedef struct usbif_be_disconnect { 
+    /* IN */
+    domid_t    domid;         /* Domain attached to new interface.   */
+    /* OUT */
+    u32        status;
+} usbif_be_disconnect_t;
 
 /*
  * CMSG_USBIF_BE_DRIVER_STATUS_CHANGED:
@@ -710,9 +681,9 @@
  *  If the driver goes DOWN while interfaces are still UP, the controller
  *  will automatically send DOWN notifications.
  */
-typedef struct {
-    u32        status;        /*  0: USBIF_DRIVER_STATUS_??? */
-} PACKED usbif_be_driver_status_changed_t; /* 4 bytes */
+typedef struct usbif_be_driver_status_changed {
+    u32        status;        /* USBIF_DRIVER_STATUS_??? */
+} usbif_be_driver_status_changed_t;
 
 #define USB_PATH_LEN 16
 
@@ -721,25 +692,23 @@
  * Instruct the backend driver to claim any device plugged into the specified
  * host port and to allow the specified domain to control that port.
  */
-typedef struct 
-{
-    /* IN */
-    domid_t  domid;        /* 0:  which domain                 */
-    u32      usbif_port;   /* 6:  port on the virtual root hub */
-    u32      status;       /* 10: status of operation          */
+typedef struct usbif_be_claim_port {
+    /* IN */
+    domid_t  domid;        /* which domain                 */
+    u32      usbif_port;   /* port on the virtual root hub */
+    u32      status;       /* status of operation          */
     char path[USB_PATH_LEN]; /* Currently specified in the Linux style - may 
need to be
                     * converted to some OS-independent format at some stage. */
-} PACKED usbif_be_claim_port_t;
+} usbif_be_claim_port_t;
 
 /*
  * CMSG_USBIF_BE_RELEASE_PORT: 
  * Instruct the backend driver to release any device plugged into the specified
  * host port.
  */
-typedef struct
-{
+typedef struct usbif_be_release_port {
     char     path[USB_PATH_LEN];
-} PACKED usbif_be_release_port_t;
+} usbif_be_release_port_t;
 
 /******************************************************************************
  * SHUTDOWN DEFINITIONS
@@ -754,10 +723,9 @@
                                     /* SHUTDOWN_suspend.                     */
 #define CMSG_SHUTDOWN_SYSRQ     3
 
-typedef struct {
-    char key;      /* 0: sysrq key */
-    char __pad[3]; /* 1: */
-} PACKED shutdown_sysrq_t; /* 4 bytes */
+typedef struct shutdown_sysrq {
+    char key;      /* sysrq key */
+} shutdown_sysrq_t;
 
 /******************************************************************************
  * VCPU HOTPLUG CONTROLS
@@ -773,10 +741,10 @@
  * CMSG_VCPU_HOTPLUG:
  *  Indicate which vcpu's state should change
  */
-typedef struct {
-    u32 vcpu;         /* 0: VCPU's whose state will change */
-    u32 status;       /* 4: Return code indicates success or failure. */
-} PACKED vcpu_hotplug_t;
+typedef struct vcpu_hotplug {
+    u32 vcpu;         /* VCPU's whose state will change */
+    u32 status;       /* Return code indicates success or failure. */
+} vcpu_hotplug_t;
 
 /******************************************************************************
  * MEMORY CONTROLS
@@ -788,12 +756,12 @@
  * CMSG_MEM_REQUEST:
  *  Request that the domain change its memory reservation.
  */
-typedef struct {
-    /* OUT */
-    u32 target;       /* 0: Target memory reservation in pages.       */
+typedef struct mem_request {
+    /* OUT */
+    u32 target;       /* Target memory reservation in pages.       */
     /* IN  */
-    u32 status;       /* 4: Return code indicates success or failure. */
-} PACKED mem_request_t; /* 8 bytes */
+    u32 status;       /* Return code indicates success or failure. */
+} mem_request_t;
 
 
 /******************************************************************************
@@ -801,12 +769,12 @@
  */
 
 #define CMSG_DEBUG_CONNECTION_STATUS 0
-typedef struct {
+typedef struct pdb_Connection {
 #define PDB_CONNECTION_STATUS_UP   1
 #define PDB_CONNECTION_STATUS_DOWN 2
     u32      status;
     memory_t ring;       /* status: UP */
     u32      evtchn;     /* status: UP */
-} PACKED pdb_connection_t, *pdb_connection_p;
+} pdb_connection_t, *pdb_connection_p;
 
 #endif /* __XEN_PUBLIC_IO_DOMAIN_CONTROLLER_H__ */
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/public/sched_ctl.h
--- a/xen/include/public/sched_ctl.h    Fri Jul  1 21:25:45 2005
+++ b/xen/include/public/sched_ctl.h    Sat Jul  2 08:41:48 2005
@@ -19,8 +19,7 @@
  * Generic scheduler control command - used to adjust system-wide scheduler
  * parameters
  */
-struct sched_ctl_cmd
-{
+struct sched_ctl_cmd {
     u32 sched_id;
     u32 direction;
     union {
@@ -30,33 +29,30 @@
     } u;
 };
 
-struct sched_adjdom_cmd
-{
-    u32     sched_id;                 /*  0 */
-    u32     direction;                /*  4 */
-    domid_t domain;                   /*  8 */
-    u16     __pad0;
-    u32     __pad1;
-    union {                           /* 16 */
+struct sched_adjdom_cmd {
+    u32     sched_id;
+    u32     direction;
+    domid_t domain;
+    union {
         struct bvt_adjdom
         {
-            u32 mcu_adv;            /* 16: mcu advance: inverse of weight */
-            u32 warpback;           /* 20: warp? */
-            s32 warpvalue;          /* 24: warp value */
-            long long warpl;        /* 32: warp limit */
-            long long warpu;        /* 40: unwarp time requirement */
-        } PACKED bvt;
+            u32 mcu_adv;            /* mcu advance: inverse of weight */
+            u32 warpback;           /* warp? */
+            s32 warpvalue;          /* warp value */
+            long long warpl;        /* warp limit */
+            long long warpu;        /* unwarp time requirement */
+        } bvt;
         
        struct sedf_adjdom
         {
-            u64 period;     /* 16 */
-            u64 slice;      /* 24 */
-            u64 latency;    /* 32 */
-            u16 extratime;  /* 36 */
-           u16 weight;     /* 38 */
-        } PACKED sedf;
+            u64 period;
+            u64 slice;
+            u64 latency;
+            u16 extratime;
+           u16 weight;
+        } sedf;
 
-    } PACKED u;
-} PACKED; /* 40 bytes */
+    } u;
+};
 
 #endif /* __XEN_PUBLIC_SCHED_CTL_H__ */
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/public/policy_ops.h
--- a/xen/include/public/policy_ops.h   Fri Jul  1 21:25:45 2005
+++ b/xen/include/public/policy_ops.h   Sat Jul  2 08:41:48 2005
@@ -16,7 +16,6 @@
  * 
  */
 
-
 #ifndef __XEN_PUBLIC_POLICY_OPS_H__
 #define __XEN_PUBLIC_POLICY_OPS_H__
 
@@ -28,47 +27,44 @@
  * This makes sure that old versions of policy tools will stop working in a
  * well-defined way (rather than crashing the machine, for instance).
  */
-#define POLICY_INTERFACE_VERSION   0xAAAA0002
+#define POLICY_INTERFACE_VERSION   0xAAAA0003
 
 /************************************************************************/
 
 #define POLICY_SETPOLICY               4
-typedef struct {
+typedef struct policy_setpolicy {
     /* IN variables. */
     u16           policy_type;
-    u16                  padding1;
     /* OUT variables */
     void         *pushcache;
     u16           pushcache_size;
-} PACKED policy_setpolicy_t;          
+} policy_setpolicy_t;          
 
 
 #define POLICY_GETPOLICY               5
-typedef struct {
+typedef struct policy_getpolicy {
     /* IN variables. */
     u16           policy_type;
-    u16                  padding1;
     /* OUT variables */
     void         *pullcache;
     u16           pullcache_size;
-} PACKED policy_getpolicy_t;       
+} policy_getpolicy_t;       
 
 #define POLICY_DUMPSTATS               6
-typedef struct {
+typedef struct policy_dumpstats {
     void         *pullcache;
     u16           pullcache_size;
-} PACKED policy_dumpstats_t;            
+} policy_dumpstats_t;            
  
 
-typedef struct {
-    u32 cmd;                          /* 0 */
-    u32 interface_version;            /* 4 */ /* POLICY_INTERFACE_VERSION */
-       union {                       /* 8 */
-        u32                     dummy[14];  /* 72bytes */
+typedef struct policy_op {
+    u32 cmd;
+    u32 interface_version;       /* POLICY_INTERFACE_VERSION */
+    union {
        policy_setpolicy_t       setpolicy;
         policy_getpolicy_t       getpolicy;
        policy_dumpstats_t       dumpstats;
-    } PACKED u;
-} PACKED policy_op_t;            /* 80 bytes */
+    } u;
+} policy_op_t;
 
 #endif /* __XEN_PUBLIC_POLICY_OPS_H__ */
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/public/dom0_ops.h
--- a/xen/include/public/dom0_ops.h     Fri Jul  1 21:25:45 2005
+++ b/xen/include/public/dom0_ops.h     Sat Jul  2 08:41:48 2005
@@ -19,7 +19,7 @@
  * This makes sure that old versions of dom0 tools will stop working in a
  * well-defined way (rather than crashing the machine, for instance).
  */
-#define DOM0_INTERFACE_VERSION   0xAAAA1008
+#define DOM0_INTERFACE_VERSION   0xAAAA1009
 
 /************************************************************************/
 
diff -r 6f462a11a08e -r 2b6c1a809807 
tools/debugger/pdb/linux-2.6-module/pdb_module.h
--- a/tools/debugger/pdb/linux-2.6-module/pdb_module.h  Fri Jul  1 21:25:45 2005
+++ b/tools/debugger/pdb/linux-2.6-module/pdb_module.h  Sat Jul  2 08:41:48 2005
@@ -28,7 +28,7 @@
         pdb_op_rd_reg_t rd_reg;
         pdb_op_wr_reg_t wr_reg;
     } u;
-} PACKED pdb_request_t, *pdb_request_p;
+} pdb_request_t, *pdb_request_p;
  
 
 #define PDB_RESPONSE_OKAY   0
@@ -38,7 +38,7 @@
     u8   operation;       /* copied from request */
     s16  status;          /* PDB_RESPONSE_???    */
     u32  value;
-} PACKED pdb_response_t, *pdb_response_p;
+} pdb_response_t, *pdb_response_p;
 
 
 DEFINE_RING_TYPES(pdb, pdb_request_t, pdb_response_t);
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/asm-x86/mm.h
--- a/xen/include/asm-x86/mm.h  Fri Jul  1 21:25:45 2005
+++ b/xen/include/asm-x86/mm.h  Sat Jul  2 08:41:48 2005
@@ -37,7 +37,7 @@
             u32 _domain; /* pickled format */
             /* Type reference count and various PGT_xxx flags and fields. */
             u32 type_info;
-        } PACKED inuse;
+        } inuse;
 
         /* Page is on a free list: ((count_info & PGC_count_mask) == 0). */
         struct {
@@ -45,11 +45,10 @@
             cpumask_t cpumask;
             /* Order-size of the free chunk this page is the head of. */
             u8 order;
-        } PACKED free;
-
-    } PACKED u;
-
-} PACKED;
+        } free;
+
+    } u;
+};
 
  /* The following page types are MUTUALLY EXCLUSIVE. */
 #define PGT_none            (0<<29) /* no special uses of this page */
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/public/io/netif.h
--- a/xen/include/public/io/netif.h     Fri Jul  1 21:25:45 2005
+++ b/xen/include/public/io/netif.h     Sat Jul  2 08:41:48 2005
@@ -9,31 +9,28 @@
 #ifndef __XEN_PUBLIC_IO_NETIF_H__
 #define __XEN_PUBLIC_IO_NETIF_H__
 
-typedef struct {
-    memory_t addr;   /*  0: Machine address of packet.  */
-    MEMORY_PADDING;
+typedef struct netif_tx_request {
+    memory_t addr;   /* Machine address of packet.  */
     u16      csum_blank:1; /* Proto csum field blank?   */
-    u16      id:15;  /*  8: Echoed in response message. */
-    u16      size;   /* 10: Packet size in bytes.       */
-} PACKED netif_tx_request_t; /* 12 bytes */
+    u16      id:15;  /* Echoed in response message. */
+    u16      size;   /* Packet size in bytes.       */
+} netif_tx_request_t;
+
+typedef struct netif_tx_response {
+    u16      id;
+    s8       status;
+} netif_tx_response_t;
 
 typedef struct {
-    u16      id;     /*  0 */
-    s8       status; /*  2 */
-    u8       __pad;  /*  3 */
-} PACKED netif_tx_response_t; /* 4 bytes */
+    u16       id;    /* Echoed in response message.        */
+} netif_rx_request_t;
 
 typedef struct {
-    u16       id;    /*  0: Echoed in response message.        */
-} PACKED netif_rx_request_t; /* 2 bytes */
-
-typedef struct {
-    memory_t addr;   /*  0: Machine address of packet.              */
-    MEMORY_PADDING;
+    memory_t addr;   /* Machine address of packet.              */
     u16      csum_valid:1; /* Protocol checksum is validated?       */
-    u16      id:15;  /*  8:  */
-    s16      status; /* 10: -ve: BLKIF_RSP_* ; +ve: Rx'ed pkt size. */
-} PACKED netif_rx_response_t; /* 12 bytes */
+    u16      id:15;
+    s16      status; /* -ve: BLKIF_RSP_* ; +ve: Rx'ed pkt size. */
+} netif_rx_response_t;
 
 /*
  * We use a special capitalised type name because it is _essential_ that all 
@@ -53,7 +50,7 @@
 #define NETIF_RX_RING_SIZE 256
 
 /* This structure must fit in a memory page. */
-typedef struct {
+typedef struct netif_tx_interface {
     /*
      * Frontend places packets into ring at tx_req_prod.
      * Frontend receives event when tx_resp_prod passes tx_event.
@@ -61,30 +58,30 @@
      * may use it to determine if all queued packets have been seen by the
      * backend.
      */
-    NETIF_RING_IDX req_prod;       /*  0 */
-    NETIF_RING_IDX req_cons;       /*  4 */
-    NETIF_RING_IDX resp_prod;      /*  8 */
-    NETIF_RING_IDX event;          /* 12 */
-    union {                        /* 16 */
+    NETIF_RING_IDX req_prod;
+    NETIF_RING_IDX req_cons;
+    NETIF_RING_IDX resp_prod;
+    NETIF_RING_IDX event;
+    union {
         netif_tx_request_t  req;
         netif_tx_response_t resp;
-    } PACKED ring[NETIF_TX_RING_SIZE];
-} PACKED netif_tx_interface_t;
+    } ring[NETIF_TX_RING_SIZE];
+} netif_tx_interface_t;
 
 /* This structure must fit in a memory page. */
-typedef struct {
+typedef struct netif_rx_interface {
     /*
      * Frontend places empty buffers into ring at rx_req_prod.
      * Frontend receives event when rx_resp_prod passes rx_event.
      */
-    NETIF_RING_IDX req_prod;       /*  0 */
-    NETIF_RING_IDX resp_prod;      /*  4 */
-    NETIF_RING_IDX event;          /*  8 */
-    union {                        /* 12 */
+    NETIF_RING_IDX req_prod;
+    NETIF_RING_IDX resp_prod;
+    NETIF_RING_IDX event;
+    union {
         netif_rx_request_t  req;
         netif_rx_response_t resp;
-    } PACKED ring[NETIF_RX_RING_SIZE];
-} PACKED netif_rx_interface_t;
+    } ring[NETIF_RX_RING_SIZE];
+} netif_rx_interface_t;
 
 /* Descriptor status values */
 #define NETIF_RSP_DROPPED         -2
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/public/arch-ia64.h
--- a/xen/include/public/arch-ia64.h    Fri Jul  1 21:25:45 2005
+++ b/xen/include/public/arch-ia64.h    Sat Jul  2 08:41:48 2005
@@ -6,13 +6,6 @@
 
 #ifndef __HYPERVISOR_IF_IA64_H__
 #define __HYPERVISOR_IF_IA64_H__
-
-// "packed" generates awful code
-#define PACKED
-
-/* Pointers are naturally 64 bits in this architecture; no padding needed. */
-#define _MEMORY_PADDING(_X)
-#define MEMORY_PADDING 
 
 /* Maximum number of virtual CPUs in multi-processor guests. */
 /* WARNING: before changing this, check that shared_info fits on a page */
@@ -48,11 +41,6 @@
 
 #define INVALID_MFN              (~0UL)
 
-
-typedef struct
-{
-} PACKED cpu_user_regs;
-
 /*
  * NB. This may become a 64-bit count with no shift. If this happens then the 
  * structure size will still be 8 bytes, so no other alignments will change.
@@ -60,7 +48,7 @@
 typedef struct {
     unsigned int  tsc_bits;      /* 0: 32 bits read from the CPU's TSC. */
     unsigned int  tsc_bitshift;  /* 4: 'tsc_bits' uses N:N+31 of TSC.   */
-} PACKED tsc_timestamp_t; /* 8 bytes */
+} tsc_timestamp_t; /* 8 bytes */
 
 struct pt_fpreg {
         union {
@@ -183,20 +171,20 @@
        unsigned long pkrs[8];  // protection key registers
        unsigned long tmp[8];   // temp registers (e.g. for hyperprivops)
        int evtchn_vector;
-//} PACKED arch_vcpu_info_t;
-} arch_vcpu_info_t;            // DON'T PACK 
+} arch_vcpu_info_t;
+#define __ARCH_HAS_VCPU_INFO
 
 typedef struct {
        int domain_controller_evtchn;
        unsigned int flags;
-//} PACKED arch_shared_info_t;
+//} arch_shared_info_t;
 } arch_shared_info_t;          // DON'T PACK 
 
 typedef struct vcpu_guest_context {
        struct pt_regs regs;
        arch_vcpu_info_t vcpu;
        arch_shared_info_t shared;
-} PACKED vcpu_guest_context_t;
+} vcpu_guest_context_t;
 
 #endif /* !__ASSEMBLY__ */
 
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/public/xen.h
--- a/xen/include/public/xen.h  Fri Jul  1 21:25:45 2005
+++ b/xen/include/public/xen.h  Sat Jul  2 08:41:48 2005
@@ -295,8 +295,7 @@
  * Per-VCPU information goes here. This will be cleaned up more when Xen 
  * actually supports multi-VCPU guests.
  */
-typedef struct
-{
+typedef struct vcpu_info {
     /*
      * 'evtchn_upcall_pending' is written non-zero by Xen to indicate
      * a pending notification for a particular VCPU. It is then cleared 
@@ -322,20 +321,20 @@
      * an upcall activation. The mask is cleared when the VCPU requests
      * to block: this avoids wakeup-waiting races.
      */
-    u8 evtchn_upcall_pending;           /* 0 */
-    u8 evtchn_upcall_mask;              /* 1 */
-    u8 pad0, pad1;
-    u32 evtchn_pending_sel;             /* 4 */
-    arch_vcpu_info_t arch;              /* 8 */
-} PACKED vcpu_info_t;                   /* 8 + arch */
+    u8 evtchn_upcall_pending;
+    u8 evtchn_upcall_mask;
+    u32 evtchn_pending_sel;
+#ifdef __ARCH_HAS_VCPU_INFO
+    arch_vcpu_info_t arch;
+#endif
+} vcpu_info_t;
 
 /*
  * Xen/kernel shared data -- pointer provided in start_info.
  * NB. We expect that this struct is smaller than a page.
  */
-typedef struct shared_info_st
-{
-    vcpu_info_t vcpu_data[MAX_VIRT_CPUS];  /*   0 */
+typedef struct shared_info {
+    vcpu_info_t vcpu_data[MAX_VIRT_CPUS];
 
     u32 n_vcpu;
 
@@ -370,14 +369,14 @@
      * 32-bit selector to be set. Each bit in the selector covers a 32-bit
      * word in the PENDING bitfield array.
      */
-    u32 evtchn_pending[32];             /*   4 */
-    u32 evtchn_mask[32];                /* 136 */
+    u32 evtchn_pending[32];
+    u32 evtchn_mask[32];
 
     /*
      * Time: The following abstractions are exposed: System Time, Clock Time,
      * Domain Virtual Time. Domains can access Cycle counter time directly.
      */
-    u64                cpu_freq;        /* 264: CPU frequency (Hz).          */
+    u64                cpu_freq;        /* CPU frequency (Hz).          */
 
     /*
      * The following values are updated periodically (and not necessarily
@@ -386,8 +385,8 @@
      * incremented immediately after. See the Xen-specific Linux code for an
      * example of how to read these values safely (arch/xen/kernel/time.c).
      */
-    u32                time_version1;   /* 272 */
-    u32                time_version2;   /* 276 */
+    u32                time_version1;
+    u32                time_version2;
     tsc_timestamp_t    tsc_timestamp;   /* TSC at last update of time vals.  */
     u64                system_time;     /* Time, in nanosecs, since boot.    */
     u32                wc_sec;          /* Secs  00:00:00 UTC, Jan 1, 1970.  */
@@ -399,12 +398,12 @@
      * Allow a domain to specify a timeout value in system time and 
      * domain virtual time.
      */
-    u64                wall_timeout;    /* 312 */
-    u64                domain_timeout;  /* 320 */
+    u64                wall_timeout;
+    u64                domain_timeout;
 
     arch_shared_info_t arch;
 
-} PACKED shared_info_t;
+} shared_info_t;
 
 /*
  * Start-of-day memory layout for the initial domain (DOM0):
@@ -432,31 +431,22 @@
  */
 
 #define MAX_GUEST_CMDLINE 1024
-typedef struct {
-    /* THE FOLLOWING ARE FILLED IN BOTH ON INITIAL BOOT AND ON RESUME.        
*/
-    memory_t nr_pages;        /*  0: Total pages allocated to this domain.    
*/
-    _MEMORY_PADDING(A);
-    memory_t shared_info;     /*  8: MACHINE address of shared info struct.   
*/
-    _MEMORY_PADDING(B);
-    u32      flags;           /* 16: SIF_xxx flags.                           
*/
-    u16      domain_controller_evtchn; /* 20 */
-    u16      __pad;
-    /* THE FOLLOWING ARE ONLY FILLED IN ON INITIAL BOOT (NOT RESUME).         
*/
-    memory_t pt_base;         /* 24: VIRTUAL address of page directory.       
*/
-    _MEMORY_PADDING(C);
-    memory_t nr_pt_frames;    /* 32: Number of bootstrap p.t. frames.         
*/
-    _MEMORY_PADDING(D);
-    memory_t mfn_list;        /* 40: VIRTUAL address of page-frame list.      
*/
-    _MEMORY_PADDING(E);
-    memory_t mod_start;       /* 48: VIRTUAL address of pre-loaded module.    
*/
-    _MEMORY_PADDING(F);
-    memory_t mod_len;         /* 56: Size (bytes) of pre-loaded module.       
*/
-    _MEMORY_PADDING(G);
-    s8 cmd_line[MAX_GUEST_CMDLINE]; /* 64 */
-    memory_t store_page;      /* 1088: VIRTUAL address of store page.         
*/
-    _MEMORY_PADDING(H);
-    u16      store_evtchn;    /* 1096: Event channel for store communication. 
*/
-} PACKED start_info_t; /* 1098 bytes */
+typedef struct start_info {
+    /* THE FOLLOWING ARE FILLED IN BOTH ON INITIAL BOOT AND ON RESUME.    */
+    memory_t nr_pages;        /* Total pages allocated to this domain.    */
+    memory_t shared_info;     /* MACHINE address of shared info struct.   */
+    u32      flags;           /* SIF_xxx flags.                           */
+    u16      domain_controller_evtchn;
+    /* THE FOLLOWING ARE ONLY FILLED IN ON INITIAL BOOT (NOT RESUME).     */
+    memory_t pt_base;         /* VIRTUAL address of page directory.       */
+    memory_t nr_pt_frames;    /* Number of bootstrap p.t. frames.         */
+    memory_t mfn_list;        /* VIRTUAL address of page-frame list.      */
+    memory_t mod_start;       /* VIRTUAL address of pre-loaded module.    */
+    memory_t mod_len;         /* Size (bytes) of pre-loaded module.       */
+    s8 cmd_line[MAX_GUEST_CMDLINE];
+    memory_t store_page;      /* VIRTUAL address of store page.           */
+    u16      store_evtchn;    /* Event channel for store communication.   */
+} start_info_t;
 
 /* These flags are passed in the 'flags' field of start_info_t. */
 #define SIF_PRIVILEGED    (1<<0)  /* Is the domain privileged? */
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/public/event_channel.h
--- a/xen/include/public/event_channel.h        Fri Jul  1 21:25:45 2005
+++ b/xen/include/public/event_channel.h        Sat Jul  2 08:41:48 2005
@@ -15,13 +15,12 @@
  * will be allocated, and the field filled in on return.
  */
 #define EVTCHNOP_alloc_unbound    6
-typedef struct {
+typedef struct evtchn_alloc_unbound {
     /* IN parameters */
-    domid_t dom;                      /*  0 */
-    u16     __pad;
+    domid_t dom;
     /* IN/OUT parameters */
-    u32     port;                     /*  4 */
-} PACKED evtchn_alloc_unbound_t; /* 8 bytes */
+    u32     port;
+} evtchn_alloc_unbound_t;
 
 /*
  * EVTCHNOP_bind_interdomain: Construct an interdomain event channel between
@@ -44,12 +43,12 @@
  *     be closed or unbound.
  */
 #define EVTCHNOP_bind_interdomain 0
-typedef struct {
+typedef struct evtchn_bind_interdomain {
     /* IN parameters. */
-    domid_t dom1, dom2;               /*  0,  2 */
+    domid_t dom1, dom2;
     /* IN/OUT parameters. */
-    u32     port1, port2;             /*  4,  8 */
-} PACKED evtchn_bind_interdomain_t; /* 12 bytes */
+    u32     port1, port2;
+} evtchn_bind_interdomain_t;
 
 /*
  * EVTCHNOP_bind_virq: Bind a local event channel to IRQ <irq> on calling vcpu.
@@ -59,12 +58,12 @@
  *     may not be changed.
  */
 #define EVTCHNOP_bind_virq        1
-typedef struct {
+typedef struct evtchn_bind_virq {
     /* IN parameters. */
-    u32 virq;                         /*  0 */
+    u32 virq;
     /* OUT parameters. */
-    u32 port;                         /*  4 */
-} PACKED evtchn_bind_virq_t; /* 8 bytes */
+    u32 port;
+} evtchn_bind_virq_t;
 
 /*
  * EVTCHNOP_bind_pirq: Bind a local event channel to IRQ <irq>.
@@ -73,14 +72,14 @@
  *  2. Only a sufficiently-privileged domain may bind to a physical IRQ.
  */
 #define EVTCHNOP_bind_pirq        2
-typedef struct {
+typedef struct evtchn_bind_pirq {
     /* IN parameters. */
-    u32 pirq;                         /*  0 */
+    u32 pirq;
 #define BIND_PIRQ__WILL_SHARE 1
-    u32 flags; /* BIND_PIRQ__* */     /*  4 */
+    u32 flags; /* BIND_PIRQ__* */
     /* OUT parameters. */
-    u32 port;                         /*  8 */
-} PACKED evtchn_bind_pirq_t; /* 12 bytes */
+    u32 port;
+} evtchn_bind_pirq_t;
 
 /*
  * EVTCHNOP_bind_ipi: Bind a local event channel to receive events.
@@ -89,12 +88,12 @@
  *     may not be changed.
  */
 #define EVTCHNOP_bind_ipi         7
-typedef struct {
+typedef struct evtchn_bind_ipi {
     /* IN parameters. */
-    u32 ipi_vcpu;                     /*  0 */
+    u32 ipi_vcpu;
     /* OUT parameters. */
-    u32 port;                         /*  4 */
-} PACKED evtchn_bind_ipi_t; /* 8 bytes */
+    u32 port;
+} evtchn_bind_ipi_t;
 
 /*
  * EVTCHNOP_close: Close the communication channel which has an endpoint at
@@ -106,24 +105,23 @@
  *     for which <dom> is not DOMID_SELF.
  */
 #define EVTCHNOP_close            3
-typedef struct {
+typedef struct evtchn_close {
     /* IN parameters. */
-    domid_t dom;                      /*  0 */
-    u16     __pad;
-    u32     port;                     /*  4 */
+    domid_t dom;
+    u32     port;
     /* No OUT parameters. */
-} PACKED evtchn_close_t; /* 8 bytes */
+} evtchn_close_t;
 
 /*
  * EVTCHNOP_send: Send an event to the remote end of the channel whose local
  * endpoint is <DOMID_SELF, local_port>.
  */
 #define EVTCHNOP_send             4
-typedef struct {
+typedef struct evtchn_send {
     /* IN parameters. */
-    u32     local_port;               /*  0 */
+    u32     local_port;
     /* No OUT parameters. */
-} PACKED evtchn_send_t; /* 4 bytes */
+} evtchn_send_t;
 
 /*
  * EVTCHNOP_status: Get the current status of the communication channel which
@@ -134,11 +132,10 @@
  *     channel for which <dom> is not DOMID_SELF.
  */
 #define EVTCHNOP_status           5
-typedef struct {
+typedef struct evtchn_status {
     /* IN parameters */
-    domid_t dom;                      /*  0 */
-    u16     __pad;
-    u32     port;                     /*  4 */
+    domid_t dom;
+    u32     port;
     /* OUT parameters */
 #define EVTCHNSTAT_closed       0  /* Channel is not in use.                 */
 #define EVTCHNSTAT_unbound      1  /* Channel is waiting interdom connection.*/
@@ -146,26 +143,24 @@
 #define EVTCHNSTAT_pirq         3  /* Channel is bound to a phys IRQ line.   */
 #define EVTCHNSTAT_virq         4  /* Channel is bound to a virtual IRQ line */
 #define EVTCHNSTAT_ipi          5  /* Channel is bound to a virtual IPI line */
-    u32     status;                   /*  8 */
-    union {                           /* 12 */
+    u32     status;
+    union {
         struct {
-            domid_t dom;                              /* 12 */
-        } PACKED unbound; /* EVTCHNSTAT_unbound */
+            domid_t dom;
+        } unbound; /* EVTCHNSTAT_unbound */
         struct {
-            domid_t dom;                              /* 12 */
-            u16     __pad;
-            u32     port;                             /* 16 */
-        } PACKED interdomain; /* EVTCHNSTAT_interdomain */
-        u32 pirq;      /* EVTCHNSTAT_pirq        */   /* 12 */
-        u32 virq;      /* EVTCHNSTAT_virq        */   /* 12 */
-        u32 ipi_vcpu;  /* EVTCHNSTAT_ipi         */   /* 12 */
-    } PACKED u;
-} PACKED evtchn_status_t; /* 20 bytes */
+            domid_t dom;
+            u32     port;
+        } interdomain; /* EVTCHNSTAT_interdomain */
+        u32 pirq;      /* EVTCHNSTAT_pirq        */
+        u32 virq;      /* EVTCHNSTAT_virq        */
+        u32 ipi_vcpu;  /* EVTCHNSTAT_ipi         */
+    } u;
+} evtchn_status_t;
 
-typedef struct {
-    u32 cmd; /* EVTCHNOP_* */         /*  0 */
-    u32 __reserved;                   /*  4 */
-    union {                           /*  8 */
+typedef struct evtchn_op {
+    u32 cmd; /* EVTCHNOP_* */
+    union {
         evtchn_alloc_unbound_t    alloc_unbound;
         evtchn_bind_interdomain_t bind_interdomain;
         evtchn_bind_virq_t        bind_virq;
@@ -174,8 +169,7 @@
         evtchn_close_t            close;
         evtchn_send_t             send;
         evtchn_status_t           status;
-        u8                        __dummy[24];
-    } PACKED u;
-} PACKED evtchn_op_t; /* 32 bytes */
+    } u;
+} evtchn_op_t;
 
 #endif /* __XEN_PUBLIC_EVENT_CHANNEL_H__ */
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/public/arch-x86_64.h
--- a/xen/include/public/arch-x86_64.h  Fri Jul  1 21:25:45 2005
+++ b/xen/include/public/arch-x86_64.h  Sat Jul  2 08:41:48 2005
@@ -8,15 +8,6 @@
 
 #ifndef __XEN_PUBLIC_ARCH_X86_64_H__
 #define __XEN_PUBLIC_ARCH_X86_64_H__
-
-#ifndef PACKED
-/* GCC-specific way to pack structure definitions (no implicit padding). */
-#define PACKED __attribute__ ((packed))
-#endif
-
-/* Pointers are naturally 64 bits in this architecture; no padding needed. */
-#define _MEMORY_PADDING(_X)
-#define MEMORY_PADDING 
 
 /*
  * SEGMENT DESCRIPTOR TABLES
@@ -110,7 +101,7 @@
     /* Top of stack (%rsp at point of hypercall). */
     u64 rax, r11, rcx, flags, rip, cs, rflags, rsp, ss;
     /* Bottom of switch_to_user stack frame. */
-} PACKED;
+};
 
 /* NB. Both the following are 64 bits each. */
 typedef unsigned long memory_t;   /* Full-sized pointer/address/memory-size. */
@@ -129,13 +120,12 @@
 #define TI_GET_IF(_ti)       ((_ti)->flags & 4)
 #define TI_SET_DPL(_ti,_dpl) ((_ti)->flags |= (_dpl))
 #define TI_SET_IF(_ti,_if)   ((_ti)->flags |= ((!!(_if))<<2))
-typedef struct {
-    u8       vector;  /* 0: exception vector                              */
-    u8       flags;   /* 1: 0-3: privilege level; 4: clear event enable?  */
-    u16      cs;      /* 2: code selector                                 */
-    u32      __pad;   /* 4 */
-    memory_t address; /* 8: code address                                  */
-} PACKED trap_info_t; /* 16 bytes */
+typedef struct trap_info {
+    u8       vector;  /* exception vector                              */
+    u8       flags;   /* 0-3: privilege level; 4: clear event enable?  */
+    u16      cs;      /* code selector                                 */
+    memory_t address; /* code address                                  */
+} trap_info_t;
 
 typedef struct cpu_user_regs {
     u64 r15;
@@ -175,13 +165,13 @@
  * in by FXSAVE if the CPU has feature FXSR; otherwise FSAVE is used.
  */
 typedef struct vcpu_guest_context {
+    /* FPU registers come first so they can be aligned for FXSAVE/FXRSTOR. */
+    struct { char x[512]; } fpu_ctxt;       /* User-level FPU registers     */
 #define VGCF_I387_VALID (1<<0)
 #define VGCF_VMX_GUEST  (1<<1)
 #define VGCF_IN_KERNEL  (1<<2)
     unsigned long flags;                    /* VGCF_* flags                 */
     cpu_user_regs_t user_regs;              /* User-level CPU registers     */
-    struct { char x[512]; } fpu_ctxt        /* User-level FPU registers     */
-    __attribute__((__aligned__(16)));       /* (needs 16-byte alignment)    */
     trap_info_t   trap_ctxt[256];           /* Virtual IDT                  */
     unsigned long ldt_base, ldt_ents;       /* LDT (linear address, # ents) */
     unsigned long gdt_frames[16], gdt_ents; /* GDT (machine frames, # ents) */
@@ -198,14 +188,11 @@
     u64           gs_base_user;
 } vcpu_guest_context_t;
 
-typedef struct {
+typedef struct arch_shared_info {
     /* MFN of a table of MFNs that make up p2m table */
     u64 pfn_to_mfn_frame_list;
 } arch_shared_info_t;
 
-typedef struct {
-} arch_vcpu_info_t;
-
 #endif /* !__ASSEMBLY__ */
 
 #endif
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/public/io/blkif.h
--- a/xen/include/public/io/blkif.h     Fri Jul  1 21:25:45 2005
+++ b/xen/include/public/io/blkif.h     Sat Jul  2 08:41:48 2005
@@ -28,12 +28,12 @@
  */
 #define BLKIF_MAX_SEGMENTS_PER_REQUEST 11
 
-typedef struct {
-    u8             operation;    /*  0: BLKIF_OP_???                         */
-    u8             nr_segments;  /*  1: number of segments                   */
-    blkif_vdev_t   device;       /*  2: only for read/write requests         */
-    unsigned long  id;           /*  4: private guest value, echoed in resp  */
-    blkif_sector_t sector_number;    /* start sector idx on disk (r/w only)  */
+typedef struct blkif_request {
+    u8             operation;    /* BLKIF_OP_???                         */
+    u8             nr_segments;  /* number of segments                   */
+    blkif_vdev_t   device;       /* only for read/write requests         */
+    unsigned long  id;           /* private guest value, echoed in resp  */
+    blkif_sector_t sector_number;/* start sector idx on disk (r/w only)  */
     /* @f_a_s[2:0]=last_sect ; @f_a_s[5:3]=first_sect                        */
 #ifdef CONFIG_XEN_BLKDEV_GRANT
     /* @f_a_s[:16]= grant reference (16 bits)                                */
@@ -43,7 +43,7 @@
     /* @first_sect: first sector in frame to transfer (inclusive).           */
     /* @last_sect: last sector in frame to transfer (inclusive).             */
     unsigned long  frame_and_sects[BLKIF_MAX_SEGMENTS_PER_REQUEST];
-} PACKED blkif_request_t;
+} blkif_request_t;
 
 #define blkif_first_sect(_fas) (((_fas)>>3)&7)
 #define blkif_last_sect(_fas)  ((_fas)&7)
@@ -52,11 +52,11 @@
 #define blkif_gref_from_fas(_fas) ((_fas)>>16)
 #endif
 
-typedef struct {
+typedef struct blkif_response {
     unsigned long   id;              /* copied from request */
     u8              operation;       /* copied from request */
     s16             status;          /* BLKIF_RSP_???       */
-} PACKED blkif_response_t;
+} blkif_response_t;
 
 #define BLKIF_RSP_ERROR  -1 /* non-specific 'error' */
 #define BLKIF_RSP_OKAY    0 /* non-specific 'okay'  */
@@ -88,11 +88,10 @@
 #define VDISK_READONLY     0x4
 
 typedef struct vdisk {
-    blkif_sector_t capacity;     /*  0: Size in terms of 512-byte sectors.   */
-    blkif_vdev_t   device;       /*  8: Device number (opaque 16 bit value). */
-    u16            info;         /* 10: Device type and flags (VDISK_*).     */
-    u16            sector_size;  /* 12: Minimum alignment for requests.      */
-    u16            _pad;
-} PACKED vdisk_t; /* 16 bytes */
+    blkif_sector_t capacity;     /* Size in terms of 512-byte sectors.   */
+    blkif_vdev_t   device;       /* Device number (opaque 16 bit value). */
+    u16            info;         /* Device type and flags (VDISK_*).     */
+    u16            sector_size;  /* Minimum alignment for requests.      */
+} vdisk_t; /* 16 bytes */
 
 #endif /* __XEN_PUBLIC_IO_BLKIF_H__ */
diff -r 6f462a11a08e -r 2b6c1a809807 xen/include/public/physdev.h
--- a/xen/include/public/physdev.h      Fri Jul  1 21:25:45 2005
+++ b/xen/include/public/physdev.h      Sat Jul  2 08:41:48 2005
@@ -11,56 +11,51 @@
 #define PHYSDEVOP_APIC_WRITE            9
 #define PHYSDEVOP_ASSIGN_VECTOR         10
 
-typedef struct {
+typedef struct physdevop_irq_status_query {
     /* IN */
-    u32 irq;                          /*  0 */
+    u32 irq;
     /* OUT */
 /* Need to call PHYSDEVOP_IRQ_UNMASK_NOTIFY when the IRQ has been serviced? */
 #define PHYSDEVOP_IRQ_NEEDS_UNMASK_NOTIFY (1<<0)
-    u32 flags;                        /*  4 */
-} PACKED physdevop_irq_status_query_t; /* 8 bytes */
+    u32 flags;
+} physdevop_irq_status_query_t;
 
-typedef struct {
+typedef struct physdevop_set_iopl {
     /* IN */
-    u32 iopl;                         /*  0 */
-} PACKED physdevop_set_iopl_t; /* 4 bytes */
+    u32 iopl;
+} physdevop_set_iopl_t;
 
-typedef struct {
+typedef struct physdevop_set_iobitmap {
     /* IN */
-    memory_t bitmap;                  /*  0 */
-    MEMORY_PADDING;
-    u32      nr_ports;                /*  8 */
-    u32      __pad0;                  /* 12 */
-} PACKED physdevop_set_iobitmap_t; /* 16 bytes */
+    memory_t bitmap;
+    u32      nr_ports;
+} physdevop_set_iobitmap_t;
 
-typedef struct {
+typedef struct physdevop_apic {
     /* IN */
-    u32 apic;                          /*  0 */
+    u32 apic;
     u32 offset;
     /* IN or OUT */
     u32 value;
-} PACKED physdevop_apic_t; 
+} physdevop_apic_t; 
 
-typedef struct {
+typedef struct physdevop_irq {
     /* IN */
-    u32 irq;                          /*  0 */
+    u32 irq;
     /* OUT */
     u32 vector;
-} PACKED physdevop_irq_t; 
+} physdevop_irq_t; 
 
-typedef struct _physdev_op_st 
-{
-    u32 cmd;                          /*  0 */
-    u32 __pad;                        /*  4 */
-    union {                           /*  8 */
+typedef struct physdev_op {
+    u32 cmd;
+    union {
         physdevop_irq_status_query_t      irq_status_query;
         physdevop_set_iopl_t              set_iopl;
         physdevop_set_iobitmap_t          set_iobitmap;
         physdevop_apic_t                  apic_op;
         physdevop_irq_t                   irq_op;
-        u8                                __dummy[32];
-    } PACKED u;
-} PACKED physdev_op_t; /* 40 bytes */
+    } u;
+} physdev_op_t;
 
 #endif /* __XEN_PUBLIC_PHYSDEV_H__ */
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.