20 #ifndef SCSICOMMANDS_H 21 #define SCSICOMMANDS_H 23 #include "pedigree/kernel/compiler.h" 24 #include "pedigree/kernel/processor/types.h" 32 virtual size_t serialise(uintptr_t &addr) = 0;
41 uint16_t len = 0,
bool enableVitalData =
false, uint8_t pageCode = 0,
44 virtual size_t serialise(uintptr_t &addr);
61 virtual size_t serialise(uintptr_t &addr);
74 ReadSense(uint8_t desc, uint8_t len, uint8_t ctl = 0);
76 virtual size_t serialise(uintptr_t &addr);
92 bool imm, uint8_t newpower,
bool eject_load,
bool start,
95 virtual size_t serialise(uintptr_t &addr);
111 bool selfTest, uint8_t selfTestCode = 0, uintptr_t params = 0,
112 size_t paramLen = 0,
bool deviceOffline =
false,
113 bool unitOffline =
false, uint8_t ctl = 0);
115 virtual size_t serialise(uintptr_t &addr);
120 uint32_t unitOffline : 1;
121 uint32_t devOffline : 1;
122 uint32_t selfTest : 1;
125 uint32_t selfTestCode : 3;
127 uint16_t paramListLen;
137 virtual size_t serialise(uintptr_t &addr);
167 virtual size_t serialise(uintptr_t &addr);
172 uint8_t obsolete_rsvd;
183 Read10(uint32_t nLba, uint32_t nSectors);
185 virtual size_t serialise(uintptr_t &addr);
190 uint8_t bRelAddr : 1;
205 Read12(uint32_t nLba, uint32_t nSectors);
207 virtual size_t serialise(uintptr_t &addr);
212 uint8_t bRelAddr : 1;
227 Read16(uint32_t nLba, uint32_t nSectors);
229 virtual size_t serialise(uintptr_t &addr);
234 uint8_t bRelAddr : 1;
249 Write10(uint32_t nLba, uint32_t nSectors);
251 virtual size_t serialise(uintptr_t &addr);
261 uint8_t nWrProtect : 3;
272 Write12(uint32_t nLba, uint32_t nSectors);
274 virtual size_t serialise(uintptr_t &addr);
284 uint8_t nWrProtect : 3;
295 Write16(uint32_t nLba, uint32_t nSectors);
297 virtual size_t serialise(uintptr_t &addr);
307 uint8_t nWrProtect : 3;
320 virtual size_t serialise(uintptr_t &addr);
342 virtual size_t serialise(uintptr_t &addr);