Address several issues from compiling examples

Compiling the code from examples "code-block:: c" along with public
includes and a bsp exposed a few issues amongst a lot of false
positives. Address some of these:

* Terminate struct declarations with ';'. Mainly for pedantic
  correctness.

* Show ptrdiff_t instead of size_t for the sbrk() prototype, matching
  the current argument type in rtems.

* Replace some occurrences of unsigned16 with uint16_t.

* Fix odd type declaration, "uint8_t char*" -> "char*".

* Use appropriate helper to get chain head instead of invalid access to
  nonexistent struct member.

* Remove several excess '\' escapes.

* Use RTEMS_SELF instead of undefined SELF.

* Use rtems_task instead of void for task functions.

* Add missing stack size parameter in task creation.

* Use rtems_interrupt_level instead of undefined rtems_interrupt.

* Correct return value format for rtems_object_id_get_api()
  rtems_object_id_get_index() (enum and uint16_t) and also fix
  corresponding print formatting.

* Correct return value documentation for rtems_object_id_get_class(),
  rtems_object_id_get_node() and rtems_object_id_get_index()
  int -> uint32_t.

* Use RTEMS_SUCCESSFUL instead of undefined RTEMS_STATUS_SUCCESSFUL and
  fix return value variable name in rate monotonic examples.

* Use RTEMS_TIMEOUT instead of undefined TIMEOUT and RTEMS_PERIOD_STATUS
  instead of undefined STATUS.

* Add missing fields to ftpd configuration.

* Correct parameter types in ftpd hook prototype,
  unsigned char * -> void *.

* Fix various code-block:: attributes, c -> makefile and c -> shell.

* Add missing parenthesis in socket buffer memory calculation example.

* Remove typedef in declaration of mq_attr since it is defiend without
  typedef in reality.

* Update siginfo_t declaration to match current reality.

* Update shell user command definition example to include mode, uid and
  gid.
This commit is contained in:
Martin Erik Werner
2019-09-03 01:48:28 +02:00
committed by Chris Johns
parent b836c43f19
commit 2e711f2b4b
20 changed files with 71 additions and 69 deletions

View File

@@ -149,7 +149,7 @@ to the control. Consider a user structure and chain control:
typedef struct foo
{
rtems_chain_node node;
uint8_t char* data;
char* data;
} foo;
rtems_chain_control chain;
@@ -192,7 +192,7 @@ placed on another chain:
rtems_chain_initialize_empty (out);
node = chain->first;
node = rtems_chain_head (chain);
while (!rtems_chain_is_tail (chain, node))
{
bar = (foo*) node;

View File

@@ -3869,7 +3869,7 @@ that the two systems cannot interfere in an undesirable way.
RTEMS_SCHEDULER_PRIORITY_SMP(work, CONFIGURE_MAXIMUM_PRIORITY + 1);
/* Configuration Step 3 - Scheduler Table */
#define CONFIGURE_SCHEDULER_TABLE_ENTRIES \\
#define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
RTEMS_SCHEDULER_TABLE_PRIORITY_SMP( \
io, \
rtems_build_name('I', 'O', ' ', ' ') \

View File

@@ -190,7 +190,7 @@ overrun.
rtems_cbs_server_id server_id
)
{
printk( "Budget overrun, fixing the task\\n" );
printk( "Budget overrun, fixing the task\n" );
return;
}
@@ -206,8 +206,8 @@ overrun.
params.budget = 4;
rtems_cbs_initialize();
rtems_cbs_create_server( &params, &overrun_handler, &server_id )
rtems_cbs_attach_thread( server_id, SELF );
rtems_cbs_create_server( &params, &overrun_handler, &server_id );
rtems_cbs_attach_thread( server_id, RTEMS_SELF );
rtems_rate_monotonic_create( argument, &rmid );
while ( 1 ) {

View File

@@ -158,7 +158,7 @@ INTERNAL_ERROR_THREAD_EXITTED (5)
.. code-block:: c
void task( rtems_arg arg )
rtems_task task( rtems_task_argument arg )
{
/* Classic API tasks must not return */
}
@@ -171,6 +171,7 @@ INTERNAL_ERROR_THREAD_EXITTED (5)
sc = rtems_task_create(
rtems_build_name('T', 'A', 'S', 'K'),
1,
RTEMS_MINIMUM_STACK_SIZE,
RTEMS_DEFAULT_MODES,
RTEMS_DEFAULT_ATTRIBUTES,
&task_id
@@ -258,7 +259,7 @@ INTERNAL_ERROR_THREAD_QUEUE_ENQUEUE_STICKY_FROM_BAD_STATE (29)
.. code-block:: c
void bad( rtems_id timer_id, void *arg )
rtems_timer_service_routine bad( rtems_id timer_id, void *arg )
{
rtems_id *sem_id;
@@ -268,7 +269,7 @@ INTERNAL_ERROR_THREAD_QUEUE_ENQUEUE_STICKY_FROM_BAD_STATE (29)
assert( 0 );
}
void fire_bad_timer( rtems_task_argument arg )
rtems_task fire_bad_timer( rtems_task_argument arg )
{
rtems_status_code sc;
rtems_id sem_id;

View File

@@ -348,7 +348,7 @@ NOTES:
void critical_section( void )
{
rtems_interrupt level;
rtems_interrupt_level level;
/*
* Please note that the rtems_interrupt_disable() is a macro. The
@@ -363,7 +363,7 @@ NOTES:
/* Critical section, maskable interrupts are disabled */
{
rtems_interrupt level2;
rtems_interrupt_level level2;
rtems_interrupt_disable( level2 );
@@ -503,7 +503,7 @@ NOTES:
void local_critical_section( void )
{
rtems_interrupt level;
rtems_interrupt_level level;
/*
* Please note that the rtems_interrupt_local_disable() is a macro.
@@ -521,7 +521,7 @@ NOTES:
*/
{
rtems_interrupt level2;
rtems_interrupt_level level2;
rtems_interrupt_local_disable( level2 );

View File

@@ -157,10 +157,10 @@ prototyped as follows:
.. code-block:: c
uint32_t rtems_object_id_get_api( rtems_id );
Objects_APIs rtems_object_id_get_api( rtems_id );
uint32_t rtems_object_id_get_class( rtems_id );
uint32_t rtems_object_id_get_node( rtems_id );
uint32_t rtems_object_id_get_index( rtems_id );
uint16_t rtems_object_id_get_index( rtems_id );
An object control block is a data structure defined by RTEMS which contains the
information necessary to manage a particular object type. For efficiency

View File

@@ -114,7 +114,7 @@ printing the values.
void printObjectId(rtems_id id)
{
printf(
"API=%d Class=%d Node=%d Index=%d\n",
"API=%d Class=%" PRIu32 " Node=%" PRIu32 " Index=%" PRIu16 "\n",
rtems_object_id_get_api(id),
rtems_object_id_get_class(id),
rtems_object_id_get_node(id),
@@ -157,13 +157,14 @@ parts and "pretty-printed."
void prettyPrintObjectId(rtems_id id)
{
int tmpAPI, tmpClass;
int tmpAPI;
uint32_t tmpClass;
tmpAPI = rtems_object_id_get_api(id),
tmpClass = rtems_object_id_get_class(id),
printf(
"API=%s Class=%s Node=%d Index=%d\n",
"API=%s Class=%s Node=%" PRIu32 " Index=%" PRIu16 "\n",
rtems_object_get_api_name(tmpAPI),
rtems_object_get_api_class_name(tmpAPI, tmpClass),
rtems_object_id_get_node(id),
@@ -373,8 +374,8 @@ OBJECT_ID_GET_CLASS - Obtain Class from Id
CALLING SEQUENCE:
.. code-block:: c
int rtems_object_id_get_class(
rtems_id id
uint32_t rtems_object_id_get_class(
rtems_id id
);
DIRECTIVE STATUS CODES:
@@ -403,8 +404,8 @@ OBJECT_ID_GET_NODE - Obtain Node from Id
CALLING SEQUENCE:
.. code-block:: c
int rtems_object_id_get_node(
rtems_id id
uint32_t rtems_object_id_get_node(
rtems_id id
);
DIRECTIVE STATUS CODES:
@@ -433,8 +434,8 @@ OBJECT_ID_GET_INDEX - Obtain Index from Id
CALLING SEQUENCE:
.. code-block:: c
int rtems_object_id_get_index(
rtems_id id
uint16_t rtems_object_id_get_index(
rtems_id id
);
DIRECTIVE STATUS CODES:

View File

@@ -522,8 +522,8 @@ executes every 100 clock ticks.
rtems_status_code status;
name = rtems_build_name( 'P', 'E', 'R', 'D' );
status = rtems_rate_monotonic_create( name, &period );
if ( status != RTEMS_STATUS_SUCCESSFUL ) {
printf( "rtems_monotonic_create failed with status of %d.\n", rc );
if ( status != RTEMS_SUCCESSFUL ) {
printf( "rtems_monotonic_create failed with status of %d.\n", status );
exit( 1 );
}
while ( 1 ) {
@@ -533,11 +533,11 @@ executes every 100 clock ticks.
}
/* missed period so delete period and SELF */
status = rtems_rate_monotonic_delete( period );
if ( status != RTEMS_STATUS_SUCCESSFUL ) {
if ( status != RTEMS_SUCCESSFUL ) {
printf( "rtems_rate_monotonic_delete failed with status of %d.\n", status );
exit( 1 );
}
status = rtems_task_delete( SELF ); /* should not return */
status = rtems_task_delete( RTEMS_SELF ); /* should not return */
printf( "rtems_task_delete returned with status of %d.\n", status );
exit( 1 );
}
@@ -568,21 +568,20 @@ ticks. The last thirty clock ticks are not used by this task.
{
rtems_name name_1, name_2;
rtems_id period_1, period_2;
rtems_status_code status;
name_1 = rtems_build_name( 'P', 'E', 'R', '1' );
name_2 = rtems_build_name( 'P', 'E', 'R', '2' );
(void ) rtems_rate_monotonic_create( name_1, &period_1 );
(void ) rtems_rate_monotonic_create( name_2, &period_2 );
while ( 1 ) {
if ( rtems_rate_monotonic_period( period_1, 100 ) == TIMEOUT )
if ( rtems_rate_monotonic_period( period_1, 100 ) == RTEMS_TIMEOUT )
break;
if ( rtems_rate_monotonic_period( period_2, 40 ) == TIMEOUT )
if ( rtems_rate_monotonic_period( period_2, 40 ) == RTEMS_TIMEOUT )
break;
/*
* Perform first set of actions between clock
* ticks 0 and 39 of every 100 ticks.
*/
if ( rtems_rate_monotonic_period( period_2, 30 ) == TIMEOUT )
if ( rtems_rate_monotonic_period( period_2, 30 ) == RTEMS_TIMEOUT )
break;
/*
* Perform second set of actions between clock 40 and 69
@@ -590,14 +589,14 @@ ticks. The last thirty clock ticks are not used by this task.
*
* Check to make sure we didn't miss the period_2 period.
*/
if ( rtems_rate_monotonic_period( period_2, STATUS ) == TIMEOUT )
if ( rtems_rate_monotonic_period( period_2, RTEMS_PERIOD_STATUS ) == RTEMS_TIMEOUT )
break;
(void) rtems_rate_monotonic_cancel( period_2 );
}
/* missed period so delete period and SELF */
(void ) rtems_rate_monotonic_delete( period_1 );
(void ) rtems_rate_monotonic_delete( period_2 );
(void ) task_delete( SELF );
(void ) rtems_task_delete( RTEMS_SELF );
}
The above task creates two rate monotonic periods as part of its

View File

@@ -1553,7 +1553,7 @@ EXAMPLE:
#include <rtems.h>
#include <assert.h>
void task( rtems_task_argument arg );
rtems_task task( rtems_task_argument arg );
void example( void )
{