#ifndef _ASM_M32R_PROCESSOR_H
#define _ASM_M32R_PROCESSOR_H
-/* $Id$ */
-
/*
+ * include/asm-m32r/processor.h
+ *
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
- * Copyright (C) 2001 by Hiroyuki Kondo, Hirokazu Takata, and Hitoshi Yamamoto
+ * Copyright (C) 1994 Linus Torvalds
+ * Copyright (C) 2001 Hiroyuki Kondo, Hirokazu Takata, and Hitoshi Yamamoto
+ * Copyright (C) 2004 Hirokazu Takata <takata at linux-m32r.org>
*/
-/*
- * include/asm-m32r/processor.h
- *
- * Copyright (C) 1994 Linus Torvalds
- */
#include <linux/kernel.h>
-#include <linux/config.h>
#include <asm/cache.h>
#include <asm/ptrace.h> /* pt_regs */
-#include <asm/cachectl.h>
-
/*
* Default implementation of macro that returns current
* instruction pointer ("program counter").
extern struct cpuinfo_m32r cpu_data[];
#define current_cpu_data cpu_data[smp_processor_id()]
#else
-#define cpu_data &boot_cpu_data
+#define cpu_data (&boot_cpu_data)
#define current_cpu_data boot_cpu_data
#endif
unsigned long seg;
} mm_segment_t;
+#define MAX_TRAPS 10
+
struct debug_trap {
int nr_trap;
- unsigned long addr;
- unsigned long insn;
+ unsigned long addr[MAX_TRAPS];
+ unsigned long insn[MAX_TRAPS];
};
struct thread_struct {
#define THREAD_SIZE (2*PAGE_SIZE)
-/* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */
-static __inline__ void rep_nop(void)
-{
- __asm__ __volatile__(
- "nop \n\t"
- "nop \n\t"
- :
- :
- : "memory");
-}
-
-#define cpu_relax() rep_nop()
+#define cpu_relax() barrier()
#endif /* _ASM_M32R_PROCESSOR_H */