Commit Graph

679 Commits

Author SHA1 Message Date
Sebastian Huber
ca4602e914 Use linker set for libio initialization
Update #2408.
2016-02-03 10:00:57 +01:00
Sebastian Huber
f64c6b4c49 Use atexit() handler to close std file descriptors 2016-02-03 10:00:57 +01:00
Sebastian Huber
3d36164fe5 Use linker set for root file system initialization
Update #2408.
2016-02-03 10:00:57 +01:00
Sebastian Huber
529b08a705 posix: Delete empty _POSIX_API_Initialize() 2016-02-03 10:00:56 +01:00
Sebastian Huber
2605a48938 Optional POSIX Keys initialization
Update #2408.
2016-02-03 10:00:56 +01:00
Sebastian Huber
190169fee2 Optional CPU Set Handler initialization
Update #2408.
2016-02-03 10:00:56 +01:00
Sebastian Huber
4eee878145 Optional POSIX Spinlock initialization
Update #2408.
2016-02-03 10:00:56 +01:00
Sebastian Huber
76a8328945 Optional POSIX RWLock initialization
Update #2408.
2016-02-03 10:00:56 +01:00
Sebastian Huber
e4e7f149c0 Optional POSIX Barrier initialization
Update #2408.
2016-02-03 10:00:56 +01:00
Sebastian Huber
6c67855790 Optional POSIX Timer initialization
Update #2408.
2016-02-03 10:00:55 +01:00
Sebastian Huber
2189b3e963 Optional POSIX Semaphore initialization
Update #2408.
2016-02-03 10:00:55 +01:00
Sebastian Huber
3015ed641a Optional POSIX Message Queue initialization
Update #2408.
2016-02-03 10:00:55 +01:00
Sebastian Huber
9871f5dc60 Optional POSIX Mutex initialization
Update #2408.
2016-02-03 10:00:55 +01:00
Sebastian Huber
f4fee4778e Optional POSIX Condition Variable initialization
Update #2408.
2016-02-03 10:00:55 +01:00
Sebastian Huber
ef1a985fc7 Optional POSIX Threads initialization
Update #2408.
2016-02-03 10:00:54 +01:00
Sebastian Huber
04436ae7d8 Optional POSIX Signals initialization
Update #2408.
2016-02-03 10:00:54 +01:00
Sebastian Huber
58089ff3ad rtems: Delete empty _RTEMS_API_Initialize() 2016-02-03 10:00:54 +01:00
Sebastian Huber
97d94ff3e9 Optional Classic Barrier initialization
Update #2408.
2016-02-03 10:00:54 +01:00
Sebastian Huber
b377e3f6b7 Optional Classic Rate Monotonic initialization
Update #2408.
2016-02-03 10:00:53 +01:00
Sebastian Huber
af12278f9b Optional Classic Dual-Ported Memory initialization
Update #2408.
2016-02-03 10:00:53 +01:00
Sebastian Huber
365456cce3 Optional Classic Region initialization
Update #2408.
2016-02-03 10:00:53 +01:00
Sebastian Huber
fd3cc36f61 Optional Classic Partition initialization
Update #2408.
2016-02-03 10:00:53 +01:00
Sebastian Huber
cbaac1f7f4 Optional Classic Semaphore initialization
Update #2408.
2016-02-03 10:00:53 +01:00
Sebastian Huber
ed8b00e667 Optional Classic Message Queue initialization
Update #2408.
2016-02-03 10:00:52 +01:00
Sebastian Huber
ae85b0663e Optional Classic Event initialization
Update #2408.
2016-02-03 10:00:52 +01:00
Sebastian Huber
a7f36829c0 Optional Classic Signal initialization
Update #2408.
2016-02-03 10:00:52 +01:00
Sebastian Huber
26335844f4 Optional Classic Timer initialization
Update #2408.
2016-02-03 10:00:52 +01:00
Sebastian Huber
565672a257 Optional Classic Tasks initialization
Update #2408.
2016-02-03 10:00:52 +01:00
Sebastian Huber
92bb345374 Optional Extensions initialization
Update #2408.
2016-02-03 10:00:51 +01:00
Sebastian Huber
a853c8518d Optional Initial Extensions initialization
Update #2408.
2016-02-03 10:00:51 +01:00
Sebastian Huber
36b86d7eb5 score: Create idle threads via linker set
This allows a more fine grained rtems_initialize_data_structures().

Update #2408.
2016-02-03 10:00:51 +01:00
Sebastian Huber
17e6f869d7 Statically initialize _Objects_Information_table 2016-02-03 10:00:51 +01:00
Sebastian Huber
297aa075dc Revert "drvmgr: Move bsp_driver_level_hook() calls"
The --enable-drvmgr configure option controls the driver manager startup
and not if the driver manager is present or not.  Presence of the driver
manager is determined by the architecture (only available on sparc so
far).

This reverts commit 61bbf9194f.
2016-01-26 16:22:46 +01:00
Sebastian Huber
61bbf9194f drvmgr: Move bsp_driver_level_hook() calls 2016-01-26 11:42:04 +01:00
Sebastian Huber
76ac1ee3bb score: Fix simple timecounter support
Update #2502.
2016-01-19 08:36:14 +01:00
Sebastian Huber
599d71f7ff score: Statically initialize TOD handler 2016-01-12 11:35:41 +01:00
Sebastian Huber
ccd54344d9 score: Introduce Thread_Entry_information
This avoids potential dead code in _Thread_Handler().  It gets rid of
the dangerous function pointer casts.

Update #2514.
2016-01-11 08:47:01 +01:00
Sebastian Huber
fe100e1611 score: Add fatal errors for NULL entry init tasks
This simplifies the global construction.

Update #2514.
2016-01-08 09:00:53 +01:00
Aun-Ali Zaidi
d5154d0f6a api: Remove deprecated Notepads
Notepads where a feature of RTEMS' tasks that simply functioned in
the same way as POSIX keys or threaded local storage (TLS). They were
introduced well before per task variables, which are also deprecated,
and were barely used in favor of their POSIX alternatives.

In addition to their scarce usage, Notepads took up unnecessary memory.
For each task:

 - 16 32-bit integers were allocated.
 - A total of 64 bytes per task per thread.

This is especially critical in low memory and safety-critical applications.

They are also defined as uint32_t, and therefore are not guaranteed to
hold a pointer.

Lastly, they are not portable solutions for SMP and uniprocessor systems,
like POSIX keys and TLS.

updates #2493.
2015-12-24 16:52:34 -06:00
Sebastian Huber
e01b184350 rtems: Delete empty function 2015-12-15 07:41:35 +01:00
Sebastian Huber
d0c3983814 Use linker set for system initialization
Make rtems_initialize_data_structures(),
rtems_initialize_before_drivers() and rtems_initialize_device_drivers()
static.  Rename rtems_initialize_start_multitasking() to
rtems_initialize_executive() and call the registered system
initialization handlers in this function.  Add system initialization API
available via #include <rtems/sysinit.h>.  Update the documentation
accordingly.

This is no functional change, only the method to call the existing
initialization routines changes.  Instead of direct function calls a
table of function pointers contained in the new RTEMS system
initialization linker set is used.  This table looks like this (the
actual addresses depend on the target).

nm *.exe | grep _Linker | sort
0201a2d0 D _Linker_set__Sysinit_begin
0201a2d0 D _Linker_set__Sysinit_bsp_work_area_initialize
0201a2d4 D _Linker_set__Sysinit_bsp_start
0201a2d8 D _Linker_set__Sysinit_rtems_initialize_data_structures
0201a2dc D _Linker_set__Sysinit_bsp_libc_init
0201a2e0 D _Linker_set__Sysinit_rtems_initialize_before_drivers
0201a2e4 D _Linker_set__Sysinit_bsp_predriver_hook
0201a2e8 D _Linker_set__Sysinit_rtems_initialize_device_drivers
0201a2ec D _Linker_set__Sysinit_bsp_postdriver_hook
0201a2f0 D _Linker_set__Sysinit_end

Add test sptests/spsysinit01.

Update #2408.
2015-12-11 08:17:16 +01:00
Sebastian Huber
9736283857 score: Statically initialize system state
Update #2408.
2015-12-08 08:43:41 +01:00
Sebastian Huber
bd91f446f2 score: Delete unused API extensions
Update #2408.
2015-12-08 08:38:10 +01:00
Sebastian Huber
60c5461547 score: Statically initialize API extensions
Update #2408.
2015-12-08 08:38:06 +01:00
Sebastian Huber
8054b1c718 Remove <rtems/debug.h>
Close #2477.
2015-12-07 13:11:07 +01:00
Sebastian Huber
ac5f2442e3 Require __getreent()
This function is used by Newlib since 2013-07-09 (Git commit
9b51cd8c6b9cdd067d9648a7ab952884019c56a5).
2015-11-25 08:33:31 +01:00
Sebastian Huber
aa473025f7 sapi: Add rtems_chain_get_first_unprotected()
Close #2459.
2015-11-05 11:30:09 +01:00
Joel Sherrill
69be1a222a CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK was undocumented and not error checked
closes #2431.
2015-10-27 07:31:29 -05:00
Sebastian Huber
c52568dcdb basdefs.h: Add and use RTEMS_DEPRECATED 2015-10-26 09:13:19 +01:00
Sebastian Huber
143696acbd basedefs.h: Add and use RTEMS_NO_RETURN 2015-10-26 09:13:19 +01:00