Commit Graph
333 Commits
Author SHA1 Message Date
Sebastian Huber e203b65e51 Add INTERNAL_ERROR_LIBIO_STDERR_FD_OPEN_FAILED
Update #2825.
2016-12-12 08:03:30 +01:00
Sebastian Huber a5ba08eb4f Add INTERNAL_ERROR_LIBIO_STDOUT_FD_OPEN_FAILED
Update #2825.
2016-12-12 08:03:30 +01:00
Sebastian Huber 9622f7796f Add INTERNAL_ERROR_LIBIO_SEM_CREATE_FAILED
Update #2825.
2016-12-12 08:03:30 +01:00
Sebastian Huber 8252968812 INTERNAL_ERROR_LIBIO_USER_ENV_KEY_CREATE_FAILED
Update #2825.
2016-12-12 08:03:29 +01:00
Sebastian Huber 0a81a58254 Add INTERNAL_ERROR_POSIX_INIT_THREAD_CREATE_FAILED
Update #2825.
2016-12-12 08:03:29 +01:00
Sebastian Huber 279d5260c3 Add INTERNAL_ERROR_RTEMS_INIT_TASK_CREATE_FAILED
Update #2825.
2016-12-12 08:03:29 +01:00
Sebastian Huber b6606e8d99 score: Remove fatal is internal indicator
The fatal is internal indicator is redundant since the fatal source and
error code uniquely identify a fatal error.  Keep the fatal user
extension is internal parameter for backward compatibility and set it to
false always.

Update #2825.
2016-12-09 08:47:51 +01:00
Sebastian Huber 4b579c5f51 score: Simplify linker set API
Resurrect RTEMS_LINKER_SET_BEGIN() and RTEMS_LINKER_SET_END().

Add new macros RTEMS_LINKER_SET_ITEM_COUNT(),
RTEMS_LINKER_SET_IS_EMPTY(), and
RTEMS_LINKER_SET_FOREACH().

Remove confusing RTEMS_LINKER_SET_ASSIGN_BEGIN() and
RTEMS_LINKER_SET_ASSIGN_END().

Fix RTEMS_LINKER_SET_SIZE() to return the size in characters as
specified by the documentation.

Update #2408.
Update #2790.
2016-12-06 11:37:20 +01:00
Sebastian Huber bee0323279 score: Uncomment unused internal error codes
Update #2825.
2016-11-23 12:52:07 +01:00
Sebastian Huber 125f248231 score: Add thread queue enqueue callout
Replace the expected thread dispatch disable level with a thread queue
enqueue callout.  This enables the use of _Thread_Dispatch_direct() in
the thread queue enqueue procedure.  This avoids impossible exection
paths, e.g. Per_CPU_Control::dispatch_necessary is always true.
2016-11-23 12:52:06 +01:00
Sebastian Huber 84e6f15c82 score: Robust thread dispatch
On SMP configurations, it is a fatal error to call blocking operating
system with interrupts disabled, since this prevents delivery of
inter-processor interrupts. This could lead to executing threads which
are not allowed to execute resulting in undefined behaviour.

The ARM Cortex-M port has a similar problem, since the interrupt state
is not a part of the thread context.

Update #2811.
2016-11-23 12:52:06 +01:00
Sebastian Huber d78d5294cd score: Add and use _Thread_Dispatch_direct()
This function is useful for operations which synchronously block, e.g.
self restart, self deletion, yield, sleep.  It helps to detect if these
operations are called in the wrong context.  Since the thread dispatch
necessary indicator is not used, this is more robust in some SMP
situations.

Update #2751.
2016-11-18 07:30:31 +01:00
Sebastian Huber 3a27248054 score: First part of new MrsP implementation
Update #2556.
2016-11-02 10:05:43 +01:00
Sebastian Huber be573185e6 score: More robust linker sets
Update #2408.
Update #2790.
2016-10-12 11:12:40 +02:00
Sebastian Huber aaaf9610db score: Add debug support to red-black trees
This helps to detect double insert and extract errors.
2016-08-08 09:34:29 +02:00
Sebastian Huber d79df38c2b score: Add deadlock detection
The mutex objects use the owner field of the thread queues for the mutex
owner.  Use this and add a deadlock detection to
_Thread_queue_Enqueue_critical() for thread queues with an owner.

Update #2412.
Update #2556.
Close #2765.
2016-07-27 10:55:30 +02:00
Sebastian Huber 059529e685 score: Add debug support to chains
This helps to detect

 * double insert, append, prepend errors, and
 * get from empty chain errors.
2016-07-22 09:13:07 +02:00
Sebastian Huber 69a6802bfa score: Move _RBTree_Find()
The _RBTree_Find() is no longer used in the score.  Move it to sapi and
make it rtems_rbtree_find().  Move corresponding types and support
functions to sapi.
2016-06-22 14:37:11 +02:00
Sebastian Huber 768c483b70 score: Move _RBTree_Insert()
The _RBTree_Insert() is no longer used in the score.  Move it to sapi
and make it rtems_rbtree_insert().
2016-06-22 14:37:11 +02:00
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