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

[Xen-changelog] [xen master] x86: Introduce and use GLOBAL() in asm code



commit ec98ab353db1bb665c3ec2f20007b294f2f51cd8
Author:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
AuthorDate: Mon Sep 9 10:25:40 2013 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Mon Sep 9 10:25:40 2013 +0200

    x86: Introduce and use GLOBAL() in asm code
    
    Also clean up some cases of misused/opencoded ENTRY()
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
 xen/arch/x86/acpi/wakeup_prot.S |   10 +++++-----
 xen/arch/x86/boot/edd.S         |   10 ++++------
 xen/arch/x86/boot/head.S        |    9 +++------
 xen/arch/x86/boot/mem.S         |    9 ++++-----
 xen/arch/x86/boot/trampoline.S  |   15 +++++----------
 xen/arch/x86/boot/video.S       |   23 +++++++++++++----------
 xen/arch/x86/boot/wakeup.S      |    7 ++++---
 xen/arch/x86/boot/x86_64.S      |   29 +++++++++++------------------
 xen/arch/x86/efi/relocs-dummy.S |    5 ++---
 xen/arch/x86/hvm/svm/entry.S    |    3 +--
 xen/arch/x86/x86_64/entry.S     |   13 ++++---------
 xen/include/asm-x86/config.h    |    3 +++
 12 files changed, 59 insertions(+), 77 deletions(-)

diff --git a/xen/arch/x86/acpi/wakeup_prot.S b/xen/arch/x86/acpi/wakeup_prot.S
index a1e706e..def86d2 100644
--- a/xen/arch/x86/acpi/wakeup_prot.S
+++ b/xen/arch/x86/acpi/wakeup_prot.S
@@ -64,9 +64,8 @@ ENTRY(do_suspend_lowlevel)
         call    acpi_enter_sleep_state
         jmp     __ret_point
 
-        .align  16
-        .globl  __ret_point
-__ret_point:
+
+ENTRY(__ret_point)
 
         /* mmu_cr4_features contains latest cr4 setting */
         mov     REF(mmu_cr4_features), GREG(ax)
@@ -118,8 +117,9 @@ __ret_point:
 
 .data
         .align 16
-        .globl   saved_magic
-saved_magic:     .long   0x9abcdef0
+
+GLOBAL(saved_magic)
+        .long   0x9abcdef0
 
 saved_ss:        .word   0
 
diff --git a/xen/arch/x86/boot/edd.S b/xen/arch/x86/boot/edd.S
index 2c8df8c..5c80da6 100644
--- a/xen/arch/x86/boot/edd.S
+++ b/xen/arch/x86/boot/edd.S
@@ -145,13 +145,11 @@ edd_done:
 opt_edd:
         .byte   0                               # edd=on/off/skipmbr
 
-.globl  boot_edd_info, boot_edd_info_nr
-.globl  boot_mbr_signature, boot_mbr_signature_nr
-boot_edd_info_nr:
+GLOBAL(boot_edd_info_nr)
         .byte   0
-boot_mbr_signature_nr:
+GLOBAL(boot_mbr_signature_nr)
         .byte   0
-boot_mbr_signature:
+GLOBAL(boot_mbr_signature)
         .fill   EDD_MBR_SIG_MAX*8,1,0
-boot_edd_info:
+GLOBAL(boot_edd_info)
         .fill   512,1,0                         # big enough for a disc sector
diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index d3cbddb..b12eefb 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -195,11 +195,9 @@ __start:
 reloc:
 #include "reloc.S"
 
-        .align 16
-        .globl trampoline_start, trampoline_end
-trampoline_start:
+ENTRY(trampoline_start)
 #include "trampoline.S"
-trampoline_end:
+GLOBAL(trampoline_end)
 
         .text
 __high_start:
@@ -212,8 +210,7 @@ __high_start:
  * to avoid type conflicts with fixed-range MTRRs covering the lowest megabyte
  * of physical memory. In any case the VGA hole should be mapped with type UC.
  */
-        .globl l1_identmap
-l1_identmap:
+GLOBAL(l1_identmap)
         pfn = 0
         .rept L1_PAGETABLE_ENTRIES
         /* VGA hole (0xa0000-0xc0000) should be mapped UC. */
diff --git a/xen/arch/x86/boot/mem.S b/xen/arch/x86/boot/mem.S
index 64646205..820aea9 100644
--- a/xen/arch/x86/boot/mem.S
+++ b/xen/arch/x86/boot/mem.S
@@ -67,12 +67,11 @@ get_memory_map:
 
         ret
 
-        .globl e820map, e820nr, lowmem_kb, highmem_kb
-e820map:
+GLOBAL(e820map)
         .fill   E820MAX*20,1,0
-e820nr:
+GLOBAL(e820nr)
         .long   0
-lowmem_kb:
+GLOBAL(lowmem_kb)
         .long   0
-highmem_kb:
+GLOBAL(highmem_kb)
         .long   0
diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S
index f84ce2a..827f412 100644
--- a/xen/arch/x86/boot/trampoline.S
+++ b/xen/arch/x86/boot/trampoline.S
@@ -18,8 +18,7 @@
         .long 111b - (off) - .;            \
         .popsection
 
-        .globl trampoline_realmode_entry
-trampoline_realmode_entry:
+GLOBAL(trampoline_realmode_entry)
         mov     %cs,%ax
         mov     %ax,%ds
         movb    $0xA5,bootsym(trampoline_cpu_started)
@@ -57,16 +56,13 @@ trampoline_gdt:
         .long   trampoline_gdt + BOOT_PSEUDORM_DS + 2 - .
         .popsection
 
-        .globl cpuid_ext_features
-cpuid_ext_features:
+GLOBAL(cpuid_ext_features)
         .long   0
 
-        .globl trampoline_xen_phys_start
-trampoline_xen_phys_start:
+GLOBAL(trampoline_xen_phys_start)
         .long   0
 
-        .globl trampoline_cpu_started
-trampoline_cpu_started:
+GLOBAL(trampoline_cpu_started)
         .byte   0
 
         .code32
@@ -206,8 +202,7 @@ trampoline_boot_cpu_entry:
 skip_realmode:
         .byte   0
 
-        .globl kbd_shift_flags
-kbd_shift_flags:
+GLOBAL(kbd_shift_flags)
         .byte   0
 
 rm_idt: .word   256*4-1, 0, 0
diff --git a/xen/arch/x86/boot/video.S b/xen/arch/x86/boot/video.S
index ad6514e..b238bf3 100644
--- a/xen/arch/x86/boot/video.S
+++ b/xen/arch/x86/boot/video.S
@@ -993,14 +993,17 @@ force_size:     .word   0       # Use this size instead 
of the one in BIOS vars
 
 vesa_size:      .word   0,0,0   # width x depth x height
 
-                .globl  boot_vid_info, boot_edid_info, boot_edid_caps
 /* If we don't run at all, assume basic video mode 3 at 80x25. */
-boot_vid_mode:  .word   VIDEO_80x25
-boot_vid_info:  .byte   0, 0    /* orig_x, orig_y */
-                .byte   3       /* text mode 3    */
-                .byte   80, 25  /* 80x25          */
-                .byte   1       /* isVGA          */
-                .word   16      /* 8x16 font      */
-                .fill   0x28,1,0
-boot_edid_info: .fill   128,1,0x13
-boot_edid_caps: .word   0x1313
+GLOBAL(boot_vid_mode)
+        .word   VIDEO_80x25
+GLOBAL(boot_vid_info)
+        .byte   0, 0    /* orig_x, orig_y */
+        .byte   3       /* text mode 3    */
+        .byte   80, 25  /* 80x25          */
+        .byte   1       /* isVGA          */
+        .word   16      /* 8x16 font      */
+        .fill   0x28,1,0
+GLOBAL(boot_edid_info)
+        .fill   128,1,0x13
+GLOBAL(boot_edid_caps)
+        .word   0x1313
diff --git a/xen/arch/x86/boot/wakeup.S b/xen/arch/x86/boot/wakeup.S
index b1d4787..a3883c1 100644
--- a/xen/arch/x86/boot/wakeup.S
+++ b/xen/arch/x86/boot/wakeup.S
@@ -98,9 +98,10 @@ bogus_real_magic:
 
         .align 4
 real_magic:     .long 0x12345678
-         .globl video_mode, video_flags
-video_mode:     .long 0
-video_flags:    .long 0
+GLOBAL(video_mode)
+        .long 0
+GLOBAL(video_flags)
+        .long 0
 trampoline_seg: .word 0
         .pushsection .trampoline_seg, "a"
         .long   trampoline_seg - .
diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index ed3888d..8f92402 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -84,23 +84,21 @@ multiboot_ptr:
         .long   0
 
         .word   0
-        .globl  gdt_descr
-gdt_descr:
+GLOBAL(gdt_descr)
         .word   LAST_RESERVED_GDT_BYTE
         .quad   boot_cpu_gdt_table - FIRST_RESERVED_GDT_BYTE
 
         .word   0,0,0
-        .globl  idt_descr
-idt_descr:
+GLOBAL(idt_descr)
         .word   256*16-1
         .quad   idt_table
 
-ENTRY(stack_start)
+GLOBAL(stack_start)
         .quad   cpu0_stack
 
         .section .data.page_aligned, "aw", @progbits
         .align PAGE_SIZE, 0
-ENTRY(boot_cpu_gdt_table)
+GLOBAL(boot_cpu_gdt_table)
         .quad 0x0000000000000000     /* unused */
         .quad 0x00af9a000000ffff     /* 0xe008 ring 0 code, 64-bit mode   */
         .quad 0x00cf92000000ffff     /* 0xe010 ring 0 data                */
@@ -115,7 +113,7 @@ ENTRY(boot_cpu_gdt_table)
         .align PAGE_SIZE, 0
 /* NB. Even rings != 0 get access to the full 4Gb, as only the            */
 /*     (compatibility) machine->physical mapping table lives there.       */
-ENTRY(boot_cpu_compat_gdt_table)
+GLOBAL(boot_cpu_compat_gdt_table)
         .quad 0x0000000000000000     /* unused */
         .quad 0x00af9a000000ffff     /* 0xe008 ring 0 code, 64-bit mode   */
         .quad 0x00cf92000000ffff     /* 0xe010 ring 0 data                */
@@ -128,12 +126,10 @@ ENTRY(boot_cpu_compat_gdt_table)
         .quad 0x0000910000000000     /* per-CPU entry (limit == cpu)      */
         .align PAGE_SIZE, 0
 
-       .globl __page_tables_start, __page_tables_end
-__page_tables_start:
+GLOBAL(__page_tables_start)
 
 /* Mapping of first 16 megabytes of memory. */
-        .globl l2_identmap
-l2_identmap:
+GLOBAL(l2_identmap)
         .quad sym_phys(l1_identmap) + __PAGE_HYPERVISOR
         pfn = 0
         .rept 7
@@ -143,8 +139,7 @@ l2_identmap:
         .fill 4 * L2_PAGETABLE_ENTRIES - 8, 8, 0
         .size l2_identmap, . - l2_identmap
 
-        .globl l2_xenmap
-l2_xenmap:
+GLOBAL(l2_xenmap)
         idx = 0
         .rept 8
         .quad sym_phys(__image_base__) + (idx << L2_PAGETABLE_SHIFT) + 
(PAGE_HYPERVISOR | _PAGE_PSE)
@@ -165,8 +160,7 @@ l2_fixmap:
         .endr
         .size l2_fixmap, . - l2_fixmap
 
-        .globl l3_identmap
-l3_identmap:
+GLOBAL(l3_identmap)
         idx = 0
         .rept 4
         .quad sym_phys(l2_identmap) + (idx << PAGE_SHIFT) + __PAGE_HYPERVISOR
@@ -190,8 +184,7 @@ l3_xenmap:
         .size l3_xenmap, . - l3_xenmap
 
 /* Top-level master (and idle-domain) page directory. */
-        .globl idle_pg_table
-idle_pg_table:
+GLOBAL(idle_pg_table)
         .quad sym_phys(l3_bootmap) + __PAGE_HYPERVISOR
         idx = 1
         .rept L4_PAGETABLE_ENTRIES - 1
@@ -206,4 +199,4 @@ idle_pg_table:
         .endr
         .size idle_pg_table, . - idle_pg_table
 
-__page_tables_end:
+GLOBAL(__page_tables_end)
diff --git a/xen/arch/x86/efi/relocs-dummy.S b/xen/arch/x86/efi/relocs-dummy.S
index 36c3006..b14c499 100644
--- a/xen/arch/x86/efi/relocs-dummy.S
+++ b/xen/arch/x86/efi/relocs-dummy.S
@@ -2,11 +2,10 @@
 
        .section .reloc, "a", @progbits
        .balign 4
-       .globl __base_relocs_start, __base_relocs_end
-__base_relocs_start:
+GLOBAL(__base_relocs_start)
        .long 0
        .long 8
-__base_relocs_end:
+GLOBAL(__base_relocs_end)
 
        .globl VIRT_START, ALT_START
        .equ VIRT_START, XEN_VIRT_START
diff --git a/xen/arch/x86/hvm/svm/entry.S b/xen/arch/x86/hvm/svm/entry.S
index 3ee4247..aeddf64 100644
--- a/xen/arch/x86/hvm/svm/entry.S
+++ b/xen/arch/x86/hvm/svm/entry.S
@@ -127,8 +127,7 @@ UNLIKELY_END(svm_trace)
         mov  %rax,UREGS_eflags(%rsp)
 
         STGI
-.globl svm_stgi_label
-svm_stgi_label:
+GLOBAL(svm_stgi_label)
         mov  %rsp,%rdi
         call svm_vmexit_handler
         jmp  .Lsvm_do_resume
diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index 5beeccb..f64e871 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -272,8 +272,7 @@ ENTRY(sysenter_entry)
         pushq $FLAT_USER_SS
         pushq $0
         pushfq
-        .globl sysenter_eflags_saved
-sysenter_eflags_saved:
+GLOBAL(sysenter_eflags_saved)
         pushq $3 /* ring 3 null cs */
         pushq $0 /* null rip */
         pushq $0
@@ -479,8 +478,7 @@ ENTRY(ret_from_intr)
 ENTRY(page_fault)
         movl  $TRAP_page_fault,4(%rsp)
 /* No special register assumptions. */
-       .globl handle_exception
-handle_exception:
+GLOBAL(handle_exception)
         SAVE_ALL
 handle_exception_saved:
         testb $X86_EFLAGS_IF>>8,UREGS_eflags+1(%rsp)
@@ -689,11 +687,8 @@ ENTRY(enable_nmis)
 1:
         retq
 
-/* No op trap handler.  Required for kexec crash path.  This is not
- * declared with the ENTRY() macro to avoid wasted alignment space.
- */
-.globl trap_nop
-trap_nop:
+/* No op trap handler.  Required for kexec crash path. */
+GLOBAL(trap_nop)
         iretq
 
 
diff --git a/xen/include/asm-x86/config.h b/xen/include/asm-x86/config.h
index f387cd6..cc42a88 100644
--- a/xen/include/asm-x86/config.h
+++ b/xen/include/asm-x86/config.h
@@ -80,6 +80,9 @@
   .globl name;                                  \
   ALIGN;                                        \
   name:
+#define GLOBAL(name)                            \
+  .globl name;                                  \
+  name:
 #endif
 
 #define NR_hypercalls 64
--
generated by git-patchbot for /home/xen/git/xen.git#master

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


 


Rackspace

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