diff options
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | bmm_lib.c | 32 | ||||
-rw-r--r-- | bmm_lib.h | 2 | ||||
-rw-r--r-- | bmm_lib_priv.h | 2 | ||||
-rw-r--r-- | bmm_test.c | 137 | ||||
-rw-r--r-- | configure.ac | 6 |
6 files changed, 6 insertions, 177 deletions
diff --git a/Makefile.am b/Makefile.am index c7f124b..c135cb7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,8 +3,8 @@ AM_CFLAGS = $(WARN_CFLAGS) libbmm_la_LTLIBRARIES = libbmm.la libbmm_ladir = $(libdir) -libbmm_la_LDFLAGS = -avoid-version -no-undefined -shrext .so.@ABI_VERSION@ \ - -export-symbols-regex "bmm_*" +libbmm_la_LDFLAGS = -no-undefined -export-symbols-regex "bmm_*" \ + -version-info @ABI_VERSION@:@ABI_REVISION@:@ABI_AGE@ libbmm_la_SOURCES = bmm_lib.c bmm_lib_priv.h libbmm_laincludedir = $(includedir) @@ -303,38 +303,6 @@ void bmm_flush_cache(void *vaddr, int dir) ioctl(bmm_fd, BMM_FLUSH_CACHE, &io); } -void *bmm_dma_memcpy(void *dest, const void *src, size_t n) -{ - int ret; - ioctl_arg_t io; - - if(bmm_init() < 0) - return 0; - - io.input = (unsigned long)src; - io.output = (unsigned long)dest; - io.length = (unsigned long)n; - io.arg = 0; - ret = ioctl(bmm_fd, BMM_DMA_MEMCPY, &io); - if(ret < 0) - return 0; - - return dest; -} - -void bmm_dma_sync() -{ - ioctl_arg_t io; - - if(bmm_init() < 0) - return; - - io.input = 0; - io.output = 0; - io.arg = 0; - ioctl(bmm_fd, BMM_DMA_SYNC, &io); -} - void bmm_flush_cache_range(void *start, size_t size, int direction) { ioctl_arg_t io; @@ -54,8 +54,6 @@ unsigned long bmm_get_total_space(); unsigned long bmm_get_free_space(); unsigned long bmm_get_allocated_space(); void bmm_flush_cache(void *vaddr, int dir); -void *bmm_dma_memcpy(void *dest, const void *src, size_t n); /* Obsolete */ -void bmm_dma_sync(); /* Obsolete */ void bmm_flush_cache_range(void *start, size_t size, int direction); void bmm_flush_user(void *start, long size, int direction); void bmm_dump(); /* for debugging */ diff --git a/bmm_lib_priv.h b/bmm_lib_priv.h index ea71ffa..9b92681 100644 --- a/bmm_lib_priv.h +++ b/bmm_lib_priv.h @@ -35,8 +35,6 @@ typedef struct { #define BMM_GET_TOTAL_SPACE _IOWR(BMEM_IOCTL_MAGIC, 7, ioctl_arg_t) #define BMM_GET_FREE_SPACE _IOWR(BMEM_IOCTL_MAGIC, 8, ioctl_arg_t) #define BMM_FLUSH_CACHE _IOWR(BMEM_IOCTL_MAGIC, 9, ioctl_arg_t) -#define BMM_DMA_MEMCPY _IOWR(BMEM_IOCTL_MAGIC, 10, ioctl_arg_t) -#define BMM_DMA_SYNC _IOWR(BMEM_IOCTL_MAGIC, 11, ioctl_arg_t) #define BMM_CONSISTENT_SYNC _IOWR(BMEM_IOCTL_MAGIC, 12, ioctl_arg_t) #define BMM_DUMP _IOWR(BMEM_IOCTL_MAGIC, 13, ioctl_arg_t) #define BMM_GET_ALLOCATED_SPACE _IOWR(BMEM_IOCTL_MAGIC, 14, ioctl_arg_t) @@ -110,124 +110,6 @@ int test_bmm_malloc(unsigned long size, int attr) free_size1 != free_size3); } -int test_bmm_dma_memcpy(unsigned long size) -{ - char *src; - char *dst; - unsigned long i; - unsigned long free_size1; - unsigned long free_size2; - unsigned long free_size3; - int ret = 0; - - PRINT_TEST_NAME; - - free_size1 = bmm_get_free_space(); - src = bmm_malloc(size, BMM_ATTR_DEFAULT); - dst = bmm_malloc(size, BMM_ATTR_DEFAULT); - memset(src, 0, size); - memset(dst, 0, size); - free_size2 = bmm_get_free_space(); - if(src == NULL) { - printf("\tno enough memory\n"); - return -1; - } - if(dst == NULL) { - printf("\tno enough memory\n"); - bmm_free(src); - return -2; - } - for(i=0; i<size; i++) - src[i] = dst[size-i-1] = i; - bmm_flush_cache(src, BMM_DMA_TO_DEVICE); - bmm_flush_cache(dst, BMM_DMA_TO_DEVICE); - bmm_dma_memcpy(dst, src, size); - bmm_dma_sync(); - bmm_flush_cache(dst, BMM_DMA_FROM_DEVICE); - for(i=0; i<size; i++) { - if(src[i] != dst[i]) { - ret--; - if(debug) - printf("\t[%ld]: %d != %d\n", i, src[i], dst[i]); - else - break; - } - } - - bmm_free(src); - bmm_free(dst); - free_size3 = bmm_get_free_space(); - - printf("\tbmm_dma_memcpy(%ld/%ld) = %d\n", size, i, ret); - printf("\tbmm_get_free_space() return %ldKB %ldKB %ldKB\n", - free_size1/1024, free_size2/1024, free_size3/1024); - - if(ret) - return ret; - - return (free_size1 - free_size2 != size << 1 || free_size1 != free_size3); -} - -int test_bmm_dma_memcpy_range(unsigned long size) -{ - char *src; - char *dst; - unsigned long i, offset; - unsigned long free_size1; - unsigned long free_size2; - unsigned long free_size3; - int ret = 0; - - PRINT_TEST_NAME; - - free_size1 = bmm_get_free_space(); - src = bmm_malloc(size, BMM_ATTR_DEFAULT); - dst = bmm_malloc(size, BMM_ATTR_DEFAULT); - memset(src, 0, size); - memset(dst, 0, size); - free_size2 = bmm_get_free_space(); - if(src == NULL) { - printf("\tno enough memory\n"); - return -1; - } - if(dst == NULL) { - printf("\tno enough memory\n"); - bmm_free(src); - return -2; - } - for(i=0; i<size; i++) - src[i] = dst[size-i-1] = i; - for(offset=0; offset+size/2<size && offset<8096; offset+=128) { - bmm_flush_cache_range(src+offset, size/2, BMM_DMA_TO_DEVICE); - bmm_flush_cache_range(dst+offset, size/2, BMM_DMA_TO_DEVICE); - bmm_dma_memcpy(dst+offset, src+offset, size/2); - bmm_dma_sync(); - bmm_flush_cache_range(dst+offset, size/2, BMM_DMA_FROM_DEVICE); - for(i=offset; i<size/2; i++) { - if(src[i] != dst[i]) { - ret--; - if(debug) - printf("\t[%ld]: %d != %d\n", i, src[i], dst[i]); - else - break; - } - } - } - - bmm_free(src); - bmm_free(dst); - free_size3 = bmm_get_free_space(); - - printf("\tbmm_dma_memcpy(%ld/%ld) = %d\n", size, i, ret); - printf("\tbmm_get_free_space() return %ldKB %ldKB %ldKB\n", - free_size1/1024, free_size2/1024, free_size3/1024); - - if(ret) - return ret; - - return (free_size1 - free_size2 != size << 1 || free_size1 != free_size3); -} - long gettickcount(void) { struct timeval g_tv; @@ -425,25 +307,6 @@ int main(int argc, char * argv[]) PRINT_TEST_RESULT(ret); } -#if 0 - n = 128; - for(i=1; i<=n; i++) { - ret = test_bmm_dma_memcpy(i*4096); - PRINT_TEST_RESULT(ret); - } - - n = 4; - for(i=1; i<=n; i++) { - ret = test_bmm_dma_memcpy(i*1024*1024); - PRINT_TEST_RESULT(ret); - } - - n = 128; - for(i=1; i<=n; i++) { - ret = test_bmm_dma_memcpy_range(i*4096); - PRINT_TEST_RESULT(ret); - } -#endif n = 1; ret = test_bmm_flush_user(n*1024*1024); PRINT_TEST_RESULT(ret); diff --git a/configure.ac b/configure.ac index d8cbe23..5ff577b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,15 +1,17 @@ AC_PREREQ([2.63]) -AC_INIT([libbmm], [1.0.0], [], [libbmm]) +AC_INIT([libbmm], [1.1.0], [], [libbmm]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([1.10 foreign dist-bzip2]) AM_MAINTAINER_MODE([enable]) -ABI_VERSION=0u +ABI_VERSION=1 ABI_REVISION=1 +ABI_AGE=0 AC_SUBST(ABI_VERSION) AC_SUBST(ABI_REVISION) +AC_SUBST(ABI_AGE) # Enable quiet compiles on automake 1.11. m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) |