=================================================================== RCS file: /cvs/prex-old/sys/arch/arm/gba/platform.h,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.1.2.1 diff -u -r1.1.1.1 -r1.1.1.1.2.1 --- prex-old/sys/arch/arm/gba/platform.h 2008/06/03 10:38:45 1.1.1.1 +++ prex-old/sys/arch/arm/gba/platform.h 2008/08/13 17:12:29 1.1.1.1.2.1 @@ -51,127 +51,45 @@ /* * Page mapping */ -#define phys_to_virt(p_addr) (void *)((u_long)(p_addr) + PAGE_OFFSET) -#define virt_to_phys(v_addr) (void *)((u_long)(v_addr) - PAGE_OFFSET) +#define phys_to_virt(pa) (void *)((char *)(pa) + PAGE_OFFSET) +#define virt_to_phys(va) (void *)((char *)(va) - PAGE_OFFSET) /* * Kernel/User Locations */ #define kern_area(addr) \ - (((u_long)(addr) >= KERNEL_BASE) && ((u_long)(addr) < KERNEL_MAX)) + (((vaddr_t)(addr) >= KERNEL_BASE) && ((vaddr_t)(addr) < KERNEL_MAX)) #define user_area(addr) \ - (((u_long)(addr) >= USER_BASE) && ((u_long)(addr) < USER_MAX)) + (((vaddr_t)(addr) >= USER_BASE) && ((vaddr_t)(addr) < USER_MAX)) /* * Interrupt */ #define NIRQS 14 /* number of interrupt vectors */ -static __inline void -interrupt_enable(void) -{ -#ifndef __lint__ - u_long val; - - __asm__ __volatile__( - "mrs %0, cpsr\n\t" - "bic %0, %0, #0xc0\n\t" /* Enable IRQ & FIQ */ - "msr cpsr_c, %0\n\t" - :"=&r" (val) - : - : "memory"); -#endif -} - -static __inline void -interrupt_disable(void) -{ -#ifndef __lint__ - u_long val; - - __asm__ __volatile__( - "mrs %0, cpsr\n\t" - "orr %0, %0, #0xc0\n\t" /* Disable IRQ & FIQ */ - "msr cpsr_c, %0\n\t" - :"=&r" (val) - : - : "memory"); -#endif -} - -static __inline void -interrupt_save(int *sts) -{ - u_long val; - - __asm__ __volatile__( - "mrs %0, cpsr\n\t" - :"=&r" (val) - : - :"memory"); - *sts = (int)val; -} - -static __inline void -interrupt_restore(int sts) -{ - - __asm__ __volatile__( - "msr cpsr_c, %0\n\t" - : - :"r" (sts) - :"memory"); -} - +extern void interrupt_enable(void); +extern void interrupt_disable(void); +extern void interrupt_save(int *sts); +extern void interrupt_restore(int sts); extern void interrupt_mask(int); extern void interrupt_unmask(int, int); extern void interrupt_setup(int, int); extern void interrupt_init(void); +extern void interrupt_handler(void); +extern void interrupt_dispatch(int); + /* Interrupt mode for interrupt_setup() */ #define IMODE_EDGE 0 /* edge trigger */ #define IMODE_LEVEL 1 /* level trigger */ extern void clock_init(void); - extern void diag_init(void); - -#ifdef CONFIG_DIAG_VBA -static __inline void -diag_print(char *buf) -{ - - __asm__ __volatile__( - "mov r0, %0\n\t" - "swi 0xff0000\n\t" /* VBA emulator call */ - : - :"r" (buf) - :"r0"); -} - -#else extern void diag_print(char *); -#endif -static __inline void -machine_idle(void) -{ - - __asm__ __volatile__( - "swi 0x20000\n\t" /* GBA BIOS call */ - :::"r0", "r1", "r2", "r3"); -} - -static __inline void -machine_reset(void) -{ - - __asm__ __volatile__( - "swi 0\n\t" /* GBA BIOS call */ - :::"r0", "r1", "r2", "r3"); -} - +extern void machine_reset(void); extern void machine_init(void); +extern void machine_idle(void); #endif /* !__ASSEMBLY__ */ #endif /* !_GBA_PLATFORM_H */