WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

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

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] Remove non-ISO attributes from public headers.
From: Xen patchbot -unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Sat, 02 Jul 2005 04:42:10 -0400
Delivery-date: Sat, 02 Jul 2005 08:42:34 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# 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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Remove non-ISO attributes from public headers., Xen patchbot -unstable <=