00001
00006 #ifndef __L4_FPAGE_COMMON_H__
00007 #define __L4_FPAGE_COMMON_H__
00008
00018 typedef struct {
00019 l4_umword_t snd_base;
00020 l4_fpage_t fpage;
00021 } l4_snd_fpage_t;
00022
00023
00027 enum
00028 {
00029 L4_FPAGE_RO = 0,
00030 L4_FPAGE_RW = 1,
00031 L4_FPAGE_MAP = 0,
00032 L4_FPAGE_GRANT = 1
00033 };
00034
00035
00039 enum l4_fpage_cacheability_opt_t
00040 {
00042 L4_FPAGE_CACHE_OPT = 0x1,
00043
00045 L4_FPAGE_CACHEABLE = 0x3,
00046
00048 L4_FPAGE_BUFFERABLE = 0x5,
00049
00051 L4_FPAGE_UNCACHEABLE = 0x1
00052 };
00053
00054
00058 enum
00059 {
00061 L4_WHOLE_IOADDRESS_SPACE = 16,
00062
00064 L4_IOPORT_MAX = (1L << L4_WHOLE_IOADDRESS_SPACE)
00065 };
00066
00067
00071 enum
00072 {
00074 L4_WHOLE_CAPADDRESS_SPACE = 11,
00075
00077 L4_CAP_MAX = (1L << L4_WHOLE_CAPADDRESS_SPACE)
00078 };
00079
00080
00094 L4_INLINE l4_fpage_t
00095 l4_fpage(unsigned long address, unsigned int size,
00096 unsigned char write, unsigned char grant);
00097
00098
00110 L4_INLINE l4_fpage_t
00111 l4_iofpage(unsigned port, unsigned int size, unsigned char grant);
00112
00113
00121 L4_INLINE int
00122 l4_is_io_page_fault(unsigned long address);
00123
00124
00137 L4_INLINE l4_fpage_t
00138 l4_capfpage(unsigned taskno, unsigned int order, unsigned char grant);
00139
00140 #endif