From 33fb2003ef2e359f472dc153a7c2e700cdff2922 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 21 Oct 2011 02:37:19 +0200 Subject: Support exporting data from kernel buffers --- kmem.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'kmem.c') diff --git a/kmem.c b/kmem.c index cc84e8c..b94b628 100644 --- a/kmem.c +++ b/kmem.c @@ -144,9 +144,9 @@ pcilib_kmem_handle_t *pcilib_alloc_kernel_memory(pcilib_t *ctx, pcilib_kmem_type break; } - if ((alignment)&&(type != PCILIB_KMEM_TYPE_PAGE)) { - if (kh.pa % alignment) kbuf->buf.blocks[i].alignment_offset = alignment - kh.pa % alignment; - kbuf->buf.blocks[i].size -= alignment; + if ((kh.align)&&(type != PCILIB_KMEM_TYPE_PAGE)) { + if (kh.pa % kh.align) kbuf->buf.blocks[i].alignment_offset = kh.align - kh.pa % kh.align; + kbuf->buf.blocks[i].size -= kh.align; } addr = mmap( 0, kbuf->buf.blocks[i].size + kbuf->buf.blocks[i].alignment_offset, PROT_WRITE | PROT_READ, MAP_SHARED, ctx->handle, 0 ); @@ -157,6 +157,9 @@ pcilib_kmem_handle_t *pcilib_alloc_kernel_memory(pcilib_t *ctx, pcilib_kmem_type } kbuf->buf.blocks[i].ua = addr; +// if (use == PCILIB_KMEM_USE_DMA_PAGES) { +// memset(addr, 10, kbuf->buf.blocks[i].size + kbuf->buf.blocks[i].alignment_offset); +// } kbuf->buf.blocks[i].mmap_offset = kh.pa & ctx->page_mask; } -- cgit v1.2.3