⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vcpumask.h

📁 xen 3.2.2 源码
💻 H
字号:
#ifndef __XEN_VCPUMASK_H#define __XEN_VCPUMASK_H/* vcpu mask   stolen from cpumask.h */typedef struct { DECLARE_BITMAP(bits, MAX_VIRT_CPUS); } vcpumask_t;#define vcpu_set(vcpu, dst) __vcpu_set((vcpu), &(dst))static inline void __vcpu_set(int vcpu, volatile vcpumask_t *dstp){    set_bit(vcpu, dstp->bits);}#define vcpus_clear(dst) __vcpus_clear(&(dst), MAX_VIRT_CPUS)static inline void __vcpus_clear(vcpumask_t *dstp, int nbits){    bitmap_zero(dstp->bits, nbits);}/* No static inline type checking - see Subtlety (1) above. */#define vcpu_isset(vcpu, vcpumask) test_bit((vcpu), (vcpumask).bits)#define first_vcpu(src) __first_vcpu(&(src), MAX_VIRT_CPUS)static inline int __first_vcpu(const vcpumask_t *srcp, int nbits){    return min_t(int, nbits, find_first_bit(srcp->bits, nbits));}#define next_vcpu(n, src) __next_vcpu((n), &(src), MAX_VIRT_CPUS)static inline int __next_vcpu(int n, const vcpumask_t *srcp, int nbits){    return min_t(int, nbits, find_next_bit(srcp->bits, nbits, n+1));}#if MAX_VIRT_CPUS > 1#define for_each_vcpu_mask(vcpu, mask)          \    for ((vcpu) = first_vcpu(mask);             \         (vcpu) < MAX_VIRT_CPUS;                \         (vcpu) = next_vcpu((vcpu), (mask)))#else /* NR_CPUS == 1 */#define for_each_vcpu_mask(vcpu, mask) for ((vcpu) = 0; (vcpu) < 1; (vcpu)++)#endif /* NR_CPUS */#define vcpumask_scnprintf(buf, len, src) \        __vcpumask_scnprintf((buf), (len), &(src), MAX_VIRT_CPUS)static inline int __vcpumask_scnprintf(char *buf, int len,                                       const vcpumask_t *srcp, int nbits){    return bitmap_scnprintf(buf, len, srcp->bits, nbits);}#endif /* __XEN_VCPUMASK_H *//* * Local variables: * mode: C * c-set-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil * End: */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -