diff options
author | Jennifer Averett <jennifer.averett@oarcorp.com> | 2012-10-05 09:34:09 -0500 |
---|---|---|
committer | Jennifer Averett <jennifer.averett@oarcorp.com> | 2012-10-05 09:34:09 -0500 |
commit | 45a81cdc5e8c9ed35a8aa706e0ea360d357a574b (patch) | |
tree | 041e3fddefb475a9b960904afd966961fd41b2c7 | |
parent | port_before.h: Added an include of endian.h to resolve __htons calls. (diff) | |
download | rtems-libbsd-45a81cdc5e8c9ed35a8aa706e0ea360d357a574b.tar.bz2 |
Added rtems specific version of _pthread_main_np()
This required adding rtems_id rtems_init_task_id to identify the
main task.
-rw-r--r-- | freebsd-userspace/Makefile | 1 | ||||
-rw-r--r-- | freebsd-userspace/rtems/rtems-uthread_main_np.c | 22 | ||||
-rw-r--r-- | rtemsbsd/src/rtems-bsd-init.c | 2 |
3 files changed, 25 insertions, 0 deletions
diff --git a/freebsd-userspace/Makefile b/freebsd-userspace/Makefile index 5144c5cb..f9dc2c3a 100644 --- a/freebsd-userspace/Makefile +++ b/freebsd-userspace/Makefile @@ -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 diff --git a/freebsd-userspace/rtems/rtems-uthread_main_np.c b/freebsd-userspace/rtems/rtems-uthread_main_np.c new file mode 100644 index 00000000..fa289007 --- /dev/null +++ b/freebsd-userspace/rtems/rtems-uthread_main_np.c @@ -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; +} diff --git a/rtemsbsd/src/rtems-bsd-init.c b/rtemsbsd/src/rtems-bsd-init.c index c8500df7..84dc8d8f 100644 --- a/rtemsbsd/src/rtems-bsd-init.c +++ b/rtemsbsd/src/rtems-bsd-init.c @@ -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; |