On 07/03/2022 19:19, Joel Sherrill wrote:


On Mon, Mar 7, 2022 at 11:54 AM Sebastian Huber <sebastian.hu...@embedded-brains.de <mailto:sebastian.hu...@embedded-brains.de>> wrote:

    On 07/03/2022 17:48, Joel Sherrill wrote:
     > This appears to be because
     > rtems_configuration_get_user_multiprocessing_table() always returns a
     > non-NULL value when RTEMS_MULTIPROCESSING is defined. This must
    be a change
     > versus previous behavior.
     >
     > Ryan and I noticed that the specific cases cited here appeared to be
     > wrapped in ifdef RTEMS_MULTIPROCESSING so didn't need to worry
    about it.
     > But something has changed that impacts public facing behavior.

    I think this is the related ticket:

    https://devel.rtems.org/ticket/3735
    <https://devel.rtems.org/ticket/3735>


OK. But apparently this was used to tell the difference between a
single node system in MP configuration and a node within an
MP configuration.  My grep shows some uses are really dereferencing
the table but others like the one in amba.h:153 to define the clock
index looks wrong. THere is similar code in leon.h:

#if defined(RTEMS_MULTIPROCESSING)
   #define LEON3_CLOCK_INDEX \
   (rtems_configuration_get_user_multiprocessing_table() ? LEON3_Cpu_Index : 0)


#else
   #define LEON3_CLOCK_INDEX 0
#endif

That's the type of pattern that needs addressing. That test is
asking in multiprocessing is configured in the application not
in the build.

The rtems_configuration_get_user_multiprocessing_table() ? X : Y expressions can be simplified to X.

This change needs to be looked at (the comment in the file header makes no sense after this change):

commit 7f3c6cee09ee44b627b11de34248aba485c789b3
Author: Joel Sherrill <joel.sherr...@oarcorp.com>
Date:   Tue Dec 4 22:20:55 2007 +0000

    2007-12-04      Joel Sherrill <joel.sherr...@oarcorp.com>

* amba/amba.c, clock/ckinit.c, console/console.c, include/bsp.h, startup/bspstart.c, timer/timer.c: Move interrupt_stack_size field from CPU Table to Configuration Table. Eliminate CPU Table from all
            ports. Delete references to CPU Table in all forms.

diff --git a/c/src/lib/libbsp/sparc/leon3/timer/timer.c b/c/src/lib/libbsp/sparc/leon3/timer/timer.c
index 9d6f89a593..2c1127a30a 100644
--- a/c/src/lib/libbsp/sparc/leon3/timer/timer.c
+++ b/c/src/lib/libbsp/sparc/leon3/timer/timer.c
@@ -22,12 +22,13 @@

 #include <bsp.h>

-extern rtems_configuration_table Configuration;
-
-#define LEON3_TIMER_INDEX \
-  (Configuration.User_multiprocessing_table ?  \
-         (Configuration.User_multiprocessing_table)->maximum_nodes + \
-         (Configuration.User_multiprocessing_table)->node - 1 : 1)
+#if defined(RTEMS_MULTIPROCESSING)
+  #define LEON3_TIMER_INDEX \
+      (rtems_configuration_get_user_multiprocessing_table() ? : \
+ (rtems_configuration_get_user_multiprocessing_table()->node) - 1 : 1)
+#else
+  #define LEON3_TIMER_INDEX 0
+#endif

 rtems_boolean Timer_driver_Find_average_overhead;




--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to