1 1.23 bouyer /* $NetBSD: atapiconf.h,v 1.23 2009/10/19 18:41:16 bouyer Exp $ */ 2 1.2 bouyer 3 1.2 bouyer /* 4 1.14 bouyer * Copyright (c) 1996, 2001 Manuel Bouyer. All rights reserved. 5 1.2 bouyer * 6 1.2 bouyer * Redistribution and use in source and binary forms, with or without 7 1.2 bouyer * modification, are permitted provided that the following conditions 8 1.2 bouyer * are met: 9 1.2 bouyer * 1. Redistributions of source code must retain the above copyright 10 1.2 bouyer * notice, this list of conditions and the following disclaimer. 11 1.2 bouyer * 2. Redistributions in binary form must reproduce the above copyright 12 1.2 bouyer * notice, this list of conditions and the following disclaimer in the 13 1.2 bouyer * documentation and/or other materials provided with the distribution. 14 1.2 bouyer * 15 1.2 bouyer * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16 1.2 bouyer * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17 1.2 bouyer * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18 1.2 bouyer * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 1.2 bouyer * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 1.2 bouyer * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 1.2 bouyer * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 1.2 bouyer * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 1.2 bouyer * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 1.2 bouyer * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 1.2 bouyer */ 26 1.2 bouyer 27 1.16 thorpej #ifndef _DEV_SCSIPI_ATAPICONF_H 28 1.16 thorpej #define _DEV_SCSIPI_ATAPICONF_H 29 1.16 thorpej 30 1.21 he #include <sys/device.h> 31 1.2 bouyer #include <dev/scsipi/scsipiconf.h> 32 1.2 bouyer 33 1.9 bouyer struct atapibus_softc { 34 1.22 cube device_t sc_dev; 35 1.11 bouyer struct scsipi_channel *sc_channel; /* our scsipi_channel */ 36 1.9 bouyer }; 37 1.9 bouyer 38 1.11 bouyer extern const struct scsipi_periphsw atapi_probe_periphsw; 39 1.11 bouyer 40 1.11 bouyer 41 1.9 bouyer /* 42 1.13 bouyer * We need some more data than in scsipi_adapter. 43 1.11 bouyer * So define a new atapi_adapter, we'll cast channel->chan_adapter to 44 1.13 bouyer * atapi_adapter when we need the extra data (only in ATAPI code) 45 1.9 bouyer */ 46 1.9 bouyer struct atapi_adapter { 47 1.9 bouyer struct scsipi_adapter _generic; 48 1.17 thorpej void (*atapi_probe_device)(struct atapibus_softc *, int); 49 1.9 bouyer }; 50 1.2 bouyer 51 1.17 thorpej void *atapi_probe_device(struct atapibus_softc *, int, 52 1.17 thorpej struct scsipi_periph *, struct scsipibus_attach_args *); 53 1.17 thorpej int atapiprint(void *, const char *); 54 1.17 thorpej void atapi_print_addr(struct scsipi_periph *); 55 1.17 thorpej int atapi_interpret_sense(struct scsipi_xfer *); 56 1.19 mycroft void atapi_scsipi_cmd(struct scsipi_xfer *); 57 1.16 thorpej 58 1.16 thorpej #endif /* _DEV_SCSIPI_ATAPICONF_H */ 59