ia64/xen-unstable

changeset 13792:56377f5ce588

[XEN] Fix dom/sysctl structure alignement.

Versions of gcc up to and including 3.3 appear to ignore
__attribute__((align(x))) when applied to typedefs or to members of
anonymous unions. Workaround this by explicitly aligning each
definition of a 64 bit guest handle.

Tidy up x86_64 compat entry.S a bit.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
author Ian Campbell <ian.campbell@xensource.com>
date Wed Jan 31 16:54:21 2007 +0000 (2007-01-31)
parents 9f83b07caabe
children 5d09e6098f93
files xen/arch/x86/x86_64/compat/entry.S xen/include/public/arch-x86/xen-x86_32.h
line diff
     1.1 --- a/xen/arch/x86/x86_64/compat/entry.S	Wed Jan 31 15:25:04 2007 +0000
     1.2 +++ b/xen/arch/x86/x86_64/compat/entry.S	Wed Jan 31 16:54:21 2007 +0000
     1.3 @@ -281,9 +281,6 @@ CFIX14:
     1.4          .quad CFLT14,CFIX14
     1.5  .previous
     1.6  
     1.7 -compat_domctl:
     1.8 -compat_sysctl:
     1.9 -
    1.10  .section .rodata, "a", @progbits
    1.11  
    1.12  ENTRY(compat_hypercall_table)
    1.13 @@ -365,8 +362,8 @@ ENTRY(compat_hypercall_args_table)
    1.14          .byte 2 /* compat_event_channel_op  */
    1.15          .byte 2 /* compat_physdev_op        */
    1.16          .byte 2 /* do_hvm_op                */
    1.17 -        .byte 1 /* compat_sysctl            */  /* 35 */
    1.18 -        .byte 1 /* compat_domctl            */
    1.19 +        .byte 1 /* do_sysctl                */  /* 35 */
    1.20 +        .byte 1 /* do_domctl                */
    1.21          .byte 2 /* compat_kexec_op          */
    1.22          .rept NR_hypercalls-(.-compat_hypercall_args_table)
    1.23          .byte 0 /* compat_ni_hypercall      */
     2.1 --- a/xen/include/public/arch-x86/xen-x86_32.h	Wed Jan 31 15:25:04 2007 +0000
     2.2 +++ b/xen/include/public/arch-x86/xen-x86_32.h	Wed Jan 31 16:54:21 2007 +0000
     2.3 @@ -103,7 +103,7 @@
     2.4           (hnd).p = val;                                     \
     2.5      } while ( 0 )
     2.6  #define uint64_aligned_t uint64_t __attribute__((aligned(8)))
     2.7 -#define XEN_GUEST_HANDLE_64(name) __guest_handle_64_ ## name
     2.8 +#define XEN_GUEST_HANDLE_64(name) __guest_handle_64_ ## name __attribute__((aligned(8)))
     2.9  #endif
    2.10  
    2.11  #ifndef __ASSEMBLY__