--- zzzz-none-000/linux-2.4.17/include/asm-mips64/processor.h 2001-10-05 19:11:05.000000000 +0000 +++ sangam-fb-322/linux-2.4.17/include/asm-mips64/processor.h 2004-11-24 13:21:49.000000000 +0000 @@ -71,17 +71,25 @@ unsigned char p_slice; /* Physical position on node board */ hub_intmasks_t p_intmasks; /* SN0 per-CPU interrupt masks */ #endif +#if 0 + unsigned long loops_per_sec; + unsigned long pgtable_cache_sz; + unsigned long ipi_count; + unsigned long irq_attempt[NR_IRQS]; + unsigned long smp_local_irq_count; + unsigned long prof_multiplier; + unsigned long prof_counter; +#endif } __attribute__((aligned(128))); /* * System setup and hardware flags.. * XXX: Should go into mips_cpuinfo. */ -extern char wait_available; /* only available on R4[26]00 */ -extern char cyclecounter_available; /* only available from R4000 upwards. */ -extern char dedicated_iv_available; /* some embedded MIPS like Nevada */ -extern char vce_available; /* Supports VCED / VCEI exceptions */ -extern char mips4_available; /* CPU has MIPS IV ISA or better */ +extern void (*cpu_wait)(void); +extern void r3081_wait(void); +extern void r39xx_wait(void); +extern void r4k_wait(void); extern unsigned int vced_count, vcei_count; extern struct cpuinfo_mips cpu_data[]; @@ -148,12 +156,18 @@ }; /* - * FIXME: no fpu emulator yet (but who cares anyway?) + * It would be nice to add some more fields for emulator statistics, but there + * are a number of fixed offsets in offset.h and elsewhere that would have to + * be recalculated by hand. So the additional information will be private to + * the FPU emulator for now. See asm-mips/fpu_emulator.h. */ +typedef u64 fpureg_t; struct mips_fpu_soft_struct { - long dummy; + fpureg_t regs[NUM_FPU_REGS]; + unsigned int sr; }; + union mips_fpu_union { struct mips_fpu_hard_struct hard; struct mips_fpu_soft_struct soft; @@ -240,7 +254,7 @@ /* * Return saved PC of a blocked thread. */ -extern inline unsigned long thread_saved_pc(struct thread_struct *t) +static inline unsigned long thread_saved_pc(struct thread_struct *t) { extern void ret_from_sys_call(void);