diff options
author | Martin Erik Werner <martinerikwerner@gmail.com> | 2019-09-03 01:48:28 +0200 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2019-09-03 09:48:35 +1000 |
commit | 2e711f2b4b59398a18d21ea34bdb064c459fdd45 (patch) | |
tree | e79c0d7ee12a966fdd93d717ec573657ea1e55ce /c-user | |
parent | Update docs for log mode change and JSON reporting (diff) | |
download | rtems-docs-2e711f2b4b59398a18d21ea34bdb064c459fdd45.tar.bz2 |
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.
Diffstat (limited to '')
-rw-r--r-- | c-user/chains.rst | 4 | ||||
-rw-r--r-- | c-user/configuring_a_system.rst | 2 | ||||
-rw-r--r-- | c-user/constant_bandwidth_server.rst | 6 | ||||
-rw-r--r-- | c-user/fatal_error.rst | 7 | ||||
-rw-r--r-- | c-user/interrupt_manager.rst | 8 | ||||
-rw-r--r-- | c-user/key_concepts.rst | 4 | ||||
-rw-r--r-- | c-user/object_services.rst | 19 | ||||
-rw-r--r-- | c-user/rate_monotonic_manager.rst | 19 | ||||
-rw-r--r-- | c-user/task_manager.rst | 2 |
9 files changed, 36 insertions, 35 deletions
diff --git a/c-user/chains.rst b/c-user/chains.rst index c47d318..0dce1d9 100644 --- a/c-user/chains.rst +++ b/c-user/chains.rst @@ -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; diff --git a/c-user/configuring_a_system.rst b/c-user/configuring_a_system.rst index c7a8808..85c4e0f 100644 --- a/c-user/configuring_a_system.rst +++ b/c-user/configuring_a_system.rst @@ -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', ' ', ' ') \ diff --git a/c-user/constant_bandwidth_server.rst b/c-user/constant_bandwidth_server.rst index e1ab20e..eddc89a 100644 --- a/c-user/constant_bandwidth_server.rst +++ b/c-user/constant_bandwidth_server.rst @@ -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( ¶ms, &overrun_handler, &server_id ) - rtems_cbs_attach_thread( server_id, SELF ); + rtems_cbs_create_server( ¶ms, &overrun_handler, &server_id ); + rtems_cbs_attach_thread( server_id, RTEMS_SELF ); rtems_rate_monotonic_create( argument, &rmid ); while ( 1 ) { diff --git a/c-user/fatal_error.rst b/c-user/fatal_error.rst index 82fd82a..f785647 100644 --- a/c-user/fatal_error.rst +++ b/c-user/fatal_error.rst @@ -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; diff --git a/c-user/interrupt_manager.rst b/c-user/interrupt_manager.rst index 5352781..5eb7270 100644 --- a/c-user/interrupt_manager.rst +++ b/c-user/interrupt_manager.rst @@ -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 ); diff --git a/c-user/key_concepts.rst b/c-user/key_concepts.rst index c8f5e87..6bc1c3e 100644 --- a/c-user/key_concepts.rst +++ b/c-user/key_concepts.rst @@ -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 diff --git a/c-user/object_services.rst b/c-user/object_services.rst index 2524d52..544ff02 100644 --- a/c-user/object_services.rst +++ b/c-user/object_services.rst @@ -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: diff --git a/c-user/rate_monotonic_manager.rst b/c-user/rate_monotonic_manager.rst index 927042b..1cc55fe 100644 --- a/c-user/rate_monotonic_manager.rst +++ b/c-user/rate_monotonic_manager.rst @@ -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 diff --git a/c-user/task_manager.rst b/c-user/task_manager.rst index 45027f8..fdbf41b 100644 --- a/c-user/task_manager.rst +++ b/c-user/task_manager.rst @@ -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 ) { |