xref: /kvm-unit-tests/lib/x86/smp.h (revision cc47ddc1a5785a5b995be5afab95ccc13b1cec6e)
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