[PATCH 4/5] libdebugger: Fix const qualifier
--- cpukit/libdebugger/rtems-debugger-threads.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpukit/libdebugger/rtems-debugger-threads.c b/cpukit/libdebugger/rtems-debugger-threads.c index 64d21c4..8e6724a 100644 --- a/cpukit/libdebugger/rtems-debugger-threads.c +++ b/cpukit/libdebugger/rtems-debugger-threads.c @@ -36,7 +36,7 @@ #include "rtems-debugger-target.h" #include "rtems-debugger-threads.h" -static const char const* excludes_defaults[] = +static const char * const excludes_defaults[] = { "TIME", "_BSD", -- 1.8.4.5 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH 5/5] Add and use rtems_assoc_thread_states_to_string()
--- cpukit/libcsupport/Makefile.am | 1 + cpukit/libcsupport/include/rtems/assoc.h | 16 ++ cpukit/libcsupport/src/assocthreadstatestostring.c | 58 ++ cpukit/libdebugger/rtems-debugger-threads.c| 53 ++-- cpukit/libmisc/monitor/mon-prmisc.c| 43 ++-- 5 files changed, 81 insertions(+), 90 deletions(-) create mode 100644 cpukit/libcsupport/src/assocthreadstatestostring.c diff --git a/cpukit/libcsupport/Makefile.am b/cpukit/libcsupport/Makefile.am index e217a5f..d1671a4 100644 --- a/cpukit/libcsupport/Makefile.am +++ b/cpukit/libcsupport/Makefile.am @@ -38,6 +38,7 @@ ASSOCIATION_C_FILES = src/assoclocalbyname.c \ src/assocptrbyremote.c src/assocremotebylocalbitfield.c \ src/assocremotebylocal.c src/assocremotebyname.c ASSOCIATION_C_FILES += src/assoc32tostring.c +ASSOCIATION_C_FILES += src/assocthreadstatestostring.c BASE_FS_C_FILES = src/base_fs.c src/mount.c src/unmount.c src/libio.c \ src/mount-mgr.c src/mount-mktgt.c src/libio_init.c \ diff --git a/cpukit/libcsupport/include/rtems/assoc.h b/cpukit/libcsupport/include/rtems/assoc.h index 9f65ba6..238a02f 100644 --- a/cpukit/libcsupport/include/rtems/assoc.h +++ b/cpukit/libcsupport/include/rtems/assoc.h @@ -181,6 +181,22 @@ size_t rtems_assoc_32_to_string( const char*fallback ); +/** + * @brief Converts the specified thread states into a text representation. + * + * @param[in] states The thread states to convert. + * @param[in] buffer The buffer for the text representation. + * @param[in] buffer_size The buffer size in characters. + * + * @retval The length of the text representation. May be greater than the + * buffer size if truncation occurred. + */ +size_t rtems_assoc_thread_states_to_string( + uint32_t states, + char *buffer, + size_tbuffer_size +); + #ifdef __cplusplus } #endif diff --git a/cpukit/libcsupport/src/assocthreadstatestostring.c b/cpukit/libcsupport/src/assocthreadstatestostring.c new file mode 100644 index 000..3454e34 --- /dev/null +++ b/cpukit/libcsupport/src/assocthreadstatestostring.c @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2016 embedded brains GmbH. + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +static const rtems_assoc_32_pair state_pairs[] = { + { STATES_THREAD_QUEUE_WITH_IDENTIFIER, "ID" }, + { STATES_WAITING_FOR_MUTEX, "MTX" }, + { STATES_WAITING_FOR_SEMAPHORE, "SEM" }, + { STATES_WAITING_FOR_EVENT, "EV" }, + { STATES_WAITING_FOR_SYSTEM_EVENT, "SYSEV" }, + { STATES_WAITING_FOR_MESSAGE,"MSG" }, + { STATES_WAITING_FOR_CONDITION_VARIABLE, "CV" }, + { STATES_WAITING_FOR_FUTEX, "FTX" }, + { STATES_WAITING_FOR_BSD_WAKEUP, "WK" }, + { STATES_WAITING_FOR_TIME, "TIME" }, + { STATES_WAITING_FOR_PERIOD, "PER" }, + { STATES_WAITING_FOR_SIGNAL, "SIG" }, + { STATES_WAITING_FOR_BARRIER,"BAR" }, + { STATES_WAITING_FOR_RWLOCK, "RW" }, + { STATES_WAITING_FOR_JOIN_AT_EXIT, "JATX" }, + { STATES_WAITING_FOR_JOIN, "JOIN" }, + { STATES_SUSPENDED, "SUSP" }, + { STATES_WAITING_FOR_SEGMENT,"SEG" }, + { STATES_LIFE_IS_CHANGING, "LIFE" }, + { STATES_DEBUGGER, "DBG" }, + { STATES_INTERRUPTIBLE_BY_SIGNAL,"IS" }, + { STATES_WAITING_FOR_RPC_REPLY, "RPC" }, + { STATES_ZOMBIE, "ZOMBI" }, + { STATES_DORMANT,"DORM" } +}; + +size_t rtems_assoc_thread_states_to_string( + uint32_t states, + char *buffer, + size_tbuffer_size +) +{ + return rtems_assoc_32_to_string( +states, +buffer, +buffer_size, +state_pairs, +RTEMS_ARRAY_SIZE( state_pairs ), +":", +"READY" + ); +} diff --git a/cpukit/libdebugger/rtems-debugger-threads.c b/cpukit/libdebugger/rtems-debugger-threads.c index 8e6724a..4f8c062 100644 --- a/cpukit/libdebugger/rtems-debugger-threads.c +++ b/cpukit/libdebugger/rtems-debugger-threads.c @@ -28,7 +28,7 @@ #include #include -#include +#include #include #include @@ -506,57 +506,10 @@ rtems_debugger_thread_state(rtems_debugger_thread* thread) int rtems_debugger_thread_state_str(rtems_debugger_thread* thread, -char* buffer, +char* buf, size_t size) { - struct mapper { -const char const* label; -DB_UINT mask; - }; - const struct mapper map[] = { -{ "DORM", STATES_DORMANT }, -{ "LIFE", STATES_LIFE_IS_CHANGING }, -{ "SUSP", STATES_SUSPENDED }, -{
[PATCH 1/5] score: Replace STATES_DELAYING
Replace STATES_DELAYING with STATES_WAITING_FOR_TIME. There is no need for separate timeout thread states. The Thread_Control::Timer::header and Watchdog_Control::cpu members can be used to figure out the kind of timeout. --- cpukit/libdebugger/rtems-debugger-threads.c | 1 - cpukit/libmisc/monitor/mon-prmisc.c | 1 - cpukit/posix/src/nanosleep.c | 2 +- cpukit/rtems/src/taskwakeafter.c | 2 +- cpukit/score/include/rtems/score/statesimpl.h | 43 --- 5 files changed, 8 insertions(+), 41 deletions(-) diff --git a/cpukit/libdebugger/rtems-debugger-threads.c b/cpukit/libdebugger/rtems-debugger-threads.c index 2e9cf06..64d21c4 100644 --- a/cpukit/libdebugger/rtems-debugger-threads.c +++ b/cpukit/libdebugger/rtems-debugger-threads.c @@ -514,7 +514,6 @@ rtems_debugger_thread_state_str(rtems_debugger_thread* thread, DB_UINT mask; }; const struct mapper map[] = { -{ "DELAY", STATES_DELAYING }, { "DORM", STATES_DORMANT }, { "LIFE", STATES_LIFE_IS_CHANGING }, { "SUSP", STATES_SUSPENDED }, diff --git a/cpukit/libmisc/monitor/mon-prmisc.c b/cpukit/libmisc/monitor/mon-prmisc.c index 5bb4d42..d5e403c 100644 --- a/cpukit/libmisc/monitor/mon-prmisc.c +++ b/cpukit/libmisc/monitor/mon-prmisc.c @@ -115,7 +115,6 @@ rtems_monitor_dump_priority(rtems_task_priority priority) #define WITH_ID(state) (STATES_THREAD_QUEUE_WITH_IDENTIFIER | state) static const rtems_assoc_t rtems_monitor_state_assoc[] = { -{ "DELAY", STATES_DELAYING, 0 }, { "DORM", STATES_DORMANT, 0 }, { "LIFE", STATES_LIFE_IS_CHANGING, 0 }, { "SUSP", STATES_SUSPENDED, 0 }, diff --git a/cpukit/posix/src/nanosleep.c b/cpukit/posix/src/nanosleep.c index 10158ff..13f4536 100644 --- a/cpukit/posix/src/nanosleep.c +++ b/cpukit/posix/src/nanosleep.c @@ -49,7 +49,7 @@ static inline int nanosleep_helper( _Thread_queue_Context_initialize( &queue_context ); _Thread_queue_Context_set_thread_state( &queue_context, -STATES_DELAYING | STATES_INTERRUPTIBLE_BY_SIGNAL +STATES_WAITING_FOR_TIME | STATES_INTERRUPTIBLE_BY_SIGNAL ); _Thread_queue_Context_set_enqueue_callout( &queue_context, diff --git a/cpukit/rtems/src/taskwakeafter.c b/cpukit/rtems/src/taskwakeafter.c index 568b937..faf4a83 100644 --- a/cpukit/rtems/src/taskwakeafter.c +++ b/cpukit/rtems/src/taskwakeafter.c @@ -39,7 +39,7 @@ rtems_status_code rtems_task_wake_after( if ( ticks == 0 ) { _Thread_Yield( executing ); } else { - _Thread_Set_state( executing, STATES_DELAYING ); + _Thread_Set_state( executing, STATES_WAITING_FOR_TIME ); _Thread_Wait_flags_set( executing, THREAD_WAIT_STATE_BLOCKED ); _Thread_Timer_insert_relative( executing, diff --git a/cpukit/score/include/rtems/score/statesimpl.h b/cpukit/score/include/rtems/score/statesimpl.h index 9751de0..f90a89e 100644 --- a/cpukit/score/include/rtems/score/statesimpl.h +++ b/cpukit/score/include/rtems/score/statesimpl.h @@ -74,8 +74,11 @@ extern "C" { /** This macro corresponds to a task waiting for BSD wakeup. */ #define STATES_WAITING_FOR_BSD_WAKEUP 0x0100 -/** This macro corresponds to a task which is waiting for a timeout. */ -#define STATES_DELAYING0x0200 +/** + * @brief This macro corresponds to a task which is waiting for a relative or + * absolute timeout. + */ +#define STATES_WAITING_FOR_TIME0x0200 /** This macro corresponds to a task waiting for a period. */ #define STATES_WAITING_FOR_PERIOD 0x0400 @@ -104,9 +107,6 @@ extern "C" { /** This macro corresponds to a task those life is changing. */ #define STATES_LIFE_IS_CHANGING0x0004 -/** This macro corresponds to a task waiting until a specific TOD. */ -#define STATES_WAITING_FOR_TIME0x0008 - /** This macro corresponds to a task being held by the debugger. */ #define STATES_DEBUGGER0x0800 @@ -139,8 +139,7 @@ extern "C" { STATES_WAITING_FOR_RWLOCK ) /** This macro corresponds to a task waiting which is blocked. */ -#define STATES_BLOCKED ( STATES_DELAYING| \ - STATES_LOCALLY_BLOCKED | \ +#define STATES_BLOCKED ( STATES_LOCALLY_BLOCKED | \ STATES_WAITING_FOR_TIME| \ STATES_WAITING_FOR_PERIOD | \ STATES_WAITING_FOR_EVENT | \ @@ -246,21 +245,6 @@ RTEMS_INLINE_ROUTINE bool _States_Is_suspended ( } /** - * This function returns true if the DELAYING state is set in - * the_states, and false otherwise. - * - * @param[in] the_states is the task state set to test - * - * @return This method returns true if the desired state condition is set. - */ -RTEMS_INLINE_ROUTINE bool _States_Is_d
[PATCH 3/5] Add rtems_assoc_32_to_string()
--- cpukit/libcsupport/Makefile.am | 1 + cpukit/libcsupport/include/rtems/assoc.h | 33 - cpukit/libcsupport/src/assoc32tostring.c | 61 testsuites/sptests/spassoc01/init.c | 61 4 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 cpukit/libcsupport/src/assoc32tostring.c diff --git a/cpukit/libcsupport/Makefile.am b/cpukit/libcsupport/Makefile.am index 550b674..e217a5f 100644 --- a/cpukit/libcsupport/Makefile.am +++ b/cpukit/libcsupport/Makefile.am @@ -37,6 +37,7 @@ ASSOCIATION_C_FILES = src/assoclocalbyname.c \ src/assocnamebyremote.c src/assocptrbylocal.c src/assocptrbyname.c \ src/assocptrbyremote.c src/assocremotebylocalbitfield.c \ src/assocremotebylocal.c src/assocremotebyname.c +ASSOCIATION_C_FILES += src/assoc32tostring.c BASE_FS_C_FILES = src/base_fs.c src/mount.c src/unmount.c src/libio.c \ src/mount-mgr.c src/mount-mktgt.c src/libio_init.c \ diff --git a/cpukit/libcsupport/include/rtems/assoc.h b/cpukit/libcsupport/include/rtems/assoc.h index c493315..9f65ba6 100644 --- a/cpukit/libcsupport/include/rtems/assoc.h +++ b/cpukit/libcsupport/include/rtems/assoc.h @@ -16,7 +16,8 @@ */ /**@{*/ -#include /* uint32_t */ +#include +#include #ifdef __cplusplus extern "C" { @@ -150,6 +151,36 @@ const char *rtems_assoc_name_bad( ); #endif +typedef struct { + uint32_tbits; + const char *name; +} rtems_assoc_32_pair; + +/** + * @brief Converts the specified value into a text representation. + * + * @param[in] value The value to convert. + * @param[in] buffer The buffer for the text representation. + * @param[in] buffer_size The buffer size in characters. + * @param[in] pairs Names for particular bits. + * @param[in] pair_count Count of pairs. + * @param[in] separator Separator between individual names. + * @param[in] fallback Fallback value in case no bits contained in the pairs + * are set in the value. + * + * @retval The length of the text representation. May be greater than the + * buffer size if truncation occurred. + */ +size_t rtems_assoc_32_to_string( + uint32_t value, + char *buffer, + size_t buffer_size, + const rtems_assoc_32_pair *pairs, + size_t pair_count, + const char*separator, + const char*fallback +); + #ifdef __cplusplus } #endif diff --git a/cpukit/libcsupport/src/assoc32tostring.c b/cpukit/libcsupport/src/assoc32tostring.c new file mode 100644 index 000..31b0885 --- /dev/null +++ b/cpukit/libcsupport/src/assoc32tostring.c @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2016 embedded brains GmbH. + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include +#include + +static size_t space( size_t buffer_size, size_t len ) +{ + if ( len < buffer_size ) { +return buffer_size - len; + } else { +return 0; + } +} + +size_t rtems_assoc_32_to_string( + uint32_t value, + char *buffer, + size_t buffer_size, + const rtems_assoc_32_pair *pairs, + size_t pair_count, + const char*separator, + const char*fallback +) +{ + size_t len; + size_t i; + + len = 0; + + for ( i = 0; i < pair_count ; ++i ) { +const rtems_assoc_32_pair *p; + +p = &pairs[ i ]; + +if ( ( value & p->bits ) != 0 ) { + if ( len > 0 ) { +len += strlcpy( &buffer[ len ], separator, space( buffer_size, len ) ); + } + + len += strlcpy( &buffer[ len ], p->name, space( buffer_size, len ) ); +} + } + + if ( len == 0 ) { +len += strlcpy( buffer, fallback, buffer_size ); + } + + return len; +} diff --git a/testsuites/sptests/spassoc01/init.c b/testsuites/sptests/spassoc01/init.c index 2cd14f9..ba3873a 100644 --- a/testsuites/sptests/spassoc01/init.c +++ b/testsuites/sptests/spassoc01/init.c @@ -61,6 +61,65 @@ static void reset_name( void ) memset( name, 0, 40 ); } +static void test_assoc_32_to_string( void ) +{ + static const rtems_assoc_32_pair pairs[] = { +{ 1, "A" }, +{ 2, "LONG" }, +{ 4, "C" } + }; + char buf[4]; + size_t len; + + len = rtems_assoc_32_to_string( +0, +buf, +sizeof( buf ), +pairs, +RTEMS_ARRAY_SIZE( pairs ), +":", +"D" + ); + rtems_test_assert( len == 1 ); + rtems_test_assert( strcmp( buf, "D" ) == 0 ); + + len = rtems_assoc_32_to_string( +1, +buf, +sizeof( buf ), +pairs, +RTEMS_ARRAY_SIZE( pairs ), +":", +"D" + ); + rtems_test_assert( len == 1 ); + rtems_test_assert( strcmp( buf, "A" ) == 0 ); + + len = rtems_assoc_32_to_string( +5, +buf, +sizeof( buf ), +pairs, +RTEMS_ARRAY_SIZE(
[PATCH 2/5] score: Remove unused _States_Is_*()
--- cpukit/score/include/rtems/score/statesimpl.h | 153 -- 1 file changed, 153 deletions(-) diff --git a/cpukit/score/include/rtems/score/statesimpl.h b/cpukit/score/include/rtems/score/statesimpl.h index f90a89e..6aa0947 100644 --- a/cpukit/score/include/rtems/score/statesimpl.h +++ b/cpukit/score/include/rtems/score/statesimpl.h @@ -200,21 +200,6 @@ RTEMS_INLINE_ROUTINE bool _States_Is_ready ( } /** - * This function returns true if the DORMANT state is the ONLY state - * set in the_states, and false otherwise. - * - * @param[in] the_states is the task state set to test - * - * @return This method returns true if the desired state condition is set. - */ -RTEMS_INLINE_ROUTINE bool _States_Is_only_dormant ( - States_Control the_states -) -{ - return (the_states == STATES_DORMANT); -} - -/** * This function returns true if the DORMANT state is set in * the_states, and false otherwise. * @@ -245,96 +230,6 @@ RTEMS_INLINE_ROUTINE bool _States_Is_suspended ( } /** - * This function returns true if the WAITING_FOR_SEGMENT state is set in - * the_states, and false otherwise. - * - * @param[in] the_states is the task state set to test - * - * @return This method returns true if the desired state condition is set. - */ -RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_segment ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_SEGMENT); -} - -/** - * This function returns true if the WAITING_FOR_MESSAGE state is set in - * the_states, and false otherwise. - * - * @param[in] the_states is the task state set to test - * - * @return This method returns true if the desired state condition is set. - */ -RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_message ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_MESSAGE); -} - -/** - * This function returns true if the WAITING_FOR_EVENT state is set in - * the_states, and false otherwise. - * - * @param[in] the_states is the task state set to test - * - * @return This method returns true if the desired state condition is set. - */ -RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_event ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_EVENT); -} - -/** - * This function returns true if the WAITING_FOR_SYSTEM_EVENT state is set in - * the_states, and false otherwise. - * - * @param[in] the_states is the task state set to test - * - * @return This method returns true if the desired state condition is set. - */ -RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_system_event ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_SYSTEM_EVENT); -} - -/** - * This function returns true if the WAITING_FOR_MUTEX state - * is set in the_states, and false otherwise. - * - * @param[in] the_states is the task state set to test - * - * @return This method returns true if the desired state condition is set. - */ -RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_mutex ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_MUTEX); -} - -/** - * This function returns true if the WAITING_FOR_SEMAPHORE state - * is set in the_states, and false otherwise. - * - * @param[in] the_states is the task state set to test - * - * @return This method returns true if the desired state condition is set. - */ -RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_semaphore ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_SEMAPHORE); -} - -/** * This function returns true if the WAITING_FOR_TIME state is set in * the_states, and false otherwise. * @@ -349,21 +244,6 @@ RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_rpc_reply ( return (the_states & STATES_WAITING_FOR_RPC_REPLY); } -/** - * This function returns true if the WAITING_FOR_PERIOD state is set in - * the_states, and false otherwise. - * - * @param[in] the_states is the task state set to test - * - * @return This method returns true if the desired state condition is set. - */ -RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_period ( - States_Control the_states -) -{ - return (the_states & STATES_WAITING_FOR_PERIOD); -} - RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_join_at_exit( States_Control the_states ) @@ -403,39 +283,6 @@ RTEMS_INLINE_ROUTINE bool _States_Is_locally_blocked ( return (the_states & STATES_LOCALLY_BLOCKED); } -/** - * This function returns true if one of the states which indicates - * that a task is blocked is set in the_states, and false otherwise. - * - * @param[in] the_states is the task state set to test - * - * @return This method returns true if the state indicates that the - * assocated thread is blocked. - */ -RTEMS_INLINE_ROUTINE bool _States_Is_blocked ( - States_Control the_states -) -{ - return (the_states & STATES_BLOCKED); -} - -/** - * This function returns true if any of the states in the mask - * are set in the_states, and false otherwise. - * - * @param[i
Re: [PATCH 2/2] Remove obsolete __RTEMS_HAVE_SYS_CPUSET_H__
On Wed, Jan 11, 2017 at 12:09 AM, Sebastian Huber < sebastian.hu...@embedded-brains.de> wrote: > > > On 11/01/17 00:57, Joel Sherrill wrote: > >> diff --git a/cpukit/libcsupport/src/devctl.c >> b/cpukit/libcsupport/src/devctl.c >> deleted file mode 100644 >> index 353e0a5..000 >> --- a/cpukit/libcsupport/src/devctl.c >> +++ /dev/null >> @@ -1,72 +0,0 @@ >> -/* >> - * Copyright (c) 2016 Joel Sherrill. All rights >> reserved. >> > > Are you sure you want to delete this stuff from patch 1 in patch 2? > > No. At one point, I named the file devctl.c and early on had it in cpukit/posix. I decided it needed to be libcsupport/src/posix_devctl.c and apparently it got caught in this. I am moving it to the first patch. Thanks. > -- > Sebastian Huber, embedded brains GmbH > > Address : Dornierstr. 4, D-82178 Puchheim, Germany > Phone : +49 89 189 47 41-16 > Fax : +49 89 189 47 41-09 > E-Mail : sebastian.hu...@embedded-brains.de > PGP : Public key available on request. > > Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG. > > ___ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel > ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: [PATCH 1/2] Add support for posix_devctl()
On Wed, Jan 11, 2017 at 12:35 AM, Sebastian Huber < sebastian.hu...@embedded-brains.de> wrote: > I didn't find a posix_devctl() in FreeBSD and glibc. Is there a reference > implementation? Which systems do actually use this stuff? > > Unfortunately, it has not been widely implemented. QNX has devctl() which looks like this. I asked the Open Group POSIX maintainers the same question. It is defined in POSIX 1003.26 and required by the FACE Technical Standard. See http://opengroup.org/face/information for the list of documents associated with the FACE Technical Standard. All editions of the standard defined POSIX profiles for avionics embedded systems and posix_devctl() is part of that. The rationale for including POSIX 1003.26 was that ioctl() is not defined by any standard.This was the only thing that did it. POSIX 1003.26 is available from here: https://standards.ieee.org/findstds/standard/1003.26-2003.html This will be supported by RTOSes which aim for FACE conformance. At this point, VxWorks, Integrity, Deos/RTEMS, and LynxOS are the RTOSes active in the FACE Consortium which have to have this method to achieve FACE conformance. There is a company which has a Linux based solution and they will eventually have to add posix_devctl() to be conformant. And yes... I agree with you that this is a marginal method. But it is required for FACE conformance. The following paper is about a year old but it is the initial technical view and roadmap for how OAR is working to achieve FACE conformance for RTEMS by partnering with DDC-I who has Deos. http://face.intrepidinc.com/wp-content/uploads/2016/01/DDC-I-OAR-A-Unique-Approach-to-FACE-Conformance.pdf That was publicly presented at a FACE open event. Gedare has helped with this effort and presented a paper at EWILI earlier this year. We plan to formally take the integrated Deos/RTEMS combination through the FACE conformance process. If there are any questions about the FACE Technical Standard, FACE conformance, Deos/RTEMS integration or anything else related to FACE activities, please feed free to ask me. --joel > -- > Sebastian Huber, embedded brains GmbH > > Address : Dornierstr. 4, D-82178 Puchheim, Germany > Phone : +49 89 189 47 41-16 > Fax : +49 89 189 47 41-09 > E-Mail : sebastian.hu...@embedded-brains.de > PGP : Public key available on request. > > Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG. > > ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Texinfo (doc/) removed from 4.11 branch and master
Hi Congratulations to Chris Johns on the new Sphinx documentation! This is the logical next step and closes a part of RTEMS history. Random trivia: In February 1994, the documentation was in Lotus Ami Pro and it was the last thing that required a non-free tool. Huntsville was hit by a horrible ice storm and I was stuck at home for a few days. There was actually a pile of ice/snow over a foot high at the end of my driveway. That was when I converted the documentation to Texinfo. Over twenty years later, it was time for another conversion. Today I pushed the patch for ticket 2812 which removes the texinfo documentation from the master and 4.11 branch. It was a large patch which didn't pass through the vc list automatically. It is so large, I am not sure I want to allow it to clog everyone's mailbox. It didn't seem to touch too much outside the doc/ directory except for some top level bits so I don't expect problems. But there is always a risk I missed something. Let's keep the forward progress going. Please pitch in as we revamp and improve RTEMS infrastructure. *** All of the documentation conversion, repairs, and addition of new sections has been unfunded, volunteer effort. Funding for infrastructure upgrades is needed. *** --joel ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel