aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorTravis Geiselbrecht <geist@foobox.com>2015-08-28 15:03:17 -0700
committerTravis Geiselbrecht <geist@foobox.com>2015-08-28 15:03:17 -0700
commit9118a4d6051a6c9f5341261937d00e6645a990d4 (patch)
tree0cf9f6cd5488147d91b47becf8b8373af86404db /app
parentf0a5c02e8820df07418fa032ff99d7ac26bc8ccb (diff)
parent658639022cbe9af9ae1ccec2636b3d52b01a6091 (diff)
downloadcommon-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.c27
-rw-r--r--app/tests/clock_tests.c4
-rw-r--r--app/tests/mem_tests.c70
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;
}