1/*- 2 * Copyright (c) 2000 Michael Smith 3 * Copyright (c) 2001 Scott Long 4 * Copyright (c) 2000 BSDi 5 * Copyright (c) 2001 Adaptec, Inc. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 12 unchanged lines hidden (view full) --- 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 * HOWEVER 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 * $FreeBSD: head/sys/dev/aac/aacvar.h 174385 2007-12-07 00:22:23Z emaste $ |
30 */ 31 32#include <sys/bio.h> 33#include <sys/lock.h> 34#include <sys/mutex.h> 35#include <sys/taskqueue.h> 36#include <sys/selinfo.h> 37#include <geom/geom_disk.h> --- 229 unchanged lines hidden (view full) --- 267 sc->aac_bhandle, reg, val) 268#define AAC_GETREG2(sc, reg) bus_space_read_2 (sc->aac_btag, \ 269 sc->aac_bhandle, reg) 270#define AAC_SETREG1(sc, reg, val) bus_space_write_1(sc->aac_btag, \ 271 sc->aac_bhandle, reg, val) 272#define AAC_GETREG1(sc, reg) bus_space_read_1 (sc->aac_btag, \ 273 sc->aac_bhandle, reg) 274 |
275/* fib context (IOCTL) */ 276struct aac_fib_context { 277 u_int32_t unique; 278 int ctx_idx; 279 int ctx_wrap; 280 struct aac_fib_context *next, *prev; 281}; 282 |
283/* 284 * Per-controller structure. 285 */ 286struct aac_softc 287{ 288 /* bus connections */ 289 device_t aac_dev; 290 struct resource *aac_regs_resource; /* register interface --- 10 unchanged lines hidden (view full) --- 301 eventhandler_tag eh; 302 303 /* controller features, limits and status */ 304 int aac_state; 305#define AAC_STATE_SUSPEND (1<<0) 306#define AAC_STATE_OPEN (1<<1) 307#define AAC_STATE_INTERRUPTS_ON (1<<2) 308#define AAC_STATE_AIF_SLEEPER (1<<3) |
309 int aac_open_cnt; |
310 struct FsaRevision aac_revision; 311 312 /* controller hardware interface */ 313 int aac_hwif; 314#define AAC_HWIF_I960RX 0 315#define AAC_HWIF_STRONGARM 1 316#define AAC_HWIF_FALCON 2 317#define AAC_HWIF_RKT 3 --- 13 unchanged lines hidden (view full) --- 331 struct aac_command *aac_commands; 332 333 /* command management */ 334 TAILQ_HEAD(,aac_command) aac_free; /* command structures 335 * available for reuse */ 336 TAILQ_HEAD(,aac_command) aac_ready; /* commands on hold for 337 * controller resources */ 338 TAILQ_HEAD(,aac_command) aac_busy; |
339 TAILQ_HEAD(,aac_event) aac_ev_cmfree; 340 struct bio_queue_head aac_bioq; 341 struct aac_queue_table *aac_queues; 342 struct aac_queue_entry *aac_qentries[AAC_QUEUE_COUNT]; 343 344 struct aac_qstat aac_qstat[AACQ_COUNT]; /* queue statistics */ 345 346 /* connected containters */ --- 9 unchanged lines hidden (view full) --- 356 /* delayed activity infrastructure */ 357 struct task aac_task_complete; /* deferred-completion 358 * task */ 359 struct intr_config_hook aac_ich; 360 361 /* management interface */ 362 struct cdev *aac_dev_t; 363 struct mtx aac_aifq_lock; |
364 struct aac_fib aac_aifq[AAC_AIFQ_LENGTH]; 365 int aifq_idx; 366 int aifq_filled; 367 struct aac_fib_context *fibctx; |
368 struct selinfo rcv_select; 369 struct proc *aifthread; 370 int aifflags; 371#define AAC_AIFFLAGS_RUNNING (1 << 0) 372#define AAC_AIFFLAGS_AIF (1 << 1) 373#define AAC_AIFFLAGS_EXIT (1 << 2) 374#define AAC_AIFFLAGS_EXITED (1 << 3) 375#define AAC_AIFFLAGS_PRINTF (1 << 4) --- 260 unchanged lines hidden --- |