Mercurial > ecos-v2_0-branch
comparison packages/kernel/current/tests/kcache1.c @ 10:d3fbcdfa1b2f ecos-sw-1999-05-29
Merge from eCos master repository on 1999-05-29-00:13:11-BST
| author | jlarmour |
|---|---|
| date | Fri, 28 May 1999 16:43:09 +0000 |
| parents | 443894e2e912 |
| children | 306eee292492 |
comparison
equal
deleted
inserted
replaced
| 9:95cc44ea0068 | 10:d3fbcdfa1b2f |
|---|---|
| 49 #include <cyg/hal/hal_intr.h> | 49 #include <cyg/hal/hal_intr.h> |
| 50 | 50 |
| 51 // ------------------------------------------------------------------------- | 51 // ------------------------------------------------------------------------- |
| 52 // If the HAL does not supply this, we supply our own version | 52 // If the HAL does not supply this, we supply our own version |
| 53 | 53 |
| 54 #ifndef HAL_DCACHE_PURGE_ALL | 54 #ifdef HAL_DCACHE_SYNC |
| 55 | |
| 56 # define HAL_DCACHE_PURGE_ALL() HAL_DCACHE_SYNC() | |
| 57 | |
| 58 #else | |
| 55 | 59 |
| 56 static cyg_uint8 dca[HAL_DCACHE_SIZE + HAL_DCACHE_LINE_SIZE*2]; | 60 static cyg_uint8 dca[HAL_DCACHE_SIZE + HAL_DCACHE_LINE_SIZE*2]; |
| 57 | 61 |
| 58 #define HAL_DCACHE_PURGE_ALL() \ | 62 #define HAL_DCACHE_PURGE_ALL() \ |
| 59 CYG_MACRO_START \ | 63 CYG_MACRO_START \ |
| 129 | 133 |
| 130 static void entry0( cyg_addrword_t data ) | 134 static void entry0( cyg_addrword_t data ) |
| 131 { | 135 { |
| 132 register CYG_INTERRUPT_STATE oldints; | 136 register CYG_INTERRUPT_STATE oldints; |
| 133 | 137 |
| 138 #ifdef HAL_CACHE_UNIFIED | |
| 139 | |
| 140 HAL_DISABLE_INTERRUPTS(oldints); | |
| 141 HAL_DCACHE_PURGE_ALL(); // rely on above definition | |
| 142 HAL_UCACHE_INVALIDATE_ALL(); | |
| 143 HAL_UCACHE_DISABLE(); | |
| 144 HAL_RESTORE_INTERRUPTS(oldints); | |
| 145 CYG_TEST_INFO("Cache off"); | |
| 146 time1(); | |
| 147 | |
| 148 HAL_DISABLE_INTERRUPTS(oldints); | |
| 149 HAL_DCACHE_PURGE_ALL(); // rely on above definition | |
| 150 HAL_UCACHE_INVALIDATE_ALL(); | |
| 151 HAL_UCACHE_ENABLE(); | |
| 152 HAL_RESTORE_INTERRUPTS(oldints); | |
| 153 CYG_TEST_INFO("Cache on"); | |
| 154 time1(); | |
| 155 | |
| 156 #else // HAL_CACHE_UNIFIED | |
| 157 | |
| 134 HAL_DISABLE_INTERRUPTS(oldints); | 158 HAL_DISABLE_INTERRUPTS(oldints); |
| 135 HAL_DCACHE_PURGE_ALL(); | 159 HAL_DCACHE_PURGE_ALL(); |
| 136 HAL_ICACHE_INVALIDATE_ALL(); | 160 HAL_ICACHE_INVALIDATE_ALL(); |
| 137 HAL_DCACHE_INVALIDATE_ALL(); | 161 HAL_DCACHE_INVALIDATE_ALL(); |
| 138 HAL_ICACHE_DISABLE(); | 162 HAL_ICACHE_DISABLE(); |
| 179 HAL_ICACHE_DISABLE(); | 203 HAL_ICACHE_DISABLE(); |
| 180 HAL_DCACHE_DISABLE(); | 204 HAL_DCACHE_DISABLE(); |
| 181 HAL_RESTORE_INTERRUPTS(oldints); | 205 HAL_RESTORE_INTERRUPTS(oldints); |
| 182 CYG_TEST_INFO("Dcache off Icache off"); | 206 CYG_TEST_INFO("Dcache off Icache off"); |
| 183 time1(); | 207 time1(); |
| 208 | |
| 209 #endif // HAL_CACHE_UNIFIED | |
| 184 | 210 |
| 185 CYG_TEST_PASS_FINISH("End of test"); | 211 CYG_TEST_PASS_FINISH("End of test"); |
| 186 } | 212 } |
| 187 | 213 |
| 188 // ------------------------------------------------------------------------- | 214 // ------------------------------------------------------------------------- |
