Revision 10c339a0 target-s390x/cpu.h

b/target-s390x/cpu.h
30 30

  
31 31
#include "softfloat.h"
32 32

  
33
#define NB_MMU_MODES 2 // guess
34
#define MMU_USER_IDX 0 // guess
33
#define NB_MMU_MODES 2
35 34

  
36 35
typedef union FPReg {
37 36
    struct {
......
77 76
}
78 77
#endif
79 78

  
79
#define MMU_MODE0_SUFFIX _kernel
80
#define MMU_MODE1_SUFFIX _user
81
#define MMU_USER_IDX 1
82
static inline int cpu_mmu_index (CPUState *env)
83
{
84
    /* XXX: Currently we don't implement virtual memory */
85
    return 0;
86
}
87

  
80 88
CPUS390XState *cpu_s390x_init(const char *cpu_model);
81 89
int cpu_s390x_exec(CPUS390XState *s);
82 90
void cpu_s390x_close(CPUS390XState *s);
......
92 100

  
93 101
#define TARGET_PAGE_BITS 12
94 102

  
103
#ifndef CONFIG_USER_ONLY
104
extern int s390_virtio_hypercall(CPUState *env);
105
extern void kvm_s390_virtio_irq(CPUState *env, int config_change, uint64_t token);
106
extern CPUState *s390_cpu_addr2state(uint16_t cpu_addr);
107
#endif
108

  
109

  
95 110
#define cpu_init cpu_s390x_init
96 111
#define cpu_exec cpu_s390x_exec
97 112
#define cpu_gen_code cpu_s390x_gen_code
......
119 134
    *cs_base = 0;
120 135
    *flags = env->psw.mask;
121 136
}
137

  
138
/* Program Status Word.  */
139
#define S390_PSWM_REGNUM 0
140
#define S390_PSWA_REGNUM 1
141
/* General Purpose Registers.  */
142
#define S390_R0_REGNUM 2
143
#define S390_R1_REGNUM 3
144
#define S390_R2_REGNUM 4
145
#define S390_R3_REGNUM 5
146
#define S390_R4_REGNUM 6
147
#define S390_R5_REGNUM 7
148
#define S390_R6_REGNUM 8
149
#define S390_R7_REGNUM 9
150
#define S390_R8_REGNUM 10
151
#define S390_R9_REGNUM 11
152
#define S390_R10_REGNUM 12
153
#define S390_R11_REGNUM 13
154
#define S390_R12_REGNUM 14
155
#define S390_R13_REGNUM 15
156
#define S390_R14_REGNUM 16
157
#define S390_R15_REGNUM 17
158
/* Access Registers.  */
159
#define S390_A0_REGNUM 18
160
#define S390_A1_REGNUM 19
161
#define S390_A2_REGNUM 20
162
#define S390_A3_REGNUM 21
163
#define S390_A4_REGNUM 22
164
#define S390_A5_REGNUM 23
165
#define S390_A6_REGNUM 24
166
#define S390_A7_REGNUM 25
167
#define S390_A8_REGNUM 26
168
#define S390_A9_REGNUM 27
169
#define S390_A10_REGNUM 28
170
#define S390_A11_REGNUM 29
171
#define S390_A12_REGNUM 30
172
#define S390_A13_REGNUM 31
173
#define S390_A14_REGNUM 32
174
#define S390_A15_REGNUM 33
175
/* Floating Point Control Word.  */
176
#define S390_FPC_REGNUM 34
177
/* Floating Point Registers.  */
178
#define S390_F0_REGNUM 35
179
#define S390_F1_REGNUM 36
180
#define S390_F2_REGNUM 37
181
#define S390_F3_REGNUM 38
182
#define S390_F4_REGNUM 39
183
#define S390_F5_REGNUM 40
184
#define S390_F6_REGNUM 41
185
#define S390_F7_REGNUM 42
186
#define S390_F8_REGNUM 43
187
#define S390_F9_REGNUM 44
188
#define S390_F10_REGNUM 45
189
#define S390_F11_REGNUM 46
190
#define S390_F12_REGNUM 47
191
#define S390_F13_REGNUM 48
192
#define S390_F14_REGNUM 49
193
#define S390_F15_REGNUM 50
194
/* Total.  */
195
#define S390_NUM_REGS 51
196

  
197
/* Pseudo registers -- PC and condition code.  */
198
#define S390_PC_REGNUM S390_NUM_REGS
199
#define S390_CC_REGNUM (S390_NUM_REGS+1)
200
#define S390_NUM_PSEUDO_REGS 2
201
#define S390_NUM_TOTAL_REGS (S390_NUM_REGS+2)
202

  
203

  
204

  
205
/* Program Status Word.  */
206
#define S390_PSWM_REGNUM 0
207
#define S390_PSWA_REGNUM 1
208
/* General Purpose Registers.  */
209
#define S390_R0_REGNUM 2
210
#define S390_R1_REGNUM 3
211
#define S390_R2_REGNUM 4
212
#define S390_R3_REGNUM 5
213
#define S390_R4_REGNUM 6
214
#define S390_R5_REGNUM 7
215
#define S390_R6_REGNUM 8
216
#define S390_R7_REGNUM 9
217
#define S390_R8_REGNUM 10
218
#define S390_R9_REGNUM 11
219
#define S390_R10_REGNUM 12
220
#define S390_R11_REGNUM 13
221
#define S390_R12_REGNUM 14
222
#define S390_R13_REGNUM 15
223
#define S390_R14_REGNUM 16
224
#define S390_R15_REGNUM 17
225
/* Access Registers.  */
226
#define S390_A0_REGNUM 18
227
#define S390_A1_REGNUM 19
228
#define S390_A2_REGNUM 20
229
#define S390_A3_REGNUM 21
230
#define S390_A4_REGNUM 22
231
#define S390_A5_REGNUM 23
232
#define S390_A6_REGNUM 24
233
#define S390_A7_REGNUM 25
234
#define S390_A8_REGNUM 26
235
#define S390_A9_REGNUM 27
236
#define S390_A10_REGNUM 28
237
#define S390_A11_REGNUM 29
238
#define S390_A12_REGNUM 30
239
#define S390_A13_REGNUM 31
240
#define S390_A14_REGNUM 32
241
#define S390_A15_REGNUM 33
242
/* Floating Point Control Word.  */
243
#define S390_FPC_REGNUM 34
244
/* Floating Point Registers.  */
245
#define S390_F0_REGNUM 35
246
#define S390_F1_REGNUM 36
247
#define S390_F2_REGNUM 37
248
#define S390_F3_REGNUM 38
249
#define S390_F4_REGNUM 39
250
#define S390_F5_REGNUM 40
251
#define S390_F6_REGNUM 41
252
#define S390_F7_REGNUM 42
253
#define S390_F8_REGNUM 43
254
#define S390_F9_REGNUM 44
255
#define S390_F10_REGNUM 45
256
#define S390_F11_REGNUM 46
257
#define S390_F12_REGNUM 47
258
#define S390_F13_REGNUM 48
259
#define S390_F14_REGNUM 49
260
#define S390_F15_REGNUM 50
261
/* Total.  */
262
#define S390_NUM_REGS 51
263

  
264
/* Pseudo registers -- PC and condition code.  */
265
#define S390_PC_REGNUM S390_NUM_REGS
266
#define S390_CC_REGNUM (S390_NUM_REGS+1)
267
#define S390_NUM_PSEUDO_REGS 2
268
#define S390_NUM_TOTAL_REGS (S390_NUM_REGS+2)
269

  
270

  
122 271
#endif

Also available in: Unified diff