static void __BS(write_4)(void *v, bus_space_handle_t h, bus_size_t off, uint32_t val) { KASSERT((h & 3) == 0); KASSERT((off & 3) == 0); h += CHIP_OFF32(off); #if CHIP_ACCESS_SIZE <= 4 mips_sw(h, CHIP_SWAP32(val)); #else const int shift = (h & (CHIP_ACCESS_SIZE - 1)) * 8; h &= ~((bus_space_handle_t)(CHIP_ACCESS_SIZE - 1)); mips3_sd(h, ((CHIP_TYPE)CHIP_SWAP32(val)) << shift); #endif }
inline uint32_t __BS(read_4)(void *v, bus_space_handle_t h, bus_size_t off) { #if CHIP_ACCESS_SIZE > 4 volatile CHIP_TYPE *ptr; #else /* CHIP_ACCESS_SIZE > 4 */ volatile uint32_t *ptr; #endif ptr = (void *)(h + CHIP_OFF32(off)); return CHIP_SWAP32(*ptr) & 0xffffffff; }
inline void __BS(write_4)(void *v, bus_space_handle_t h, bus_size_t off, uint32_t val) { #if CHIP_ACCESS_SIZE > 4 volatile CHIP_TYPE *ptr; #else /* CHIP_ACESSS_SIZE > 4 */ volatile uint32_t *ptr; #endif /* CHIP_ACCESS_SIZE > 4 */ ptr = (void *)(h + CHIP_OFF32(off)); *ptr = CHIP_SWAP32(val); }