1/*
2 * Copyright 2012, Adrien Destugues, pulkomandy@pulkomandy.tk.
3 * Copyright 2009, Michael Lotz, mmlr@mlotz.ch.
4 * Copyright 2002-2003, Thomas Kurschel.
5 *
6 * Distributed under the terms of the MIT License.
7 */
8#ifndef ATA_COMMANDS_H
9#define ATA_COMMANDS_H
10
11#define ATA_COMMAND_WRITE_DMA							0xca
12#define ATA_COMMAND_WRITE_DMA_QUEUED					0xcc
13#define ATA_COMMAND_WRITE_MULTIPLE						0xc5
14#define ATA_COMMAND_WRITE_SECTORS						0x30
15
16#define ATA_COMMAND_READ_DMA							0xc8
17#define ATA_COMMAND_READ_DMA_QUEUED						0xc7
18#define ATA_COMMAND_READ_MULTIPLE						0xc4
19#define ATA_COMMAND_READ_SECTORS						0x20
20
21#define ATA_COMMAND_WRITE_DMA_EXT						0x35
22#define ATA_COMMAND_WRITE_DMA_QUEUED_EXT				0x36
23#define ATA_COMMAND_WRITE_MULTIPLE_EXT					0x39
24#define ATA_COMMAND_WRITE_SECTORS_EXT					0x34
25
26#define ATA_COMMAND_READ_DMA_EXT						0x25
27#define ATA_COMMAND_READ_DMA_QUEUED_EXT					0x26
28#define ATA_COMMAND_READ_MULTIPLE_EXT					0x29
29#define ATA_COMMAND_READ_SECTORS_EXT					0x24
30
31#define ATA_COMMAND_PACKET								0xa0
32#define ATA_COMMAND_DEVICE_RESET						0x08
33
34#define ATA_COMMAND_SERVICE								0xa2
35#define ATA_COMMAND_NOP									0
36
37#define ATA_COMMAND_NOP_NOP								0
38#define ATA_COMMAND_NOP_NOP_AUTOPOLL					1
39
40
41#define ATA_COMMAND_GET_MEDIA_STATUS					0xda
42
43#define ATA_COMMAND_FLUSH_CACHE							0xe7
44#define ATA_COMMAND_FLUSH_CACHE_EXT						0xea
45
46#define ATA_COMMAND_DATA_SET_MANAGEMENT					0x06
47
48#define ATA_COMMAND_MEDIA_EJECT							0xed
49
50#define ATA_COMMAND_IDENTIFY_PACKET_DEVICE				0xa1
51#define ATA_COMMAND_IDENTIFY_DEVICE						0xec
52
53#define ATA_COMMAND_SET_FEATURES						0xef
54#define ATA_COMMAND_SET_FEATURES_ENABLE_RELELEASE_INT	0x5d
55#define ATA_COMMAND_SET_FEATURES_ENABLE_SERVICE_INT		0x5e
56#define ATA_COMMAND_SET_FEATURES_DISABLE_RELEASE_INT	0xdd
57#define ATA_COMMAND_SET_FEATURES_DISABLE_SERVICE_INT	0xde
58
59#endif // ATA_COMMANDS_H
60