axle OS
x86_32 UNIX-like hobby OS
src
kernel
drivers
ide
ide.h
1
#define ATA_SR_BSY 0x80 //busy
2
#define ATA_SR_DRDY 0x40 //drive ready
3
#define ATA_SR_DF 0x20 //drive write fault
4
#define ATA_SR_DSC 0x10 //drive seek complete
5
#define ATA_SR_DRQ 0x08 //data request ready
6
#define ATA_SR_CORR 0x04 //corrected data
7
#define ATA_SR_IDX 0x02 //inlex
8
#define ATA_SR_ERR 0x01 //error
9
10
#define ATA_ER_BBK 0x80 //bad sector
11
#define ATA_ER_UNC 0x40 //uncorrectable data
12
#define ATA_ER_MC 0x20 //no media
13
#define ATA_ER_IDNF 0x10 //ID mark not found
14
#define ATA_ER_MCR 0x08 //no media
15
#define ATA_ER_ABRT 0x04 //command aborted
16
#define ATA_ER_TK0NF 0x02 //track 0 not found
17
#define ATA_ER_AMNF 0x01 //no address mark
18
19
#define ATA_CMD_READ_PIO 0x20
20
#define ATA_CMD_READ_PIO_EXT 0x24
21
#define ATA_CMD_READ_DMA 0xC8
22
#define ATA_CMD_READ_DMA_EXT 0x25
23
#define ATA_CMD_WRITE_PIO 0x30
24
#define ATA_CMD_WRITE_PIO_EXT 0x34
25
#define ATA_CMD_WRITE_DMA 0xCA
26
#define ATA_CMD_WRITE_DMA_EXT 0x35
27
#define ATA_CMD_CACHE_FLUSH 0xE7
28
#define ATA_CMD_CACHE_FLUSH_EXT 0xEA
29
#define ATA_CMD_PACKET 0xA0
30
#define ATA_CMD_IDENTIFY_PACKET 0xA1
31
#define ATA_CMD_IDENTIFY 0xEC
32
33
#define ATAPI_CMD_READ 0xA8
34
#define ATAPI_CMD_EJECT 0x1B
35
36
#define ATA_IDENT_DEVICETYPE 0
37
#define ATA_IDENT_DEVICETYPE_CYLINDERS 2
38
#define ATA_IDENT_HEADS 6
39
#define ATA_IDENT_SECTORS 12
40
#define ATA_IDENT_SERIAL 20
41
#define ATA_IDENT_MODEL 54
42
#define ATA_IDENT_CAPABILITIES 98
43
#define ATA_IDENT_FIELDVALID 106
44
#define ATA_IDENT_MAX_LBA 120
45
#define ATA_IDENT_COMMANDSETS 164
46
#define ATA_IDENT_MAX_LBA_EXT 200
47
48
#define IDE_ATA 0x00
49
#define IDE_ATAPI 0x01
50
Generated by
1.8.14