mirror of
https://git.rtems.org/rtems-docs/
synced 2025-10-19 18:26:59 +08:00
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:

committed by
Chris Johns

parent
b836c43f19
commit
2e711f2b4b
@@ -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;
|
||||
|
@@ -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', ' ', ' ') \
|
||||
|
@@ -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 ) {
|
||||
|
@@ -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;
|
||||
|
@@ -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 );
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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:
|
||||
|
@@ -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
|
||||
|
@@ -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 )
|
||||
{
|
||||
|
Reference in New Issue
Block a user