smp: Make smp_trampoline_size variable instead of symbol

This commit is contained in:
mintsuki 2022-07-28 22:30:26 +02:00
parent ccdd1ca642
commit ff7d9502e5
2 changed files with 5 additions and 5 deletions

View File

@ -40,7 +40,7 @@ struct madt_x2apic {
} __attribute__((packed));
extern symbol smp_trampoline_start;
extern symbol smp_trampoline_size;
extern size_t smp_trampoline_size;
struct trampoline_passed_info {
uint8_t smp_tpl_booted_flag;
@ -58,14 +58,14 @@ static bool smp_start_ap(uint32_t lapic_id, struct gdtr *gdtr,
// Prepare the trampoline
static void *trampoline = NULL;
if (trampoline == NULL) {
trampoline = conv_mem_alloc((size_t)smp_trampoline_size);
trampoline = conv_mem_alloc(smp_trampoline_size);
memcpy(trampoline, smp_trampoline_start, (size_t)smp_trampoline_size);
memcpy(trampoline, smp_trampoline_start, smp_trampoline_size);
}
static struct trampoline_passed_info *passed_info = NULL;
if (passed_info == NULL) {
passed_info = (void *)(((uintptr_t)trampoline + (size_t)smp_trampoline_size)
passed_info = (void *)(((uintptr_t)trampoline + smp_trampoline_size)
- sizeof(struct trampoline_passed_info));
}

View File

@ -205,4 +205,4 @@ passed_info:
smp_trampoline_end:
global smp_trampoline_size
smp_trampoline_size equ smp_trampoline_end - smp_trampoline_start
smp_trampoline_size dq smp_trampoline_end - smp_trampoline_start