コード例 #1
0
static uint32_t
__BS(read_stream_4)(void *v, bus_space_handle_t h, bus_size_t off)
{
	h += CHIP_OFF32(off);
#if CHIP_ACCESS_SIZE == 8
	return (uint32_t)mips3_ld(h);
#else
	return (uint32_t)mips_lwu(h);
#endif
}
コード例 #2
0
static void
__BS(write_stream_4)(void *v, bus_space_handle_t h, bus_size_t off,
		     uint32_t val)
{
	h += CHIP_OFF32(off);
#if CHIP_ACCESS_SIZE == 8
	mips3_sd(h, val);
#else
	mips_sw(h, val);
#endif
}
コード例 #3
0
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;
}
コード例 #4
0
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);
}
コード例 #5
0
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
}
コード例 #6
0
static uint32_t
__BS(read_4)(void *v, bus_space_handle_t h, bus_size_t off)
{
	KASSERT((off & 3) == 0);

	h += CHIP_OFF32(off);
	const int shift = (h & (CHIP_ACCESS_SIZE - 1)) * 8;
	h &= ~((bus_space_handle_t)(CHIP_ACCESS_SIZE - 1));
#if CHIP_ACCESS_SIZE > 4
	const CHIP_TYPE val = mips3_ld(h);
#else	/* CHIP_ACCESS_SIZE > 4 */
	const uint32_t val = mips_lwu(h);
#endif
	const uint32_t r = (uint32_t)CHIP_SWAP32(val >> shift);

	return r;
}