From 5d288bc6ee8f994a5675a54e266babf5be4c5cca Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 24 Oct 2013 08:55:46 +0200 Subject: [PATCH] Use compile-time constants for exactly one CPU --- Makefile | 1 - freebsd-to-rtems.py | 1 - freebsd/sys/sys/smp.h | 7 ++++ rtemsbsd/rtems/rtems-bsd-smp.c | 68 ---------------------------------- 4 files changed, 7 insertions(+), 70 deletions(-) delete mode 100644 rtemsbsd/rtems/rtems-bsd-smp.c diff --git a/Makefile b/Makefile index 9ccef2d5..6eff6a18 100644 --- a/Makefile +++ b/Makefile @@ -76,7 +76,6 @@ LIB_C_FILES += rtemsbsd/rtems/rtems-bsd-rwlock.c LIB_C_FILES += rtemsbsd/rtems/rtems-bsd-shell.c LIB_C_FILES += rtemsbsd/rtems/rtems-bsd-shell-netcmds.c LIB_C_FILES += rtemsbsd/rtems/rtems-bsd-signal.c -LIB_C_FILES += rtemsbsd/rtems/rtems-bsd-smp.c LIB_C_FILES += rtemsbsd/rtems/rtems-bsd-subr_param.c LIB_C_FILES += rtemsbsd/rtems/rtems-bsd-support.c LIB_C_FILES += rtemsbsd/rtems/rtems-bsd-sx.c diff --git a/freebsd-to-rtems.py b/freebsd-to-rtems.py index 20e7d1bb..121d7f09 100755 --- a/freebsd-to-rtems.py +++ b/freebsd-to-rtems.py @@ -633,7 +633,6 @@ rtems.addRTEMSSourceFiles( 'rtems/rtems-bsd-shell.c', 'rtems/rtems-bsd-shell-netcmds.c', 'rtems/rtems-bsd-signal.c', - 'rtems/rtems-bsd-smp.c', 'rtems/rtems-bsd-subr_param.c', 'rtems/rtems-bsd-support.c', 'rtems/rtems-bsd-sx.c', diff --git a/freebsd/sys/sys/smp.h b/freebsd/sys/sys/smp.h index 619eba81..9fc7cba1 100644 --- a/freebsd/sys/sys/smp.h +++ b/freebsd/sys/sys/smp.h @@ -77,12 +77,19 @@ extern cpumask_t hlt_cpus_mask; extern cpumask_t logical_cpus_mask; #endif /* SMP */ +#ifndef __rtems__ extern u_int mp_maxid; extern int mp_maxcpus; extern int mp_ncpus; extern volatile int smp_started; extern cpumask_t all_cpus; +#else /* __rtems__ */ +#define mp_maxid 1U +#define mp_maxcpus 1 +#define mp_ncpus 1 +#define all_cpus 1U +#endif /* __rtems__ */ /* * Macro allowing us to determine whether a CPU is absent at any given diff --git a/rtemsbsd/rtems/rtems-bsd-smp.c b/rtemsbsd/rtems/rtems-bsd-smp.c deleted file mode 100644 index f6cbfc8c..00000000 --- a/rtemsbsd/rtems/rtems-bsd-smp.c +++ /dev/null @@ -1,68 +0,0 @@ -/** - * @file - * - * @ingroup rtems_bsd_rtems - * - * @brief TODO. - */ - -/* - * COPYRIGHT (c) 2012. - * On-Line Applications Research Corporation (OAR). - * All rights reserved. - * - * 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 - -#include - -#include -#include -#include - -int mp_ncpus; -int mp_maxcpus; -cpumask_t all_cpus; -u_int mp_maxid; - -static void smp_configure(void *dummy) -{ - int i; - - all_cpus = 0x0; - -#if defined(RTEMS_SMP) - mp_ncpus = rtems_smp_get_number_of_processors(); - mp_maxcpus = rtems_configuration_smp_maximum_processors; -#else - mp_ncpus = 1; - mp_maxcpus = 1; -#endif - - mp_maxid = mp_maxcpus; - for(i=0; i< mp_ncpus; i++) - all_cpus |= 0x1 << i; -} - -SYSCTL_NODE(_kern, OID_AUTO, smp, CTLFLAG_RD, smp_configure, "Kernel SMP");