* libcsupport/Makefile.am, libcsupport/include/rtems/malloc.h,
libcsupport/src/malloc_walk.c, libcsupport/src/posix_memalign.c,
libcsupport/src/realloc.c, score/src/heapwalk.c: Add rtems_memalign
as helper and as exposed nmemalign variant with few restrictions.
Also turn on compilation of _Heap_Walk but make forced calls to it
conditionally compiled. This should allow more flexibility to the
user as to run-time checking of the heap.
* libcsupport/src/rtems_memalign.c: New file.
* libcsupport/Makefile.am: Add malloc_sbrk_helpers.c.
* libcsupport/include/rtems/malloc.h,
libcsupport/src/malloc.c, libcsupport/src/malloc_initialize.c,
libcsupport/src/malloc_p.h,
libcsupport/src/malloc_statistics_helpers.c: Make sbrk()
support pluggable and optional. This eliminates the need for
heap extend and sbrk in the minimum footprint which is ~2.5K on
the SPARC.
* sapi/include/confdefs.h: Add the following configuration points:
+ CONFIGURE_MALLOC_STATISTICS
+ CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
* libcsupport/src/malloc_sbrk_helpers.c: New file.
* libcsupport/Makefile.am, libcsupport/preinstall.am,
libcsupport/src/malloc.c, libcsupport/src/mallocinfo.c,
libmisc/Makefile.am, libmisc/shell/main_mallocinfo.c,
libmisc/shell/shellconfig.h: Split malloc.c into multiple files with
one function per file. Also split out statistics into a separate file
which can be plugged in dynamically. Right now, it is always in. I
suspect that splitting the file removed more code than leaving
statistics in. I tinkered with malloc information command in the
shell. I resurrected the malloc arena code as malloc boundary. This
code is now compiled all the time even though it does not appear to
work.
* libcsupport/include/rtems/malloc.h, libcsupport/src/_calloc_r.c,
libcsupport/src/_free_r.c, libcsupport/src/_malloc_r.c,
libcsupport/src/_realloc_r.c, libcsupport/src/calloc.c,
libcsupport/src/free.c, libcsupport/src/malloc_boundary.c,
libcsupport/src/malloc_get_statistics.c,
libcsupport/src/malloc_initialize.c, libcsupport/src/malloc_p.h,
libcsupport/src/malloc_report_statistics.c,
libcsupport/src/malloc_report_statistics_plugin.c,
libcsupport/src/malloc_statistics_helpers.c,
libcsupport/src/malloc_walk.c, libcsupport/src/realloc.c,
libmisc/shell/main_perioduse.c: New files.
* 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.
* ftpd/ftpd.c, libcsupport/include/sys/ioccom.h,
libcsupport/src/ioctl.c, libnetworking/kern/uipc_mbuf.c,
libnetworking/libc/inet_addr.c, libnetworking/net/ethernet.h,
libnetworking/net/if.c, libnetworking/net/if_ethersubr.c,
libnetworking/net/if_ppp.c, libnetworking/net/if_pppvar.h,
libnetworking/net/if_var.h, libnetworking/net/ppp_tty.c,
libnetworking/netinet/in_cksum.c, libnetworking/nfs/bootp_subr.c,
libnetworking/rtems/rtems_bsdnet_internal.h,
libnetworking/sys/mbuf.h, pppd/md4.c, pppd/pppd.h: Remove warnings
due to improper use of int which shows up on 16 bit targets. Added
ioctl_command_t since IOCTL command argument does not reliably fit
into 16 bits.
* libcsupport/include/sys/ioccom.h, libnetworking/kern/uipc_socket2.c,
libnetworking/net/ethernet.h, libnetworking/net/if.h,
libnetworking/net/if_ethersubr.c, libnetworking/net/if_ppp.c,
libnetworking/net/if_pppvar.h, libnetworking/net/ppp_tty.c,
libnetworking/net/pppcompress.c, libnetworking/net/slcompress.c,
libnetworking/netinet/in.h, libnetworking/netinet/ip_icmp.c,
libnetworking/netinet/tcp.h, libnetworking/netinet/tcp_seq.h,
libnetworking/sys/protosw.h, libnetworking/sys/socketvar.h: Remove
warnings. Most of the warnings were 16/32 bit integer sizing issues.
Some constants had L appended, some had casts add, some types were
changed to reflect a bit width requirement.
* libcsupport/include/rtems/libio.h: Use rtems_id for semaphores.
Use char* for buffer.
* backward/ftpd.h: New.
* Makefile.am: Reflect having added backward/ftpd.h.
* libcsupport/include/sys/_stdint.h: Special-case int64_t (GCC has
__LONG_LONG_MAX__, while POSIX mandates LLONG_MAX. This break
__EXP(LONG_LONG_MAX)).
* libcsupport/include/inttypes.h: #include <sys/_inttypes.h>
* libcsupport/src/utsname.c: Don't include sptables.h.
Include <inttypes.h>. Use PRId32 instead of "%d".