multicalls.h
来自「linux 内核源代码」· C头文件 代码 · 共 49 行
H
49 行
#ifndef _XEN_MULTICALLS_H#define _XEN_MULTICALLS_H#include "xen-ops.h"/* Multicalls */struct multicall_space{ struct multicall_entry *mc; void *args;};/* Allocate room for a multicall and its args */struct multicall_space __xen_mc_entry(size_t args);DECLARE_PER_CPU(unsigned long, xen_mc_irq_flags);/* Call to start a batch of multiple __xen_mc_entry()s. Must be paired with xen_mc_issue() */static inline void xen_mc_batch(void){ /* need to disable interrupts until this entry is complete */ local_irq_save(__get_cpu_var(xen_mc_irq_flags));}static inline struct multicall_space xen_mc_entry(size_t args){ xen_mc_batch(); return __xen_mc_entry(args);}/* Flush all pending multicalls */void xen_mc_flush(void);/* Issue a multicall if we're not in a lazy mode */static inline void xen_mc_issue(unsigned mode){ if ((paravirt_get_lazy_mode() & mode) == 0) xen_mc_flush(); /* restore flags saved in xen_mc_batch */ local_irq_restore(x86_read_percpu(xen_mc_irq_flags));}/* Set up a callback to be called when the current batch is flushed */void xen_mc_callback(void (*fn)(void *), void *data);#endif /* _XEN_MULTICALLS_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?