Commit Graph

314 Commits

Author SHA1 Message Date
Sebastian Huber
93306058c0 score: _CORE_mutex_Check_dispatch_for_seize()
Move the safety check performed by
_CORE_mutex_Check_dispatch_for_seize() out of the performance critical
path and generalize it.  Blocking on a thread queue with an unexpected
thread dispatch disabled level is illegal in all system states.

Add the expected thread dispatch disable level (which may be 1 or 2
depending on the operation) to Thread_queue_Context and use it in
_Thread_queue_Enqueue_critical().
2016-05-30 16:16:21 +02:00
Chris Johns
24d0ee57a4 cpukit, testsuite: Add rtems_printf and rtems_printer support.
This change adds rtems_printf and related functions and wraps the
RTEMS print plugin support into a user API. All references to the
plugin are removed and replaced with the rtems_printer interface.

Printk and related functions are made to return a valid number of
characters formatted and output.

The function attribute to check printf functions has been added
to rtems_printf and printk. No changes to remove warrnings are part
of this patch set.

The testsuite has been moved over to the rtems_printer. The testsuite
has a mix of rtems_printer access and direct print control via the
tmacros.h header file. The support for begink/endk has been removed
as it served no purpose and only confused the code base. The testsuite
has not been refactored to use rtems_printf. This is future work.
2016-05-25 15:47:34 +10:00
Sebastian Huber
876dde7a7d score: Make _Objects_Information_table const
The _Objects_Information_table is statically initialized.  So, we can
make it read-only.
2016-05-04 07:24:30 +02:00
Sebastian Huber
f05eeb2091 score: Simplify _Objects_Initialize_information()
Remove unused supports_global parameter.  Convert
_Objects_Initialize_information() to a macro to avoid use of
RTEMS_MULTIPROCESSING define for each caller.
2016-04-21 07:29:39 +02:00
Sebastian Huber
362722795a sapi: Avoid Giant lock for extensions
Extension create and delete is protected by the object allocator lock.

Update #2555.
2016-04-18 08:20:12 +02:00
Sebastian Huber
d995a263b5 score: Delete _Chain_Append()
This function is not used in the score.

Update #2555.
2016-04-06 09:08:24 +02:00
Sebastian Huber
3bf2bcc8c6 score: Delete _Chain_Get()
This function is not used in the score.

Update #2555.
2016-04-06 09:08:24 +02:00
Sebastian Huber
223fff46b8 score: Delete _Chain_Extract()
This function is not used in the score.

Update #2555.
2016-04-06 09:08:23 +02:00
Sebastian Huber
b0354b0eee score: Delete _Chain_Insert()
This function is not used in the score.

Update #2555.
2016-04-06 09:08:23 +02:00
Sebastian Huber
cd90052365 score: Delete _Chain_Get_with_empty_check()
This function is not used in the score.

Update #2555.
2016-04-06 09:08:23 +02:00
Sebastian Huber
c130387985 score: Delete _Chain_Prepend_with_empty_check()
This function is not used in the score.

Update #2555.
2016-04-06 09:08:23 +02:00
Sebastian Huber
88f4157c93 score: Delete _Chain_Append_with_empty_check()
This function is not used in the score.

Update #2555.
2016-04-06 09:08:23 +02:00
Sebastian Huber
6406b693b6 score: Delete _Chain_Prepend()
This function is not used in the score.

Update #2555.
2016-04-06 09:08:22 +02:00
Sebastian Huber
2f02f93897 sapi: Include missing header file 2016-03-17 09:02:19 +01:00
Sebastian Huber
05ef28754e sapi: Do not disable thread dispatching
Do not disable thread dispatching to add a user extension.  After
startup, the object allocator lock is enough.

Update #2555.
2016-03-16 07:16:58 +01:00
Sebastian Huber
18ff889624 score: Use ISR lock for IO driver registration
Create implementation header file.

Update #2555.
2016-03-14 10:56:22 +01:00
Sebastian Huber
62d2540dae score: Delete unused SAPI_IO_EXTERN
Update #2559.
2016-03-14 09:41:37 +01:00
Sebastian Huber
03b900d3ed score: Replace watchdog handler implementation
Use a red-black tree instead of delta chains.

Close #2344.
Update #2554.
Update #2555.
Close #2606.
2016-03-04 13:36:10 +01:00
Sebastian Huber
358bd74059 score: Avoid SCORE_EXTERN
Delete SCORE_INIT.  This finally removes the

some.h:
  #ifndef SOME_XYZ_EXTERN
  #define SOME_XYZ_EXTERN extern
  #endif
  SOME_XYZ_EXTERN type xyz;

some_xyz.c:
  #define SOME_XYZ_EXTERN
  #include <some.h>

pattern in favour of

some.h:
  extern type xyz;

some_xyz.c
  #include <some.h>
  type xyz;

Update #2559.
2016-02-17 09:15:01 +01:00
Sebastian Huber
3bc12a8f5a Delete unused API extensions 2016-02-03 10:00:58 +01:00
Sebastian Huber
8ca372e9b4 Use linker set for MPCI initialization
Update #2408.
2016-02-03 10:00:57 +01:00
Sebastian Huber
6bf44a581b Use linker set for driver manager 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