xref: /freebsd/sys/dev/hyperv/include/hyperv_busdma.h (revision 8018156f90f7381e3cb2c2182e8771a0ea5d4d56)
17e118515SSepherosa Ziehau /*-
27e118515SSepherosa Ziehau  * Copyright (c) 2016 Microsoft Corp.
37e118515SSepherosa Ziehau  * All rights reserved.
47e118515SSepherosa Ziehau  *
57e118515SSepherosa Ziehau  * Redistribution and use in source and binary forms, with or without
67e118515SSepherosa Ziehau  * modification, are permitted provided that the following conditions
77e118515SSepherosa Ziehau  * are met:
87e118515SSepherosa Ziehau  * 1. Redistributions of source code must retain the above copyright
97e118515SSepherosa Ziehau  *    notice unmodified, this list of conditions, and the following
107e118515SSepherosa Ziehau  *    disclaimer.
117e118515SSepherosa Ziehau  * 2. Redistributions in binary form must reproduce the above copyright
127e118515SSepherosa Ziehau  *    notice, this list of conditions and the following disclaimer in the
137e118515SSepherosa Ziehau  *    documentation and/or other materials provided with the distribution.
147e118515SSepherosa Ziehau  *
157e118515SSepherosa Ziehau  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
167e118515SSepherosa Ziehau  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
177e118515SSepherosa Ziehau  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
187e118515SSepherosa Ziehau  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
197e118515SSepherosa Ziehau  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
207e118515SSepherosa Ziehau  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
217e118515SSepherosa Ziehau  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
227e118515SSepherosa Ziehau  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
237e118515SSepherosa Ziehau  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
247e118515SSepherosa Ziehau  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
257e118515SSepherosa Ziehau  *
267e118515SSepherosa Ziehau  * $FreeBSD$
277e118515SSepherosa Ziehau  */
287e118515SSepherosa Ziehau 
297e118515SSepherosa Ziehau #ifndef _HYPERV_BUSDMA_H_
307e118515SSepherosa Ziehau #define _HYPERV_BUSDMA_H_
317e118515SSepherosa Ziehau 
32e44bdd84SSepherosa Ziehau #include <sys/param.h>
33e44bdd84SSepherosa Ziehau #include <sys/bus.h>
34e44bdd84SSepherosa Ziehau #include <machine/bus.h>
35e44bdd84SSepherosa Ziehau 
367e118515SSepherosa Ziehau struct hyperv_dma {
377e118515SSepherosa Ziehau 	bus_addr_t	hv_paddr;
387e118515SSepherosa Ziehau 	bus_dma_tag_t	hv_dtag;
397e118515SSepherosa Ziehau 	bus_dmamap_t	hv_dmap;
407e118515SSepherosa Ziehau };
417e118515SSepherosa Ziehau 
42*8018156fSSepherosa Ziehau void		hyperv_dma_map_paddr(void *arg, bus_dma_segment_t *segs,
43*8018156fSSepherosa Ziehau 		    int nseg, int error);
44*8018156fSSepherosa Ziehau void		*hyperv_dmamem_alloc(bus_dma_tag_t parent_dtag,
45*8018156fSSepherosa Ziehau 		    bus_size_t alignment, bus_addr_t boundary, bus_size_t size,
46*8018156fSSepherosa Ziehau 		    struct hyperv_dma *dma, int flags);
477e118515SSepherosa Ziehau void		hyperv_dmamem_free(struct hyperv_dma *dma, void *ptr);
487e118515SSepherosa Ziehau 
497e118515SSepherosa Ziehau #endif	/* !_HYPERV_BUSDMA_H_ */
50