18 #ifndef _COBALT_UAPI_ASM_GENERIC_FEATURES_H
19 #define _COBALT_UAPI_ASM_GENERIC_FEATURES_H
21 #include <linux/types.h>
23 #define XNFEAT_STRING_LEN 64
25 struct cobalt_featinfo {
40 char feat_all_s[XNFEAT_STRING_LEN];
41 char feat_man_s[XNFEAT_STRING_LEN];
42 char feat_req_s[XNFEAT_STRING_LEN];
43 char feat_mis_s[XNFEAT_STRING_LEN];
45 struct cobalt_featinfo_archdep feat_arch;
48 #define __xn_feat_smp 0x80000000
49 #define __xn_feat_nosmp 0x40000000
50 #define __xn_feat_fastsynch 0x20000000
51 #define __xn_feat_nofastsynch 0x10000000
52 #define __xn_feat_control 0x08000000
53 #define __xn_feat_prioceiling 0x04000000
56 #define __xn_feat_smp_mask __xn_feat_smp
58 #define __xn_feat_smp_mask __xn_feat_nosmp
67 #define __xn_feat_fastsynch_mask __xn_feat_fastsynch
70 #define __xn_feat_generic_mask \
71 (__xn_feat_smp_mask | \
72 __xn_feat_fastsynch_mask | \
73 __xn_feat_prioceiling)
82 #define __xn_feat_generic_man_mask \
83 (__xn_feat_fastsynch | \
84 __xn_feat_nofastsynch | \
86 __xn_feat_prioceiling)
89 const char *get_generic_feature_label(
unsigned int feature)
96 case __xn_feat_fastsynch:
98 case __xn_feat_nofastsynch:
100 case __xn_feat_control:
102 case __xn_feat_prioceiling:
103 return "prioceiling";
109 static inline int check_abi_revision(
unsigned long abirev)
111 return abirev == XENOMAI_ABI_REV;