* -- BenH.
*/
+/* Platforms codes (to be obsoleted) */
+#define PLATFORM_PSERIES 0x0100
+#define PLATFORM_PSERIES_LPAR 0x0101
+#define PLATFORM_ISERIES_LPAR 0x0201
+#define PLATFORM_LPAR 0x0001
+#define PLATFORM_POWERMAC 0x0400
+#define PLATFORM_MAPLE 0x0500
+#define PLATFORM_PREP 0x0600
+#define PLATFORM_CHRP 0x0700
+#define PLATFORM_CELL 0x1000
+
+/* Compat platform codes for 32 bits */
+#define _MACH_prep PLATFORM_PREP
+#define _MACH_Pmac PLATFORM_POWERMAC
+#define _MACH_chrp PLATFORM_CHRP
+
/* PREP sub-platform types see residual.h for these */
#define _PREP_Motorola 0x01 /* motorola prep */
#define _PREP_Firm 0x02 /* firmworks prep */
#define _CHRP_IBM 0x05 /* IBM chrp, the longtrail and longtrail 2 */
#define _CHRP_Pegasos 0x06 /* Genesi/bplan's Pegasos and Pegasos2 */
-#if defined(__KERNEL__) && defined(CONFIG_PPC32)
+#ifdef __KERNEL__
+#define platform_is_pseries() (_machine == PLATFORM_PSERIES || \
+ _machine == PLATFORM_PSERIES_LPAR)
+#define platform_is_lpar() (!!(_machine & PLATFORM_LPAR))
-extern int _chrp_type;
+#if defined(CONFIG_PPC_MULTIPLATFORM)
+extern int _machine;
-#ifdef CONFIG_PPC_PREP
+#ifdef CONFIG_PPC32
/* 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
extern unsigned char ucBoardRev;
extern unsigned char ucBoardRevMaj, ucBoardRevMin;
-#endif /* CONFIG_PPC_PREP */
+#endif /* CONFIG_PPC32 */
-#ifndef CONFIG_PPC_MULTIPLATFORM
+#elif defined(CONFIG_PPC_ISERIES)
+/*
+ * iSeries is soon to become MULTIPLATFORM hopefully ...
+ */
+#define _machine PLATFORM_ISERIES_LPAR
+#else
#define _machine 0
#endif /* CONFIG_PPC_MULTIPLATFORM */
-
-#endif /* defined(__KERNEL__) && defined(CONFIG_PPC32) */
-
+#endif /* __KERNEL__ */
/*
* Default implementation of macro that returns current
* instruction pointer ("program counter").
#define cpu_relax() barrier()
#endif
-/* Check that a certain kernel stack pointer is valid in task_struct p */
-int validate_sp(unsigned long sp, struct task_struct *p,
- unsigned long nbytes);
-
/*
* Prefetch macros.
*/
#define HAVE_ARCH_PICK_MMAP_LAYOUT
#endif
-#ifdef CONFIG_PPC_CELL /* MAMBO SIMULATION code */
-#define MSR_SIM_LG 29
-#define MSR_SIM __MASK(MSR_SIM_LG)
-
-static __inline__ int __onsim(void)
-{
- unsigned long msr;
- __asm__ __volatile__ ("mfmsr %0" : "=&r" (msr));
- return ((msr & MSR_SIM) ? 1 : 0);
-}
-#endif /* CONFIG_PPC_CELL */
-
#endif /* __KERNEL__ */
-#else
-/* must be given a register to perform the compare, set cr0 = 1
- * Usage: __onsim(r0); bne _if_onsim
- */
-#define __onsim(r) mfmsr r; rldicl. r,r,35,63
#endif /* __ASSEMBLY__ */
#endif /* _ASM_POWERPC_PROCESSOR_H */