diff options
author | Andrew Waterman <waterman@cs.berkeley.edu> | 2015-05-29 18:24:28 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@cs.berkeley.edu> | 2015-05-29 18:24:28 -0700 |
commit | cffdcee338ea682c74fa778244241e2f060199bf (patch) | |
tree | 17cbc43440db766cc5aba5a03afdc07e83e03e93 /pk/pk.h | |
parent | 835d03d2160be9ee50ba5fd892554ef62fcb13b8 (diff) | |
download | pk-cffdcee338ea682c74fa778244241e2f060199bf.zip pk-cffdcee338ea682c74fa778244241e2f060199bf.tar.gz pk-cffdcee338ea682c74fa778244241e2f060199bf.tar.bz2 |
Make boot loader/SBI changes to support SMP Linux
Diffstat (limited to 'pk/pk.h')
-rw-r--r-- | pk/pk.h | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -45,6 +45,7 @@ extern "C" { extern uintptr_t mem_size; extern int have_vm; extern uint32_t num_harts; +extern uint32_t num_harts_booted; struct mainvars* parse_args(struct mainvars*); void printk(const char* s, ...); @@ -61,6 +62,7 @@ void handle_fault_load(trapframe_t*); void handle_fault_store(trapframe_t*); void boot_loader(struct mainvars*); void run_loaded_program(struct mainvars*); +void boot_other_hart(); typedef struct { int elf64; @@ -99,6 +101,11 @@ extern int uarch_counters_enabled; extern long uarch_counters[NUM_COUNTERS]; extern char* uarch_counter_names[NUM_COUNTERS]; +static inline void wfi() +{ + asm volatile ("wfi" ::: "memory"); +} + #ifdef __cplusplus } #endif |