sifive/devices/ccache.h
static inline uint32_t ccache_data_fail_count(uint64_t base_addr) {
  ccache_barrier_0();
  uint32_t out = *(volatile uint32_t *)(base_addr + CCACHE_DATA_FAIL + CCACHE_ECC_COUNT);
  ccache_barrier_1();
  return out;
}
// Reading the failure count atomically clears the interrupt
Reading the failure count atomically clears the interrupt
Reading the failure count atomically clears the interrupt
static inline uint32_t ccache_data_fail_count(uint64_t base_addr) {
  ccache_barrier_0();
  uint32_t out = *(volatile uint32_t *)(base_addr + CCACHE_DATA_FAIL + CCACHE_ECC_COUNT);
  ccache_barrier_1();
  return out;
}
static inline uint32_t ccache_data_fail_count ( uint64_t base_addr ) { ccache_barrier_0 ( ) ; uint32_t out = * ( volatile uint32_t * ) ( base_addr + CCACHE_DATA_FAIL + CCACHE_ECC_COUNT ) ; ccache_barrier_1 ( ) ; return out ; }
Reading the failure count atomically clears the interrupt
Reading the failure count atomically clears the interrupt