]> err.no Git - linux-2.6/blobdiff - include/linux/dmaengine.h
[PATCH] md/bitmap: remove bitmap writeback daemon
[linux-2.6] / include / linux / dmaengine.h
index 30781546ac99b69c92ace572eb6f836520dd1554..78b236ca04f801ec188f1f78306ee44d10e02d95 100644 (file)
@@ -333,5 +333,27 @@ static inline enum dma_status dma_async_is_complete(dma_cookie_t cookie,
 int dma_async_device_register(struct dma_device *device);
 void dma_async_device_unregister(struct dma_device *device);
 
+/* --- Helper iov-locking functions --- */
+
+struct dma_page_list {
+       char *base_address;
+       int nr_pages;
+       struct page **pages;
+};
+
+struct dma_pinned_list {
+       int nr_iovecs;
+       struct dma_page_list page_list[0];
+};
+
+struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len);
+void dma_unpin_iovec_pages(struct dma_pinned_list* pinned_list);
+
+dma_cookie_t dma_memcpy_to_iovec(struct dma_chan *chan, struct iovec *iov,
+       struct dma_pinned_list *pinned_list, unsigned char *kdata, size_t len);
+dma_cookie_t dma_memcpy_pg_to_iovec(struct dma_chan *chan, struct iovec *iov,
+       struct dma_pinned_list *pinned_list, struct page *page,
+       unsigned int offset, size_t len);
+
 #endif /* CONFIG_DMA_ENGINE */
 #endif /* DMAENGINE_H */