Re: [PATCH] cpu-supplement: Add ARM BSPs chapter

2017-11-06 Thread Sebastian Huber

On 26/10/17 08:22, Sebastian Huber wrote:
Please review this patch carefully. It adds a new chapter "ARM Board 
Support Packages" following the "ARM Specific Information" chapter. It 
adds a template structure for other BSPs.


Where should we place common BSP configuration options like 
BSP_PRESS_KEY_FOR_RESET? We probably don't want to add a copy and 
paste version to every BSP section.




Any comments with respect to the BSP documentation? It makes little 
sense to start with this work if the general direction is unclear.


--
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

Re: RTEMS Tier Allocations.

2017-11-06 Thread Sebastian Huber

On 27/10/17 07:13, Chris Johns wrote:

On 26/10/2017 18:50, Sebastian Huber wrote:

with the change to the INI format files, the

target_pretest_command
target_exe_filter_command

disappeared.

Oh I changed some names as part of a clean up.


I am not sure how I can invoke the tester for a board using U-Boot
connected via TTY or telnet. Do you have an example command line?

Of course, with the removal of my local set up there is nothing left in the BSP 
configurations as examples.

A command line is:

   $ sudo rtems-test --rtems-tools=/opt/work/rtems/4.12 \
 --rtems-bsp=xilinx_zynq_zedboard \
 --timeout=60 --log=t.txt \
 --user-config=$HOME/.rtemstesterrc \
 --mail .


How did you setup your mail configuration? A

sudo /opt/rtems-4.12/bin/rtems-test --rtems-bsp=imx7 
--rtems-tools=/opt/rtems-4.12 
/build/git-build/b-imx7/arm-rtems4.12/c/imx7/testsuites/samples/ticker/ 
--timeout=180 --user-config=$HOME/.rtemstesterrc --debug-trace=output 
--log=l.txt --mail-from="sebastian.hu...@embedded-brains.de" --mail


yields

error: no valid from address for mail

--
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

[PATCH 2/3] score: _Chain_Insert_ordered_unprotected()

2017-11-06 Thread Sebastian Huber
Change the chain order relation to use a directly specified left hand
side value.  This is similar to _RBTree_Insert_inline() and helps the
compiler to better optimize the code.
---
 cpukit/score/include/rtems/score/chainimpl.h   | 27 ++
 .../include/rtems/score/schedulerprioritysmpimpl.h | 12 +++--
 .../include/rtems/score/schedulersimpleimpl.h  | 38 +-
 .../score/include/rtems/score/schedulersmpimpl.h   | 58 +++---
 cpukit/score/src/coremsginsert.c   | 12 +++--
 cpukit/score/src/schedulerpriorityaffinitysmp.c| 11 ++--
 cpukit/score/src/schedulersimplesmp.c  | 32 +---
 cpukit/score/src/schedulerstrongapa.c  | 12 +++--
 testsuites/sptests/spchain/init.c  | 19 ---
 9 files changed, 149 insertions(+), 72 deletions(-)

diff --git a/cpukit/score/include/rtems/score/chainimpl.h 
b/cpukit/score/include/rtems/score/chainimpl.h
index 21c0e6b026..c94c051198 100644
--- a/cpukit/score/include/rtems/score/chainimpl.h
+++ b/cpukit/score/include/rtems/score/chainimpl.h
@@ -830,14 +830,14 @@ RTEMS_INLINE_ROUTINE bool 
_Chain_Get_with_empty_check_unprotected(
 /**
  * @brief Chain node order.
  *
- * @param[in] left The left node.
- * @param[in] right The right node.
+ * @param[in] left The left hand side.
+ * @param[in] right The right hand side.
  *
  * @retval true According to the order the left node precedes the right node.
  * @retval false Otherwise.
  */
 typedef bool ( *Chain_Node_order )(
-  const Chain_Node *left,
+  const void   *left,
   const Chain_Node *right
 );
 
@@ -848,20 +848,25 @@ typedef bool ( *Chain_Node_order )(
  * relation holds for all nodes from the head up to the inserted node.  Nodes
  * after the inserted node are not moved.
  *
- * @param[in,out] chain The chain.
- * @param[in,out] to_insert The node to insert.
+ * @param[in] the_chain The chain.
+ * @param[in] to_insert The node to insert.
+ * @param[in] left The left hand side passed to the order relation.  It must
+ *   correspond to the node to insert.  The separate left hand side parameter
+ *   may help the compiler to generate better code if it is stored in a local
+ *   variable.
  * @param[in] order The order relation.
  */
 RTEMS_INLINE_ROUTINE void _Chain_Insert_ordered_unprotected(
-  Chain_Control *chain,
-  Chain_Node *to_insert,
-  Chain_Node_order order
+  Chain_Control*the_chain,
+  Chain_Node   *to_insert,
+  const void   *left,
+  Chain_Node_order  order
 )
 {
-  const Chain_Node *tail = _Chain_Immutable_tail( chain );
-  Chain_Node *next = _Chain_First( chain );
+  const Chain_Node *tail = _Chain_Immutable_tail( the_chain );
+  Chain_Node *next = _Chain_First( the_chain );
 
-  while ( next != tail && !( *order )( to_insert, next ) ) {
+  while ( next != tail && !( *order )( left, next ) ) {
 next = _Chain_Next( next );
   }
 
diff --git a/cpukit/score/include/rtems/score/schedulerprioritysmpimpl.h 
b/cpukit/score/include/rtems/score/schedulerprioritysmpimpl.h
index f37414c7a8..073a7ade06 100644
--- a/cpukit/score/include/rtems/score/schedulerprioritysmpimpl.h
+++ b/cpukit/score/include/rtems/score/schedulerprioritysmpimpl.h
@@ -88,19 +88,23 @@ static inline void 
_Scheduler_priority_SMP_Move_from_ready_to_scheduled(
   Scheduler_Node*ready_to_scheduled
 )
 {
-  Scheduler_priority_SMP_Context *self =
-_Scheduler_priority_SMP_Get_self( context );
-  Scheduler_priority_SMP_Node *node =
-_Scheduler_priority_SMP_Node_downcast( ready_to_scheduled );
+  Scheduler_priority_SMP_Context *self;
+  Scheduler_priority_SMP_Node*node;
+  Priority_Controlpriority;
+
+  self = _Scheduler_priority_SMP_Get_self( context );
+  node = _Scheduler_priority_SMP_Node_downcast( ready_to_scheduled );
 
   _Scheduler_priority_Ready_queue_extract(
 &node->Base.Base.Node.Chain,
 &node->Ready_queue,
 &self->Bit_map
   );
+  priority = node->Base.priority;
   _Chain_Insert_ordered_unprotected(
 &self->Base.Scheduled,
 &node->Base.Base.Node.Chain,
+&priority,
 _Scheduler_SMP_Insert_priority_fifo_order
   );
 }
diff --git a/cpukit/score/include/rtems/score/schedulersimpleimpl.h 
b/cpukit/score/include/rtems/score/schedulersimpleimpl.h
index c94f9b3bdb..ec74cdc586 100644
--- a/cpukit/score/include/rtems/score/schedulersimpleimpl.h
+++ b/cpukit/score/include/rtems/score/schedulersimpleimpl.h
@@ -39,49 +39,63 @@ RTEMS_INLINE_ROUTINE Scheduler_simple_Context *
 }
 
 RTEMS_INLINE_ROUTINE bool _Scheduler_simple_Insert_priority_lifo_order(
-  const Chain_Node *to_insert,
+  const void   *to_insert,
   const Chain_Node *next
 )
 {
-  const Thread_Control *thread_to_insert = (const Thread_Control *) to_insert;
-  const Thread_Control *thread_next = (const Thread_Control *) next;
+  const Priority_Control *priority_to_insert;
+  const Thread_Control   *thread_next;
 
-  return _Thread_Get_priority( thread_to_insert )
-<= _Thread_Get_priority( thread_next );
+  p

[PATCH 3/3] score: Use Processor_mask instead of cpu_set_t

2017-11-06 Thread Sebastian Huber
---
 .../include/rtems/score/schedulerpriorityaffinitysmp.h   |  4 ++--
 cpukit/score/src/schedulerpriorityaffinitysmp.c  | 16 +---
 2 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/cpukit/score/include/rtems/score/schedulerpriorityaffinitysmp.h 
b/cpukit/score/include/rtems/score/schedulerpriorityaffinitysmp.h
index 6ae7ac5e76..d988d5752a 100644
--- a/cpukit/score/include/rtems/score/schedulerpriorityaffinitysmp.h
+++ b/cpukit/score/include/rtems/score/schedulerpriorityaffinitysmp.h
@@ -167,9 +167,9 @@ typedef struct {
   Scheduler_priority_SMP_Node Base;
 
   /**
-   * Structure containing affinity set data and size
+   * @brief The thread processor affinity set.
*/
-  cpu_set_t affinity;
+  Processor_mask Affinity;
 } Scheduler_priority_affinity_SMP_Node;
 
 /** @} */
diff --git a/cpukit/score/src/schedulerpriorityaffinitysmp.c 
b/cpukit/score/src/schedulerpriorityaffinitysmp.c
index a948eef0fc..72b4ffb600 100644
--- a/cpukit/score/src/schedulerpriorityaffinitysmp.c
+++ b/cpukit/score/src/schedulerpriorityaffinitysmp.c
@@ -84,11 +84,7 @@ void _Scheduler_priority_affinity_SMP_Node_initialize(
*  All we add is affinity information to the basic SMP node.
*/
   the_node = _Scheduler_priority_affinity_SMP_Node_downcast( node );
-  _Processor_mask_To_cpu_set_t(
-_SMP_Get_online_processors(),
-sizeof( the_node->affinity ),
-&the_node->affinity
-  );
+  _Processor_mask_Assign( &the_node->Affinity, _SMP_Get_online_processors() );
 }
 
 /*
@@ -156,7 +152,7 @@ static Scheduler_Node 
*_Scheduler_priority_affinity_SMP_Get_highest_ready(
   /*
* Can this thread run on this CPU?
*/
-  if ( CPU_ISSET( (int) victim_cpu_index, &node->affinity ) ) {
+  if ( _Processor_mask_Is_set( &node->Affinity, victim_cpu_index ) ) {
 highest = &node->Base.Base.Base;
 break;
   }
@@ -233,7 +229,7 @@ static Scheduler_Node * 
_Scheduler_priority_affinity_SMP_Get_lowest_scheduled(
 thread = _Scheduler_Node_get_owner( &node->Base.Base.Base );
 cpu_index = _Per_CPU_Get_index( _Thread_Get_CPU( thread ) );
 
-if ( CPU_ISSET( (int) cpu_index, &filter->affinity ) ) {
+if ( _Processor_mask_Is_set( &filter->Affinity, cpu_index ) ) {
   lowest_scheduled = &node->Base.Base.Base;
   break;
 }
@@ -609,7 +605,6 @@ bool _Scheduler_priority_affinity_SMP_Set_affinity(
   Scheduler_priority_affinity_SMP_Node *node;
   States_Controlcurrent_state;
   Processor_maskmy_affinity;
-  cpu_set_t cpuset;
 
   context = _Scheduler_Get_context( scheduler );
   _Processor_mask_And( &my_affinity, &context->Processors, affinity );
@@ -618,14 +613,13 @@ bool _Scheduler_priority_affinity_SMP_Set_affinity(
 return false;
   }
 
-  _Processor_mask_To_cpu_set_t( &my_affinity, sizeof( cpuset ), &cpuset );
   node = _Scheduler_priority_affinity_SMP_Node_downcast( node_base );
 
   /*
* The old and new set are the same, there is no point in
* doing anything.
*/
-  if ( CPU_EQUAL( &cpuset, &node->affinity ) )
+  if ( _Processor_mask_Is_equal( &node->Affinity, affinity ) )
 return true;
 
   current_state = thread->current_state;
@@ -634,7 +628,7 @@ bool _Scheduler_priority_affinity_SMP_Set_affinity(
 _Scheduler_priority_affinity_SMP_Block( scheduler, thread, 
&node->Base.Base.Base );
   }
 
-  CPU_COPY( &cpuset, &node->affinity );
+  _Processor_mask_Assign( &node->Affinity, affinity );
 
   if ( _States_Is_ready( current_state ) ) {
 /*
-- 
2.12.3

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 1/3] score: Remove superfluous include

2017-11-06 Thread Sebastian Huber
Update #3059.
---
 cpukit/score/include/rtems/score/scheduler.h | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/cpukit/score/include/rtems/score/scheduler.h 
b/cpukit/score/include/rtems/score/scheduler.h
index 38f3e710e7..669f82c48c 100644
--- a/cpukit/score/include/rtems/score/scheduler.h
+++ b/cpukit/score/include/rtems/score/scheduler.h
@@ -20,9 +20,6 @@
 #define _RTEMS_SCORE_SCHEDULER_H
 
 #include 
-#if defined(RTEMS_SMP)
-  #include 
-#endif
 
 #ifdef __cplusplus
 extern "C" {
-- 
2.12.3

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH] c-user: Use configuration option as section name

2017-11-06 Thread Sebastian Huber
This makes it easier to find the documentation for a given configuration
option.

Remove superfluous comments.
---
 c-user/configuring_a_system.rst | 1120 ++-
 1 file changed, 396 insertions(+), 724 deletions(-)

diff --git a/c-user/configuring_a_system.rst b/c-user/configuring_a_system.rst
index c0b7151..0d4ebd7 100644
--- a/c-user/configuring_a_system.rst
+++ b/c-user/configuring_a_system.rst
@@ -54,8 +54,6 @@ systems can be easily configured using the 
 mechanism and
 that using this mechanism will avoid internal RTEMS configuration changes
 impacting applications.
 
-.. COMMENT: === Philosophy ===
-
 Default Value Selection Philosophy
 ==
 
@@ -65,8 +63,6 @@ possible.  By default, no application resources are 
configured.  The
 thread is configured and that at least one of the initialization task/thread
 tables is configured.
 
-.. COMMENT: === Sizing the RTEMS Workspace ===
-
 .. _Sizing the RTEMS Workspace:
 
 Sizing the RTEMS Workspace
@@ -134,8 +130,6 @@ when:
 Failure to provide enough space in the RTEMS Workspace may result in fatal
 run-time errors terminating the system.
 
-.. COMMENT: === Potential Issues ===
-
 Potential Issues with RTEMS Workspace Size Estimation
 =
 
@@ -165,8 +159,6 @@ In general,  is very accurate when 
given enough
 information.  However, it is quite easy to use a library and forget to account
 for its resources.
 
-.. COMMENT: === Format to be followed for making changes in this file ===
-
 Format to be followed for making changes in this file
 =
 
@@ -211,8 +203,6 @@ DESCRIPTION:
 NOTES:
   Any further notes. (No specific format)
 
-.. COMMENT: === Configuration Example ===
-
 Configuration Example
 =
 
@@ -295,8 +285,6 @@ things, the application implicitly used the following 
defaults:
 - The minimum task stack size will be that recommended by RTEMS for the target
   architecture.
 
-.. COMMENT: === Unlimited Objects ===
-
 .. _Unlimited Objects:
 
 Unlimited Objects
@@ -396,8 +384,6 @@ generally considered a safer embedded systems programming 
practice to know the
 system limits rather than experience an out of memory error at an arbitrary and
 largely unpredictable time in the field.
 
-.. COMMENT: === Per Object Class Unlimited Object Instances ===
-
 .. _Per Object Class Unlimited Object Instances:
 
 Per Object Class Unlimited Object Instances
@@ -427,8 +413,6 @@ Object maximum specifications can be evaluated with the
 ``rtems_resource_is_unlimited`` and``rtems_resource_maximum_per_allocation``
 macros.
 
-.. COMMENT: === Unlimited Object Instances ===
-
 .. _Unlimited Object Instances:
 
 Unlimited Object Instances
@@ -439,12 +423,10 @@ provides the capability to make all object classes listed 
above operate in
 unlimited mode in a simple manner. The application developer is only
 responsible for enabling unlimited objects and specifying the allocation size.
 
-.. COMMENT: === CONFIGURE_UNLIMITED_OBJECTS ===
-
-.. _Enable Unlimited Object Instances:
+.. _CONFIGURE_UNLIMITED_OBJECTS:
 
-Enable Unlimited Object Instances
--
+CONFIGURE_UNLIMITED_OBJECTS
+---
 .. index:: CONFIGURE_UNLIMITED_OBJECTS
 
 CONSTANT:
@@ -469,12 +451,10 @@ NOTES:
 ``CONFIGURE_UNIFIED_WORK_AREAS`` so the system operates with a single pool
 of memory for both RTEMS and application memory allocations.
 
-.. COMMENT: === CONFIGURE_UNLIMITED_ALLOCATION_SIZE ===
-
-.. _Specify Unlimited Objects Allocation Size:
+.. _CONFIGURE_UNLIMITED_ALLOCATION_SIZE:
 
-Specify Unlimited Objects Allocation Size
--
+CONFIGURE_UNLIMITED_ALLOCATION_SIZE
+---
 
 CONSTANT:
 ``CONFIGURE_UNLIMITED_ALLOCATION_SIZE``
@@ -506,20 +486,16 @@ NOTES:
 #define CONFIGURE_UNLIMITED_OBJECTS
 #define CONFIGURE_UNLIMITED_ALLOCATION_SIZE 5
 
-.. COMMENT: === Classic API Configuration ===
-
 Classic API Configuration
 =
 
 This section defines the Classic API related system configuration parameters
 supported by .
 
-.. COMMENT: === CONFIGURE_MAXIMUM_TASKS ===
-
-.. _Specify Maximum Classic API Tasks:
+.. _CONFIGURE_MAXIMUM_TASKS:
 
-Specify Maximum Classic API Tasks
--
+CONFIGURE_MAXIMUM_TASKS
+---
 .. index:: CONFIGURE_MAXIMUM_TASKS
 
 CONSTANT:
@@ -559,12 +535,10 @@ NOTES:
 
 .. COMMENT: XXX - Add xref to CONFIGURE_MAXIMUM_POSIX_THREADS.
 
-.. COMMENT: === CONFIGURE_MAXIMUM_TIMERS ===
-
-.. _Specify Maximum Classic API Timers:
+.. _CONFIGURE_MAXIMUM_TIMERS:
 
-Specify Maximum Classic API Timers
---
+CONFIGURE_MAXIMUM_TIMERS
+
 .. index:: CONFIGURE_MAXIMUM_TIMERS
 
 CONSTANT:
@@ -586,12 +560,10 @@ DESCRIPTION:
 NOTES:
 This object class can be configu

[PATCH] CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER

2017-11-06 Thread Sebastian Huber
Close #3170.
Update #3199.
---
 c-user/configuring_a_system.rst | 38 ++
 1 file changed, 38 insertions(+)

diff --git a/c-user/configuring_a_system.rst b/c-user/configuring_a_system.rst
index 0d4ebd7..2890a95 100644
--- a/c-user/configuring_a_system.rst
+++ b/c-user/configuring_a_system.rst
@@ -3822,6 +3822,44 @@ NOTES:
 BSPs should be constructed in a manner that allows ``printk()`` to work
 properly without the need for the console driver to be configured.
 
+The ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`` configuration option is
+mutually exclusive with the
+``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`` configuration option.
+
+.. _CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER:
+
+CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
+-
+.. index:: CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
+
+CONSTANT:
+``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER``
+
+DATA TYPE:
+Boolean feature macro.
+
+RANGE:
+Defined or undefined.
+
+DEFAULT VALUE:
+This is not defined by default.
+
+DESCRIPTION:
+``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`` is defined if the
+application wishes to include the Simple Console Device Driver.
+
+NOTES:
+This device driver is responsible for providing standard input and output
+using */dev/console*.
+
+This device driver writes via ``rtems_putc()`` and reads via
+``getchark()``.  The Termios framework is not used.  There is no support to
+change device settings, e.g. baud, stop bits, parity, etc.
+
+The ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`` configuration
+option is mutually exclusive with the
+``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`` configuration option.
+
 .. _CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER:
 
 CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
-- 
2.12.3

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH 1/2] cpukit: Add the git hash to the version if built from git source.

2017-11-06 Thread Chris Johns
On 06/11/2017 17:23, Sebastian Huber wrote:
> How reliable is this Autoconf stuff? 

Haha, that is a leading question! I suppose it depends on how you use it or
abuse it as we have in our case.

> Do I have to re-build everything after each
> Git checkout (cpuopts.h is included in nearly every header)?

The hash is only updated when configure is run. It is not 100% full proof,
something like a makefile check or the post-checkout would be needed if that
path is taken. What I did was a "good attempt" at best.

> Why can't we use a Git post-checkout hook (attached)?

I tend to get a little uneasy when a VC tool is touching code in a project
underneath another operation. It makes auditing more complicated. If you think
the autoconf change is still not suitable I suppose something in the makefiles
could perform the post-checkout functionality.

We need a way for the build and test records to show what was being tested. We
currently lack that information.

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH 2/2] libmisc/testsupport: Add RTEMS version, build and tools to the tests.

2017-11-06 Thread Chris Johns
On 06/11/2017 17:41, Sebastian Huber wrote:
> 
>> Do all tests call the begin function in libmisc?
> 
> Yes, I hope that this is the case.

https://git.rtems.org/rtems/tree/testsuites/support/include/buffer_test_io.h#n65

is not doing that. This needs to change.

> Some tests use rtems_test_begin() directly.
> These tests should be changed to use TEST_BEGIN() (or vice versa).

I will take a look.I think the fewer macros we have the better. We may get
test_io.h (buffer_test_io.h) down to nothing.

> 
> You can do a "#define TEST_TYPE XXX", instead of the "#define TEST_STATE_XXX".
> 

Sure that is a good idea. I will have a look and see what happens.

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: RTEMS Tier Allocations.

2017-11-06 Thread Chris Johns
On 06/11/2017 21:20, Sebastian Huber wrote:
> On 27/10/17 07:13, Chris Johns wrote:
>> On 26/10/2017 18:50, Sebastian Huber wrote:
>>> with the change to the INI format files, the
>>>
>>> target_pretest_command
>>> target_exe_filter_command
>>>
>>> disappeared.
>> Oh I changed some names as part of a clean up.
>>
>>> I am not sure how I can invoke the tester for a board using U-Boot
>>> connected via TTY or telnet. Do you have an example command line?
>> Of course, with the removal of my local set up there is nothing left in the
>> BSP configurations as examples.
>>
>> A command line is:
>>
>>$ sudo rtems-test --rtems-tools=/opt/work/rtems/4.12 \
>>  --rtems-bsp=xilinx_zynq_zedboard \
>>  --timeout=60 --log=t.txt \
>>  --user-config=$HOME/.rtemstesterrc \
>>  --mail .
> 
> How did you setup your mail configuration?

$ cat ~/.mailrc | grep chrisj
set from=chr...@rtems.org

> A
> 
> sudo /opt/rtems-4.12/bin/rtems-test --rtems-bsp=imx7
> --rtems-tools=/opt/rtems-4.12
> /build/git-build/b-imx7/arm-rtems4.12/c/imx7/testsuites/samples/ticker/
> --timeout=180 --user-config=$HOME/.rtemstesterrc --debug-trace=output
> --log=l.txt --mail-from="sebastian.hu...@embedded-brains.de" --mail
> 
> yields
> 
> error: no valid from address for mail
> 

This is a bug. I will fix this.

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Building RTEMS with Clang?

2017-11-06 Thread Hesham Almatary
Hi,

I've come across this page [1], but it hasn't been updated since 2011.
I'm wondering what's the status of Clang project and how feasible it's
to build RTEMS with it.

[1] https://devel.rtems.org/wiki/Projects/CLANG

Cheers,
-- 
Hesham
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Building RTEMS with Clang?

2017-11-06 Thread Joel Sherrill
On Mon, Nov 6, 2017 at 5:23 PM, Hesham Almatary 
wrote:

> Hi,
>
> I've come across this page [1], but it hasn't been updated since 2011.
> I'm wondering what's the status of Clang project and how feasible it's
> to build RTEMS with it.
>

That page is status from my attempt to compile RTEMS with clang.
I got far enough to know that the bsp_specs were a gcc dependent
issue that had to be addressed and that the bsp_specs were
assumed to be present by the build system.

Things got a lot better with Gaisler (Daniel H. cc'ed) putting serious
effort into clang/llvm on the SPARC for RTEMS. They even added
support for a compact instruction set like the Thumb.

It would be interesting to see how their SPARC work improved
the situation in general. That has not been evaluated.

--joel


>
> [1] https://devel.rtems.org/wiki/Projects/CLANG
>
> Cheers,
> --
> Hesham
> ___
> 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] c-user: Use configuration option as section name

2017-11-06 Thread Chris Johns
On 06/11/2017 22:56, Sebastian Huber wrote:
> This makes it easier to find the documentation for a given configuration
> option.

Can you please generate the HTML and PDF so we can review what this looks like?

I have figured out indexes and I will sweep over the docs adding them soon. The
CONFIGURE_ then can be added as indexes which puts them a few of clicks away
from the top level so I am not sure about this change. I tend to like the
English and not the exact constants.

The current labels could do with a clean up. There is way more info in the
headings than needs to be there. The docs clearly show the levels in the HTML
format and while not as clear in the PDF is it OK. This means for example:

Instantiate Classic API Initialization Task Table =>
Instantiate Classic Initialization Task Table

Specifying Classic API Initialization Task Entry Point =>
  Classic Initialization Task Entry Point

Specify Maximum POSIX API Threads => Maximum POSIX Threads

Classic API Initialization Tasks Table Configuration =>
Classic Initialization Tasks Table Configuration

etc.

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH] c-user: Use configuration option as section name

2017-11-06 Thread Joel Sherrill
On Mon, Nov 6, 2017 at 6:56 PM, Chris Johns  wrote:

> On 06/11/2017 22:56, Sebastian Huber wrote:
> > This makes it easier to find the documentation for a given configuration
> > option.
>
> Can you please generate the HTML and PDF so we can review what this looks
> like?
>
> I have figured out indexes and I will sweep over the docs adding them
> soon. The
> CONFIGURE_ then can be added as indexes which puts them a few of
> clicks away
> from the top level so I am not sure about this change. I tend to like the
> English and not the exact constants.
>
> The current labels could do with a clean up. There is way more info in the
> headings than needs to be there. The docs clearly show the levels in the
> HTML
> format and while not as clear in the PDF is it OK. This means for example:
>
> Instantiate Classic API Initialization Task Table =>
> Instantiate Classic Initialization Task Table
>
> Specifying Classic API Initialization Task Entry Point =>
>   Classic Initialization Task Entry Point
>
> Specify Maximum POSIX API Threads => Maximum POSIX Threads
>
> Classic API Initialization Tasks Table Configuration =>
> Classic Initialization Tasks Table Configuration
>

+1

Another option -- if it fits -- is to do something like the directives
and UNIX man pages. "cmd - English phrase". The risk here
is that this may be too long.

>
> etc.
>
> Chris
> ___
> 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

[PATCH] cpukit: Add a Version API.

2017-11-06 Thread Chris Johns
Provide functions to get the version string, major, minor and revision
numbers and the version control identifer that is a unique tag for
the version control system.

Update #3199.
---
 cpukit/sapi/Makefile.am| 35 +++-
 cpukit/sapi/include/rtems/version.h| 76 ++
 cpukit/sapi/preinstall.am  |  4 ++
 cpukit/sapi/src/version.c  | 61 +
 cpukit/sapi/vc-ident.sh| 38 +
 cpukit/sapi/version-vc-ident.h.in  |  7 +++
 testsuites/sptests/Makefile.am |  1 +
 testsuites/sptests/configure.ac|  1 +
 testsuites/sptests/spversion01/Makefile.am | 20 +++
 testsuites/sptests/spversion01/init.c  | 58 
 testsuites/sptests/spversion01/spversion01.doc | 24 
 testsuites/sptests/spversion01/spversion01.scn | 21 +++
 12 files changed, 345 insertions(+), 1 deletion(-)
 create mode 100644 cpukit/sapi/include/rtems/version.h
 create mode 100644 cpukit/sapi/src/version.c
 create mode 100755 cpukit/sapi/vc-ident.sh
 create mode 100644 cpukit/sapi/version-vc-ident.h.in
 create mode 100644 testsuites/sptests/spversion01/Makefile.am
 create mode 100644 testsuites/sptests/spversion01/init.c
 create mode 100644 testsuites/sptests/spversion01/spversion01.doc
 create mode 100644 testsuites/sptests/spversion01/spversion01.scn

diff --git a/cpukit/sapi/Makefile.am b/cpukit/sapi/Makefile.am
index 50d065be7e..b8cd096b47 100644
--- a/cpukit/sapi/Makefile.am
+++ b/cpukit/sapi/Makefile.am
@@ -22,6 +22,7 @@ include_rtems_HEADERS += include/rtems/rbtree.h
 include_rtems_HEADERS += include/rtems/scheduler.h
 include_rtems_HEADERS += include/rtems/timecounter.h
 include_rtems_HEADERS += include/rtems/timespec.h
+include_rtems_HEADERS += include/rtems/version.h
 
 EXTRA_DIST = include/rtems/README
 
@@ -34,7 +35,7 @@ libsapi_a_SOURCES = src/extension.c src/extensioncreate.c \
 src/getversionstring.c \
 src/chainappendnotify.c src/chaingetnotify.c src/chaingetwait.c \
 src/chainprependnotify.c src/rbheap.c src/interrtext.c \
-src/fatalsrctext.c
+src/fatalsrctext.c src/version.c
 libsapi_a_SOURCES += src/chainprotected.c
 libsapi_a_SOURCES += src/cpucounterconverter.c
 libsapi_a_SOURCES += src/delayticks.c
@@ -47,5 +48,37 @@ libsapi_a_SOURCES += src/profilingreportxml.c
 libsapi_a_SOURCES += src/tcsimpleinstall.c
 libsapi_a_CPPFLAGS = $(AM_CPPFLAGS)
 
+#
+# Create a new Version VC Ident header if the VC state has changed.
+#
+.PHONY: version-vc-ident.h
+
+vc_ident_stamp = $(am__leading_dot)vc-ident-stamp
+
+$(vc_ident_stamp): version-vc-ident.h.in vc-ident.sh
+   @+rm -f $(vc_ident_stamp)
+
+version-vc-ident.h: $(vc_ident_stamp) vc-ident.sh version-vc-ident.h.in
+   @+current_vc_ident=""; \
+   if test -f $(vc_ident_stamp); then \
+current_vc_ident=`cat $(vc_ident_stamp)`; \
+   fi; \
+   vc_ident=`$(top_srcdir)/sapi/vc-ident.sh $(top_srcdir) 
$$current_vc_ident`; \
+   if test "$$vc_ident" != "matches"; then \
+ echo "Generating version-vc-ident.h"; \
+ if test "$$vc_ident" == "release"; then \
+   vc_ident="\/\* No version control found; release\? \*\/"; \
+ else \
+   vc_ident="#define RTEMS_VERSION_VC_IDENT \"$$vc_ident\""; \
+ fi; \
+ cat $(top_srcdir)/sapi/version-vc-ident.h.in | \
+   sed -e "s/@VERSION_VC_IDENT@/$$vc_ident/g" > ../version-vc-ident.h; 
\
+ echo "$$vc_ident" > $(vc_ident_stamp); \
+   fi
+
+all-local: version-vc-ident.h
+
+src/version.c: version-vc-ident.h
+
 include $(srcdir)/preinstall.am
 include $(top_srcdir)/automake/local.am
diff --git a/cpukit/sapi/include/rtems/version.h 
b/cpukit/sapi/include/rtems/version.h
new file mode 100644
index 00..d9fe4d9eff
--- /dev/null
+++ b/cpukit/sapi/include/rtems/version.h
@@ -0,0 +1,76 @@
+/**
+ * @file
+ *
+ * @brief Version API.
+ */
+
+/*
+ *  Copyright (C) 2017.
+ *  Chris Johns 
+ *
+ *  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.
+ */
+
+#ifndef _RTEMS_VERSION_H
+#define _RTEMS_VERSION_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @defgroup ClassicVersion Version
+ *
+ * @ingroup ClassicVersion
+ *
+ * @brief The Version API provides functions to return the version or parts of
+ * the version of RTEMS you are using.
+ */
+/**@{**/
+
+/**
+ * @brief Returns the version string.
+ *
+ * @retval text The version as a string.
+ */
+const char *rtems_version( void );
+
+/**
+ * @brief Returns the version's major number.
+ *
+ * @retval int The version's major number.
+ */
+int rtems_version_major( void );
+
+/**
+ * @brief Returns the version's minor number.
+ *
+ * @retval int The version's minor number.
+ */
+int rtems_version_minor( void );
+
+/**
+ * @brief Returns the version's revisi

Re: [PATCH 1/2] cpukit: Add the git hash to the version if built from git source.

2017-11-06 Thread Chris Johns
On 07/11/2017 08:49, Chris Johns wrote:
>> Why can't we use a Git post-checkout hook (attached)?
> 
> I tend to get a little uneasy when a VC tool is touching code in a project
> underneath another operation. It makes auditing more complicated. If you think
> the autoconf change is still not suitable I suppose something in the makefiles
> could perform the post-checkout functionality.
> 

I have used make and posted a patch. If pushed I will follow up with the
documentation for the Version API.

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH] termios: Fix canonical mode

2017-11-06 Thread Sebastian Huber
In canonical mode, input is made available line by line.  We must stop
the canonical buffer filling upon reception of an end-of-line character.

Close #3218.
---
 cpukit/libcsupport/src/termios.c |  6 ++-
 testsuites/libtests/termios09/init.c | 97 
 2 files changed, 81 insertions(+), 22 deletions(-)

diff --git a/cpukit/libcsupport/src/termios.c b/cpukit/libcsupport/src/termios.c
index 7a114a74b9..8303e9f18d 100644
--- a/cpukit/libcsupport/src/termios.c
+++ b/cpukit/libcsupport/src/termios.c
@@ -1570,8 +1570,10 @@ fillBufferQueue (struct rtems_termios_tty *tty)
 
   /* continue processing new character */
   if (tty->termios.c_lflag & ICANON) {
-if (siproc (c, tty))
-  wait = false;
+if (siproc (c, tty)) {
+  /* In canonical mode, input is made available line by line */
+  return;
+}
   } else {
 siproc (c, tty);
 if (tty->ccount >= tty->termios.c_cc[VMIN])
diff --git a/testsuites/libtests/termios09/init.c 
b/testsuites/libtests/termios09/init.c
index 7509101682..62138bc213 100644
--- a/testsuites/libtests/termios09/init.c
+++ b/testsuites/libtests/termios09/init.c
@@ -36,6 +36,8 @@ const char rtems_test_name[] = "TERMIOS 9";
 
 #define OUTPUT_BUFFER_SIZE 64
 
+#define INPUT_BUFFER_SIZE 64
+
 static const char * const paths[DEVICE_COUNT] = {
   "/interrupt",
   "/polled"
@@ -47,7 +49,9 @@ typedef struct {
   size_t output_pending;
   size_t output_count;
   char output_buf[OUTPUT_BUFFER_SIZE];
-  int input_char;
+  size_t input_head;
+  size_t input_tail;
+  unsigned char input_buf[INPUT_BUFFER_SIZE];
   int callback_counter;
 } device_context;
 
@@ -64,8 +68,7 @@ static test_context test_instance = {
 {
   .base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER("Interrupt")
 }, {
-  .base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER("Polled"),
-  .input_char = -1
+  .base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER("Polled")
 }
   }
 };
@@ -112,9 +115,14 @@ static void write_interrupt(
 static int read_polled(rtems_termios_device_context *base)
 {
   device_context *dev = (device_context *) base;
-  int c = dev->input_char;
+  int c;
 
-  dev->input_char = -1;
+  if (dev->input_head != dev->input_tail) {
+c = dev->input_buf[dev->input_head];
+dev->input_head = (dev->input_head + 1) % INPUT_BUFFER_SIZE;
+  } else {
+c = -1;
+  }
 
   return c;
 }
@@ -187,12 +195,16 @@ static void setup(test_context *ctx)
 
 static void input(test_context *ctx, size_t i, char c)
 {
+  device_context *dev = &ctx->devices[i];
+
   switch (i) {
 case INTERRUPT:
-  rtems_termios_enqueue_raw_characters(ctx->devices[i].tty, &c, sizeof(c));
+  rtems_termios_enqueue_raw_characters(dev->tty, &c, sizeof(c));
   break;
 case POLLED:
-  ctx->devices[i].input_char = (unsigned char) c;
+  dev->input_buf[dev->input_tail] = (unsigned char) c;
+  dev->input_tail = (dev->input_tail + 1) % INPUT_BUFFER_SIZE;
+  rtems_test_assert(dev->input_head != dev->input_tail);
   break;
 default:
   rtems_test_assert(0);
@@ -523,11 +535,13 @@ static void test_rx_callback_icanon(test_context *ctx)
   input(ctx, i, '\n');
   rtems_test_assert(dev->callback_counter == 1);
 
-  n = read(ctx->fds[i], buf, 3);
-  rtems_test_assert(n == 3);
+  n = read(ctx->fds[i], buf, 2);
+  rtems_test_assert(n == 1);
   rtems_test_assert(buf[0] == '\n');
-  rtems_test_assert(buf[1] == 'a');
-  rtems_test_assert(buf[2] == '\n');
+  n = read(ctx->fds[i], buf, 3);
+  rtems_test_assert(n == 2);
+  rtems_test_assert(buf[0] == 'a');
+  rtems_test_assert(buf[1] == '\n');
 
   input(ctx, i, '\4');
   rtems_test_assert(dev->callback_counter == 2);
@@ -538,11 +552,15 @@ static void test_rx_callback_icanon(test_context *ctx)
   input(ctx, i, '\n');
   rtems_test_assert(dev->callback_counter == 2);
 
-  n = read(ctx->fds[i], buf, 2);
+  n = read(ctx->fds[i], buf, 1);
+  rtems_test_assert(n == 0);
+
+  n = read(ctx->fds[i], buf, 3);
   rtems_test_assert(n == 2);
   rtems_test_assert(buf[0] == 'b');
   rtems_test_assert(buf[1] == '\n');
 
+  /* EOL */
   input(ctx, i, '1');
   rtems_test_assert(dev->callback_counter == 3);
 
@@ -552,12 +570,15 @@ static void test_rx_callback_icanon(test_context *ctx)
   input(ctx, i, '\n');
   rtems_test_assert(dev->callback_counter == 3);
 
-  n = read(ctx->fds[i], buf, 3);
-  rtems_test_assert(n == 3);
+  n = read(ctx->fds[i], buf, 2);
+  rtems_test_assert(n == 1);
   rtems_test_assert(buf[0] == '1');
-  rtems_test_assert(buf[1] == 'c');
-  rtems_test_assert(buf[2] == '\n');
+  n = read(ctx->fds[i], buf, 3);
+  rtems_test_assert(n == 2);
+  rtems_test_assert(buf[0] == 'c');
+  rtems_test_assert(buf[1] == '\n');
 
+  /* EOL2 */
   input(ctx, i, '2');
   rtems_test_assert(dev->callback_counter == 4);
 
@@ -567,11 +588,13 @@ static void test_rx_callback_icanon(test_context *ctx)
   input(ctx, i, '\n');
   rtems_test_assert(dev->callback_counter == 4);
 
-  n = read(

Re: RTEMS Tier Allocations.

2017-11-06 Thread Sebastian Huber



On 06/11/17 23:03, Chris Johns wrote:

On 06/11/2017 21:20, Sebastian Huber wrote:

On 27/10/17 07:13, Chris Johns wrote:

On 26/10/2017 18:50, Sebastian Huber wrote:

with the change to the INI format files, the

target_pretest_command
target_exe_filter_command

disappeared.

Oh I changed some names as part of a clean up.


I am not sure how I can invoke the tester for a board using U-Boot
connected via TTY or telnet. Do you have an example command line?

Of course, with the removal of my local set up there is nothing left in the
BSP configurations as examples.

A command line is:

$ sudo rtems-test --rtems-tools=/opt/work/rtems/4.12 \
  --rtems-bsp=xilinx_zynq_zedboard \
  --timeout=60 --log=t.txt \
  --user-config=$HOME/.rtemstesterrc \
  --mail .

How did you setup your mail configuration?

$ cat ~/.mailrc | grep chrisj
setfrom=chr...@rtems.org



With the sudo, I have to add this file to the root user. Would it be 
possible to simply generate a raw mail file which can be sent later via 
an e-mail client? Some test machines may be not connected to the 
internet for example.


--
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

Re: [rtems commit] tests: Use in all tests

2017-11-06 Thread Chris Johns
On 07/11/2017 17:09, Sebastian Huber wrote:
> Commit:7b00c2fac57740963d3c4d8bf1cf5eab3a31f22e
> -  rtems_test_begin();
> +  TEST_BEGIN();
> -  rtems_test_end();
> +  TEST_END();

I am now confused 

$ arm-rtems4.12-nm `find . -name \*.exe` | grep rtems_test_begin
001118dc T rtems_test_begin
0011907c T rtems_test_begin

and these are in libtests/math and libtests/capture01 which I suspect have been
missed with this change.

I think the macros TEST_BEGIN and TEST_END should go and the test strings in the
libmisc/testsupport/test.h should be moved out of the header file and into
testbeginend.c. I did point this out in ...

https://lists.rtems.org/pipermail/devel/2017-November/019366.html

Just to be clear what I am going to do:

1. Strip out as much of buffer_test_io.h as I can and rename it test_io.h.
2. Remove all TEST_BEGIN and TEST_END macro usage and move all test into
testbeginend.c.
3. Add the banners for version, build and tools.

Sebastian, how does this look to you?

Chris
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [rtems commit] tests: Use in all tests

2017-11-06 Thread Sebastian Huber

On 07/11/17 08:15, Chris Johns wrote:

On 07/11/2017 17:09, Sebastian Huber wrote:

Commit:7b00c2fac57740963d3c4d8bf1cf5eab3a31f22e
-  rtems_test_begin();
+  TEST_BEGIN();
-  rtems_test_end();
+  TEST_END();

I am now confused 

$ arm-rtems4.12-nm `find . -name \*.exe` | grep rtems_test_begin
001118dc T rtems_test_begin
0011907c T rtems_test_begin

and these are in libtests/math and libtests/capture01 which I suspect have been
missed with this change.


Ok, I will fix this.



I think the macros TEST_BEGIN and TEST_END should go and the test strings in the
libmisc/testsupport/test.h should be moved out of the header file and into
testbeginend.c. I did point this out in ...

https://lists.rtems.org/pipermail/devel/2017-November/019366.html

Just to be clear what I am going to do:

1. Strip out as much of buffer_test_io.h as I can and rename it test_io.h.
2. Remove all TEST_BEGIN and TEST_END macro usage and move all test into
testbeginend.c.
3. Add the banners for version, build and tools.

Sebastian, how does this look to you?


Yes, this is fine, but can we please unify this stuff first. Then you 
only have to change this in one place or do simple search and replace 
changes.


--
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

Re: [rtems commit] tests: Use in all tests

2017-11-06 Thread Sebastian Huber



On 07/11/17 08:24, Sebastian Huber wrote:

On 07/11/17 08:15, Chris Johns wrote:

On 07/11/2017 17:09, Sebastian Huber wrote:

Commit: 7b00c2fac57740963d3c4d8bf1cf5eab3a31f22e
-  rtems_test_begin();
+  TEST_BEGIN();
-  rtems_test_end();
+  TEST_END();

I am now confused 

$ arm-rtems4.12-nm `find . -name \*.exe` | grep rtems_test_begin
001118dc T rtems_test_begin
0011907c T rtems_test_begin

and these are in libtests/math and libtests/capture01 which I suspect 
have been

missed with this change.


Ok, I will fix this. 


Now, all tests should use the TEST_BEGIN() and TEST_END() macros.

--
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

Re: [PATCH] cpukit: Add a Version API.

2017-11-06 Thread Sebastian Huber

On 07/11/17 06:46, Chris Johns wrote:

+/**
+ * @brief Returns the version's VC ident. This is specific to the VC being
+ * used.
+ *
+ * @retval int The version's VC ident.
+ */
+const char *rtems_version_vc_ident( void );


Normally, we don't have abbreviations in the RTEMS API functions. What 
about rtems_version_magic()?


--
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

Re: [PATCH] c-user: Use configuration option as section name

2017-11-06 Thread Sebastian Huber

On 07/11/17 01:56, Chris Johns wrote:

On 06/11/2017 22:56, Sebastian Huber wrote:

This makes it easier to find the documentation for a given configuration
option.

Can you please generate the HTML and PDF so we can review what this looks like?


You can review it here:

https://ftp.rtems.org/pub/rtems/people/sebh/c-user/html/index.html
https://ftp.rtems.org/pub/rtems/people/sebh/c-user/c-user.pdf



I have figured out indexes and I will sweep over the docs adding them soon.


Sounds good.


The
CONFIGURE_ then can be added as indexes which puts them a few of clicks away
from the top level so I am not sure about this change. I tend to like the
English and not the exact constants.

The current labels could do with a clean up. There is way more info in the
headings than needs to be there. The docs clearly show the levels in the HTML
format and while not as clear in the PDF is it OK. This means for example:

Instantiate Classic API Initialization Task Table =>
Instantiate Classic Initialization Task Table

Specifying Classic API Initialization Task Entry Point =>
   Classic Initialization Task Entry Point

Specify Maximum POSIX API Threads => Maximum POSIX Threads

Classic API Initialization Tasks Table Configuration =>
Classic Initialization Tasks Table Configuration


I (and some others using the manual) found it quite hard to quickly find 
the configuration options with these verbose section names.


My next step would be to sort them alphabetically in each group.

--
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