17d36db35SAvi Kivity #ifndef __SMP_H 27d36db35SAvi Kivity #define __SMP_H 3*cc47ddc1SAndrew Jones #include <asm/spinlock.h> 47d36db35SAvi Kivity 5762b9476SJason Wang #define mb() asm volatile("mfence":::"memory") 6762b9476SJason Wang #define rmb() asm volatile("lfence":::"memory") 7762b9476SJason Wang #define wmb() asm volatile("sfence" ::: "memory") 8762b9476SJason Wang 97d36db35SAvi Kivity void smp_init(void); 107d36db35SAvi Kivity 117d36db35SAvi Kivity int cpu_count(void); 127d36db35SAvi Kivity int smp_id(void); 137d36db35SAvi Kivity void on_cpu(int cpu, void (*function)(void *data), void *data); 147d36db35SAvi Kivity void on_cpu_async(int cpu, void (*function)(void *data), void *data); 157d36db35SAvi Kivity 167d36db35SAvi Kivity #endif 17