1 #ifndef __SMP_H 2 #define __SMP_H 3 #include <asm/spinlock.h> 4 5 #define mb() asm volatile("mfence":::"memory") 6 #define rmb() asm volatile("lfence":::"memory") 7 #define wmb() asm volatile("sfence" ::: "memory") 8 9 void smp_init(void); 10 11 int cpu_count(void); 12 int smp_id(void); 13 void on_cpu(int cpu, void (*function)(void *data), void *data); 14 void on_cpu_async(int cpu, void (*function)(void *data), void *data); 15 16 #endif 17