diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-01-12 14:56:23 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-01-13 09:20:43 +0100 |
commit | 172f2acb2b0ad183cb2360843e67aa86ca26a210 (patch) | |
tree | 00ed4bc20f56a2706c9275f2eaed693f351eb614 | |
parent | ROUTE(8): Disable routing socket timeout support (diff) | |
download | rtems-libbsd-172f2acb2b0ad183cb2360843e67aa86ca26a210.tar.bz2 |
Use thread name support
Update #2858.
-rw-r--r-- | freebsd/sys/kern/kern_intr.c | 6 | ||||
-rw-r--r-- | freebsd/sys/sys/proc.h | 1 | ||||
-rwxr-xr-x | libbsd.py | 1 | ||||
-rw-r--r-- | libbsd_waf.py | 1 | ||||
-rw-r--r-- | rtemsbsd/include/rtems/netcmds-config.h | 2 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-bsd-shell.c | 117 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-kernel-thread.c | 4 | ||||
-rw-r--r-- | testsuite/include/rtems/bsd/test/default-network-init.h | 1 | ||||
-rw-r--r-- | testsuite/media01/test_main.c | 1 | ||||
-rw-r--r-- | testsuite/rcconf02/test_main.c | 1 | ||||
-rw-r--r-- | testsuite/thread01/test_main.c | 2 |
11 files changed, 9 insertions, 128 deletions
diff --git a/freebsd/sys/kern/kern_intr.c b/freebsd/sys/kern/kern_intr.c index 501b453e..4f6f6414 100644 --- a/freebsd/sys/kern/kern_intr.c +++ b/freebsd/sys/kern/kern_intr.c @@ -66,6 +66,8 @@ __FBSDID("$FreeBSD$"); #endif #include <machine/rtems-bsd-thread.h> #define RTEMSBSD_SWI_WAKEUP_EVENT RTEMS_EVENT_31 + #undef ticks + #include <rtems/score/threadimpl.h> #endif /* __rtems__ */ #include <machine/stdarg.h> #ifdef DDB @@ -195,7 +197,11 @@ ithread_update(struct intr_thread *ithd) pri = TAILQ_FIRST(&ie->ie_handlers)->ih_pri; /* Update name and priority. */ +#ifndef __rtems__ strlcpy(td->td_name, ie->ie_fullname, sizeof(td->td_name)); +#else /* __rtems__ */ + _Thread_Set_name(td->td_thread, ie->ie_fullname); +#endif /* __rtems__ */ #ifdef KTR sched_clear_tdname(td); #endif diff --git a/freebsd/sys/sys/proc.h b/freebsd/sys/sys/proc.h index 03aae8f8..81d96de0 100644 --- a/freebsd/sys/sys/proc.h +++ b/freebsd/sys/sys/proc.h @@ -223,7 +223,6 @@ struct thread { #ifdef __rtems__ Thread_Control *td_thread; struct rtems_bsd_program_control *td_prog_ctrl; - char td_name[32]; #endif /* __rtems__ */ #ifndef __rtems__ struct mtx *volatile td_lock; /* replaces sched lock */ @@ -69,7 +69,6 @@ def rtems(mm): 'rtems/rtems-bsd-rc-conf-net.c', 'rtems/rtems-bsd-rc-conf-pf.c', 'rtems/rtems-bsd-rc-conf.c', - 'rtems/rtems-bsd-shell.c', 'rtems/rtems-bsd-shell-arp.c', 'rtems/rtems-bsd-shell-ifconfig.c', 'rtems/rtems-bsd-shell-netstat.c', diff --git a/libbsd_waf.py b/libbsd_waf.py index 0d7f8636..899b8e80 100644 --- a/libbsd_waf.py +++ b/libbsd_waf.py @@ -1110,7 +1110,6 @@ def build(bld): 'rtemsbsd/rtems/rtems-bsd-shell-sysctl.c', 'rtemsbsd/rtems/rtems-bsd-shell-tcpdump.c', 'rtemsbsd/rtems/rtems-bsd-shell-vmstat.c', - 'rtemsbsd/rtems/rtems-bsd-shell.c', 'rtemsbsd/rtems/rtems-bsd-syscall-api.c', 'rtemsbsd/rtems/rtems-kernel-assert.c', 'rtemsbsd/rtems/rtems-kernel-autoconf.c', diff --git a/rtemsbsd/include/rtems/netcmds-config.h b/rtemsbsd/include/rtems/netcmds-config.h index 53ba255e..9a2a2861 100644 --- a/rtemsbsd/include/rtems/netcmds-config.h +++ b/rtemsbsd/include/rtems/netcmds-config.h @@ -24,8 +24,6 @@ extern "C" { extern rtems_shell_cmd_t rtems_shell_ARP_Command; -extern rtems_shell_cmd_t rtems_shell_BSD_Command; - extern rtems_shell_cmd_t rtems_shell_PFCTL_Command; extern rtems_shell_cmd_t rtems_shell_PING_Command; diff --git a/rtemsbsd/rtems/rtems-bsd-shell.c b/rtemsbsd/rtems/rtems-bsd-shell.c deleted file mode 100644 index b54bb797..00000000 --- a/rtemsbsd/rtems/rtems-bsd-shell.c +++ /dev/null @@ -1,117 +0,0 @@ -/** - * @file - * - * @ingroup rtems_bsd_rtems - * - * @brief TODO. - */ - -/* - * Copyright (c) 2009-2014 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Dornierstr. 4 - * 82178 Puchheim - * Germany - * <rtems@embedded-brains.de> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <machine/rtems-bsd-kernel-space.h> -#include <machine/rtems-bsd-thread.h> -#include <machine/rtems-bsd-support.h> - -#include <rtems/bsd/sys/param.h> -#include <sys/types.h> -#include <sys/systm.h> -#include <sys/proc.h> - -#include <inttypes.h> - -#include <rtems/netcmds-config.h> -#include <rtems/score/threadimpl.h> - -static void -rtems_bsd_dump_thread(Thread_Control *thread) -{ - const struct thread *td = rtems_bsd_get_thread(thread); - - if (td != NULL) { - char buf[5]; - const char *name = td->td_name; - - if (name == NULL || name[0] == '\0') { - rtems_object_get_name(thread->Object.id, sizeof(buf), &buf[0]); - name = &buf[0]; - } - - fprintf( - stdout, - " 0x%08" PRIx32 " | %8" PRIu32 " | %s\n", - thread->Object.id, - _Thread_Get_priority(thread), - name - ); - } -} - -static void -rtems_bsd_dump_threads(void) -{ - fprintf( - stdout, - "-------------------------------------------------------------------------------\n" - " BSD THREADS\n" - "------------+----------+-------------------------------------------------------\n" - " ID | PRIORITY | NAME\n" - "------------+----------+-------------------------------------------------------\n" - ); - - rtems_iterate_over_all_threads(rtems_bsd_dump_thread); - - fprintf( - stdout, - "------------+----------+-------------------------------------------------------\n" - ); -} - -static const char rtems_bsd_usage[] = "bsd"; - -#define CMP(s) all || strcasecmp(argv [1], s) == 0 - -static int -rtems_bsd_info(int argc, char **argv) -{ - rtems_bsd_dump_threads(); - - return 0; -} - -rtems_shell_cmd_t rtems_shell_BSD_Command = { - .name = "bsd", - .usage = &rtems_bsd_usage[0], - .topic = "bsp", - .command = rtems_bsd_info, - .alias = NULL, - .next = NULL -}; diff --git a/rtemsbsd/rtems/rtems-kernel-thread.c b/rtemsbsd/rtems/rtems-kernel-thread.c index b5071a53..2852fcd6 100644 --- a/rtemsbsd/rtems/rtems-kernel-thread.c +++ b/rtemsbsd/rtems/rtems-kernel-thread.c @@ -233,7 +233,7 @@ rtems_bsd_thread_start(struct thread **td_ptr, void (*func)(void *), void *arg, rtems_status_code sc; rtems_id task_id; struct thread *td; - char name[sizeof(td->td_name)]; + char name[32]; BSD_ASSERT(pages >= 0); @@ -256,7 +256,7 @@ rtems_bsd_thread_start(struct thread **td_ptr, void (*func)(void *), void *arg, td = rtems_bsd_get_thread(thread); BSD_ASSERT(td != NULL); - memcpy(td->td_name, name, sizeof(name)); + _Thread_Set_name(thread, name); if (rtems_bsd_thread_ready_to_start) { sc = rtems_task_start(task_id, (rtems_task_entry) func, diff --git a/testsuite/include/rtems/bsd/test/default-network-init.h b/testsuite/include/rtems/bsd/test/default-network-init.h index db07d2aa..9cdbff5a 100644 --- a/testsuite/include/rtems/bsd/test/default-network-init.h +++ b/testsuite/include/rtems/bsd/test/default-network-init.h @@ -358,7 +358,6 @@ Init(rtems_task_argument arg) #define CONFIGURE_SHELL_USER_COMMANDS \ &bsp_interrupt_shell_command, \ &rtems_shell_ARP_Command, \ - &rtems_shell_BSD_Command, \ &rtems_shell_HOSTNAME_Command, \ &rtems_shell_PING_Command, \ &rtems_shell_ROUTE_Command, \ diff --git a/testsuite/media01/test_main.c b/testsuite/media01/test_main.c index 4dd4a98c..609b40b3 100644 --- a/testsuite/media01/test_main.c +++ b/testsuite/media01/test_main.c @@ -200,7 +200,6 @@ early_initialization(void) #define CONFIGURE_SHELL_USER_COMMANDS \ &bsp_interrupt_shell_command, \ &rtems_shell_ARP_Command, \ - &rtems_shell_BSD_Command, \ &rtems_shell_HOSTNAME_Command, \ &rtems_shell_PING_Command, \ &rtems_shell_ROUTE_Command, \ diff --git a/testsuite/rcconf02/test_main.c b/testsuite/rcconf02/test_main.c index 43a74a86..0b7c6d17 100644 --- a/testsuite/rcconf02/test_main.c +++ b/testsuite/rcconf02/test_main.c @@ -233,7 +233,6 @@ test_main(void) #define CONFIGURE_SHELL_USER_COMMANDS \ &bsp_interrupt_shell_command, \ - &rtems_shell_BSD_Command, \ &rtems_shell_HOSTNAME_Command, \ &rtems_shell_PING_Command, \ &rtems_shell_ROUTE_Command, \ diff --git a/testsuite/thread01/test_main.c b/testsuite/thread01/test_main.c index 734ddb90..d3bb5a5c 100644 --- a/testsuite/thread01/test_main.c +++ b/testsuite/thread01/test_main.c @@ -74,7 +74,7 @@ test_curthread(const char *name) assert(td_0 != NULL); assert(td_0 == td_1); assert(td_0 == td_2); - assert(strcmp(&td_0->td_name[0], name) == 0); + assert(strcmp(td_0->td_thread->Join_queue.Queue.name, name) == 0); } static void |