/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
* ATA8-ACS Definitions (subset) Working Draft AT Attachment 8 - ATA/ATAPI
* Command Set (D1699r4c)
*/
#ifndef _ATA8_ACS_H
#define _ATA8_ACS_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* ATA Command Set
*/
enum ata_opcode {
ATA_NOP = 0x00,
CFA_REQUEST_EXTENDED_ERROR = 0x03,
DEVICE_RESET = 0x08,
READ_SECTORS = 0x20,
READ_SECTORS_EXT = 0x24,
READ_DMA_EXT = 0x25,
READ_DMA_QUEUED_EXT = 0x26,
READ_NATIVE_MAX_ADDRESS_EXT = 0x27,
READ_MULTIPLE_EXT = 0x29,
READ_STREAM_DMA_EXT = 0x2A,
READ_STREAM_EXT = 0x2B,
READ_LOG_EXT = 0x2F,
WRITE_SECTORS = 0x30,
WRITE_SECTORS_EXT = 0x34,
WRITE_DMA_EXT = 0x35,
WRITE_DMA_QUEUED_EXT = 0x36,
SET_MAX_ADDRESS_EXT = 0x37,
CFA_WRITE_SECTORS_WITHOUT_ERASE = 0x38,
WRITE_MULTIPLE_EXT = 0x39,
WRITE_STREAM_DMA_EXT = 0x3A,
WRITE_STREAM_EXT = 0x3B,
WRITE_DMA_FUA_EXT = 0x3D,
WRITE_DMA_QUEUED_FUA_EXT = 0x3E,
WRITE_LOG_EXT = 0x3F,
READ_VERIFY_SECTORS = 0x40,
READ_VERIFY_SECTORS_EXT = 0x42,
WRITE_UNCORRECTABLE_EXT = 0x45,
READ_LOG_DMA_EXT = 0x47,
CONFIGURE_STREAM = 0x51,
WRITE_LOG_DMA_EXT = 0x57,
TRUSTED_NON_DATA = 0x5B,
TRUSTED_RECEIVE = 0x5C,
TRUSTED_RECEIVE_DMA = 0x5D,
TRUSTED_SEND = 0x5E,
TRUSTED_SEND_DMA = 0x5E,
READ_FPDMA_QUEUED = 0x60,
WRITE_FPDMA_QUEUED = 0x61,
CFA_TRANSLATE_SECTOR = 0x87,
EXECUTE_DEVICE_DIAGNOSTIC = 0x90,
DOWNLOAD_MICROCODE = 0x92,
PACKET = 0xA0,
IDENTIFY_PACKET_DEVICE = 0xA1,
SERVICE = 0xA2,
SMART = 0xB0,
DEVICE_CONFIGURATION_OVERLAY = 0xB1,
NV_CACHE = 0xB6,
CFA_ERASE_SECTORS = 0xC0,
READ_MULTIPLE = 0xC4,
WRITE_MULTIPLE = 0xC5,
SET_MULTIPLE_MODE = 0xC6,
READ_DMA_QUEUED = 0xC7,
READ_DMA = 0xC8,
WRITE_DMA = 0xCA,
WRITE_DMA_QUEUED = 0xCC,
CFA_WRITE_MULTIPLE_WITHOUT_ERASE = 0xCD,
WRITE_MULTIPLE_FUA_EXT = 0xCE,
CHECK_MEDIA_CARD_TYPE = 0xD1,
STANDBY_IMMEDIATE = 0xE0,
IDLE_IMMEDIATE = 0xE1,
STANDBY = 0xE2,
IDLE = 0xE3,
ATA_READ_BUFFER = 0xE4,
CHECK_POWER_MODE = 0xE5,
SLEEP = 0xE6,
FLUSH_CACHE = 0xE7,
ATA_WRITE_BUFFER = 0xE8,
FLUSH_CACHE_EXT = 0xEA,
IDENTIFY_DEVICE = 0xEC,
MEDIA_EJECT = 0xED,
SET_FEATURES = 0xEF,
SECURITY_SET_PASSWORD = 0xF1,
SECURITY_UNLOCK = 0xF2,
SECURITY_ERASE_PREPARE = 0xF3,
SECURITY_ERASE_UNIT = 0xF4,
SECURITY_FREEZE_LOCK = 0xF5,
SECURITY_DISABLE_PASSWORD = 0xF6,
READ_NATIVE_MAX_ADDRESS = 0xF8,
SET_MAX_ADDRESS = 0xF9
};
#ifdef __cplusplus
}
#endif
#endif /* _ATA8_ACS_H */