cpu: rename _cpu() to current_cpu()

This commit is contained in:
Matheus
2024-09-15 19:03:09 -03:00
parent 56d665d5a0
commit 16b6c86a5f
14 changed files with 94 additions and 94 deletions
+9 -9
View File
@@ -166,26 +166,26 @@ void arch_apic_initap() {
interrupt_register(0xff, spurious, NULL, IPL_IGNORE);
writelapic(APIC_REG_SPURIOUS, 0x1FF);
_cpu()->id = readlapic(APIC_REG_ID) >> 24;
current_cpu()->id = readlapic(APIC_REG_ID) >> 24;
// get the acpi id for the local nmi sources
for (size_t i = 0; i < lapiccount; ++i) {
struct acpi_madt_lapic *current = getentry(ACPI_MADT_ENTRY_TYPE_LAPIC, i);
if (_cpu()->id == current->id) {
_cpu()->acpiid = current->uid;
if (current_cpu()->id == current->id) {
current_cpu()->acpiid = current->uid;
break;
}
}
printf("processor id: %lu (APIC) %lu (ACPI)\n", _cpu()->id, _cpu()->acpiid);
printf("processor id: %lu (APIC) %lu (ACPI)\n", current_cpu()->id, current_cpu()->acpiid);
isr_t *nmiisr = interrupt_allocate(nmi, NULL, IPL_MAX); // MAX IPL because NMI
__assert(nmiisr);
for (size_t i = 0; i < lapicnmicount; ++i) {
struct acpi_madt_lapic_nmi* current = getentry(ACPI_MADT_ENTRY_TYPE_LAPIC_NMI, i);
if (current->uid == _cpu()->acpiid || current->uid == 0xff)
if (current->uid == current_cpu()->acpiid || current->uid == 0xff)
writelapic(APIC_LVT_LINT0 + 0x10 * current->lint, (nmiisr->id & 0xff) | LVT_DELIVERY_NMI | (current->flags << 12));
}
}
@@ -204,7 +204,7 @@ static time_t stoptimer() {
}
static void timerisr(isr_t *isr, context_t *context) {
timer_isr(_cpu()->timer, context);
timer_isr(current_cpu()->timer, context);
}
static void armtimer(time_t ticks) {
@@ -233,12 +233,12 @@ void arch_apic_timerinit() {
writelapic(APIC_TIMER_INITIALCOUNT, 0);
printf("cpu%lu: local apic timer calibrated at %lu ticks per us. ISR vector %lu\n", _cpu()->id, ticksperus, vec);
printf("cpu%lu: local apic timer calibrated at %lu ticks per us. ISR vector %lu\n", current_cpu()->id, ticksperus, vec);
writelapic(APIC_LVT_TIMER, vec);
_cpu()->timer = timer_new(ticksperus, armtimer, stoptimer);
__assert(_cpu()->timer);
current_cpu()->timer = timer_new(ticksperus, armtimer, stoptimer);
__assert(current_cpu()->timer);
}
void arch_apic_sendipi(uint8_t cpu, uint8_t vec, uint8_t dest, uint8_t mode, uint8_t level) {
+5 -5
View File
@@ -21,18 +21,18 @@ typedef struct {
} __attribute__((packed)) gdtr_t;
void arch_gdt_reload() {
memcpy(_cpu()->gdt, template, sizeof(template));
uintptr_t istaddr = (uintptr_t)&_cpu()->ist;
memcpy(current_cpu()->gdt, template, sizeof(template));
uintptr_t istaddr = (uintptr_t)&current_cpu()->ist;
// add ist to gdt
_cpu()->gdt[5] |= ((istaddr & 0xff000000) << 32) | ((istaddr & 0xff0000) << 16) | ((istaddr & 0xffff) << 16) | sizeof(ist_t);
_cpu()->gdt[6] = (istaddr >> 32) & 0xffffffff;
current_cpu()->gdt[5] |= ((istaddr & 0xff000000) << 32) | ((istaddr & 0xff0000) << 16) | ((istaddr & 0xffff) << 16) | sizeof(ist_t);
current_cpu()->gdt[6] = (istaddr >> 32) & 0xffffffff;
// reload gdt and ist
gdtr_t gdtr = {
.size = sizeof(template) - 1,
.address = (uintptr_t)&_cpu()->gdt
.address = (uintptr_t)&current_cpu()->gdt
};
asm volatile("lgdt (%%rax)" : : "a"(&gdtr) : "memory");
+1 -1
View File
@@ -81,7 +81,7 @@ void arch_idt_reload() {
for (int i = 0; i < 32; ++i)
interrupt_register(i, exceptisr, NULL, IPL_IGNORE);
_cpu()->ipl = IPL_NORMAL;
current_cpu()->ipl = IPL_NORMAL;
interrupt_set(true);
}
+1 -1
View File
@@ -232,7 +232,7 @@ void arch_mmu_tlbshootdown(void *page) {
mmupage = page;
remaining = arch_smp_cpusawake - 1;
arch_smp_sendipi(NULL, &_cpu()->isr[0xfe], ARCH_SMP_IPI_OTHERCPUS, false);
arch_smp_sendipi(NULL, &current_cpu()->isr[0xfe], ARCH_SMP_IPI_OTHERCPUS, false);
while (__atomic_load_n(&remaining, __ATOMIC_SEQ_CST)) CPU_PAUSE();
+1 -1
View File
@@ -44,7 +44,7 @@ void arch_smp_sendipi(cpu_t *targcpu, isr_t *isr, int target, bool nmi) {
}
void arch_smp_haltallothers() {
arch_smp_sendipi(NULL, &_cpu()->isr[0xfd], ARCH_SMP_IPI_OTHERCPUS, true);
arch_smp_sendipi(NULL, &current_cpu()->isr[0xfd], ARCH_SMP_IPI_OTHERCPUS, true);
}
void arch_smp_wakeup() {