The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/ic/cissvar.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $NetBSD: cissvar.h,v 1.11 2020/07/15 14:33:58 jdolecek Exp $    */
    2 /*      $OpenBSD: cissvar.h,v 1.15 2013/05/30 16:15:02 deraadt Exp $    */
    3 
    4 /*
    5  * Copyright (c) 2005,2006 Michael Shalayeff
    6  * All rights reserved.
    7  *
    8  * Permission to use, copy, modify, and distribute this software for any
    9  * purpose with or without fee is hereby granted, provided that the above
   10  * copyright notice and this permission notice appear in all copies.
   11  *
   12  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
   13  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
   14  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
   15  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
   16  * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN
   17  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
   18  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
   19  */
   20 
   21 #include <sys/mutex.h>
   22 #include <sys/condvar.h>
   23 
   24 #include <dev/sysmon/sysmonvar.h>
   25 #include <sys/envsys.h>
   26 
   27 #include "opt_ciss.h"
   28 
   29 struct ciss_ld {
   30         struct ciss_blink bling;        /* a copy of blink state */
   31         char    xname[16];              /* copy of the sdN name */
   32         int     ndrives;
   33         u_int8_t tgts[1];
   34 };
   35 
   36 struct ciss_softc {
   37         /* Generic device info. */
   38         device_t                sc_dev;
   39         kmutex_t                sc_mutex;
   40         kmutex_t                sc_mutex_scratch;
   41         bus_space_handle_t      sc_ioh;
   42         bus_space_tag_t         sc_iot;
   43         bus_dma_tag_t           sc_dmat;
   44         void                    *sc_ih;
   45         void                    *sc_sh;         /* shutdown hook */
   46         struct proc             *sc_thread;
   47         int                     sc_flush;
   48 
   49         struct scsipi_channel   sc_channel;
   50         struct scsipi_adapter   sc_adapter;
   51         struct callout          sc_hb;
   52 
   53         u_int   sc_flags;
   54         int ccblen, maxcmd, maxsg, nbus, ndrives, maxunits;
   55         ciss_queue_head         sc_free_ccb;
   56         kcondvar_t              sc_condvar;
   57 
   58         bus_dmamap_t            cmdmap;
   59         bus_dma_segment_t       cmdseg[1];
   60         void *                  ccbs;
   61         void                    *scratch;
   62         u_int                   sc_waitflag;
   63 
   64         bus_space_handle_t      cfg_ioh;
   65 
   66         struct ciss_perf_config perfcfg;
   67         bus_dmamap_t            replymap;
   68         bus_dma_segment_t       replyseg[1];
   69         uint64_t                *perf_reply;
   70         int                     perf_rqidx, perf_cycle;
   71 #define CISS_IS_PERF(sc)        ((sc)->perf_reply != NULL)
   72 
   73         int fibrillation;
   74         struct ciss_config cfg;
   75 #define CISS_PERF_SUPPORTED(sc) ((sc)->cfg.methods & CISS_METH_PERF)
   76         int cfgoff;
   77         u_int32_t iem;
   78         u_int32_t heartbeat;
   79         struct ciss_ld **sc_lds;
   80 
   81         /* scsi ioctl from sd device */
   82         int                     (*sc_ioctl)(device_t, u_long, void *);
   83 
   84         struct sysmon_envsys    *sc_sme;
   85         envsys_data_t           *sc_sensor;
   86 };
   87 
   88 struct ciss_rawsoftc {
   89         struct ciss_softc *sc_softc;
   90         u_int8_t        sc_channel;
   91 };
   92 
   93 int     ciss_attach(struct ciss_softc *sc);
   94 int     ciss_intr_simple_intx(void *v);
   95 int     ciss_intr_perf_intx(void *v);
   96 int     ciss_intr_perf_msi(void *v);

Cache object: f248d47b17ad4f3ab3534509c4a36d55


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.