From 1f94ed6bfdb8b83fcfcb59db0a9f76eb950b4db0 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 22 Apr 1996 16:50:17 +0000 Subject: Updates from Tony Bennett. --- c/src/lib/include/rtems/libio.h | 3 -- c/src/lib/libbsp/unix/posix/startup/bspstart.c | 18 ++++------ c/src/lib/libbsp/unix/posix/startup/rtems-ctor.cc | 5 --- c/src/lib/libbsp/unix/posix/startup/setvec.c | 2 +- c/src/lib/libc/libio.c | 3 -- c/src/lib/libc/libio.h | 3 -- c/src/lib/libc/malloc.c | 10 +++++- c/src/lib/libc/newlibc.c | 43 +++++++++++++---------- 8 files changed, 42 insertions(+), 45 deletions(-) (limited to 'c/src/lib') diff --git a/c/src/lib/include/rtems/libio.h b/c/src/lib/include/rtems/libio.h index f80a1954a3..07d72620b1 100644 --- a/c/src/lib/include/rtems/libio.h +++ b/c/src/lib/include/rtems/libio.h @@ -1,7 +1,4 @@ /* - * @(#)libio.h 1.1 - 95/06/02 - * - * * General purpose communication channel for RTEMS to allow UNIX/POSIX * system call behavior on top of RTEMS IO devices. * diff --git a/c/src/lib/libbsp/unix/posix/startup/bspstart.c b/c/src/lib/libbsp/unix/posix/startup/bspstart.c index 94da2e6fc8..8f8344523a 100644 --- a/c/src/lib/libbsp/unix/posix/startup/bspstart.c +++ b/c/src/lib/libbsp/unix/posix/startup/bspstart.c @@ -1,8 +1,3 @@ -/* - * @(#)bspstart.c 1.7 - 95/04/07 - * - */ - /* bsp_start() * * This routine starts the application. It includes application, @@ -55,7 +50,6 @@ rtems_unsigned32 bsp_isr_level; rtems_unsigned32 Heap_size; int rtems_argc; char **rtems_argv; -char **rtems_envp; /* * May be overridden by RTEMS_WORKSPACE_SIZE and RTEMS_HEAPSPACE_SIZE @@ -167,6 +161,13 @@ bsp_pretasking_hook(void) #ifdef RTEMS_DEBUG rtems_debug_enable( RTEMS_DEBUG_ALL_MASK ); #endif + + /* + * Dump malloc stats on exit... + */ +#if defined(RTEMS_DEBUG) + atexit(malloc_dump); +#endif } /* @@ -198,11 +199,6 @@ bsp_postdriver_hook(void) if ((stdin_fd != 0) || (stdout_fd != 1) || (stderr_fd != 2)) rtems_fatal_error_occurred( error_code | 'I' << 8 | 'O' ); #endif - -#if defined(MALLOC_STATS) - atexit(malloc_dump); -#endif - } /* diff --git a/c/src/lib/libbsp/unix/posix/startup/rtems-ctor.cc b/c/src/lib/libbsp/unix/posix/startup/rtems-ctor.cc index 0b4278eb19..87dba921a7 100644 --- a/c/src/lib/libbsp/unix/posix/startup/rtems-ctor.cc +++ b/c/src/lib/libbsp/unix/posix/startup/rtems-ctor.cc @@ -1,7 +1,3 @@ -// -// @(#)rtems-ctor.cc 1.6 - 95/04/25 -// - /* * rtems-ctor.cc * @@ -90,7 +86,6 @@ extern "C" { { rtems_argc = argc; rtems_argv = argv; - rtems_envp = environp; if ((argc > 0) && argv && argv[0]) rtems_progname = argv[0]; diff --git a/c/src/lib/libbsp/unix/posix/startup/setvec.c b/c/src/lib/libbsp/unix/posix/startup/setvec.c index 9825faa19b..4f65fb57e5 100644 --- a/c/src/lib/libbsp/unix/posix/startup/setvec.c +++ b/c/src/lib/libbsp/unix/posix/startup/setvec.c @@ -31,7 +31,7 @@ set_vector( /* returns old vector */ int type /* RTEMS or RAW intr */ ) { - rtems_isr_entry rtems_isr_ptr; + rtems_isr_entry rtems_isr_ptr = 0; proc_ptr raw_isr_ptr; if ( type ) { diff --git a/c/src/lib/libc/libio.c b/c/src/lib/libc/libio.c index 73b6adf298..a01dea7b8a 100644 --- a/c/src/lib/libc/libio.c +++ b/c/src/lib/libc/libio.c @@ -1,7 +1,4 @@ /* - * @(#)libio.c 1.1 - 95/06/02 - * - * * Provide UNIX/POSIX-like io system calls for RTEMS using the * RTEMS IO manager * diff --git a/c/src/lib/libc/libio.h b/c/src/lib/libc/libio.h index f80a1954a3..07d72620b1 100644 --- a/c/src/lib/libc/libio.h +++ b/c/src/lib/libc/libio.h @@ -1,7 +1,4 @@ /* - * @(#)libio.h 1.1 - 95/06/02 - * - * * General purpose communication channel for RTEMS to allow UNIX/POSIX * system call behavior on top of RTEMS IO devices. * diff --git a/c/src/lib/libc/malloc.c b/c/src/lib/libc/malloc.c index ed053d6e8d..de63df6ea0 100644 --- a/c/src/lib/libc/malloc.c +++ b/c/src/lib/libc/malloc.c @@ -25,12 +25,14 @@ #include #include #include +#include /* sbrk(2) */ rtems_id RTEMS_Malloc_Heap; size_t RTEMS_Malloc_Sbrk_amount; #ifdef RTEMS_DEBUG #define MALLOC_STATS +#define MALLOC_DIRTY #endif #ifdef MALLOC_STATS @@ -202,7 +204,11 @@ void *malloc( malloc_stats.max_depth = current_depth; } #endif - + +#ifdef MALLOC_DIRTY + (void) memset(return_this, 0xCF, size); +#endif + return return_this; } @@ -221,6 +227,8 @@ void *calloc( if ( cptr ) memset( cptr, '\0', length ); + MSBUMP(malloc_calls, -1); /* subtract off the malloc */ + return cptr; } diff --git a/c/src/lib/libc/newlibc.c b/c/src/lib/libc/newlibc.c index ddcb961015..8c9ed2e1a8 100644 --- a/c/src/lib/libc/newlibc.c +++ b/c/src/lib/libc/newlibc.c @@ -1,17 +1,6 @@ -/* - * @(#)newlibc.c 1.9 - 95/05/16 - * - */ - #if defined(RTEMS_NEWLIB) /* - * File: newlibc.c,v - * Project: PixelFlow - * Created: 94/12/7 - * Revision: 1.2 - * Last Mod: 1995/05/09 20:24:37 - * * COPYRIGHT (c) 1994 by Division Incorporated * * To anyone who acknowledges that this file is provided "AS IS" @@ -47,8 +36,25 @@ #include /* for extern of _REENT (aka _impure_ptr) */ -#ifdef RTEMS_UNIX -#include /* for setvbuf() */ +/* + * NOTE: When using RTEMS fake stat, fstat, and isatty, all output + * is line buffered so this setvbuf is not necessary. This + * setvbuf insures that we can redirect the output of a test + * on the UNIX simulator and it is in the same order as for a + * real target. + * NOTE: + * There is some problem with doing this on the hpux version + * of the UNIX simulator (symptom is printf core dumps), so + * we just don't for now. + * Not sure if this is a problem with hpux, newlib, or something else. + */ + +#if defined(RTEMS_UNIX) && !defined(hpux) +#define NEED_SETVBUF +#endif + +#ifdef NEED_SETVBUF +#include #endif #include "internal.h" @@ -196,18 +202,19 @@ libc_delete_hook(rtems_tcb *current_task, if (current_task == deleted_task) { - ptr = _REENT; + ptr = _REENT; } else { - ptr = (struct _reent *) MY_task_get_note(deleted_task, LIBC_NOTEPAD); + ptr = (struct _reent *) MY_task_get_note(deleted_task, LIBC_NOTEPAD); } /* if (ptr) */ if (ptr && ptr != &libc_global_reent) { - _wrapup_reent(ptr); - _reclaim_reent(ptr); + _wrapup_reent(ptr); + _reclaim_reent(ptr); + free(ptr); } MY_task_set_note(deleted_task, LIBC_NOTEPAD, 0); @@ -218,7 +225,7 @@ libc_delete_hook(rtems_tcb *current_task, if (current_task == deleted_task) { - _REENT = 0; + _REENT = 0; } } -- cgit v1.2.3