00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _POSIX_INTR_H
00019 #define _POSIX_INTR_H
00020
00021 #include <nucleus/synch.h>
00022 #include <nucleus/intr.h>
00023
00024 #if defined(__KERNEL__) || defined(__XENO_SIM__)
00025
00026 #define PTHREAD_IDESC(xintr) ((struct pse51_interrupt *)(xintr)->cookie)
00027
00028 struct pse51_interrupt {
00029
00030 unsigned magic;
00031
00032 xnintr_t intr_base;
00033
00034 xnholder_t link;
00035
00036 #define link2intr(ln) container_of(ln, struct pse51_interrupt, link)
00037
00038 #if defined(__KERNEL__) && defined(CONFIG_XENO_OPT_PERVASIVE)
00039
00040 int mode;
00041
00042 int pending;
00043
00044 xnsynch_t synch_base;
00045
00046 #endif
00047 };
00048
00049 #ifdef __cplusplus
00050 extern "C" {
00051 #endif
00052
00053 void pse51_intrq_cleanup(pse51_kqueues_t *q);
00054
00055 void pse51_intr_pkg_init(void);
00056
00057 void pse51_intr_pkg_cleanup(void);
00058
00059 #ifdef __cplusplus
00060 }
00061 #endif
00062
00063 #endif
00064
00065 #endif