#ifndef _ZENTIFIC_NODE_H #define _ZENTIFIC_NODE_H #include "defines.h" #include "common.h" #include "types.h" #include "zlist.h" //this hurts, BUT we can detect // any cpu feature we want, including vmx/svm #define CONST_ADDR (*(const volatile long *) addr) //static inline int constant_test_bit(int nr, const volatile void *addr); //static inline int variable_test_bit(int nr, const volatile void *addr); inline int constant_test_bit(int nr, const volatile void *addr); inline int variable_test_bit(int nr, const volatile void *addr); #define test_bit(nr, addr) ({ \ if ( bitop_bad_size(addr) ) __bitop_bad_size(); \ (__builtin_constant_p(nr) ? \ constant_test_bit((nr),(addr)) : \ variable_test_bit((nr),(addr))); \ }) //from include/asm-x86/cpufeature.h #define X86_FEATURE_VMXE (4*32+ 5) /* Virtual Machine Extensions */ #define X86_FEATURE_SVME (6*32+ 2) /* Secure Virtual Machine */ extern void __bitop_bad_size(void); #define bitop_bad_size(addr) (sizeof(*(addr)) < 4) host * populate_node(int xc_handle); void free_host(host *a); host * new_host(); #endif