ata_if.m revision 145641
1581Srgrimes# Copyright (c) 2004, 2005 S�ren Schmidt <sos@FreeBSD.org> 250477Speter# All rights reserved. 3581Srgrimes# 4581Srgrimes# Redistribution and use in source and binary forms, with or without 5581Srgrimes# modification, are permitted provided that the following conditions 6581Srgrimes# are met: 7581Srgrimes# 1. Redistributions of source code must retain the above copyright 8581Srgrimes# notice, this list of conditions and the following disclaimer, 9581Srgrimes# without modification, immediately at the beginning of the file. 10581Srgrimes# 2. Redistributions in binary form must reproduce the above copyright 11112765Smdodd# notice, this list of conditions and the following disclaimer in the 12112765Smdodd# documentation and/or other materials provided with the distribution. 13581Srgrimes# 3. The name of the author may not be used to endorse or promote products 14112765Smdodd# derived from this software without specific prior written permission. 15112765Smdodd# 16112765Smdodd# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17112765Smdodd# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 18112790Smdodd# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19581Srgrimes# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 20581Srgrimes# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 21581Srgrimes# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22581Srgrimes# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23581Srgrimes# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24581Srgrimes# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 25581Srgrimes# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26# 27# $FreeBSD: head/sys/dev/ata/ata_if.m 145641 2005-04-28 22:08:08Z sos $ 28 29#include <sys/bus.h> 30#include <sys/kernel.h> 31#include <sys/param.h> 32#include <sys/types.h> 33#include <sys/callout.h> 34#include <sys/sema.h> 35#include <sys/taskqueue.h> 36#include <vm/uma.h> 37#include <machine/bus.h> 38#include <sys/ata.h> 39#include <dev/ata/ata-all.h> 40 41INTERFACE ata; 42 43CODE { 44 static int ata_null_locking(device_t dev, int mode) 45 { 46 struct ata_channel *ch = device_get_softc(dev); 47 48 return ch->unit; 49 } 50}; 51METHOD int locking { 52 device_t channel; 53 int mode; 54} DEFAULT ata_null_locking; 55HEADER { 56#define ATA_LF_LOCK 0x0001 57#define ATA_LF_UNLOCK 0x0002 58#define ATA_LF_WHICH 0x0004 59}; 60 61METHOD void setmode { 62 device_t channel; 63 device_t dev; 64}; 65 66METHOD void reset { 67 device_t channel; 68} DEFAULT ata_generic_reset; 69 70METHOD int reinit { 71 device_t dev; 72}; 73 74 75