From 3815a2b73c951c77f7e06f30837e95bcfe709ec8 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 18 Oct 2000 15:02:06 +0000 Subject: 2000-10-18 Joel Sherrill * libc/Makefile.am: Added mallocfreespace.c. * libc/mallocfreespace.c: New file based on work by Nick Simon which he included in malloc.c. * libc/libcsupport.h: Added prototype for malloc_free_space(). --- c/src/exec/libcsupport/include/rtems/libcsupport.h | 1 + c/src/exec/libcsupport/src/Makefile.am | 2 +- c/src/exec/libcsupport/src/mallocfreespace.c | 40 ++++++++++++++++++++++ c/src/lib/ChangeLog | 7 ++++ c/src/lib/include/rtems/libcsupport.h | 1 + c/src/lib/libc/Makefile.am | 2 +- c/src/lib/libc/libcsupport.h | 1 + c/src/lib/libc/mallocfreespace.c | 40 ++++++++++++++++++++++ 8 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 c/src/exec/libcsupport/src/mallocfreespace.c create mode 100644 c/src/lib/libc/mallocfreespace.c (limited to 'c/src') diff --git a/c/src/exec/libcsupport/include/rtems/libcsupport.h b/c/src/exec/libcsupport/include/rtems/libcsupport.h index 4c6764c1d4..4def1e82c5 100644 --- a/c/src/exec/libcsupport/include/rtems/libcsupport.h +++ b/c/src/exec/libcsupport/include/rtems/libcsupport.h @@ -33,6 +33,7 @@ extern void malloc_walk(size_t source, size_t printf_enabled); extern void libc_init(int reentrant); extern int host_errno(void); extern void fix_syscall_errno(void); +extern size_t malloc_free_space(); #ifdef __cplusplus } diff --git a/c/src/exec/libcsupport/src/Makefile.am b/c/src/exec/libcsupport/src/Makefile.am index 56647cfe8f..b56d6f33dc 100644 --- a/c/src/exec/libcsupport/src/Makefile.am +++ b/c/src/exec/libcsupport/src/Makefile.am @@ -37,7 +37,7 @@ SYSTEM_CALL_C_FILES = open.c close.c read.c write.c lseek.c ioctl.c mkdir.c \ DIRECTORY_SCAN_C_FILES = opendir.c closedir.c readdir.c rewinddir.c \ scandir.c seekdir.c telldir.c getcwd.c -MALLOC_C_FILES = malloc.c __brk.c __sbrk.c +MALLOC_C_FILES = malloc.c mallocfreespace.c __brk.c __sbrk.c PASSWORD_GROUP_C_FILES = getpwent.c getgrent.c diff --git a/c/src/exec/libcsupport/src/mallocfreespace.c b/c/src/exec/libcsupport/src/mallocfreespace.c new file mode 100644 index 0000000000..28ef83278e --- /dev/null +++ b/c/src/exec/libcsupport/src/mallocfreespace.c @@ -0,0 +1,40 @@ +/* + * RTEMS Malloc Get Status Information + * + * + * COPYRIGHT (c) 1989-2000. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__ +#include +#include "libcsupport.h" + +#include +#include +#include +#include +#include +#include + +extern rtems_id RTEMS_Malloc_Heap; + +/* + * Find amount of free heap remaining + */ + +size_t malloc_free_space( void ) +{ + region_information_block heap_info; + + if ( region_get_information( RTEMS_Malloc_Heap, &heap_info ) ) { + return (size_t) heap_info.free_size; + } + return (size_t) -1; +} diff --git a/c/src/lib/ChangeLog b/c/src/lib/ChangeLog index 095f7a7737..f7047cc189 100644 --- a/c/src/lib/ChangeLog +++ b/c/src/lib/ChangeLog @@ -1,4 +1,11 @@ +2000-10-18 Joel Sherrill + + * libc/Makefile.am: Added mallocfreespace.c. + * libc/mallocfreespace.c: New file based on work by Nick Simon + which he included in malloc.c. + * libc/libcsupport.h: Added prototype for malloc_free_space(). + 2000-10-18 Joel Sherrill * libc/fcntl.c: Do not require every filesystem to have an fcntl() diff --git a/c/src/lib/include/rtems/libcsupport.h b/c/src/lib/include/rtems/libcsupport.h index 4c6764c1d4..4def1e82c5 100644 --- a/c/src/lib/include/rtems/libcsupport.h +++ b/c/src/lib/include/rtems/libcsupport.h @@ -33,6 +33,7 @@ extern void malloc_walk(size_t source, size_t printf_enabled); extern void libc_init(int reentrant); extern int host_errno(void); extern void fix_syscall_errno(void); +extern size_t malloc_free_space(); #ifdef __cplusplus } diff --git a/c/src/lib/libc/Makefile.am b/c/src/lib/libc/Makefile.am index 56647cfe8f..b56d6f33dc 100644 --- a/c/src/lib/libc/Makefile.am +++ b/c/src/lib/libc/Makefile.am @@ -37,7 +37,7 @@ SYSTEM_CALL_C_FILES = open.c close.c read.c write.c lseek.c ioctl.c mkdir.c \ DIRECTORY_SCAN_C_FILES = opendir.c closedir.c readdir.c rewinddir.c \ scandir.c seekdir.c telldir.c getcwd.c -MALLOC_C_FILES = malloc.c __brk.c __sbrk.c +MALLOC_C_FILES = malloc.c mallocfreespace.c __brk.c __sbrk.c PASSWORD_GROUP_C_FILES = getpwent.c getgrent.c diff --git a/c/src/lib/libc/libcsupport.h b/c/src/lib/libc/libcsupport.h index 4c6764c1d4..4def1e82c5 100644 --- a/c/src/lib/libc/libcsupport.h +++ b/c/src/lib/libc/libcsupport.h @@ -33,6 +33,7 @@ extern void malloc_walk(size_t source, size_t printf_enabled); extern void libc_init(int reentrant); extern int host_errno(void); extern void fix_syscall_errno(void); +extern size_t malloc_free_space(); #ifdef __cplusplus } diff --git a/c/src/lib/libc/mallocfreespace.c b/c/src/lib/libc/mallocfreespace.c new file mode 100644 index 0000000000..28ef83278e --- /dev/null +++ b/c/src/lib/libc/mallocfreespace.c @@ -0,0 +1,40 @@ +/* + * RTEMS Malloc Get Status Information + * + * + * COPYRIGHT (c) 1989-2000. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__ +#include +#include "libcsupport.h" + +#include +#include +#include +#include +#include +#include + +extern rtems_id RTEMS_Malloc_Heap; + +/* + * Find amount of free heap remaining + */ + +size_t malloc_free_space( void ) +{ + region_information_block heap_info; + + if ( region_get_information( RTEMS_Malloc_Heap, &heap_info ) ) { + return (size_t) heap_info.free_size; + } + return (size_t) -1; +} -- cgit v1.2.3