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