patch-2.1.121 linux/include/asm-alpha/smp.h

Next file: linux/include/asm-alpha/smplock.h
Previous file: linux/include/asm-alpha/processor.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.120/linux/include/asm-alpha/smp.h linux/include/asm-alpha/smp.h
@@ -4,6 +4,7 @@
 #ifdef __SMP__
 
 #include <linux/tasks.h>
+#include <asm/pal.h>
 
 struct cpuinfo_alpha {
 	unsigned long loops_per_sec;
@@ -15,38 +16,28 @@
 
 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()
+static __inline__ unsigned char hard_smp_processor_id(void)
+{
+	register unsigned char __r0 __asm__("$0");
+	__asm__ __volatile__(
+		"call_pal %1 #whami"
+		: "=r"(__r0)
+		:"i" (PAL_whami)
+		: "$1", "$22", "$23", "$24", "$25");
+	return __r0;
+}
+
+#define smp_processor_id()	(current->processor)
 #define cpu_logical_map(cpu)	(cpu)
+
+/* For the benefit of panic.  */
+void smp_message_pass(int target, int msg, unsigned long data, int wait);
 
 #endif /* __SMP__ */
 

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