=================================================================== RCS file: /MkLinux/floppy-darwin/floppy.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- floppy-darwin/floppy.h 2002/03/14 05:41:35 1.5 +++ floppy-darwin/floppy.h 2002/03/14 05:50:42 1.6 @@ -6,10 +6,6 @@ #include "bus_device.h" } -class org_mklinux_iokit_swim3_device : public IOService -{ -}; - class org_mklinux_iokit_swim3_driver : public IOService { OSDeclareDefaultStructors(org_mklinux_iokit_swim3_driver) @@ -56,4 +52,72 @@ }; +class org_mklinux_iokit_swim3_device : public IOBlockStorageDevice +{ + + OSDeclareDefaultStructors ( org_mklinux_iokit_swim3_device ) + +protected: + + org_mklinux_iokit_swim3_driver * fProvider; + + virtual bool attach ( IOService * provider ); + virtual void detach ( IOService * provider ); + +public: + + virtual IOReturn setProperties ( OSObject * properties ); + + + virtual IOReturn doAsyncReadWrite ( IOMemoryDescriptor * buffer, + UInt32 block, + UInt32 nblks, + IOStorageCompletion completion ); + + virtual IOReturn doSyncReadWrite ( IOMemoryDescriptor * buffer, + UInt32 block, + UInt32 nblks ); + + virtual IOReturn doEjectMedia ( void ); + + virtual IOReturn doFormatMedia ( UInt64 byteCapacity ); + + virtual UInt32 doGetFormatCapacities ( UInt64 * capacities, + UInt32 capacitiesMaxCount ) const; + + virtual IOReturn doLockUnlockMedia ( bool doLock ); + + virtual IOReturn doSynchronizeCache ( void ); + + virtual char * getVendorString ( void ); + + virtual char * getProductString ( void ); + + virtual char * getRevisionString ( void ); + + virtual char * getAdditionalDeviceInfoString ( void ); + + virtual IOReturn reportBlockSize ( UInt64 * blockSize ); + + virtual IOReturn reportEjectability ( bool * isEjectable ); + + virtual IOReturn reportLockability ( bool * isLockable ); + + virtual IOReturn reportMediaState ( bool * mediaPresent, bool * changed ); + + virtual IOReturn reportPollRequirements ( bool * pollIsRequired, + bool * pollIsExpensive ); + + virtual IOReturn reportMaxReadTransfer ( UInt64 blockSize, UInt64 * max ); + + virtual IOReturn reportMaxValidBlock ( UInt64 * maxBlock ); + + virtual IOReturn reportMaxWriteTransfer ( UInt64 blockSize, UInt64 * max ); + + virtual IOReturn reportRemovability ( bool * isRemovable ); + + virtual IOReturn reportWriteProtection ( bool * isWriteProtected ); + +}; +