mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
x86/boot: rename sym_phys() to sym_offs()
This way macro name better describes its function. Currently it is used to calculate symbol offset in relation to the beginning of Xen image mapping. However, value returned by sym_offs() for a given symbol is not always equal its physical address. There is no functional change. Suggested-by: Jan Beulich <jbeulich@suse.com> Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com> Acked-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Doug Goldstein <cardoe@cardoe.com>
This commit is contained in:
1 parent
b28044226e
commit
f5f16adbce
4 files changed
+31
-31
No files matched your search
+19
-19
@@ -11,9 +11,9 @@
|
||||
.text
|
||||
.code32
|
||||
|
||||
#define sym_phys(sym) ((sym) - __XEN_VIRT_START)
|
||||
#define sym_esi(sym) sym_phys(sym)(%esi)
|
||||
#define sym_fs(sym) %fs:sym_phys(sym)
|
||||
#define sym_offs(sym) ((sym) - __XEN_VIRT_START)
|
||||
#define sym_esi(sym) sym_offs(sym)(%esi)
|
||||
#define sym_fs(sym) %fs:sym_offs(sym)
|
||||
|
||||
#define BOOT_CS32 0x0008
|
||||
#define BOOT_CS64 0x0010
|
||||
@@ -96,7 +96,7 @@ multiboot2_header_start:
|
||||
|
||||
/* EFI64 Multiboot2 entry point. */
|
||||
mb2ht_init MB2_HT(ENTRY_ADDRESS_EFI64), MB2_HT(OPTIONAL), \
|
||||
sym_phys(__efi64_mb2_start)
|
||||
sym_offs(__efi64_mb2_start)
|
||||
|
||||
/* Multiboot2 header end tag. */
|
||||
mb2ht_init MB2_HT(END), MB2_HT(REQUIRED)
|
||||
@@ -118,7 +118,7 @@ multiboot2_header_start:
|
||||
gdt_boot_descr:
|
||||
.word 7*8-1
|
||||
gdt_boot_base:
|
||||
.long sym_phys(trampoline_gdt)
|
||||
.long sym_offs(trampoline_gdt)
|
||||
.long 0 /* Needed for 64-bit lgdt */
|
||||
|
||||
vga_text_buffer:
|
||||
@@ -130,21 +130,21 @@ efi_platform:
|
||||
.section .init.text, "ax", @progbits
|
||||
|
||||
bad_cpu:
|
||||
add $sym_phys(.Lbad_cpu_msg),%esi # Error message
|
||||
add $sym_offs(.Lbad_cpu_msg),%esi # Error message
|
||||
jmp .Lget_vtb
|
||||
not_multiboot:
|
||||
add $sym_phys(.Lbad_ldr_msg),%esi # Error message
|
||||
add $sym_offs(.Lbad_ldr_msg),%esi # Error message
|
||||
jmp .Lget_vtb
|
||||
.Lmb2_no_st:
|
||||
/*
|
||||
* Here we are on EFI platform. vga_text_buffer was zapped earlier
|
||||
* because there is pretty good chance that VGA is unavailable.
|
||||
*/
|
||||
add $sym_phys(.Lbad_ldr_nst),%esi # Error message
|
||||
add $sym_offs(.Lbad_ldr_nst),%esi # Error message
|
||||
jmp .Lget_vtb
|
||||
.Lmb2_no_ih:
|
||||
/* Ditto. */
|
||||
add $sym_phys(.Lbad_ldr_nih),%esi # Error message
|
||||
add $sym_offs(.Lbad_ldr_nih),%esi # Error message
|
||||
jmp .Lget_vtb
|
||||
.Lmb2_no_bs:
|
||||
/*
|
||||
@@ -152,7 +152,7 @@ not_multiboot:
|
||||
* via start label. Then reliable vga_text_buffer zap is impossible
|
||||
* in Multiboot2 scanning loop and we have to zero %edi below.
|
||||
*/
|
||||
add $sym_phys(.Lbad_ldr_nbs),%esi # Error message
|
||||
add $sym_offs(.Lbad_ldr_nbs),%esi # Error message
|
||||
xor %edi,%edi # No VGA text buffer
|
||||
jmp .Lsend_chr
|
||||
.Lmb2_efi_ia_32:
|
||||
@@ -160,7 +160,7 @@ not_multiboot:
|
||||
* Here we are on EFI IA-32 platform. Then reliable vga_text_buffer zap is
|
||||
* impossible in Multiboot2 scanning loop and we have to zero %edi below.
|
||||
*/
|
||||
add $sym_phys(.Lbad_efi_msg),%esi # Error message
|
||||
add $sym_offs(.Lbad_efi_msg),%esi # Error message
|
||||
xor %edi,%edi # No VGA text buffer
|
||||
jmp .Lsend_chr
|
||||
.Lget_vtb:
|
||||
@@ -371,7 +371,7 @@ __start:
|
||||
cli
|
||||
|
||||
/* Load default Xen image load base address. */
|
||||
mov $sym_phys(__image_base__),%esi
|
||||
mov $sym_offs(__image_base__),%esi
|
||||
|
||||
/* Bootloaders may set multiboot{1,2}.mem_lower to a nonzero value. */
|
||||
xor %edx,%edx
|
||||
@@ -543,8 +543,8 @@ trampoline_setup:
|
||||
jnz 1f
|
||||
|
||||
/* Initialize BSS (no nasty surprises!). */
|
||||
mov $sym_phys(__bss_start),%edi
|
||||
mov $sym_phys(__bss_end),%ecx
|
||||
mov $sym_offs(__bss_start),%edi
|
||||
mov $sym_offs(__bss_end),%ecx
|
||||
push %fs
|
||||
pop %es
|
||||
sub %edi,%ecx
|
||||
@@ -617,22 +617,22 @@ trampoline_setup:
|
||||
|
||||
/* Apply relocations to bootstrap trampoline. */
|
||||
mov sym_fs(trampoline_phys),%edx
|
||||
mov $sym_phys(__trampoline_rel_start),%edi
|
||||
mov $sym_offs(__trampoline_rel_start),%edi
|
||||
1:
|
||||
mov %fs:(%edi),%eax
|
||||
add %edx,%fs:(%edi,%eax)
|
||||
add $4,%edi
|
||||
cmp $sym_phys(__trampoline_rel_stop),%edi
|
||||
cmp $sym_offs(__trampoline_rel_stop),%edi
|
||||
jb 1b
|
||||
|
||||
/* Patch in the trampoline segment. */
|
||||
shr $4,%edx
|
||||
mov $sym_phys(__trampoline_seg_start),%edi
|
||||
mov $sym_offs(__trampoline_seg_start),%edi
|
||||
1:
|
||||
mov %fs:(%edi),%eax
|
||||
mov %dx,%fs:(%edi,%eax)
|
||||
add $4,%edi
|
||||
cmp $sym_phys(__trampoline_seg_stop),%edi
|
||||
cmp $sym_offs(__trampoline_seg_stop),%edi
|
||||
jb 1b
|
||||
|
||||
/* Do not parse command line on EFI platform here. */
|
||||
@@ -658,7 +658,7 @@ trampoline_setup:
|
||||
push %eax
|
||||
|
||||
/* Copy bootstrap trampoline to low memory, below 1MB. */
|
||||
mov $sym_phys(trampoline_start),%esi
|
||||
mov $sym_offs(trampoline_start),%esi
|
||||
mov $((trampoline_end - trampoline_start) / 4),%ecx
|
||||
rep movsl %fs:(%esi),%es:(%edi)
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ trampoline_protmode_entry:
|
||||
mov %ecx,%cr4
|
||||
|
||||
/* Load pagetable base register. */
|
||||
mov $sym_phys(idle_pg_table),%eax
|
||||
mov $sym_offs(idle_pg_table),%eax
|
||||
add bootsym_rel(trampoline_xen_phys_start,4,%eax)
|
||||
mov %eax,%cr3
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ wakeup_32:
|
||||
mov $bootsym_rel(wakeup_stack, 4, %esp)
|
||||
|
||||
# check saved magic again
|
||||
mov $sym_phys(saved_magic), %eax
|
||||
mov $sym_offs(saved_magic),%eax
|
||||
add bootsym_rel(trampoline_xen_phys_start, 4, %eax)
|
||||
mov (%eax), %eax
|
||||
cmp $0x9abcdef0, %eax
|
||||
@@ -133,7 +133,7 @@ wakeup_32:
|
||||
mov %ecx, %cr4
|
||||
|
||||
/* Load pagetable base register */
|
||||
mov $sym_phys(idle_pg_table),%eax
|
||||
mov $sym_offs(idle_pg_table),%eax
|
||||
add bootsym_rel(trampoline_xen_phys_start,4,%eax)
|
||||
mov %eax,%cr3
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ GLOBAL(__page_tables_start)
|
||||
* actualy mapped (mostly using superpages). Uses 4x 4k pages.
|
||||
*/
|
||||
GLOBAL(l2_identmap)
|
||||
.quad sym_phys(l1_identmap) + __PAGE_HYPERVISOR
|
||||
.quad sym_offs(l1_identmap) + __PAGE_HYPERVISOR
|
||||
idx = 1
|
||||
.rept 7
|
||||
.quad (idx << L2_PAGETABLE_SHIFT) | PAGE_HYPERVISOR | _PAGE_PSE
|
||||
@@ -130,7 +130,7 @@ GLOBAL(l2_xenmap)
|
||||
.quad 0
|
||||
idx = 1
|
||||
.rept 7
|
||||
.quad sym_phys(__image_base__) + (idx << L2_PAGETABLE_SHIFT) + (PAGE_HYPERVISOR | _PAGE_PSE)
|
||||
.quad sym_offs(__image_base__) + (idx << L2_PAGETABLE_SHIFT) + (PAGE_HYPERVISOR | _PAGE_PSE)
|
||||
idx = idx + 1
|
||||
.endr
|
||||
.fill L2_PAGETABLE_ENTRIES - 8, 8, 0
|
||||
@@ -141,7 +141,7 @@ l2_fixmap:
|
||||
idx = 0
|
||||
.rept L2_PAGETABLE_ENTRIES
|
||||
.if idx == l2_table_offset(FIXADDR_TOP - 1)
|
||||
.quad sym_phys(l1_fixmap) + __PAGE_HYPERVISOR
|
||||
.quad sym_offs(l1_fixmap) + __PAGE_HYPERVISOR
|
||||
.else
|
||||
.quad 0
|
||||
.endif
|
||||
@@ -153,7 +153,7 @@ l2_fixmap:
|
||||
l3_identmap:
|
||||
idx = 0
|
||||
.rept 4
|
||||
.quad sym_phys(l2_identmap) + (idx << PAGE_SHIFT) + __PAGE_HYPERVISOR
|
||||
.quad sym_offs(l2_identmap) + (idx << PAGE_SHIFT) + __PAGE_HYPERVISOR
|
||||
idx = idx + 1
|
||||
.endr
|
||||
.fill L3_PAGETABLE_ENTRIES - 4, 8, 0
|
||||
@@ -164,9 +164,9 @@ l3_xenmap:
|
||||
idx = 0
|
||||
.rept L3_PAGETABLE_ENTRIES
|
||||
.if idx == l3_table_offset(XEN_VIRT_START)
|
||||
.quad sym_phys(l2_xenmap) + __PAGE_HYPERVISOR
|
||||
.quad sym_offs(l2_xenmap) + __PAGE_HYPERVISOR
|
||||
.elseif idx == l3_table_offset(FIXADDR_TOP - 1)
|
||||
.quad sym_phys(l2_fixmap) + __PAGE_HYPERVISOR
|
||||
.quad sym_offs(l2_fixmap) + __PAGE_HYPERVISOR
|
||||
.else
|
||||
.quad 0
|
||||
.endif
|
||||
@@ -176,13 +176,13 @@ l3_xenmap:
|
||||
|
||||
/* Top-level master (and idle-domain) page directory. */
|
||||
GLOBAL(idle_pg_table)
|
||||
.quad sym_phys(l3_bootmap) + __PAGE_HYPERVISOR
|
||||
.quad sym_offs(l3_bootmap) + __PAGE_HYPERVISOR
|
||||
idx = 1
|
||||
.rept L4_PAGETABLE_ENTRIES - 1
|
||||
.if idx == l4_table_offset(DIRECTMAP_VIRT_START)
|
||||
.quad sym_phys(l3_identmap) + __PAGE_HYPERVISOR
|
||||
.quad sym_offs(l3_identmap) + __PAGE_HYPERVISOR
|
||||
.elseif idx == l4_table_offset(XEN_VIRT_START)
|
||||
.quad sym_phys(l3_xenmap) + __PAGE_HYPERVISOR
|
||||
.quad sym_offs(l3_xenmap) + __PAGE_HYPERVISOR
|
||||
.else
|
||||
.quad 0
|
||||
.endif
|
||||
|
||||