root/src/add-ons/kernel/bus_managers/ata/ATACommands.h
/*
 * Copyright 2012, Adrien Destugues, pulkomandy@pulkomandy.tk.
 * Copyright 2009, Michael Lotz, mmlr@mlotz.ch.
 * Copyright 2002-2003, Thomas Kurschel.
 *
 * Distributed under the terms of the MIT License.
 */
#ifndef ATA_COMMANDS_H
#define ATA_COMMANDS_H

#define ATA_COMMAND_WRITE_DMA                                                   0xca
#define ATA_COMMAND_WRITE_DMA_QUEUED                                    0xcc
#define ATA_COMMAND_WRITE_MULTIPLE                                              0xc5
#define ATA_COMMAND_WRITE_SECTORS                                               0x30

#define ATA_COMMAND_READ_DMA                                                    0xc8
#define ATA_COMMAND_READ_DMA_QUEUED                                             0xc7
#define ATA_COMMAND_READ_MULTIPLE                                               0xc4
#define ATA_COMMAND_READ_SECTORS                                                0x20

#define ATA_COMMAND_WRITE_DMA_EXT                                               0x35
#define ATA_COMMAND_WRITE_DMA_QUEUED_EXT                                0x36
#define ATA_COMMAND_WRITE_MULTIPLE_EXT                                  0x39
#define ATA_COMMAND_WRITE_SECTORS_EXT                                   0x34

#define ATA_COMMAND_READ_DMA_EXT                                                0x25
#define ATA_COMMAND_READ_DMA_QUEUED_EXT                                 0x26
#define ATA_COMMAND_READ_MULTIPLE_EXT                                   0x29
#define ATA_COMMAND_READ_SECTORS_EXT                                    0x24

#define ATA_COMMAND_PACKET                                                              0xa0
#define ATA_COMMAND_DEVICE_RESET                                                0x08

#define ATA_COMMAND_SERVICE                                                             0xa2
#define ATA_COMMAND_NOP                                                                 0

#define ATA_COMMAND_NOP_NOP                                                             0
#define ATA_COMMAND_NOP_NOP_AUTOPOLL                                    1


#define ATA_COMMAND_GET_MEDIA_STATUS                                    0xda

#define ATA_COMMAND_FLUSH_CACHE                                                 0xe7
#define ATA_COMMAND_FLUSH_CACHE_EXT                                             0xea

#define ATA_COMMAND_DATA_SET_MANAGEMENT                                 0x06

#define ATA_COMMAND_MEDIA_EJECT                                                 0xed

#define ATA_COMMAND_IDENTIFY_PACKET_DEVICE                              0xa1
#define ATA_COMMAND_IDENTIFY_DEVICE                                             0xec

#define ATA_COMMAND_SET_FEATURES                                                0xef
#define ATA_COMMAND_SET_FEATURES_ENABLE_RELELEASE_INT   0x5d
#define ATA_COMMAND_SET_FEATURES_ENABLE_SERVICE_INT             0x5e
#define ATA_COMMAND_SET_FEATURES_DISABLE_RELEASE_INT    0xdd
#define ATA_COMMAND_SET_FEATURES_DISABLE_SERVICE_INT    0xde

#endif // ATA_COMMANDS_H