Commit Graph

723 Commits

Author SHA1 Message Date
Sebastian Huber
796f12a85a score: Add missing const qualifiers 2016-09-06 10:52:19 +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
251c94d3d3 confdefs.h: Do not hide network file systems
Do not hide network file systems if RTEMS_NETWORKING is not defined,
since they may be provided by the LibBSD.
2016-06-09 11:17:13 +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
Sebastian Huber
25e28d84d7 confdefs.h: Fix heap alloc size estimate
Account for the heap minimum block size.
2016-05-25 12:43:53 +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
7dfb4b970c score: Add per scheduler instance maximum priority
The priority values are only valid within a scheduler instance.  Thus,
the maximum priority value must be defined per scheduler instance.  The
first scheduler instance defines PRIORITY_MAXIMUM.  This implies that
RTEMS_MAXIMUM_PRIORITY and POSIX_SCHEDULER_MAXIMUM_PRIORITY are only
valid for threads of the first scheduler instance.  Further
API/implementation changes are necessary to fix this.

Update #2556.
2016-05-20 16:11:02 +02: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
1d40d81b4b rtems: Remove task variables
Update #2494.
Update #2555.
2016-05-04 07:24:30 +02:00
Sebastian Huber
b1b6f3b0e0 confdefs.h: Fix message queue size estimate
Account for maximum message size alignment.  Simplify
_CORE_message_queue_Initialize().
2016-05-04 07:24:29 +02:00
Sebastian Huber
e4fd35ddcb confdefs.h: Fix named object size estimate
Account for the terminating null character.  Use _POSIX_PATH_MAX instead
of NAME_MAX according to _POSIX_Semaphore_Manager_initialization() and
_POSIX_Message_queue_Manager_initialization().
2016-05-04 07:24:29 +02:00
Sebastian Huber
981eed2176 score: Add dummy Strong APA scheduler
Start with a copy of the Priority SMP scheduler implementation.

Update #2510.
2016-05-02 07:46:17 +02:00
Sebastian Huber
c8982e5f6a posix: Simplify message queues
The mq_open() function returns a descriptor to a POSIX message queue
object identified by a name.  This is similar to sem_open().  In
contrast to the POSIX semaphore the POSIX message queues use a separate
object for the descriptor.  This extra object is superfluous, since the
object identifier can be used directly for this purpose, just like for
the semaphores.

Update #2702.
Update #2555.
2016-05-02 07:46:15 +02:00
Sebastian Huber
d7a12be9c3 score: Optimize _Objects_Get_no_protection()
Make the id the first parameter since usual callers get the object
identifier as the first parameter themself.
2016-04-21 07:29:40 +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
84f5c0a91b score: Use red-black tree for active global objects
Use a red-black tree to lookup active global objects by identifier or
name.

Update #2555.
2016-04-06 09:08:22 +02:00
Sebastian Huber
349dd6b9cb score: Fix MPCI workspace size estimate
Account for the global objects table.
2016-03-29 13:21:31 +02:00
Sebastian Huber
4182b6f2a3 score: Fix MPCI workspace size estimate
Global objects are no real objects with an objects information
structure.
2016-03-29 13:21:31 +02:00
Sebastian Huber
9a97288911 score: Fix MPCI receive server workspace size 2016-03-29 13:21:12 +02:00
Sebastian Huber
16832b0d9e score: Fix multiprocessing thread proxies
We must provide thread queue heads for the thread wait information for
each thread proxy (thread queue heads were introduced by
d7665823b2).  The thread proxy must be
allocated before the enqueue operation.
2016-03-29 12:06:55 +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
4210114032 Use linker set for POSIX User Threads init
Update #2408.
2016-02-03 10:00:58 +01:00
Sebastian Huber
1ff8eca17a Use linker set for Classic User Tasks init
Update #2408.
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
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