1a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#ifndef _SPARC64_HVTRAP_H
2a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#define _SPARC64_HVTRAP_H
3a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg
4a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#ifndef __ASSEMBLY__
5a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg
6a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#include <linux/types.h>
7a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg
8a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborgstruct hvtramp_mapping {
9a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg	__u64		vaddr;
10a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg	__u64		tte;
11a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg};
12a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg
13a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborgstruct hvtramp_descr {
14a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg	__u32			cpu;
15a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg	__u32			num_mappings;
16a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg	__u64			fault_info_va;
17a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg	__u64			fault_info_pa;
18a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg	__u64			thread_reg;
19a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg	struct hvtramp_mapping	maps[1];
20a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg};
21a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg
22f05a68653e56ca2f23bccf7e50be69486886f052Sam Ravnborgvoid hv_cpu_startup(unsigned long hvdescr_pa);
23a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg
24a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#endif
25a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg
26a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#define HVTRAMP_DESCR_CPU		0x00
27a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#define HVTRAMP_DESCR_NUM_MAPPINGS	0x04
28a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#define HVTRAMP_DESCR_FAULT_INFO_VA	0x08
29a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#define HVTRAMP_DESCR_FAULT_INFO_PA	0x10
30a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#define HVTRAMP_DESCR_THREAD_REG	0x18
31a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#define HVTRAMP_DESCR_MAPS		0x20
32a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg
33a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#define HVTRAMP_MAPPING_VADDR		0x00
34a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#define HVTRAMP_MAPPING_TTE		0x08
35a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#define HVTRAMP_MAPPING_SIZE		0x10
36a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg
37a00736e936c2a1e9c36f22f6f3a69392eaab51f4Sam Ravnborg#endif /* _SPARC64_HVTRAP_H */
38