Added rtems specific version of _pthread_main_np()

This required adding rtems_id rtems_init_task_id to identify the
main task.
This commit is contained in:
Jennifer Averett 2012-10-05 09:34:09 -05:00
parent dbb054073a
commit 45a81cdc5e
3 changed files with 25 additions and 0 deletions

View File

@ -130,6 +130,7 @@ C_FILES += lib/libc/db/mpool/mpool.c
C_FILES += rtems/syslog.c
C_FILES += rtems/rtems-syslog-initialize.c
C_FILES += rtems/rtems-getprogname.c
C_FILES += rtems/rtems-uthread_main_np.c
# ping command sources
C_FILES += commands/sbin/ping/ping.c

View File

@ -0,0 +1,22 @@
/*
* RTEMS version of
*/
#include <rtems.h>
__weak_reference(_pthread_main_np, pthread_main_np);
/*
* Provide the equivalent to Solaris thr_main() function
*/
int
_pthread_main_np()
{
/* Created and set in rtems_bsd_initialize */
extern rtems_id rtems_init_task_id;
if ( rtems_init_task_id == rtems_task_self() )
return 1;
else
return 0;
}

View File

@ -69,12 +69,14 @@ pcpu0_init()
/* Initialize pcpu info of cpu-zero */
pcpu_init((char *)&FIXME_pcpu[0], 0, sizeof(struct pcpu));
}
rtems_id rtems_init_task_id;
rtems_status_code
rtems_bsd_initialize(void)
{
rtems_status_code sc = RTEMS_SUCCESSFUL;
rtems_init_task_id = rtems_task_self();
hz = (int) rtems_clock_get_ticks_per_second();
tick = 1000000 / hz;
maxusers = 1;