[BACK]Return to platform.h CVS log [TXT][DIR] Up to [local] / prex-old / sys / arch / arm / gba

Diff for /prex-old/sys/arch/arm/gba/platform.h between version 1.1.1.1 and 1.1.1.1.2.1

version 1.1.1.1, 2008/06/03 10:38:45 version 1.1.1.1.2.1, 2008/08/13 17:12:29
Line 51 
Line 51 
 /*  /*
  * Page mapping   * Page mapping
  */   */
 #define phys_to_virt(p_addr)    (void *)((u_long)(p_addr) + PAGE_OFFSET)  #define phys_to_virt(pa)        (void *)((char *)(pa) + PAGE_OFFSET)
 #define virt_to_phys(v_addr)    (void *)((u_long)(v_addr) - PAGE_OFFSET)  #define virt_to_phys(va)        (void *)((char *)(va) - PAGE_OFFSET)
   
 /*  /*
  * Kernel/User Locations   * Kernel/User Locations
  */   */
 #define kern_area(addr) \  #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) \  #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   * Interrupt
  */   */
 #define NIRQS           14              /* number of interrupt vectors */  #define NIRQS           14              /* number of interrupt vectors */
   
 static __inline void  extern void interrupt_enable(void);
 interrupt_enable(void)  extern void interrupt_disable(void);
 {  extern void interrupt_save(int *sts);
 #ifndef __lint__  extern void interrupt_restore(int sts);
         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_mask(int);  extern void interrupt_mask(int);
 extern void interrupt_unmask(int, int);  extern void interrupt_unmask(int, int);
 extern void interrupt_setup(int, int);  extern void interrupt_setup(int, int);
 extern void interrupt_init(void);  extern void interrupt_init(void);
   extern void interrupt_handler(void);
   extern void interrupt_dispatch(int);
   
   
 /* Interrupt mode for interrupt_setup() */  /* Interrupt mode for interrupt_setup() */
 #define IMODE_EDGE      0               /* edge trigger */  #define IMODE_EDGE      0               /* edge trigger */
 #define IMODE_LEVEL     1               /* level trigger */  #define IMODE_LEVEL     1               /* level trigger */
   
 extern void clock_init(void);  extern void clock_init(void);
   
 extern void diag_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 *);  extern void diag_print(char *);
 #endif  
   
 static __inline void  extern void machine_reset(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_init(void);  extern void machine_init(void);
   extern void machine_idle(void);
   
 #endif /* !__ASSEMBLY__ */  #endif /* !__ASSEMBLY__ */
 #endif /* !_GBA_PLATFORM_H */  #endif /* !_GBA_PLATFORM_H */

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.1.2.1

CVSweb