summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-01-12 14:56:23 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-01-13 09:20:43 +0100
commit172f2acb2b0ad183cb2360843e67aa86ca26a210 (patch)
tree00ed4bc20f56a2706c9275f2eaed693f351eb614
parentROUTE(8): Disable routing socket timeout support (diff)
downloadrtems-libbsd-172f2acb2b0ad183cb2360843e67aa86ca26a210.tar.bz2
Use thread name support
Update #2858.
-rw-r--r--freebsd/sys/kern/kern_intr.c6
-rw-r--r--freebsd/sys/sys/proc.h1
-rwxr-xr-xlibbsd.py1
-rw-r--r--libbsd_waf.py1
-rw-r--r--rtemsbsd/include/rtems/netcmds-config.h2
-rw-r--r--rtemsbsd/rtems/rtems-bsd-shell.c117
-rw-r--r--rtemsbsd/rtems/rtems-kernel-thread.c4
-rw-r--r--testsuite/include/rtems/bsd/test/default-network-init.h1
-rw-r--r--testsuite/media01/test_main.c1
-rw-r--r--testsuite/rcconf02/test_main.c1
-rw-r--r--testsuite/thread01/test_main.c2
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 */
diff --git a/libbsd.py b/libbsd.py
index dba932ab..53461fac 100755
--- a/libbsd.py
+++ b/libbsd.py
@@ -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