Passing Parameter(s) to tasks/threads
Smith, Gene
gene.smith at siemens.com
Fri Feb 11 00:42:42 UTC 2005
I need to pass from 0 to 10 integer parameters to my tasks when they are
started with rtems_task_start(). The third argument to
rtems_task_start() is a integer "argument" value. The manual states
"this argument can be a single value or used as an index into an array
of parameter blocks." I assume this means I will have to modify my
pre-existing vxworks tasks that have more than one integer parameter.
For example, I have a task prototype with 3 parameters like this:
void intHandlerTask( int sema, VOIDFUNCPTR func, int parameter );
I think it would have to be changed to have just one parameter, probably
the address of a array of 3 integers containing the 3 actual parameters
for correct use by rtems, e.g.,
void intHandlerTask( int** parameter_array )
{
int sema = parameter_array[0];
VOIDFUNCPTR func = parameter_array[1];
int parameter = parameter_array[2];
:
:
}
Luckly most of my preexisting tasks have just 1 parameter which is
perfectly compatible as-is with rtems, I think.
Does this sound reasonable?
Tks,
-gene
More information about the users
mailing list