struct thread_info *thread;
unsigned long pad1;
};
- extern struct global_reg_snapshot global_reg_snapshot[NR_CPUS];
+
+ struct global_pmu_snapshot {
+ unsigned long pcr[4];
+ unsigned long pic[4];
+ };
+
+ union global_cpu_snapshot {
+ struct global_reg_snapshot reg;
+ struct global_pmu_snapshot pmu;
+ };
+
+ extern union global_cpu_snapshot global_cpu_snapshot[NR_CPUS];
-#define force_successful_syscall_return() \
-do { current_thread_info()->syscall_noerror = 1; \
-} while (0)
+#define force_successful_syscall_return() set_thread_noerror(1)
#define user_mode(regs) (!((regs)->tstate & TSTATE_PRIV))
#define instruction_pointer(regs) ((regs)->tpc)
#define instruction_pointer_set(regs, val) ((regs)->tpc = (val))