patch-2.1.97 linux/include/asm-sparc/asmmacro.h

Next file: linux/include/asm-sparc/bitops.h
Previous file: linux/include/asm-sparc/asm_offsets.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.96/linux/include/asm-sparc/asmmacro.h linux/include/asm-sparc/asmmacro.h
@@ -6,11 +6,24 @@
 #ifndef _SPARC_ASMMACRO_H
 #define _SPARC_ASMMACRO_H
 
-#define GET_PROCESSOR_ID(reg) \
+#include <linux/config.h>
+#include <asm/btfixup.h>
+#include <asm/asi.h>
+
+#define GET_PROCESSOR4M_ID(reg) \
 	rd	%tbr, %reg; \
 	srl	%reg, 12, %reg; \
 	and	%reg, 3, %reg;
 
+#define GET_PROCESSOR4D_ID(reg) \
+	lda	[%g0] ASI_M_VIKING_TMP1, %reg;
+
+/* Blackbox */
+#define GET_PROCESSOR_ID(reg) \
+	sethi	%hi(___b_smp_processor_id), %reg; \
+	sethi	%hi(boot_cpu_id), %reg; \
+	ldub	[%reg + %lo(boot_cpu_id)], %reg;
+
 #define GET_PROCESSOR_MID(reg, tmp) \
 	rd	%tbr, %reg; \
 	sethi	C_LABEL(mid_xlate), %tmp; \
@@ -19,15 +32,15 @@
 	and	%reg, 3, %reg; \
 	ldub	[%tmp + %reg], %reg;
 
-#define GET_PROCESSOR_OFFSET(reg) \
+#define GET_PROCESSOR_OFFSET(reg, tmp) \
 	GET_PROCESSOR_ID(reg) \
-	sll	%reg, 2, %reg;
-
-#define PROCESSOR_OFFSET_TO_ID(reg) \
-	srl	%reg, 2, %reg;
+	sethi	C_LABEL(cpu_offset), %tmp; \
+	sll	%reg, 2, %reg; \
+	or	%tmp, %lo(C_LABEL(cpu_offset)), %tmp; \
+	ld	[%tmp + %reg], %reg;
 
-#define PROCESSOR_ID_TO_OFFSET(reg) \
-	sll	%reg, 2, %reg;
+#define GET_PAGE_OFFSET(reg) \
+	sethi	BTFIXUP_SETHI_INIT(page_offset,0xf0000000), %reg;
 
 /* All trap entry points _must_ begin with this macro or else you
  * lose.  It makes sure the kernel has a proper window so that
@@ -42,5 +55,16 @@
 
 /* All traps low-level code here must end with this macro. */
 #define RESTORE_ALL b ret_trap_entry; clr %l6;
+
+/* sun4 probably wants half word accesses to ASI_SEGMAP, while sun4c+
+   likes byte accesses. These are to avoid ifdef mania. */
+
+#ifdef CONFIG_SUN4
+#define lduXa	lduha
+#define stXa	stha
+#else
+#define lduXa	lduba
+#define stXa	stba
+#endif
 
 #endif /* !(_SPARC_ASMMACRO_H) */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov