1 #ifndef __XEN_STOP_MACHINE_H__ 2 #define __XEN_STOP_MACHINE_H__ 3 4 /** 5 * stop_machine_run: freeze the machine on all CPUs and run this function 6 * @fn: the function to run 7 * @data: the data ptr for the @fn() 8 * @cpu: the cpu to run @fn() on (or all, if @cpu == NR_CPUS). 9 * 10 * Description: This causes every other cpu to enter a safe point, with 11 * each of which disables interrupts, and finally interrupts are disabled 12 * on the current CPU. The result is that none is holding a spinlock 13 * or inside any other preempt-disabled region when @fn() runs. 14 * 15 * This can be thought of as a very heavy write lock, equivalent to 16 * grabbing every spinlock in the kernel. */ 17 int stop_machine_run(int (*fn)(void *), void *data, unsigned int cpu); 18 19 #endif /* __XEN_STOP_MACHINE_H__ */ 20