[rtems-libbsd commit] Use thread name support

Sebastian Huber sebh at rtems.org
Fri Jan 13 08:21:28 UTC 2017


Module:    rtems-libbsd
Branch:    master
Commit:    172f2acb2b0ad183cb2360843e67aa86ca26a210
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=172f2acb2b0ad183cb2360843e67aa86ca26a210

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Thu Jan 12 14:56:23 2017 +0100

Use thread name support

Update #2858.

---

 freebsd/sys/kern/kern_intr.c                       |   6 ++
 freebsd/sys/sys/proc.h                             |   1 -
 libbsd.py                                          |   1 -
 libbsd_waf.py                                      |   1 -
 rtemsbsd/include/rtems/netcmds-config.h            |   2 -
 rtemsbsd/rtems/rtems-bsd-shell.c                   | 117 ---------------------
 rtemsbsd/rtems/rtems-kernel-thread.c               |   4 +-
 .../include/rtems/bsd/test/default-network-init.h  |   1 -
 testsuite/media01/test_main.c                      |   1 -
 testsuite/rcconf02/test_main.c                     |   1 -
 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 501b453..4f6f641 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 03aae8f..81d96de 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 dba932a..53461fa 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 0d7f863..899b8e8 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 53ba255..9a2a286 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 b54bb79..0000000
--- 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 at 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 b5071a5..2852fcd 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 db07d2a..9cdbff5 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 4dd4a98..609b40b 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 43a74a8..0b7c6d1 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 734ddb9..d3bb5a5 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




More information about the vc mailing list