support xattr syscall in qemu-arm
[external/qemu.git] / softmmu_exec.h
1 /* Common softmmu definitions and inline routines.  */
2
3 /* XXX: find something cleaner.
4  * Furthermore, this is false for 64 bits targets
5  */
6 #define ldul_user       ldl_user
7 #define ldul_kernel     ldl_kernel
8 #define ldul_hypv       ldl_hypv
9 #define ldul_executive  ldl_executive
10 #define ldul_supervisor ldl_supervisor
11
12 #include "softmmu_defs.h"
13
14 #define ACCESS_TYPE 0
15 #define MEMSUFFIX MMU_MODE0_SUFFIX
16 #define DATA_SIZE 1
17 #include "softmmu_header.h"
18
19 #define DATA_SIZE 2
20 #include "softmmu_header.h"
21
22 #define DATA_SIZE 4
23 #include "softmmu_header.h"
24
25 #define DATA_SIZE 8
26 #include "softmmu_header.h"
27 #undef ACCESS_TYPE
28 #undef MEMSUFFIX
29
30 #define ACCESS_TYPE 1
31 #define MEMSUFFIX MMU_MODE1_SUFFIX
32 #define DATA_SIZE 1
33 #include "softmmu_header.h"
34
35 #define DATA_SIZE 2
36 #include "softmmu_header.h"
37
38 #define DATA_SIZE 4
39 #include "softmmu_header.h"
40
41 #define DATA_SIZE 8
42 #include "softmmu_header.h"
43 #undef ACCESS_TYPE
44 #undef MEMSUFFIX
45
46 #if (NB_MMU_MODES >= 3)
47
48 #define ACCESS_TYPE 2
49 #define MEMSUFFIX MMU_MODE2_SUFFIX
50 #define DATA_SIZE 1
51 #include "softmmu_header.h"
52
53 #define DATA_SIZE 2
54 #include "softmmu_header.h"
55
56 #define DATA_SIZE 4
57 #include "softmmu_header.h"
58
59 #define DATA_SIZE 8
60 #include "softmmu_header.h"
61 #undef ACCESS_TYPE
62 #undef MEMSUFFIX
63 #endif /* (NB_MMU_MODES >= 3) */
64
65 #if (NB_MMU_MODES >= 4)
66
67 #define ACCESS_TYPE 3
68 #define MEMSUFFIX MMU_MODE3_SUFFIX
69 #define DATA_SIZE 1
70 #include "softmmu_header.h"
71
72 #define DATA_SIZE 2
73 #include "softmmu_header.h"
74
75 #define DATA_SIZE 4
76 #include "softmmu_header.h"
77
78 #define DATA_SIZE 8
79 #include "softmmu_header.h"
80 #undef ACCESS_TYPE
81 #undef MEMSUFFIX
82 #endif /* (NB_MMU_MODES >= 4) */
83
84 #if (NB_MMU_MODES >= 5)
85
86 #define ACCESS_TYPE 4
87 #define MEMSUFFIX MMU_MODE4_SUFFIX
88 #define DATA_SIZE 1
89 #include "softmmu_header.h"
90
91 #define DATA_SIZE 2
92 #include "softmmu_header.h"
93
94 #define DATA_SIZE 4
95 #include "softmmu_header.h"
96
97 #define DATA_SIZE 8
98 #include "softmmu_header.h"
99 #undef ACCESS_TYPE
100 #undef MEMSUFFIX
101 #endif /* (NB_MMU_MODES >= 5) */
102
103 #if (NB_MMU_MODES >= 6)
104
105 #define ACCESS_TYPE 5
106 #define MEMSUFFIX MMU_MODE5_SUFFIX
107 #define DATA_SIZE 1
108 #include "softmmu_header.h"
109
110 #define DATA_SIZE 2
111 #include "softmmu_header.h"
112
113 #define DATA_SIZE 4
114 #include "softmmu_header.h"
115
116 #define DATA_SIZE 8
117 #include "softmmu_header.h"
118 #undef ACCESS_TYPE
119 #undef MEMSUFFIX
120 #endif /* (NB_MMU_MODES >= 6) */
121
122 #if (NB_MMU_MODES > 6)
123 #error "NB_MMU_MODES > 6 is not supported for now"
124 #endif /* (NB_MMU_MODES > 6) */
125
126 /* these access are slower, they must be as rare as possible */
127 #define ACCESS_TYPE (NB_MMU_MODES)
128 #define MEMSUFFIX _data
129 #define DATA_SIZE 1
130 #include "softmmu_header.h"
131
132 #define DATA_SIZE 2
133 #include "softmmu_header.h"
134
135 #define DATA_SIZE 4
136 #include "softmmu_header.h"
137
138 #define DATA_SIZE 8
139 #include "softmmu_header.h"
140 #undef ACCESS_TYPE
141 #undef MEMSUFFIX
142
143 #define ldub(p) ldub_data(p)
144 #define ldsb(p) ldsb_data(p)
145 #define lduw(p) lduw_data(p)
146 #define ldsw(p) ldsw_data(p)
147 #define ldl(p) ldl_data(p)
148 #define ldq(p) ldq_data(p)
149
150 #define stb(p, v) stb_data(p, v)
151 #define stw(p, v) stw_data(p, v)
152 #define stl(p, v) stl_data(p, v)
153 #define stq(p, v) stq_data(p, v)