X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-ppc%2Fprocessor.h;h=b05b5d9cae2009288069b1075543adb20dbee2d7;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=0439ec64301c9d787863986dd20ca3faa76a1d5f;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/include/asm-ppc/processor.h b/include/asm-ppc/processor.h index 0439ec643..b05b5d9ca 100644 --- a/include/asm-ppc/processor.h +++ b/include/asm-ppc/processor.h @@ -34,18 +34,28 @@ /* these are arbitrary */ #define _CHRP_Motorola 0x04 /* motorola chrp, the cobra */ #define _CHRP_IBM 0x05 /* IBM chrp, the longtrail and longtrail 2 */ +#define _CHRP_Pegasos 0x06 /* Genesi/bplan's Pegasos and Pegasos2 */ #define _GLOBAL(n)\ .stabs __stringify(n:F-1),N_FUN,0,0,n;\ .globl n;\ n: +/* + * this is the minimum allowable io space due to the location + * of the io areas on prep (first one at 0x80000000) but + * as soon as I get around to remapping the io areas with the BATs + * to match the mac we can raise this. -- Cort + */ +#define TASK_SIZE (CONFIG_TASK_SIZE) + #ifndef __ASSEMBLY__ #ifdef CONFIG_PPC_MULTIPLATFORM extern int _machine; /* what kind of prep workstation we are */ extern int _prep_type; +extern int _chrp_type; /* * This is used to identify the board type from a given PReP board @@ -70,23 +80,10 @@ extern void prepare_to_copy(struct task_struct *tsk); */ extern long kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); -/* - * Bus types - */ -#define MCA_bus 0 -#define MCA_bus__is_a_macro - /* Lazy FPU handling on uni-processor */ extern struct task_struct *last_task_used_math; extern struct task_struct *last_task_used_altivec; - -/* - * this is the minimum allowable io space due to the location - * of the io areas on prep (first one at 0x80000000) but - * as soon as I get around to remapping the io areas with the BATs - * to match the mac we can raise this. -- Cort - */ -#define TASK_SIZE (CONFIG_TASK_SIZE) +extern struct task_struct *last_task_used_spe; /* This decides where the kernel will search for a free chunk of vm * space during mmap's. @@ -104,7 +101,7 @@ struct thread_struct { void *pgdir; /* root of page-table tree */ int fpexc_mode; /* floating-point exception mode */ signed long last_syscall; -#ifdef CONFIG_4xx +#if defined(CONFIG_4xx) || defined (CONFIG_BOOKE) unsigned long dbcr0; /* debug control register values */ unsigned long dbcr1; #endif @@ -119,6 +116,12 @@ struct thread_struct { unsigned long vrsave; int used_vr; /* set if process has used altivec */ #endif /* CONFIG_ALTIVEC */ +#ifdef CONFIG_SPE + unsigned long evr[32]; /* upper 32-bits of SPE regs */ + u64 acc; /* Accumulator */ + unsigned long spefscr; /* SPE & eFP status */ + int used_spe; /* set if process has used spe */ +#endif /* CONFIG_SPE */ }; #define ARCH_MIN_TASKALIGN 16 @@ -190,6 +193,8 @@ extern inline void prefetchw(const void *x) #define spin_lock_prefetch(x) prefetchw(x) +extern int emulate_altivec(struct pt_regs *regs); + #endif /* !__ASSEMBLY__ */ #endif /* __ASM_PPC_PROCESSOR_H */