diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1997-09-12 01:29:55 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1997-09-12 01:29:55 +0000 |
commit | 545f435ebcfd94a1e7c20b46efe81b4d6ac4e698 (patch) | |
tree | e9ce4bc598d06374bda906f18365984bf22a526a /include/asm-sparc64/smp.h | |
parent | 4291a610eef89d0d5c69d9a10ee6560e1aa36c74 (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.h | 50 |
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) */ |