xref: /netbsd-src/sys/dev/virtio/virtio_mmiovar.h (revision 372fc0a715545116d73b85b46424ca7a442b25f3)
1*372fc0a7Sthorpej /* $NetBSD: virtio_mmiovar.h,v 1.7 2024/01/06 06:59:33 thorpej Exp $ */
271cde4cbSjakllsch /*
371cde4cbSjakllsch  * Copyright (c) 2018 Jonathan A. Kollasch
471cde4cbSjakllsch  * All rights reserved.
571cde4cbSjakllsch  *
671cde4cbSjakllsch  * Redistribution and use in source and binary forms, with or without
771cde4cbSjakllsch  * modification, are permitted provided that the following conditions
871cde4cbSjakllsch  * are met:
971cde4cbSjakllsch  * 1. Redistributions of source code must retain the above copyright
1071cde4cbSjakllsch  *    notice, this list of conditions and the following disclaimer.
1171cde4cbSjakllsch  * 2. Redistributions in binary form must reproduce the above copyright
1271cde4cbSjakllsch  *    notice, this list of conditions and the following disclaimer in the
1371cde4cbSjakllsch  *    documentation and/or other materials provided with the distribution.
1471cde4cbSjakllsch  *
1571cde4cbSjakllsch  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1671cde4cbSjakllsch  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
1771cde4cbSjakllsch  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1871cde4cbSjakllsch  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
1971cde4cbSjakllsch  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
2071cde4cbSjakllsch  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
2171cde4cbSjakllsch  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
2271cde4cbSjakllsch  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
2371cde4cbSjakllsch  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
2471cde4cbSjakllsch  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
2571cde4cbSjakllsch  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2671cde4cbSjakllsch  */
2771cde4cbSjakllsch 
28762c30e0Skre #ifndef _VIRTIO_MMIOVAR_H_
29762c30e0Skre #define _VIRTIO_MMIOVAR_H_
3071cde4cbSjakllsch 
3171cde4cbSjakllsch #include <dev/pci/virtiovar.h> /* XXX: move to non-pci */
3271cde4cbSjakllsch 
3371cde4cbSjakllsch struct virtio_mmio_softc {
3471cde4cbSjakllsch 	struct virtio_softc	sc_sc;
3571cde4cbSjakllsch 
3671cde4cbSjakllsch 	bus_space_tag_t		sc_iot;
3771cde4cbSjakllsch 	bus_space_handle_t	sc_ioh;
3871cde4cbSjakllsch 	bus_size_t		sc_iosize;
39*372fc0a7Sthorpej 	uint32_t		sc_mmio_vers;
40b8df88e2Sthorpej 	bool			sc_le_regs;
4171cde4cbSjakllsch 
4271cde4cbSjakllsch 	void			*sc_ih;
4371cde4cbSjakllsch 
44198576feSyamaguchi 	int			(*sc_alloc_interrupts)(struct virtio_mmio_softc *);
4571cde4cbSjakllsch 	void			(*sc_free_interrupts)(struct virtio_mmio_softc *);
4671cde4cbSjakllsch 
4771cde4cbSjakllsch };
4871cde4cbSjakllsch 
495ccc1416Sreinoud bool virtio_mmio_common_probe_present(struct virtio_mmio_softc *);
5071cde4cbSjakllsch void virtio_mmio_common_attach(struct virtio_mmio_softc *);
5171cde4cbSjakllsch int virtio_mmio_common_detach(struct virtio_mmio_softc *, int);
5271cde4cbSjakllsch int virtio_mmio_intr(void *);
5371cde4cbSjakllsch 
54762c30e0Skre #endif /* _VIRTIO_MMIOVAR_H_ */
55