Hi all,
I have a simple question concerning the Xenomai native API:
According to the API documentation, rt_task_self returns the
address of the caller's task descriptor.
I have now written the following (simple application):
---------- START ----------
#include <stdio.h>
#include <sys/mman.h>
#include <native/task.h>
RT_TASK task_desc;
void mytask(void *cookie)
{
RT_TASK *tsk = rt_task_self();
printf("rt_task_self %p\n"
"task_desc %p\n", tsk, &task_desc);
}
int main(void)
{
mlockall(MCL_CURRENT|MCL_FUTURE);
rt_task_create(&task_desc, "mytaskname", 0, 80, T_JOINABLE);
rt_task_start(&task_desc, &mytask, NULL);
rt_task_join(&task_desc);
return 0;
}
------------ END -----------
I expect now that rt_task_self() returns exactly the address of the task_desc.
However, a different address is returned.
The output of the application from above is:
rt_task_self 0x804a050
task_desc 0x8049878
How are those addresses related - how can I find out the descriptor address
used for rt_task_create() at runtime?
Background of the question:
I want to write an application that uses a couple of similar tasks.
I have to store some task-specific information (internal states...).
Now I am looking for a simple way to get this information at runtime from my
task
by calling rt_task_self() (or something similar) to use this address to reach my
additional information.
Thanks for any idea on this.
Regards
Mathias
--
Mathias Koehrer
[EMAIL PROTECTED]
Viel oder wenig? Schnell oder langsam? Unbegrenzt surfen + telefonieren
ohne Zeit- und Volumenbegrenzung? DAS TOP ANGEBOT JETZT bei Arcor: günstig
und schnell mit DSL - das All-Inclusive-Paket für clevere Doppel-Sparer,
nur 44,85 inkl. DSL- und ISDN-Grundgebühr!
http://www.arcor.de/rd/emf-dsl-2
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help