*/
struct thread_info;
struct trap_per_cpu {
-/* D-cache line 1 */
+/* D-cache line 1: Basic thread information */
struct thread_info *thread;
unsigned long pgd_paddr;
unsigned long __pad1[2];
-/* D-cache line 2 */
- unsigned long __pad2[4];
+/* D-cache line 2: Sun4V Mondo Queue pointers */
+ unsigned long cpu_mondo_pa;
+ unsigned long dev_mondo_pa;
+ unsigned long resum_mondo_pa;
+ unsigned long nonresum_mondo_pa;
-/* Dcache lines 3 and 4 */
+/* Dcache lines 3 and 4: Hypervisor Fault Status */
struct hv_fault_status fault_info;
} __attribute__((aligned(64)));
extern struct trap_per_cpu trap_block[NR_CPUS];
#endif /* !(__ASSEMBLY__) */
-#define TRAP_PER_CPU_THREAD 0x00
-#define TRAP_PER_CPU_PGD_PADDR 0x08
-#define TRAP_PER_CPU_FAULT_INFO 0x20
+#define TRAP_PER_CPU_THREAD 0x00
+#define TRAP_PER_CPU_PGD_PADDR 0x08
+#define TRAP_PER_CPU_CPU_MONDO_PA 0x20
+#define TRAP_PER_CPU_DEV_MONDO_PA 0x28
+#define TRAP_PER_CPU_RESUM_MONDO_PA 0x30
+#define TRAP_PER_CPU_NONRESUM_MONDO_PA 0x38
+#define TRAP_PER_CPU_FAULT_INFO 0x40
-#define TRAP_BLOCK_SZ_SHIFT 7
+#define TRAP_BLOCK_SZ_SHIFT 7
#include <asm/scratchpad.h>