]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/IOKit/IODMAEventSource.h
xnu-4570.20.62.tar.gz
[apple/xnu.git] / iokit / IOKit / IODMAEventSource.h
index 18a72de50e65e492e717c092ef38fe6b804a7b64..9aa34a93f7d43ca8ea5fec1fd9c39259d341796d 100644 (file)
@@ -43,12 +43,12 @@ class IODMAEventSource : public IOEventSource
   friend class IODMAController;
   
  public:
-  typedef void (*Action)(OSObject *owner, IODMAEventSource *dmaES, IODMACommand *dmaCommand, IOReturn status, IOByteCount actualByteCount);
+  typedef void (*Action)(OSObject *owner, IODMAEventSource *dmaES, IODMACommand *dmaCommand, IOReturn status, IOByteCount actualByteCount, AbsoluteTime timeStamp);
 #define IODMAEventAction IODMAEventSource::Action
   
  protected:
   virtual void completeDMACommand(IODMACommand *dmaCommand);
-  virtual void notifyDMACommand(IODMACommand *dmaCommand, IOReturn status, IOByteCount actualByteCount);
+  virtual void notifyDMACommand(IODMACommand *dmaCommand, IOReturn status, IOByteCount actualByteCount, AbsoluteTime timeStamp);
   
  public:
   static IODMAEventSource *dmaEventSource(OSObject *owner,
@@ -59,9 +59,17 @@ class IODMAEventSource : public IOEventSource
   
   virtual IOReturn startDMACommand(IODMACommand *dmaCommand, IODirection direction, IOByteCount byteCount = 0, IOByteCount byteOffset = 0);
   virtual IOReturn stopDMACommand(bool flush = false, uint64_t timeout = UINT64_MAX);
-  
+
   virtual IOReturn queryDMACommand(IODMACommand **dmaCommand, IOByteCount *transferCount, bool waitForIdle = false);
-  virtual IOByteCount getFIFODepth();
+
+  virtual IOByteCount getFIFODepth(IODirection direction = kIODirectionNone);
+  virtual IOReturn setFIFODepth(IOByteCount depth);
+  virtual IOByteCount validFIFODepth(IOByteCount depth, IODirection direction);
+
+  virtual IOReturn setFrameSize(UInt8 byteCount);
+
+  virtual IOReturn setDMAConfig(UInt32 dmaIndex);
+  virtual bool validDMAConfig(UInt32 dmaIndex);
   
  private:
   IOService       *dmaProvider;
@@ -78,7 +86,8 @@ class IODMAEventSource : public IOEventSource
                    Action completion = 0,
                    Action notification = 0,
                    UInt32 dmaIndex = 0);
-  virtual bool checkForWork(void);
+  virtual bool checkForWork(void) APPLE_KEXT_OVERRIDE;
+  virtual void free(void) APPLE_KEXT_OVERRIDE;
 };
 
 #endif /* _IOKIT_IODMAEVENTSOURCE_H */