1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
#ifndef __ASM_ARM_SYSTEM_H
#define __ASM_ARM_SYSTEM_H
#include <linux/config.h>
/* The type of machine we're running on */
extern unsigned int machine_type;
#define MACH_TYPE_EBSA110 0
#define MACH_TYPE_RISCPC 1
#define MACH_TYPE_NEXUSPCI 3
#define MACH_TYPE_EBSA285 4
#define MACH_TYPE_NETWINDER 5
#define MACH_TYPE_CATS 6
#define MACH_TYPE_TBOX 7
#ifdef CONFIG_ARCH_EBSA285
#define machine_is_ebsa285() (1)
#else
#define machine_is_ebsa285() (0)
#endif
#ifdef CONFIG_ARCH_VNC
#define machine_is_netwinder() (1)
#else
#define machine_is_netwinder() (0)
#endif
#if defined(CONFIG_CATS)
#define machine_is_cats() (machine_type == MACH_TYPE_CATS)
#else
#define machine_is_cats() (0)
#endif
#if 0
#define machine_is_ebsa285() (machine_type == MACH_TYPE_EBSA285)
#define machine_is_netwinder() (machine_type == MACH_TYPE_NETWINDER)
#endif
#include <linux/kernel.h>
#include <asm/proc-fns.h>
extern void arm_malalignedptr(const char *, void *, volatile void *);
extern void arm_invalidptr(const char *, int);
#define xchg(ptr,x) \
((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
#define tas(ptr) (xchg((ptr),1))
/*
* switch_to(prev, next) should switch from task `prev' to `next'
* `prev' will never be the same as `next'.
*
* `next' and `prev' should be struct task_struct, but it isn't always defined
*/
#define switch_to(prev,next) processor._switch_to(prev,next)
/*
* Include processor dependent parts
*/
#include <asm/proc/system.h>
#include <asm/arch/system.h>
#define mb() __asm__ __volatile__ ("" : : : "memory")
#define nop() __asm__ __volatile__("mov r0,r0\n\t");
extern asmlinkage void __backtrace(void);
#endif
|