mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-05 15:15:44 +00:00
* libcsupport/include/rtems/libcsupport.h, libcsupport/src/newlibc.c, sapi/Makefile.am, sapi/include/confdefs.h, sapi/src/exinit.c, score/Makefile.am, score/preinstall.am, score/include/rtems/score/userext.h, score/src/chain.c, score/src/userext.c: Switch to newlib reentrancy extension being installed in the initial set instead of using rtems_extension_create. While implementing this, noticed that user extensions and chain code had multiple functions in a single file which is not desirable in the SuperCore and API portions of RTEMS, so split these into multiple files with one function per file. Also noticed that some of user extension code was inlined for no particular reason so moved that to C bodies. Split executive shutdown from initialization since not every application shuts down. Moved __fini call to executive shutdown to be more symmetrical with where it is called at startup. * sapi/src/exshutdown.c, score/src/chainappend.c, score/src/chainextract.c, score/src/chainget.c, score/src/chaininsert.c, score/src/userextaddapiset.c, score/src/userextaddset.c, score/src/userextremoveset.c, score/src/userextthreadbegin.c, score/src/userextthreadcreate.c, score/src/userextthreaddelete.c, score/src/userextthreadrestart.c, score/src/userextthreadstart.c, score/src/userextthreadswitch.c: New files. * score/inline/rtems/score/userext.inl: Removed.
80 lines
2.0 KiB
C
80 lines
2.0 KiB
C
/**
|
|
* @file rtems/libcsupport.h
|
|
*/
|
|
|
|
/* libcsupport.h
|
|
*
|
|
* This include file contains the information regarding the
|
|
* RTEMS specific support for the standard C library.
|
|
*
|
|
* COPYRIGHT (c) 1989-1999.
|
|
* 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.rtems.com/license/LICENSE.
|
|
*
|
|
* $Id$
|
|
*/
|
|
|
|
#ifndef _RTEMS_RTEMS_LIBCSUPPORT_H
|
|
#define _RTEMS_RTEMS_LIBCSUPPORT_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <sys/types.h>
|
|
|
|
void RTEMS_Malloc_Initialize(
|
|
void *start,
|
|
size_t length,
|
|
size_t sbrk_amount
|
|
);
|
|
|
|
extern void malloc_dump(void);
|
|
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();
|
|
|
|
/*
|
|
* Prototypes required to install newlib reentrancy user extension
|
|
*/
|
|
rtems_boolean libc_create_hook(
|
|
rtems_tcb *current_task,
|
|
rtems_tcb *creating_task
|
|
);
|
|
|
|
#if defined(RTEMS_UNIX) && !defined(hpux)
|
|
rtems_extension libc_begin_hook(rtems_tcb *current_task);
|
|
#define __RTEMS_NEWLIB_BEGIN libc_begin_hook
|
|
#else
|
|
#define __RTEMS_NEWLIB_BEGIN 0
|
|
#endif
|
|
|
|
rtems_extension libc_delete_hook(
|
|
rtems_tcb *current_task,
|
|
rtems_tcb *deleted_task
|
|
);
|
|
|
|
#define RTEMS_NEWLIB_EXTENSION \
|
|
{ \
|
|
libc_create_hook, /* rtems_task_create */ \
|
|
0, /* rtems_task_start */ \
|
|
0, /* rtems_task_restart */ \
|
|
libc_delete_hook, /* rtems_task_delete */ \
|
|
0, /* task_switch */ \
|
|
__RTEMS_NEWLIB_BEGIN, /* task_begin */ \
|
|
0, /* task_exitted */ \
|
|
0 /* fatal */ \
|
|
}
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
/* end of include file */
|