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
- Lines: 66
- Date:
Tue Apr 14 17:44:23 1998
- Orig file:
v2.1.96/linux/include/asm-sparc/asmmacro.h
- Orig date:
Tue May 13 22:41:17 1997
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