diff options
author | Travis Geiselbrecht <geist@foobox.com> | 2015-08-28 15:03:17 -0700 |
---|---|---|
committer | Travis Geiselbrecht <geist@foobox.com> | 2015-08-28 15:03:17 -0700 |
commit | 9118a4d6051a6c9f5341261937d00e6645a990d4 (patch) | |
tree | 0cf9f6cd5488147d91b47becf8b8373af86404db /app | |
parent | f0a5c02e8820df07418fa032ff99d7ac26bc8ccb (diff) | |
parent | 658639022cbe9af9ae1ccec2636b3d52b01a6091 (diff) | |
download | common-9118a4d6051a6c9f5341261937d00e6645a990d4.tar.gz |
[merge] merge from the stm32f7 branch
Conflicts:
arch/arm/arm-m/arch.c
Diffstat (limited to 'app')
-rw-r--r-- | app/inetsrv/inetsrv.c | 27 | ||||
-rw-r--r-- | app/tests/clock_tests.c | 4 | ||||
-rw-r--r-- | app/tests/mem_tests.c | 70 |
3 files changed, 64 insertions, 37 deletions
diff --git a/app/inetsrv/inetsrv.c b/app/inetsrv/inetsrv.c index 588510ea..63a64e9f 100644 --- a/app/inetsrv/inetsrv.c +++ b/app/inetsrv/inetsrv.c @@ -21,6 +21,7 @@ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include <app.h> +#include <err.h> #include <debug.h> #include <trace.h> #include <stdio.h> @@ -43,7 +44,7 @@ static int chargen_worker(void *socket) uint8_t *buf = malloc(CHARGEN_BUFSIZE); if (!buf) - return -1; + return ERR_NO_MEMORY; /* generate the sequence */ uint8_t c = '!'; @@ -104,11 +105,16 @@ static int discard_worker(void *socket) uint32_t crc = 0; tcp_socket_t *s = socket; +#define DISCARD_BUFSIZE 1024 + + uint8_t *buf = malloc(DISCARD_BUFSIZE); + if (!buf) { + TRACEF("error allocating buffer\n"); + } + lk_time_t t = current_time(); for (;;) { - uint8_t buf[1024]; - - ssize_t ret = tcp_read(s, buf, sizeof(buf)); + ssize_t ret = tcp_read(s, buf, DISCARD_BUFSIZE); if (ret <= 0) break; @@ -122,6 +128,8 @@ static int discard_worker(void *socket) count, (uint32_t)t, count * 1000 / t, crc); tcp_close(s); + free(buf); + return 0; } @@ -155,9 +163,15 @@ static int echo_worker(void *socket) { tcp_socket_t *s = socket; - for (;;) { - uint8_t buf[1024]; +#define ECHO_BUFSIZE 1024 + + uint8_t *buf = malloc(ECHO_BUFSIZE); + if (!buf) { + TRACEF("error allocating buffer\n"); + return ERR_NO_MEMORY; + } + for (;;) { ssize_t ret = tcp_read(s, buf, sizeof(buf)); if (ret <= 0) break; @@ -169,6 +183,7 @@ static int echo_worker(void *socket) TRACEF("echo worker exiting\n"); tcp_close(s); + free(buf); return 0; } diff --git a/app/tests/clock_tests.c b/app/tests/clock_tests.c index aef531c5..fbe6a6f1 100644 --- a/app/tests/clock_tests.c +++ b/app/tests/clock_tests.c @@ -57,7 +57,7 @@ void clock_tests(void) t = current_time(); //printf("%lu %lu\n", last, t); if (TIME_LT(t, last)) { - printf("WARNING: time ran backwards: %lu < %lu\n", last, t); + printf("WARNING: time ran backwards: %lu < %lu\n", t, last); } last = t; if (last - start > 5000) @@ -72,7 +72,7 @@ void clock_tests(void) t2 = current_time_hires(); //printf("%llu %llu\n", last, t2); if (t2 < last) { - printf("WARNING: time ran backwards: %llu < %llu\n", last, t2); + printf("WARNING: time ran backwards: %llu < %llu\n", t2, last); } last = t2; if (last - start > 5000000) diff --git a/app/tests/mem_tests.c b/app/tests/mem_tests.c index c20216ca..9c11d6c8 100644 --- a/app/tests/mem_tests.c +++ b/app/tests/mem_tests.c @@ -174,52 +174,64 @@ static int mem_test(int argc, const cmd_args *argv) { if (argc < 2) { printf("not enough arguments\n"); +usage: printf("usage: %s <length>\n", argv[0].str); + printf("usage: %s <base> <length>\n", argv[0].str); return -1; } - void *ptr; - size_t len = argv[1].u; + if (argc == 2) { + void *ptr; + size_t len = argv[1].u; #if WITH_KERNEL_VM - /* rounding up len to the next page */ - len = PAGE_ALIGN(len); - if (len == 0) { - printf("invalid length\n"); - return -1; - } + /* rounding up len to the next page */ + len = PAGE_ALIGN(len); + if (len == 0) { + printf("invalid length\n"); + return -1; + } - /* allocate a region to test in */ - status_t err = vmm_alloc_contiguous(vmm_get_kernel_aspace(), "memtest", len, &ptr, 0, 0, ARCH_MMU_FLAG_UNCACHED); - if (err < 0) { - printf("error %d allocating test region\n", err); - return -1; - } + /* allocate a region to test in */ + status_t err = vmm_alloc_contiguous(vmm_get_kernel_aspace(), "memtest", len, &ptr, 0, 0, ARCH_MMU_FLAG_UNCACHED); + if (err < 0) { + printf("error %d allocating test region\n", err); + return -1; + } - paddr_t pa; - arch_mmu_query((vaddr_t)ptr, &pa, 0); - printf("physical address 0x%lx\n", pa); + paddr_t pa; + arch_mmu_query((vaddr_t)ptr, &pa, 0); + printf("physical address 0x%lx\n", pa); #else - /* allocate from the heap */ - ptr = malloc(len); - if (!ptr ) { - printf("error allocating test area from heap\n"); - return -1; - } + /* allocate from the heap */ + ptr = malloc(len); + if (!ptr ) { + printf("error allocating test area from heap\n"); + return -1; + } #endif - printf("got buffer at %p of length 0x%lx\n", ptr, len); + printf("got buffer at %p of length 0x%lx\n", ptr, len); - /* run the tests */ - do_mem_tests(ptr, len); + /* run the tests */ + do_mem_tests(ptr, len); #if WITH_KERNEL_VM - // XXX free memory region here - printf("NOTE: leaked memory\n"); + // XXX free memory region here + printf("NOTE: leaked memory\n"); #else - free(ptr); + free(ptr); #endif + } else if (argc == 3) { + void *ptr = (void *)argv[1].u; + size_t len = argv[2].u; + + /* run the tests */ + do_mem_tests(ptr, len); + } else { + goto usage; + } return 0; } |