sati_mode_sense.h revision 230843
1236769Sobrien/*- 2236769Sobrien * This file is provided under a dual BSD/GPLv2 license. When using or 3236769Sobrien * redistributing this file, you may do so under either license. 4236769Sobrien * 5236769Sobrien * GPL LICENSE SUMMARY 6236769Sobrien * 7236769Sobrien * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved. 8236769Sobrien * 9236769Sobrien * This program is free software; you can redistribute it and/or modify 10236769Sobrien * it under the terms of version 2 of the GNU General Public License as 11236769Sobrien * published by the Free Software Foundation. 12236769Sobrien * 13236769Sobrien * This program is distributed in the hope that it will be useful, but 14236769Sobrien * WITHOUT ANY WARRANTY; without even the implied warranty of 15236769Sobrien * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16236769Sobrien * General Public License for more details. 17236769Sobrien * 18236769Sobrien * You should have received a copy of the GNU General Public License 19236769Sobrien * along with this program; if not, write to the Free Software 20236769Sobrien * Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. 21236769Sobrien * The full GNU General Public License is included in this distribution 22236769Sobrien * in the file called LICENSE.GPL. 23236769Sobrien * 24236769Sobrien * BSD LICENSE 25236769Sobrien * 26236769Sobrien * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved. 27236769Sobrien * All rights reserved. 28236769Sobrien * 29236769Sobrien * Redistribution and use in source and binary forms, with or without 30236769Sobrien * modification, are permitted provided that the following conditions 31236769Sobrien * are met: 32236769Sobrien * 33236769Sobrien * * Redistributions of source code must retain the above copyright 34236769Sobrien * notice, this list of conditions and the following disclaimer. 35236769Sobrien * * Redistributions in binary form must reproduce the above copyright 36236769Sobrien * notice, this list of conditions and the following disclaimer in 37236769Sobrien * the documentation and/or other materials provided with the 38236769Sobrien * distribution. 39236769Sobrien * 40236769Sobrien * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 41236769Sobrien * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 42236769Sobrien * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 43236769Sobrien * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 44236769Sobrien * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 45236769Sobrien * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 46236769Sobrien * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 47236769Sobrien * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 48236769Sobrien * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 49236769Sobrien * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 50236769Sobrien * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 51236769Sobrien * 52236769Sobrien * $FreeBSD$ 53236769Sobrien */ 54236769Sobrien#ifndef _SATI_MODE_SENSE_H_ 55236769Sobrien#define _SATI_MODE_SENSE_H_ 56236769Sobrien 57236769Sobrien/** 58236769Sobrien * @file 59236769Sobrien * @brief This file contains the method declarations and type defintions 60236769Sobrien * common to translations of the SCSI mode sense (6 and 10-byte) 61236769Sobrien * commands. 62236769Sobrien */ 63236769Sobrien 64236769Sobrien#include <dev/isci/scil/sati_types.h> 65236769Sobrien#include <dev/isci/scil/sati_translator_sequence.h> 66236769Sobrien#include <dev/isci/scil/intel_ata.h> 67236769Sobrien 68236769SobrienU16 sati_mode_sense_calculate_page_header( 69236769Sobrien void * scsi_io, 70236769Sobrien U8 cdb_size 71236769Sobrien); 72236769Sobrien 73236769SobrienSATI_STATUS sati_mode_sense_translate_command( 74236769Sobrien SATI_TRANSLATOR_SEQUENCE_T * sequence, 75236769Sobrien void * scsi_io, 76236769Sobrien void * ata_io, 77236769Sobrien U8 cdb_length 78236769Sobrien); 79236769Sobrien 80236769SobrienU32 sati_mode_sense_build_std_block_descriptor( 81236769Sobrien SATI_TRANSLATOR_SEQUENCE_T * sequence, 82236769Sobrien void * scsi_io, 83236769Sobrien ATA_IDENTIFY_DEVICE_DATA_T * identify, 84236769Sobrien U32 offset 85236769Sobrien); 86236769Sobrien 87U32 sati_mode_sense_copy_initial_data( 88 SATI_TRANSLATOR_SEQUENCE_T * sequence, 89 void * scsi_io, 90 U32 page_start, 91 U8 page_control, 92 U8 page_code 93); 94 95U32 sati_mode_sense_caching_translate_data( 96 SATI_TRANSLATOR_SEQUENCE_T * sequence, 97 void * scsi_io, 98 ATA_IDENTIFY_DEVICE_DATA_T * identify, 99 U32 offset 100); 101 102U32 sati_mode_sense_informational_excp_control_translate_data( 103 SATI_TRANSLATOR_SEQUENCE_T * sequence, 104 void * scsi_io, 105 ATA_IDENTIFY_DEVICE_DATA_T * identify, 106 U32 offset 107); 108 109U32 sati_mode_sense_all_pages_translate_data( 110 SATI_TRANSLATOR_SEQUENCE_T * sequence, 111 void * scsi_io, 112 ATA_IDENTIFY_DEVICE_DATA_T * identify, 113 U32 offset 114); 115 116U32 sati_mode_sense_read_write_error_translate_data( 117 SATI_TRANSLATOR_SEQUENCE_T * sequence, 118 void * scsi_io, 119 ATA_IDENTIFY_DEVICE_DATA_T * identify, 120 U32 offset 121); 122 123U32 sati_mode_sense_control_translate_data( 124 SATI_TRANSLATOR_SEQUENCE_T * sequence, 125 void * scsi_io, 126 ATA_IDENTIFY_DEVICE_DATA_T * identify, 127 U32 offset 128); 129 130U32 sati_mode_sense_disconnect_reconnect_translate_data( 131 SATI_TRANSLATOR_SEQUENCE_T * sequence, 132 void * scsi_io, 133 ATA_IDENTIFY_DEVICE_DATA_T * identify, 134 U32 offset 135); 136 137U32 sati_mode_sense_power_condition_translate_data( 138 SATI_TRANSLATOR_SEQUENCE_T * sequence, 139 void * scsi_io, 140 ATA_IDENTIFY_DEVICE_DATA_T * identify, 141 U32 offset 142); 143 144 145#endif // _SATI_MODE_SENSE_H_ 146 147