Defined more SCSI sense data keys
[AROS.git] / rom / devs / ahci / ahci_intern.h
blob4de40d89b825ca9a5ef91ae069edc013e6e569b3
1 /*
2 * Copyright (C) 2011, The AROS Development Team. All rights reserved.
3 * Author: Jason S. McMullan <jason.mcmullan@gmail.com>
5 * Licensed under the AROS PUBLIC LICENSE (APL) Version 1.1
6 */
8 #ifndef AHCI_INTERN_H
9 #define AHCI_INTERN_H
11 #include <exec/types.h>
12 #include <asm/io.h>
14 #include <devices/scsidisk.h>
15 #include <exec/devices.h>
17 #include <oop/oop.h>
19 #include <hardware/ahci.h>
21 #define Unit(io) ((struct ahci_Unit *)(io)->io_Unit)
22 #define IOStdReq(io) ((struct IOStdReq *)io)
24 /* Device types */
25 #define DEV_NONE 0x00
26 #define DEV_UNKNOWN 0x01
27 #define DEV_ATA 0x02
28 #define DEV_SATA 0x03
29 #define DEV_ATAPI 0x80
30 #define DEV_SATAPI 0x81
31 #define DEV_BROKEN 0xff
34 /* ahci.device base */
35 struct AHCIBase
38 * Device structure - used to manage devices by Exec
40 struct Device ahci_Device;
43 * master task pointer
45 struct Task *ahci_Daemon;
47 /* Count of all hosts detected */
48 ULONG ahci_HostCount;
51 * List of all units
53 struct MinList ahci_Units;
56 * memory pool
58 APTR ahci_MemPool;
60 /* Frequently used object offsets */
61 OOP_AttrBase ahci_HiddPCIDeviceAttrBase;
62 OOP_MethodID ahci_HiddPCIDeviceMethodBase;
64 OOP_MethodID ahci_HiddPCIDriverMethodBase;
67 struct ahci_port;
69 #include <exec/semaphores.h>
71 struct cam_sim {
72 struct MinNode sim_Node;
73 struct ahci_port *sim_Port;
74 ULONG sim_Unit;
75 ULONG sim_UseCount;
76 struct SignalSemaphore sim_Lock;
77 unsigned int sim_Timeout;
78 struct List sim_IOs;
79 ULONG sim_Flags;
80 #define SIMB_MediaPresent 0 /* Media is present */
81 #define SIMB_OffLine 1 /* No new IOs are permitted */
82 #define SIMF_MediaPresent (1 << SIMB_MediaPresent)
83 #define SIMF_OffLine (1 << SIMB_OffLine)
84 ULONG sim_ChangeNum;
85 struct Task *sim_Monitor;
88 #endif /* AHCI_INTERN_H */