1*c085f386SAlexander von Gluck IV /* 2*c085f386SAlexander von Gluck IV * Copyright 2019, Adrien Destugues, pulkomandy@pulkomandy.tk. 3*c085f386SAlexander von Gluck IV * Distributed under the terms of the MIT License. 4*c085f386SAlexander von Gluck IV */ 5*c085f386SAlexander von Gluck IV 6*c085f386SAlexander von Gluck IV 7*c085f386SAlexander von Gluck IV #include <KernelExport.h> 8*c085f386SAlexander von Gluck IV 9*c085f386SAlexander von Gluck IV #include <arch/cpu.h> 10*c085f386SAlexander von Gluck IV #include <boot/kernel_args.h> 11*c085f386SAlexander von Gluck IV #include <commpage.h> 12*c085f386SAlexander von Gluck IV #include <elf.h> 13*c085f386SAlexander von Gluck IV 14*c085f386SAlexander von Gluck IV 15*c085f386SAlexander von Gluck IV status_t 16*c085f386SAlexander von Gluck IV arch_cpu_preboot_init_percpu(kernel_args *args, int curr_cpu) 17*c085f386SAlexander von Gluck IV { 18*c085f386SAlexander von Gluck IV return B_OK; 19*c085f386SAlexander von Gluck IV } 20*c085f386SAlexander von Gluck IV 21*c085f386SAlexander von Gluck IV 22*c085f386SAlexander von Gluck IV status_t 23*c085f386SAlexander von Gluck IV arch_cpu_init_percpu(kernel_args *args, int curr_cpu) 24*c085f386SAlexander von Gluck IV { 25*c085f386SAlexander von Gluck IV //detect_cpu(curr_cpu); 26*c085f386SAlexander von Gluck IV 27*c085f386SAlexander von Gluck IV // we only support one anyway... 28*c085f386SAlexander von Gluck IV return 0; 29*c085f386SAlexander von Gluck IV } 30*c085f386SAlexander von Gluck IV 31*c085f386SAlexander von Gluck IV 32*c085f386SAlexander von Gluck IV status_t 33*c085f386SAlexander von Gluck IV arch_cpu_init(kernel_args *args) 34*c085f386SAlexander von Gluck IV { 35*c085f386SAlexander von Gluck IV return B_OK; 36*c085f386SAlexander von Gluck IV } 37*c085f386SAlexander von Gluck IV 38*c085f386SAlexander von Gluck IV 39*c085f386SAlexander von Gluck IV status_t 40*c085f386SAlexander von Gluck IV arch_cpu_init_post_vm(kernel_args *args) 41*c085f386SAlexander von Gluck IV { 42*c085f386SAlexander von Gluck IV return B_OK; 43*c085f386SAlexander von Gluck IV } 44*c085f386SAlexander von Gluck IV 45*c085f386SAlexander von Gluck IV 46*c085f386SAlexander von Gluck IV status_t 47*c085f386SAlexander von Gluck IV arch_cpu_init_post_modules(kernel_args *args) 48*c085f386SAlexander von Gluck IV { 49*c085f386SAlexander von Gluck IV return B_OK; 50*c085f386SAlexander von Gluck IV } 51*c085f386SAlexander von Gluck IV 52*c085f386SAlexander von Gluck IV 53*c085f386SAlexander von Gluck IV void 54*c085f386SAlexander von Gluck IV arch_cpu_sync_icache(void *address, size_t len) 55*c085f386SAlexander von Gluck IV { 56*c085f386SAlexander von Gluck IV } 57*c085f386SAlexander von Gluck IV 58*c085f386SAlexander von Gluck IV 59*c085f386SAlexander von Gluck IV void 60*c085f386SAlexander von Gluck IV arch_cpu_memory_read_barrier(void) 61*c085f386SAlexander von Gluck IV { 62*c085f386SAlexander von Gluck IV } 63*c085f386SAlexander von Gluck IV 64*c085f386SAlexander von Gluck IV 65*c085f386SAlexander von Gluck IV void 66*c085f386SAlexander von Gluck IV arch_cpu_memory_write_barrier(void) 67*c085f386SAlexander von Gluck IV { 68*c085f386SAlexander von Gluck IV } 69*c085f386SAlexander von Gluck IV 70*c085f386SAlexander von Gluck IV 71*c085f386SAlexander von Gluck IV void 72*c085f386SAlexander von Gluck IV arch_cpu_invalidate_TLB_range(addr_t start, addr_t end) 73*c085f386SAlexander von Gluck IV { 74*c085f386SAlexander von Gluck IV } 75*c085f386SAlexander von Gluck IV 76*c085f386SAlexander von Gluck IV 77*c085f386SAlexander von Gluck IV void 78*c085f386SAlexander von Gluck IV arch_cpu_invalidate_TLB_list(addr_t pages[], int num_pages) 79*c085f386SAlexander von Gluck IV { 80*c085f386SAlexander von Gluck IV } 81*c085f386SAlexander von Gluck IV 82*c085f386SAlexander von Gluck IV 83*c085f386SAlexander von Gluck IV void 84*c085f386SAlexander von Gluck IV arch_cpu_global_TLB_invalidate(void) 85*c085f386SAlexander von Gluck IV { 86*c085f386SAlexander von Gluck IV } 87*c085f386SAlexander von Gluck IV 88*c085f386SAlexander von Gluck IV 89*c085f386SAlexander von Gluck IV void 90*c085f386SAlexander von Gluck IV arch_cpu_user_TLB_invalidate(void) 91*c085f386SAlexander von Gluck IV { 92*c085f386SAlexander von Gluck IV } 93*c085f386SAlexander von Gluck IV 94*c085f386SAlexander von Gluck IV 95*c085f386SAlexander von Gluck IV status_t 96*c085f386SAlexander von Gluck IV arch_cpu_shutdown(bool reboot) 97*c085f386SAlexander von Gluck IV { 98*c085f386SAlexander von Gluck IV return B_ERROR; 99*c085f386SAlexander von Gluck IV } 100