xref: /kvm-unit-tests/lib/x86/smp.h (revision a322d4c597bb7a4de7985e7b51b80504f7e4fdda)
1 #ifndef __SMP_H
2 #define __SMP_H
3 
4 #define mb() 	asm volatile("mfence":::"memory")
5 #define rmb()	asm volatile("lfence":::"memory")
6 #define wmb()	asm volatile("sfence" ::: "memory")
7 
8 struct spinlock {
9     int v;
10 };
11 
12 void smp_init(void);
13 
14 int cpu_count(void);
15 int smp_id(void);
16 void on_cpu(int cpu, void (*function)(void *data), void *data);
17 void on_cpu_async(int cpu, void (*function)(void *data), void *data);
18 void spin_lock(struct spinlock *lock);
19 void spin_unlock(struct spinlock *lock);
20 
21 #endif
22