• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • Examples
  • File List
  • Globals

include/nucleus/vdso.h

Go to the documentation of this file.
00001 #ifndef _XENO_NUCLEUS_VDSO_H
00002 #define _XENO_NUCLEUS_VDSO_H
00003 
00026 #include <nucleus/types.h>
00027 #include <nucleus/hostrt.h>
00028 
00029 /*
00030  * Data shared between Xenomai kernel/userland and the Linux kernel/userland
00031  * on the global semaphore heap. The features element indicates which data are
00032  * shared. Notice that struct xnvdso may only grow, but never shrink.
00033  */
00034 struct xnvdso {
00035         unsigned long long features;
00036 
00037         struct xnvdso_hostrt_data hostrt_data;
00038         /*
00039          * Embed further domain specific structures that
00040          * describe the shared data here
00041          */
00042 };
00043 
00044 /*
00045  * For each shared feature, add a flag below. For now, the set is still
00046  * empty.
00047  */
00048 /*
00049 #define XNVDSO_FEAT_A   0x0000000000000001ULL
00050 #define XNVDSO_FEAT_B   0x0000000000000002ULL
00051 #define XNVDSO_FEAT_C   0x0000000000000004ULL
00052 #define XNVDSO_FEATURES (XNVDSO_FEAT_A | XNVDSO_FEAT_B | XVDSO_FEAT_C)
00053 */
00054 #define XNVDSO_FEAT_HOST_REALTIME       0x0000000000000001ULL
00055 #ifdef CONFIG_XENO_OPT_HOSTRT
00056 #define XNVDSO_FEATURES XNVDSO_FEAT_HOST_REALTIME
00057 #else
00058 #define XNVDSO_FEATURES 0
00059 #endif /* CONFIG_XENO_OPT_HOSTRT */
00060 
00061 extern struct xnvdso *nkvdso;
00062 
00063 static inline struct xnvdso_hostrt_data *get_hostrt_data(void)
00064 {
00065         return &nkvdso->hostrt_data;
00066 }
00067 
00068 static inline int xnvdso_test_feature(unsigned long long feature)
00069 {
00070         return testbits(nkvdso->features, feature);
00071 }
00072 
00073 extern void xnheap_init_vdso(void);
00074 #endif /* _XENO_NUCLEUS_VDSO_H */

Generated on Tue Jul 10 2012 20:41:22 for Xenomai API by  doxygen 1.7.1