# Copyright (c) 2004 - 2008 Søren Schmidt <[email protected]>1# All rights reserved.2#3# Redistribution and use in source and binary forms, with or without4# modification, are permitted provided that the following conditions5# are met:6# 1. Redistributions of source code must retain the above copyright7# notice, this list of conditions and the following disclaimer,8# without modification, immediately at the beginning of the file.9# 2. Redistributions in binary form must reproduce the above copyright10# notice, this list of conditions and the following disclaimer in the11# documentation and/or other materials provided with the distribution.12#13# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR14# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES15# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.16# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,17# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT18# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,19# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY20# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT21# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF22# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.23#2425#include <sys/bus.h>26#include <sys/kernel.h>27#include <sys/param.h>28#include <sys/types.h>29#include <sys/callout.h>30#include <sys/sema.h>31#include <sys/taskqueue.h>32#include <vm/uma.h>33#include <machine/bus.h>34#include <sys/ata.h>35#include <dev/ata/ata-all.h>3637INTERFACE ata;3839CODE {40static int ata_null_setmode(device_t dev, int target, int mode)41{4243if (mode > ATA_PIO_MAX)44return (ATA_PIO_MAX);45return (mode);46}47};48METHOD int setmode {49device_t dev;50int target;51int mode;52} DEFAULT ata_null_setmode;5354CODE {55static int ata_null_getrev(device_t dev, int target)56{57return (0);58}59};6061METHOD int getrev {62device_t dev;63int target;64} DEFAULT ata_null_getrev;6566METHOD void reset {67device_t channel;68} DEFAULT ata_generic_reset;6970METHOD int reinit {71device_t dev;72};737475