diff options
Diffstat (limited to 'arch/ia64/include/asm')
-rw-r--r-- | arch/ia64/include/asm/fpu.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/gcc_intrin.h | 1 | ||||
-rw-r--r-- | arch/ia64/include/asm/intrinsics.h | 1 | ||||
-rw-r--r-- | arch/ia64/include/asm/kvm.h | 52 | ||||
-rw-r--r-- | arch/ia64/include/asm/kvm_host.h | 18 | ||||
-rw-r--r-- | arch/ia64/include/asm/msidef.h | 42 | ||||
-rw-r--r-- | arch/ia64/include/asm/percpu.h | 4 | ||||
-rw-r--r-- | arch/ia64/include/asm/socket.h | 3 | ||||
-rw-r--r-- | arch/ia64/include/asm/swab.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/topology.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/uv/uv.h | 13 |
11 files changed, 124 insertions, 16 deletions
diff --git a/arch/ia64/include/asm/fpu.h b/arch/ia64/include/asm/fpu.h index 3859558ff0a4..0c26157cffa5 100644 --- a/arch/ia64/include/asm/fpu.h +++ b/arch/ia64/include/asm/fpu.h | |||
@@ -6,8 +6,6 @@ | |||
6 | * David Mosberger-Tang <davidm@hpl.hp.com> | 6 | * David Mosberger-Tang <davidm@hpl.hp.com> |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <asm/types.h> | ||
10 | |||
11 | /* floating point status register: */ | 9 | /* floating point status register: */ |
12 | #define FPSR_TRAP_VD (1 << 0) /* invalid op trap disabled */ | 10 | #define FPSR_TRAP_VD (1 << 0) /* invalid op trap disabled */ |
13 | #define FPSR_TRAP_DD (1 << 1) /* denormal trap disabled */ | 11 | #define FPSR_TRAP_DD (1 << 1) /* denormal trap disabled */ |
diff --git a/arch/ia64/include/asm/gcc_intrin.h b/arch/ia64/include/asm/gcc_intrin.h index 0f5b55921758..c2c5fd8fcac4 100644 --- a/arch/ia64/include/asm/gcc_intrin.h +++ b/arch/ia64/include/asm/gcc_intrin.h | |||
@@ -6,6 +6,7 @@ | |||
6 | * Copyright (C) 2002,2003 Suresh Siddha <suresh.b.siddha@intel.com> | 6 | * Copyright (C) 2002,2003 Suresh Siddha <suresh.b.siddha@intel.com> |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/types.h> | ||
9 | #include <linux/compiler.h> | 10 | #include <linux/compiler.h> |
10 | 11 | ||
11 | /* define this macro to get some asm stmts included in 'c' files */ | 12 | /* define this macro to get some asm stmts included in 'c' files */ |
diff --git a/arch/ia64/include/asm/intrinsics.h b/arch/ia64/include/asm/intrinsics.h index a3e44a5ed497..c47830e26cb7 100644 --- a/arch/ia64/include/asm/intrinsics.h +++ b/arch/ia64/include/asm/intrinsics.h | |||
@@ -10,6 +10,7 @@ | |||
10 | 10 | ||
11 | #ifndef __ASSEMBLY__ | 11 | #ifndef __ASSEMBLY__ |
12 | 12 | ||
13 | #include <linux/types.h> | ||
13 | /* include compiler specific intrinsics */ | 14 | /* include compiler specific intrinsics */ |
14 | #include <asm/ia64regs.h> | 15 | #include <asm/ia64regs.h> |
15 | #ifdef __INTEL_COMPILER | 16 | #ifdef __INTEL_COMPILER |
diff --git a/arch/ia64/include/asm/kvm.h b/arch/ia64/include/asm/kvm.h index bfa86b6af7cd..18a7e49abbc5 100644 --- a/arch/ia64/include/asm/kvm.h +++ b/arch/ia64/include/asm/kvm.h | |||
@@ -21,8 +21,7 @@ | |||
21 | * | 21 | * |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <asm/types.h> | 24 | #include <linux/types.h> |
25 | |||
26 | #include <linux/ioctl.h> | 25 | #include <linux/ioctl.h> |
27 | 26 | ||
28 | /* Select x86 specific features in <linux/kvm.h> */ | 27 | /* Select x86 specific features in <linux/kvm.h> */ |
@@ -166,7 +165,40 @@ struct saved_vpd { | |||
166 | unsigned long vcpuid[5]; | 165 | unsigned long vcpuid[5]; |
167 | unsigned long vpsr; | 166 | unsigned long vpsr; |
168 | unsigned long vpr; | 167 | unsigned long vpr; |
169 | unsigned long vcr[128]; | 168 | union { |
169 | unsigned long vcr[128]; | ||
170 | struct { | ||
171 | unsigned long dcr; | ||
172 | unsigned long itm; | ||
173 | unsigned long iva; | ||
174 | unsigned long rsv1[5]; | ||
175 | unsigned long pta; | ||
176 | unsigned long rsv2[7]; | ||
177 | unsigned long ipsr; | ||
178 | unsigned long isr; | ||
179 | unsigned long rsv3; | ||
180 | unsigned long iip; | ||
181 | unsigned long ifa; | ||
182 | unsigned long itir; | ||
183 | unsigned long iipa; | ||
184 | unsigned long ifs; | ||
185 | unsigned long iim; | ||
186 | unsigned long iha; | ||
187 | unsigned long rsv4[38]; | ||
188 | unsigned long lid; | ||
189 | unsigned long ivr; | ||
190 | unsigned long tpr; | ||
191 | unsigned long eoi; | ||
192 | unsigned long irr[4]; | ||
193 | unsigned long itv; | ||
194 | unsigned long pmv; | ||
195 | unsigned long cmcv; | ||
196 | unsigned long rsv5[5]; | ||
197 | unsigned long lrr0; | ||
198 | unsigned long lrr1; | ||
199 | unsigned long rsv6[46]; | ||
200 | }; | ||
201 | }; | ||
170 | }; | 202 | }; |
171 | 203 | ||
172 | struct kvm_regs { | 204 | struct kvm_regs { |
@@ -214,4 +246,18 @@ struct kvm_sregs { | |||
214 | struct kvm_fpu { | 246 | struct kvm_fpu { |
215 | }; | 247 | }; |
216 | 248 | ||
249 | #define KVM_IA64_VCPU_STACK_SHIFT 16 | ||
250 | #define KVM_IA64_VCPU_STACK_SIZE (1UL << KVM_IA64_VCPU_STACK_SHIFT) | ||
251 | |||
252 | struct kvm_ia64_vcpu_stack { | ||
253 | unsigned char stack[KVM_IA64_VCPU_STACK_SIZE]; | ||
254 | }; | ||
255 | |||
256 | struct kvm_debug_exit_arch { | ||
257 | }; | ||
258 | |||
259 | /* for KVM_SET_GUEST_DEBUG */ | ||
260 | struct kvm_guest_debug_arch { | ||
261 | }; | ||
262 | |||
217 | #endif | 263 | #endif |
diff --git a/arch/ia64/include/asm/kvm_host.h b/arch/ia64/include/asm/kvm_host.h index 348663661659..4542651e6acb 100644 --- a/arch/ia64/include/asm/kvm_host.h +++ b/arch/ia64/include/asm/kvm_host.h | |||
@@ -112,7 +112,11 @@ | |||
112 | #define VCPU_STRUCT_SHIFT 16 | 112 | #define VCPU_STRUCT_SHIFT 16 |
113 | #define VCPU_STRUCT_SIZE (__IA64_UL_CONST(1) << VCPU_STRUCT_SHIFT) | 113 | #define VCPU_STRUCT_SIZE (__IA64_UL_CONST(1) << VCPU_STRUCT_SHIFT) |
114 | 114 | ||
115 | #define KVM_STK_OFFSET VCPU_STRUCT_SIZE | 115 | /* |
116 | * This must match KVM_IA64_VCPU_STACK_{SHIFT,SIZE} arch/ia64/include/asm/kvm.h | ||
117 | */ | ||
118 | #define KVM_STK_SHIFT 16 | ||
119 | #define KVM_STK_OFFSET (__IA64_UL_CONST(1)<< KVM_STK_SHIFT) | ||
116 | 120 | ||
117 | #define KVM_VM_STRUCT_SHIFT 19 | 121 | #define KVM_VM_STRUCT_SHIFT 19 |
118 | #define KVM_VM_STRUCT_SIZE (__IA64_UL_CONST(1) << KVM_VM_STRUCT_SHIFT) | 122 | #define KVM_VM_STRUCT_SIZE (__IA64_UL_CONST(1) << KVM_VM_STRUCT_SHIFT) |
@@ -153,10 +157,10 @@ struct kvm_vm_data { | |||
153 | struct kvm_vcpu_data vcpu_data[KVM_MAX_VCPUS]; | 157 | struct kvm_vcpu_data vcpu_data[KVM_MAX_VCPUS]; |
154 | }; | 158 | }; |
155 | 159 | ||
156 | #define VCPU_BASE(n) KVM_VM_DATA_BASE + \ | 160 | #define VCPU_BASE(n) (KVM_VM_DATA_BASE + \ |
157 | offsetof(struct kvm_vm_data, vcpu_data[n]) | 161 | offsetof(struct kvm_vm_data, vcpu_data[n])) |
158 | #define VM_BASE KVM_VM_DATA_BASE + \ | 162 | #define KVM_VM_BASE (KVM_VM_DATA_BASE + \ |
159 | offsetof(struct kvm_vm_data, kvm_vm_struct) | 163 | offsetof(struct kvm_vm_data, kvm_vm_struct)) |
160 | #define KVM_MEM_DIRTY_LOG_BASE KVM_VM_DATA_BASE + \ | 164 | #define KVM_MEM_DIRTY_LOG_BASE KVM_VM_DATA_BASE + \ |
161 | offsetof(struct kvm_vm_data, kvm_mem_dirty_log) | 165 | offsetof(struct kvm_vm_data, kvm_mem_dirty_log) |
162 | 166 | ||
@@ -235,8 +239,6 @@ struct kvm_vm_data { | |||
235 | 239 | ||
236 | struct kvm; | 240 | struct kvm; |
237 | struct kvm_vcpu; | 241 | struct kvm_vcpu; |
238 | struct kvm_guest_debug{ | ||
239 | }; | ||
240 | 242 | ||
241 | struct kvm_mmio_req { | 243 | struct kvm_mmio_req { |
242 | uint64_t addr; /* physical address */ | 244 | uint64_t addr; /* physical address */ |
@@ -462,6 +464,8 @@ struct kvm_arch { | |||
462 | unsigned long metaphysical_rr4; | 464 | unsigned long metaphysical_rr4; |
463 | unsigned long vmm_init_rr; | 465 | unsigned long vmm_init_rr; |
464 | 466 | ||
467 | int online_vcpus; | ||
468 | |||
465 | struct kvm_ioapic *vioapic; | 469 | struct kvm_ioapic *vioapic; |
466 | struct kvm_vm_stat stat; | 470 | struct kvm_vm_stat stat; |
467 | struct kvm_sal_data rdv_sal_data; | 471 | struct kvm_sal_data rdv_sal_data; |
diff --git a/arch/ia64/include/asm/msidef.h b/arch/ia64/include/asm/msidef.h new file mode 100644 index 000000000000..592c1047a0c5 --- /dev/null +++ b/arch/ia64/include/asm/msidef.h | |||
@@ -0,0 +1,42 @@ | |||
1 | #ifndef _IA64_MSI_DEF_H | ||
2 | #define _IA64_MSI_DEF_H | ||
3 | |||
4 | /* | ||
5 | * Shifts for APIC-based data | ||
6 | */ | ||
7 | |||
8 | #define MSI_DATA_VECTOR_SHIFT 0 | ||
9 | #define MSI_DATA_VECTOR(v) (((u8)v) << MSI_DATA_VECTOR_SHIFT) | ||
10 | #define MSI_DATA_VECTOR_MASK 0xffffff00 | ||
11 | |||
12 | #define MSI_DATA_DELIVERY_MODE_SHIFT 8 | ||
13 | #define MSI_DATA_DELIVERY_FIXED (0 << MSI_DATA_DELIVERY_MODE_SHIFT) | ||
14 | #define MSI_DATA_DELIVERY_LOWPRI (1 << MSI_DATA_DELIVERY_MODE_SHIFT) | ||
15 | |||
16 | #define MSI_DATA_LEVEL_SHIFT 14 | ||
17 | #define MSI_DATA_LEVEL_DEASSERT (0 << MSI_DATA_LEVEL_SHIFT) | ||
18 | #define MSI_DATA_LEVEL_ASSERT (1 << MSI_DATA_LEVEL_SHIFT) | ||
19 | |||
20 | #define MSI_DATA_TRIGGER_SHIFT 15 | ||
21 | #define MSI_DATA_TRIGGER_EDGE (0 << MSI_DATA_TRIGGER_SHIFT) | ||
22 | #define MSI_DATA_TRIGGER_LEVEL (1 << MSI_DATA_TRIGGER_SHIFT) | ||
23 | |||
24 | /* | ||
25 | * Shift/mask fields for APIC-based bus address | ||
26 | */ | ||
27 | |||
28 | #define MSI_ADDR_DEST_ID_SHIFT 4 | ||
29 | #define MSI_ADDR_HEADER 0xfee00000 | ||
30 | |||
31 | #define MSI_ADDR_DEST_ID_MASK 0xfff0000f | ||
32 | #define MSI_ADDR_DEST_ID_CPU(cpu) ((cpu) << MSI_ADDR_DEST_ID_SHIFT) | ||
33 | |||
34 | #define MSI_ADDR_DEST_MODE_SHIFT 2 | ||
35 | #define MSI_ADDR_DEST_MODE_PHYS (0 << MSI_ADDR_DEST_MODE_SHIFT) | ||
36 | #define MSI_ADDR_DEST_MODE_LOGIC (1 << MSI_ADDR_DEST_MODE_SHIFT) | ||
37 | |||
38 | #define MSI_ADDR_REDIRECTION_SHIFT 3 | ||
39 | #define MSI_ADDR_REDIRECTION_CPU (0 << MSI_ADDR_REDIRECTION_SHIFT) | ||
40 | #define MSI_ADDR_REDIRECTION_LOWPRI (1 << MSI_ADDR_REDIRECTION_SHIFT) | ||
41 | |||
42 | #endif/* _IA64_MSI_DEF_H */ | ||
diff --git a/arch/ia64/include/asm/percpu.h b/arch/ia64/include/asm/percpu.h index 77f30b664b4e..30cf46534dd2 100644 --- a/arch/ia64/include/asm/percpu.h +++ b/arch/ia64/include/asm/percpu.h | |||
@@ -27,12 +27,12 @@ extern void *per_cpu_init(void); | |||
27 | 27 | ||
28 | #else /* ! SMP */ | 28 | #else /* ! SMP */ |
29 | 29 | ||
30 | #define PER_CPU_ATTRIBUTES __attribute__((__section__(".data.percpu"))) | ||
31 | |||
32 | #define per_cpu_init() (__phys_per_cpu_start) | 30 | #define per_cpu_init() (__phys_per_cpu_start) |
33 | 31 | ||
34 | #endif /* SMP */ | 32 | #endif /* SMP */ |
35 | 33 | ||
34 | #define PER_CPU_BASE_SECTION ".data.percpu" | ||
35 | |||
36 | /* | 36 | /* |
37 | * Be extremely careful when taking the address of this variable! Due to virtual | 37 | * Be extremely careful when taking the address of this variable! Due to virtual |
38 | * remapping, it is different from the canonical address returned by __get_cpu_var(var)! | 38 | * remapping, it is different from the canonical address returned by __get_cpu_var(var)! |
diff --git a/arch/ia64/include/asm/socket.h b/arch/ia64/include/asm/socket.h index d5ef0aa3e312..745421225ec6 100644 --- a/arch/ia64/include/asm/socket.h +++ b/arch/ia64/include/asm/socket.h | |||
@@ -63,4 +63,7 @@ | |||
63 | 63 | ||
64 | #define SO_MARK 36 | 64 | #define SO_MARK 36 |
65 | 65 | ||
66 | #define SO_TIMESTAMPING 37 | ||
67 | #define SCM_TIMESTAMPING SO_TIMESTAMPING | ||
68 | |||
66 | #endif /* _ASM_IA64_SOCKET_H */ | 69 | #endif /* _ASM_IA64_SOCKET_H */ |
diff --git a/arch/ia64/include/asm/swab.h b/arch/ia64/include/asm/swab.h index 6aa58b699eea..c89a8cb5d8a5 100644 --- a/arch/ia64/include/asm/swab.h +++ b/arch/ia64/include/asm/swab.h | |||
@@ -6,7 +6,7 @@ | |||
6 | * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co. | 6 | * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <asm/types.h> | 9 | #include <linux/types.h> |
10 | #include <asm/intrinsics.h> | 10 | #include <asm/intrinsics.h> |
11 | #include <linux/compiler.h> | 11 | #include <linux/compiler.h> |
12 | 12 | ||
diff --git a/arch/ia64/include/asm/topology.h b/arch/ia64/include/asm/topology.h index 32f3af1641c5..3193f4417e16 100644 --- a/arch/ia64/include/asm/topology.h +++ b/arch/ia64/include/asm/topology.h | |||
@@ -84,7 +84,7 @@ void build_cpu_to_node_map(void); | |||
84 | .child = NULL, \ | 84 | .child = NULL, \ |
85 | .groups = NULL, \ | 85 | .groups = NULL, \ |
86 | .min_interval = 8, \ | 86 | .min_interval = 8, \ |
87 | .max_interval = 8*(min(num_online_cpus(), 32)), \ | 87 | .max_interval = 8*(min(num_online_cpus(), 32U)), \ |
88 | .busy_factor = 64, \ | 88 | .busy_factor = 64, \ |
89 | .imbalance_pct = 125, \ | 89 | .imbalance_pct = 125, \ |
90 | .cache_nice_tries = 2, \ | 90 | .cache_nice_tries = 2, \ |
diff --git a/arch/ia64/include/asm/uv/uv.h b/arch/ia64/include/asm/uv/uv.h new file mode 100644 index 000000000000..61b5bdfd980e --- /dev/null +++ b/arch/ia64/include/asm/uv/uv.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifndef _ASM_IA64_UV_UV_H | ||
2 | #define _ASM_IA64_UV_UV_H | ||
3 | |||
4 | #include <asm/system.h> | ||
5 | #include <asm/sn/simulator.h> | ||
6 | |||
7 | static inline int is_uv_system(void) | ||
8 | { | ||
9 | /* temporary support for running on hardware simulator */ | ||
10 | return IS_MEDUSA() || ia64_platform_is("uv"); | ||
11 | } | ||
12 | |||
13 | #endif /* _ASM_IA64_UV_UV_H */ | ||