[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |