FreeBSD/sys/dev/mxge/if_mxge.c
/*
 * copy an array of mcp_kreq_ether_recv_t's to the mcp.  Copy
 * at most 32 bytes at a time, so as to avoid involving the software
 * pio handler in the nic.   We re-write the first segment's low
 * DMA address to mark it valid only after we write the entire chunk
 * in a burst
 */
copy an array of mcp_kreq_ether_recv_t's to the mcp.  Copy
at most 32 bytes at a time, so as to avoid involving the software
pio handler in the nic.   We re-write the first segment's low
DMA address to mark it valid only after we write the entire chunk
in a burst
copy an array of mcp_kreq_ether_recv_t ' s to the mcp . Copy at most 32 bytes at a time so as to avoid involving the software pio handler in the nic . We re - write the first segment ' s low DMA address to mark it valid only after we write the entire chunk in a burst
static inline void
mxge_submit_8rx(volatile mcp_kreq_ether_recv_t *dst,
		mcp_kreq_ether_recv_t *src)
{
	uint32_t low;
	low = src->addr_low;
	src->addr_low = 0xffffffff;
	mxge_pio_copy(dst, src, 4 * sizeof (*src));
	wmb();
	mxge_pio_copy(dst + 4, src + 4, 4 * sizeof (*src));
	wmb();
	src->addr_low = low;
	dst->addr_low = low;
	wmb();
}
static inline void mxge_submit_8rx ( volatile mcp_kreq_ether_recv_t * dst , mcp_kreq_ether_recv_t * src ) { uint32_t low ; low = src -> addr_low ; src -> addr_low = 0xffffffff ; mxge_pio_copy ( dst , src , 4 * sizeof ( * src ) ) ; wmb ( ) ; mxge_pio_copy ( dst + 4 , src + 4 , 4 * sizeof ( * src ) ) ; wmb ( ) ; src -> addr_low = low ; dst -> addr_low = low ; wmb ( ) ; }
copy an array of mcp_kreq_ether_recv_t's to the mcp.
copy an array of mcp_kreq_ether_recv_t ' s to the mcp .