674 /*
675 * In order for the access to a memory object to be consistent
676 * between a device and a CPU, the function ddi_dma_sync(9F)
677 * must be called upon the DMA handle. The following flags
678 * define whose view of the object should be made consistent.
679 * There are different flags here because on different machines
680 * there are definite performance implications of how long
681 * such synchronization takes.
682 *
683 * DDI_DMA_SYNC_FORDEV makes all device references to the object
684 * mapped by the DMA handle up to date. It should be used by a
685 * driver after a cpu modifies the memory object (over the range
686 * specified by the other arguments to the ddi_dma_sync(9F) call).
687 *
688 * DDI_DMA_SYNC_FORCPU makes all cpu references to the object
689 * mapped by the DMA handle up to date. It should be used
690 * by a driver after the receipt of data from the device to
691 * the memory object is done (over the range specified by
692 * the other arguments to the ddi_dma_sync(9F) call).
693 *
694 * If the only mapping that concerns the driver is one for the
695 * kernel (such as memory allocated by ddi_iopb_alloc(9F)), the
696 * flag DDI_DMA_SYNC_FORKERNEL can be used. This is a hint to the
697 * system that if it can synchronize the kernel's view faster
698 * that the CPU's view, it can do so, otherwise it acts the
699 * same as DDI_DMA_SYNC_FORCPU. DDI_DMA_SYNC_FORKERNEL might
700 * speed up the synchronization of kernel mappings in case of
701 * non IO-coherent CPU caches.
702 */
703 #define DDI_DMA_SYNC_FORDEV 0x0
704 #define DDI_DMA_SYNC_FORCPU 0x1
705 #define DDI_DMA_SYNC_FORKERNEL 0x2
706
707 /*
708 * Bus nexus control functions for DMA
709 */
710
711 /*
712 * Control operations, defined here so that devops.h can be included
713 * by drivers without having to include a specific SYSDDI implementation
714 * header file.
715 */
716
|
674 /*
675 * In order for the access to a memory object to be consistent
676 * between a device and a CPU, the function ddi_dma_sync(9F)
677 * must be called upon the DMA handle. The following flags
678 * define whose view of the object should be made consistent.
679 * There are different flags here because on different machines
680 * there are definite performance implications of how long
681 * such synchronization takes.
682 *
683 * DDI_DMA_SYNC_FORDEV makes all device references to the object
684 * mapped by the DMA handle up to date. It should be used by a
685 * driver after a cpu modifies the memory object (over the range
686 * specified by the other arguments to the ddi_dma_sync(9F) call).
687 *
688 * DDI_DMA_SYNC_FORCPU makes all cpu references to the object
689 * mapped by the DMA handle up to date. It should be used
690 * by a driver after the receipt of data from the device to
691 * the memory object is done (over the range specified by
692 * the other arguments to the ddi_dma_sync(9F) call).
693 *
694 * If the only mapping that concerns the driver is one for the kernel,
695 * the flag DDI_DMA_SYNC_FORKERNEL can be used. This is a hint to the
696 * system that if it can synchronize the kernel's view faster
697 * that the CPU's view, it can do so, otherwise it acts the
698 * same as DDI_DMA_SYNC_FORCPU. DDI_DMA_SYNC_FORKERNEL might
699 * speed up the synchronization of kernel mappings in case of
700 * non IO-coherent CPU caches.
701 */
702 #define DDI_DMA_SYNC_FORDEV 0x0
703 #define DDI_DMA_SYNC_FORCPU 0x1
704 #define DDI_DMA_SYNC_FORKERNEL 0x2
705
706 /*
707 * Bus nexus control functions for DMA
708 */
709
710 /*
711 * Control operations, defined here so that devops.h can be included
712 * by drivers without having to include a specific SYSDDI implementation
713 * header file.
714 */
715
|