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);