From 16a41ccbce0631b10332e5ff84040328ebadd1dd Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 29 Jan 2014 09:29:39 +0100 Subject: score: Add _Thread_Get_maximum_internal_threads() --- cpukit/score/include/rtems/score/threadimpl.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'cpukit/score/include/rtems/score/threadimpl.h') diff --git a/cpukit/score/include/rtems/score/threadimpl.h b/cpukit/score/include/rtems/score/threadimpl.h index e07b39266d..6eb7a036cb 100644 --- a/cpukit/score/include/rtems/score/threadimpl.h +++ b/cpukit/score/include/rtems/score/threadimpl.h @@ -23,7 +23,9 @@ #include #include #include +#include #include +#include #ifdef __cplusplus extern "C" { @@ -592,6 +594,23 @@ RTEMS_INLINE_ROUTINE bool _Thread_Is_proxy_blocking ( return (code == THREAD_STATUS_PROXY_BLOCKING); } +RTEMS_INLINE_ROUTINE uint32_t _Thread_Get_maximum_internal_threads(void) +{ + uint32_t maximum_internal_threads = 0; + + /* Idle threads */ + maximum_internal_threads += rtems_configuration_get_maximum_processors(); + + /* MPCI thread */ +#if defined(RTEMS_MULTIPROCESSING) + if ( _System_state_Is_multiprocessing ) { + ++maximum_internal_threads; + } +#endif + + return maximum_internal_threads; +} + /** * This routine allocates an internal thread. */ -- cgit v1.2.3