LCOV - code coverage report
Current view: top level - dev/isa - com_isa.c (source / functions) Hit Total Coverage
Test: 6.4 Lines: 0 40 0.0 %
Date: 2018-10-19 03:25:38 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*      $OpenBSD: com_isa.c,v 1.9 2017/04/30 13:04:49 mpi Exp $ */
       2             : /*
       3             :  * Copyright (c) 1997 - 1999, Jason Downs.  All rights reserved.
       4             :  *
       5             :  * Redistribution and use in source and binary forms, with or without
       6             :  * modification, are permitted provided that the following conditions
       7             :  * are met:
       8             :  * 1. Redistributions of source code must retain the above copyright
       9             :  *    notice, this list of conditions and the following disclaimer.
      10             :  * 2. Redistributions in binary form must reproduce the above copyright
      11             :  *    notice, this list of conditions and the following disclaimer in the
      12             :  *    documentation and/or other materials provided with the distribution.
      13             :  * 3. Neither the name(s) of the author(s) nor the name OpenBSD
      14             :  *    may be used to endorse or promote products derived from this software
      15             :  *    without specific prior written permission.
      16             :  *
      17             :  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS
      18             :  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
      19             :  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
      20             :  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
      21             :  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
      22             :  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
      23             :  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
      24             :  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
      25             :  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
      26             :  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
      27             :  * SUCH DAMAGE.
      28             :  */
      29             : /*-
      30             :  * Copyright (c) 1993, 1994, 1995, 1996
      31             :  *      Charles M. Hannum.  All rights reserved.
      32             :  * Copyright (c) 1991 The Regents of the University of California.
      33             :  * All rights reserved.
      34             :  *
      35             :  * Redistribution and use in source and binary forms, with or without
      36             :  * modification, are permitted provided that the following conditions
      37             :  * are met:
      38             :  * 1. Redistributions of source code must retain the above copyright
      39             :  *    notice, this list of conditions and the following disclaimer.
      40             :  * 2. Redistributions in binary form must reproduce the above copyright
      41             :  *    notice, this list of conditions and the following disclaimer in the
      42             :  *    documentation and/or other materials provided with the distribution.
      43             :  * 3. Neither the name of the University nor the names of its contributors
      44             :  *    may be used to endorse or promote products derived from this software
      45             :  *    without specific prior written permission.
      46             :  *
      47             :  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
      48             :  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
      49             :  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
      50             :  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
      51             :  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
      52             :  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
      53             :  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
      54             :  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
      55             :  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
      56             :  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
      57             :  * SUCH DAMAGE.
      58             :  *
      59             :  *      @(#)com.c       7.5 (Berkeley) 5/16/91
      60             :  */
      61             : 
      62             : #include <sys/param.h>
      63             : #include <sys/systm.h>
      64             : #include <sys/tty.h>
      65             : #include <sys/device.h>
      66             : 
      67             : #include <machine/bus.h>
      68             : 
      69             : #include <dev/ic/comreg.h>
      70             : #include <dev/ic/comvar.h>
      71             : 
      72             : #include <dev/isa/isavar.h>
      73             : 
      74             : int com_isa_probe(struct device *, void *, void *);
      75             : void com_isa_attach(struct device *, struct device *, void *);
      76             : 
      77             : struct cfattach com_isa_ca = {
      78             :         sizeof(struct com_softc), com_isa_probe, com_isa_attach, NULL,
      79             :         com_activate
      80             : };
      81             : 
      82             : int
      83           0 : com_isa_probe(struct device *parent, void *match, void *aux)
      84             : {
      85           0 :         struct isa_attach_args *ia = aux;
      86           0 :         bus_space_handle_t ioh;
      87             :         bus_space_tag_t iot;
      88             :         int iobase;
      89             :         int rv;
      90             : 
      91           0 :         iot = ia->ia_iot;
      92           0 :         iobase = ia->ia_iobase;
      93             : 
      94           0 :         if (iobase == comconsaddr && !comconsattached)
      95             :                 goto out;
      96             : 
      97           0 :         if (bus_space_map(iot, iobase, COM_NPORTS, 0, &ioh))
      98           0 :                 return (0);
      99             : 
     100           0 :         rv = comprobe1(iot, ioh);
     101             : 
     102           0 :         bus_space_unmap(iot, ioh, COM_NPORTS);
     103             : 
     104           0 :         if (rv == 0)
     105           0 :                 return (0);
     106             : 
     107             : out:
     108           0 :         ia->ia_iosize = COM_NPORTS;
     109           0 :         ia->ia_msize = 0;
     110           0 :         return (1);
     111           0 : }
     112             : 
     113             : void
     114           0 : com_isa_attach(struct device *parent, struct device *self, void *aux)
     115             : {
     116           0 :         struct com_softc *sc = (struct com_softc *)self;
     117           0 :         struct isa_attach_args *ia = aux;
     118           0 :         bus_space_handle_t ioh;
     119             :         bus_space_tag_t iot;
     120             :         int iobase, irq;
     121             : 
     122           0 :         sc->sc_hwflags = 0;
     123           0 :         sc->sc_swflags = 0;
     124             : 
     125           0 :         iobase = ia->ia_iobase;
     126           0 :         iot = ia->ia_iot;
     127             : 
     128           0 :         if (iobase != comconsaddr) {
     129           0 :                 if (bus_space_map(iot, iobase, COM_NPORTS, 0, &ioh))
     130           0 :                         panic("com_isa_attach: mapping failed");
     131             :         } else {
     132           0 :                 ioh = comconsioh;
     133             :         }
     134             : 
     135           0 :         sc->sc_iot = iot;
     136           0 :         sc->sc_ioh = ioh;
     137           0 :         sc->sc_iobase = iobase;
     138           0 :         sc->sc_frequency = COM_FREQ;
     139             : 
     140           0 :         com_attach_subr(sc);
     141             : 
     142           0 :         irq = ia->ia_irq;
     143           0 :         if (irq != IRQUNK) {
     144           0 :                 sc->sc_ih = isa_intr_establish(ia->ia_ic, irq,
     145           0 :                         IST_EDGE, IPL_TTY, comintr, sc,
     146           0 :                         sc->sc_dev.dv_xname);
     147           0 :         }
     148           0 : }

Generated by: LCOV version 1.13