diff options
Diffstat (limited to 'cpukit/include/rtems/confdefs/threads.h')
-rw-r--r-- | cpukit/include/rtems/confdefs/threads.h | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/cpukit/include/rtems/confdefs/threads.h b/cpukit/include/rtems/confdefs/threads.h index 279c6264db..2e83df73b0 100644 --- a/cpukit/include/rtems/confdefs/threads.h +++ b/cpukit/include/rtems/confdefs/threads.h @@ -10,7 +10,7 @@ */ /* - * Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) + * Copyright (C) 2020 embedded brains GmbH & Co. KG * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -147,7 +147,15 @@ const size_t _Thread_Maximum_TLS_size = CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE; struct Thread_Configured_control { +/* + * This was added to address the following warning. + * warning: invalid use of structure with flexible array member + */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" Thread_Control Control; +#pragma GCC diagnostic pop + #if CONFIGURE_MAXIMUM_USER_EXTENSIONS > 0 void *extensions[ CONFIGURE_MAXIMUM_USER_EXTENSIONS + 1 ]; #endif @@ -159,10 +167,9 @@ struct Thread_Configured_control { #if CONFIGURE_MAXIMUM_THREAD_NAME_SIZE > 1 char name[ CONFIGURE_MAXIMUM_THREAD_NAME_SIZE ]; #endif - #ifdef _CONFIGURE_ENABLE_NEWLIB_REENTRANCY + #if defined(_CONFIGURE_ENABLE_NEWLIB_REENTRANCY) && \ + !defined(_REENT_THREAD_LOCAL) struct _reent Newlib; - #else - struct { /* Empty */ } Newlib; #endif }; @@ -176,13 +183,17 @@ const Thread_Control_add_on _Thread_Control_add_ons[] = { Control.API_Extensions[ THREAD_API_RTEMS ] ), offsetof( Thread_Configured_control, API_RTEMS ) - }, { - offsetof( - Thread_Configured_control, - Control.libc_reent - ), - offsetof( Thread_Configured_control, Newlib ) } + #if defined(_CONFIGURE_ENABLE_NEWLIB_REENTRANCY) && \ + !defined(_REENT_THREAD_LOCAL) + , { + offsetof( + Thread_Configured_control, + Control.libc_reent + ), + offsetof( Thread_Configured_control, Newlib ) + } + #endif #if CONFIGURE_MAXIMUM_THREAD_NAME_SIZE > 1 , { offsetof( @@ -208,7 +219,14 @@ const size_t _Thread_Control_add_on_count = #ifdef RTEMS_SMP struct Thread_queue_Configured_heads { +/* + * This was put in to address the following warning. + * warning: invalid use of structure with flexible array member + */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" Thread_queue_Heads Heads; +#pragma GCC diagnostic pop Thread_queue_Priority_queue Priority[ _CONFIGURE_SCHEDULER_COUNT ]; }; @@ -217,6 +235,10 @@ const size_t _Thread_Control_add_on_count = #endif const size_t _Thread_Initial_thread_count = +#if !defined(CONFIGURE_IDLE_TASK_STORAGE_SIZE) && \ + !defined(CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE) + _CONFIGURE_MAXIMUM_PROCESSORS + +#endif rtems_resource_maximum_per_allocation( _CONFIGURE_TASKS ) + rtems_resource_maximum_per_allocation( CONFIGURE_MAXIMUM_POSIX_THREADS ); |