5 Copyright © 2013, The AROS Development Team. All rights reserved.
8 Desc: ATA bus driver HIDD definitions
12 #define CLID_HW_ATA "hw.ata"
13 #define CLID_Hidd_ATABus "hidd.ata.bus"
15 struct ATA_BusInterface
17 VOID (*ata_out
)(void *obj
, UBYTE val
, UWORD offset
);
18 UBYTE (*ata_in
)(void *obj
, UWORD offset
);
19 VOID (*ata_out_alt
)(void *obj
, UBYTE val
, UWORD offset
);
20 UBYTE (*ata_in_alt
)(void *obj
, UWORD offset
);
23 struct ATA_PIOInterface
25 VOID (*ata_outsw
)(void *obj
, APTR address
, ULONG count
);
26 VOID (*ata_insw
)(void *obj
, APTR address
, ULONG count
);
27 VOID (*ata_outsl
)(void *obj
, APTR address
, ULONG count
);
28 VOID (*ata_insl
)(void *obj
, APTR address
, ULONG count
);
31 struct ATA_DMAInterface
33 BOOL (*dma_Prepare
)(void *obj
, APTR buffer
, IPTR size
, BOOL read
);
34 VOID (*dma_Start
)(void *obj
);
35 VOID (*dma_End
)(void *obj
, APTR buffer
, IPTR size
, BOOL read
);
36 ULONG (*dma_Result
)(void *obj
);
59 AB_XFER_48BIT
= 27, /* LBA48 */
60 AB_XFER_RWMULTI
, /* Multisector */
61 AB_XFER_PACKET
, /* ATAPI */
62 AB_XFER_LBA
, /* LBA28 */
63 AB_XFER_PIO32
/* 32-bit PIO */
66 #define AF_XFER_PIO(x) (1<<(AB_XFER_PIO0+(x)))
67 #define AF_XFER_MDMA(x) (1<<(AB_XFER_MDMA0+(x)))
68 #define AF_XFER_UDMA(x) (1<<(AB_XFER_UDMA0+(x)))
69 #define AF_XFER_48BIT (1<<(AB_XFER_48BIT))
70 #define AF_XFER_RWMULTI (1<<(AB_XFER_RWMULTI))
71 #define AF_XFER_PACKET (1<<(AB_XFER_PACKET))
72 #define AF_XFER_LBA (1<<(AB_XFER_LBA))
73 #define AF_XFER_PIO32 (1<<(AB_XFER_PIO32))
75 #include <interface/Hidd_ATABus.h>
76 #include <interface/Hidd_ATAUnit.h>