libdragon
n64sys.h
Go to the documentation of this file.
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
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines