libdragon
|
00001 00006 #ifndef __LIBDRAGON_N64SYS_H 00007 #define __LIBDRAGON_N64SYS_H 00008 00022 #define UncachedAddr(_addr) ((void *)(((unsigned long)(_addr))|0x20000000)) 00023 00032 #define UncachedShortAddr(_addr) ((short *)(((unsigned long)(_addr))|0x20000000)) 00033 00042 #define UncachedUShortAddr(_addr) ((unsigned short *)(((unsigned long)(_addr))|0x20000000)) 00043 00052 #define UncachedLongAddr(_addr) ((long *)(((unsigned long)(_addr))|0x20000000)) 00053 00062 #define UncachedULongAddr(_addr) ((unsigned long *)(((unsigned long)(_addr))|0x20000000)) 00063 00072 #define CachedAddr(_addr) (((void *)(((unsigned long)(_addr))&~0x20000000)) 00073 00081 #define MEMORY_BARRIER() asm volatile ("" : : : "memory") 00082 00083 #ifdef __cplusplus 00084 extern "C" { 00085 #endif 00086 00087 int sys_get_boot_cic(); 00088 void sys_set_boot_cic(int bc); 00089 volatile unsigned long get_ticks( void ); 00090 volatile unsigned long get_ticks_ms( void ); 00091 void wait_ticks( unsigned long wait ); 00092 void wait_ms( unsigned long wait ); 00093 00094 void data_cache_hit_invalidate(volatile void *, unsigned long); 00095 void data_cache_hit_writeback(volatile void *, unsigned long); 00096 void data_cache_hit_writeback_invalidate(volatile void *, unsigned long); 00097 void data_cache_index_writeback_invalidate(volatile void *, unsigned long); 00098 void inst_cache_hit_writeback(volatile void *, unsigned long); 00099 void inst_cache_hit_invalidate(volatile void *, unsigned long); 00100 void inst_cache_index_invalidate(volatile void *, unsigned long); 00101 00102 #ifdef __cplusplus 00103 } 00104 #endif 00105 00113 #define COUNTS_PER_SECOND (93750000/2) 00114 00117 #endif