patch-2.1.92 linux/include/asm-alpha/smp.h
Next file: linux/include/asm-alpha/smp_lock.h
Previous file: linux/include/asm-alpha/pyxis.h
Back to the patch index
Back to the overall index
- Lines: 53
- Date:
Mon Mar 30 00:21:41 1998
- Orig file:
v2.1.91/linux/include/asm-alpha/smp.h
- Orig date:
Fri Jan 30 11:28:09 1998
diff -u --recursive --new-file v2.1.91/linux/include/asm-alpha/smp.h linux/include/asm-alpha/smp.h
@@ -3,6 +3,51 @@
#define cpu_logical_map(cpu) (cpu)
-/* We'll get here eventually.. */
+#ifdef __SMP__
+
+#include <linux/tasks.h>
+
+struct cpuinfo_alpha {
+ unsigned long loops_per_sec;
+ unsigned int next;
+};
+
+extern struct cpuinfo_alpha cpu_data[NR_CPUS];
+
+typedef volatile struct {
+ unsigned int kernel_flag; /* 4 bytes, please */
+ unsigned int akp; /* 4 bytes, please */
+ unsigned long pc;
+ unsigned int cpu;
+} klock_info_t;
+
+extern klock_info_t klock_info;
+
+#define KLOCK_HELD 0xff
+#define KLOCK_CLEAR 0x00
+
+extern int task_lock_depth;
+
+#define PROC_CHANGE_PENALTY 20
+
+extern __volatile__ int cpu_number_map[NR_CPUS];
+
+/* HACK: Cabrio WHAMI return value is bogus if more than 8 bits used.. :-( */
+#define hard_smp_processor_id() \
+({ \
+ register unsigned char __r0 __asm__("$0"); \
+ __asm__ __volatile__( \
+ "call_pal %0" \
+ : /* no output (bound to the template) */ \
+ :"i" (PAL_whami) \
+ :"$0", "$1", "$22", "$23", "$24", "$25", "memory"); \
+ __r0; \
+})
+
+#define smp_processor_id() hard_smp_processor_id()
+
+#endif /* __SMP__ */
+
+#define NO_PROC_ID (-1)
#endif
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov