From f000eb0d43193ef8225f947226d9cd3deb00115b Mon Sep 17 00:00:00 2001 From: "Suren A. Chilingaryan" Date: Sun, 14 Jul 2013 05:49:19 +0200 Subject: Support pre-allocated memory with memmap in KMem --- kmem.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'kmem.c') diff --git a/kmem.c b/kmem.c index d693b60..64f593a 100644 --- a/kmem.c +++ b/kmem.c @@ -91,13 +91,19 @@ pcilib_kmem_handle_t *pcilib_alloc_kernel_memory(pcilib_t *ctx, pcilib_kmem_type kh.align = alignment; kh.use = use; - if ((type&PCILIB_KMEM_TYPE_MASK) != PCILIB_KMEM_TYPE_PAGE) { + if ((type&PCILIB_KMEM_TYPE_MASK) == PCILIB_KMEM_TYPE_REGION) { + kh.align = 0; + } else if ((type&PCILIB_KMEM_TYPE_MASK) != PCILIB_KMEM_TYPE_PAGE) { kh.size += alignment; } - + for ( i = 0; i < nmemb; i++) { kh.item = i; kh.flags = flags; + + if ((type&PCILIB_KMEM_TYPE_MASK) == PCILIB_KMEM_TYPE_REGION) { + kh.pa = alignment + i * size; + } ret = ioctl(ctx->handle, PCIDRIVER_IOC_KMEM_ALLOC, &kh); if (ret) { -- cgit v1.2.3