FreeBSD/sys/boot/usb/usb_busdma_loader.c
void
usb_bdma_post_sync(struct usb_xfer *xfer)
{
	struct usb_page_cache *pc;
	usb_frcount_t nframes;

	if (xfer->flags_int.isochronous_xfr) {
		/* only one frame buffer */
		nframes = 1;
	} else {
		/* can be multiple frame buffers */
		nframes = xfer->nframes;
	}

	pc = xfer->frbuffers;

	while (nframes--) {
		if (pc->isread) {
			usb_pc_cpu_invalidate(pc);
		}
		pc++;
	}
}
/*------------------------------------------------------------------------*
 *	usb_bdma_post_sync
 *
 * This function handles DMA synchronisation that must be done after
 * an USB transfer is complete.
 *------------------------------------------------------------------------*/
usb_bdma_post_sync
This function handles DMA synchronisation that must be done after
an USB transfer is complete.
usb_bdma_post_sync This function handles DMA synchronisation that must be done after an USB transfer is complete .
void
usb_bdma_post_sync(struct usb_xfer *xfer)
{
	struct usb_page_cache *pc;
	usb_frcount_t nframes;
	if (xfer->flags_int.isochronous_xfr) {
		nframes = 1;
	} else {
		nframes = xfer->nframes;
	}
	pc = xfer->frbuffers;
	while (nframes--) {
		if (pc->isread) {
			usb_pc_cpu_invalidate(pc);
		}
		pc++;
	}
}
void usb_bdma_post_sync ( struct usb_xfer * xfer ) { struct usb_page_cache * pc ; usb_frcount_t nframes ; if ( xfer -> flags_int . isochronous_xfr ) { nframes = 1 ; } else { nframes = xfer -> nframes ; } pc = xfer -> frbuffers ; while ( nframes -- ) { if ( pc -> isread ) { usb_pc_cpu_invalidate ( pc ) ; } pc ++ ; } }
usb_bdma_post_sync
 This function handles DMA synchronisation that must be done after
 an USB transfer is complete.
usb_bdma_post_sync This function handles DMA synchronisation that must be done after an USB transfer is complete .
/* only one frame buffer */ /* can be multiple frame buffers */