dma_page
void ivtv_udma_get_page_info(struct ivtv_dma_page_info *dma_page, unsigned long first, unsigned long size)
dma_page->uaddr = first & PAGE_MASK;
dma_page->offset = first & ~PAGE_MASK;
dma_page->tail = 1 + ((first+size-1) & ~PAGE_MASK);
dma_page->first = (first & PAGE_MASK) >> PAGE_SHIFT;
dma_page->last = ((first+size-1) & PAGE_MASK) >> PAGE_SHIFT;
dma_page->page_count = dma_page->last - dma_page->first + 1;
if (dma_page->page_count == 1) dma_page->tail -= dma_page->offset;
int ivtv_udma_fill_sg_list (struct ivtv_user_dma *dma, struct ivtv_dma_page_info *dma_page, int map_offset)
offset = dma_page->offset;
for (i = 0; i < dma_page->page_count; i++) {
unsigned int len = (i == dma_page->page_count - 1) ?
dma_page->tail : PAGE_SIZE - offset;
void ivtv_udma_get_page_info(struct ivtv_dma_page_info *dma_page, unsigned long first, unsigned long size);
int ivtv_udma_fill_sg_list(struct ivtv_user_dma *dma, struct ivtv_dma_page_info *dma_page, int map_offset);
static struct dma_page *pool_find_page(struct dma_pool *pool, dma_addr_t dma)
struct dma_page *page;
struct dma_page *page;
static void pool_init_page(struct dma_pool *pool, struct dma_page *page)
static void pool_init_page(struct dma_pool *pool, struct dma_page *page)
static void pool_initialise_page(struct dma_pool *pool, struct dma_page *page)
static struct dma_page *pool_alloc_page(struct dma_pool *pool, gfp_t mem_flags)
struct dma_page *page;
struct dma_page *page, *tmp;
struct dma_page *page;