Annotation of sys/dev/ic/cissvar.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: cissvar.h,v 1.7 2007/03/22 16:55:31 deraadt Exp $ */
! 2:
! 3: /*
! 4: * Copyright (c) 2005,2006 Michael Shalayeff
! 5: * All rights reserved.
! 6: *
! 7: * Permission to use, copy, modify, and distribute this software for any
! 8: * purpose with or without fee is hereby granted, provided that the above
! 9: * copyright notice and this permission notice appear in all copies.
! 10: *
! 11: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
! 12: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
! 13: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
! 14: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
! 15: * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN
! 16: * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
! 17: * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
! 18: */
! 19:
! 20: #include <sys/sensors.h>
! 21:
! 22: struct ciss_ld {
! 23: struct ciss_blink bling; /* a copy of blink state */
! 24: char xname[16]; /* copy of the sdN name */
! 25: int ndrives;
! 26: u_int8_t tgts[1];
! 27: };
! 28:
! 29: struct ciss_softc {
! 30: struct device sc_dev;
! 31: struct scsi_link sc_link;
! 32: struct scsi_link *sc_link_raw;
! 33: struct timeout sc_hb;
! 34: void *sc_ih;
! 35: void *sc_sh;
! 36: struct proc *sc_thread;
! 37: int sc_flush;
! 38: struct ksensor *sensors;
! 39: struct ksensordev sensordev;
! 40:
! 41: u_int sc_flags;
! 42: #define CISS_BIO 0x0001
! 43: int ccblen, maxcmd, maxsg, nbus, ndrives, maxunits;
! 44: ciss_queue_head sc_free_ccb, sc_ccbq, sc_ccbdone;
! 45:
! 46: bus_space_tag_t iot;
! 47: bus_space_handle_t ioh, cfg_ioh;
! 48: bus_dma_tag_t dmat;
! 49: bus_dmamap_t cmdmap;
! 50: bus_dma_segment_t cmdseg[1];
! 51: void *ccbs;
! 52: void *scratch;
! 53:
! 54: struct ciss_config cfg;
! 55: int cfgoff;
! 56: u_int32_t iem;
! 57: u_int32_t heartbeat;
! 58: struct ciss_ld **sc_lds;
! 59: };
! 60:
! 61: struct ciss_rawsoftc {
! 62: struct scsi_link sc_link;
! 63: struct ciss_softc *sc_softc;
! 64: u_int8_t sc_channel;
! 65: };
! 66:
! 67: /* XXX These have to become spinlocks in case of fine SMP */
! 68: #define CISS_LOCK(sc) splbio()
! 69: #define CISS_UNLOCK(sc, lock) splx(lock)
! 70: #define CISS_LOCK_SCRATCH(sc) splbio()
! 71: #define CISS_UNLOCK_SCRATCH(sc, lock) splx(lock)
! 72: typedef int ciss_lock_t;
! 73:
! 74: int ciss_attach(struct ciss_softc *sc);
! 75: int ciss_intr(void *v);
CVSweb