summaryrefslogtreecommitdiffstats
path: root/include/asm-sparc64/smp.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1997-09-12 01:29:55 +0000
committerRalf Baechle <ralf@linux-mips.org>1997-09-12 01:29:55 +0000
commit545f435ebcfd94a1e7c20b46efe81b4d6ac4e698 (patch)
treee9ce4bc598d06374bda906f18365984bf22a526a /include/asm-sparc64/smp.h
parent4291a610eef89d0d5c69d9a10ee6560e1aa36c74 (diff)
Merge with Linux 2.1.55. More bugfixes and goodies from my private
CVS archive.
Diffstat (limited to 'include/asm-sparc64/smp.h')
-rw-r--r--include/asm-sparc64/smp.h50
1 files changed, 16 insertions, 34 deletions
diff --git a/include/asm-sparc64/smp.h b/include/asm-sparc64/smp.h
index 116f83237..363be0fe9 100644
--- a/include/asm-sparc64/smp.h
+++ b/include/asm-sparc64/smp.h
@@ -6,6 +6,7 @@
#ifndef _SPARC64_SMP_H
#define _SPARC64_SMP_H
+#include <linux/tasks.h>
#include <asm/asi.h>
#ifndef __ASSEMBLY__
@@ -29,8 +30,20 @@ extern struct prom_cpuinfo linux_cpus[NR_CPUS];
/* Per processor Sparc parameters we need. */
+/* Keep this a multiple of 64-bytes for cache reasons. */
struct cpuinfo_sparc {
- unsigned long udelay_val; /* that's it */
+ /* Dcache line 1 */
+ unsigned long irq_count;
+ unsigned int multiplier;
+ unsigned int counter;
+ unsigned long last_tlbversion_seen;
+ unsigned long pgcache_size;
+
+ /* Dcache line 2 */
+ unsigned long *pgd_cache;
+ unsigned long *pmd_cache;
+ unsigned long *pte_cache;
+ unsigned long udelay_val;
};
extern struct cpuinfo_sparc cpu_data[NR_CPUS];
@@ -49,21 +62,8 @@ extern struct klock_info klock_info;
* Private routines/data
*/
-extern int smp_found_cpus;
extern unsigned char boot_cpu_id;
extern unsigned long cpu_present_map;
-extern __volatile__ unsigned long smp_invalidate_needed[NR_CPUS];
-extern __volatile__ unsigned long kernel_counter;
-extern __volatile__ unsigned char active_kernel_processor;
-extern void smp_message_irq(void);
-extern unsigned long ipi_count;
-extern __volatile__ unsigned long kernel_counter;
-extern __volatile__ unsigned long syscall_count;
-
-extern void print_lock_state(void);
-
-typedef void (*smpfunc_t)(unsigned long, unsigned long, unsigned long,
- unsigned long, unsigned long);
/*
* General functions that each host system must provide.
@@ -88,30 +88,12 @@ extern __inline__ int hard_smp_processor_id(void)
#define smp_processor_id() (current->processor)
-extern __volatile__ unsigned long smp_proc_in_lock[NR_CPUS]; /* for computing process time */
#endif /* !(__ASSEMBLY__) */
-/* Sparc specific messages. */
-#define MSG_CROSS_CALL 0x0005 /* run func on cpus */
-
-/* Empirical PROM processor mailbox constants. If the per-cpu mailbox
- * contains something other than one of these then the ipi is from
- * Linux's active_kernel_processor. This facility exists so that
- * the boot monitor can capture all the other cpus when one catches
- * a watchdog reset or the user enters the monitor using L1-A keys.
- */
-#define MBOX_STOPCPU 0xFB
-#define MBOX_IDLECPU 0xFC
-#define MBOX_IDLECPU2 0xFD
-#define MBOX_STOPCPU2 0xFE
-
-#define PROC_CHANGE_PENALTY 20
-
-#define SMP_FROM_INT 1
-#define SMP_FROM_SYSCALL 2
+#define PROC_CHANGE_PENALTY 20
#endif /* !(__SMP__) */
-#define NO_PROC_ID 0xFF
+#define NO_PROC_ID 0xFF
#endif /* !(_SPARC64_SMP_H) */