xref: /illumos-kvm-cmd/target-ia64/cpu.h (revision 68396ea9)
1 /*
2  * IA64 virtual CPU header
3  *
4  *  Copyright (c) 2003 Fabrice Bellard
5  *
6  *  Copyright (c) 2007 Intel Corporation
7  *  Zhang xiantao <xiantao.zhang@intel.com>
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public
11  * License as published by the Free Software Foundation; either
12  * version 2 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22  */
23 #ifndef CPU_IA64_H
24 #define CPU_IA64_H
25 #include "config.h"
26 #include "ia64intrin.h"
27 
28 #include<string.h>
29 
30 #define TARGET_LONG_BITS 64
31 
32 #define TARGET_PAGE_BITS 16
33 
34 #define ELF_MACHINE	EM_IA_64
35 
36 #define NB_MMU_MODES 2
37 #define CPU_PAL_HALT 1
38 #define HF_HALTED_MASK       (1 << CPU_PAL_HALT)
39 
40 #include "cpu-defs.h"
41 
42 #include "softfloat.h"
43 
44 #define CPUState struct CPUIA64State
45 
46 typedef struct CPUIA64State {
47     CPU_COMMON;
48     uint32_t hflags;
49     int mp_state;
50 } CPUIA64State;
51 
52 #define cpu_gen_code cpu_ia64_gen_code
53 #define cpu_init cpu_ia64_init
54 #define cpu_signal_handler cpu_ia64_signal_handler
55 
56 extern struct CPUIA64State *env;
57 int cpu_get_pic_interrupt(CPUIA64State *s);
58 int cpu_exec(CPUState *env1);
59 CPUState *cpu_ia64_init(const char * cpu_model);
60 
cpu_mmu_index(CPUState * env)61 static inline int cpu_mmu_index (CPUState *env)
62 {
63     return 0;
64 }
65 
66 #define CPU_PC_FROM_TB(env, tb) do{}while(0)
67 
68 #include "cpu-all.h"
69 
70 /*
71  * These ones really should go to the appropriate tcg header file, if/when
72  * tcg support is added for ia64.
73  */
74 void tcg_dump_info(FILE *f,
75                    int (*cpu_fprintf)(FILE *f, const char *fmt, ...));
76 
cpu_get_tb_cpu_state(CPUState * env,target_ulong * pc,target_ulong * cs_base,int * flags)77 static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc,
78                                         target_ulong *cs_base, int *flags)
79 {
80     *pc = 0;
81     *cs_base = 0;
82     *flags = 0;
83 }
84 
85 #endif
86