On 23/03/2020 13:50, jan.som...@dlr.de wrote:

-----Ursprüngliche Nachricht-----
Von: Sebastian Huber [mailto:sebastian.hu...@embedded-brains.de]
Gesendet: Montag, 23. März 2020 10:59
An: Sommer, Jan;devel@rtems.org
Betreff: Re: [PATCH v3 3/3] i386: Port to RTEMS

On 23/03/2020 09:06, Jan Sommer wrote:

@@ -4597,7 +4599,12 @@ iflib_device_register(device_t dev, void *sc,
if_shared_ctx_t sctx, if_ctx_t *ct
        /* Set up cpu set.  If it fails, use the set of all CPUs. */
        if (bus_get_cpus(dev, INTR_CPUS, sizeof(ctx->ifc_cpus), &ctx-
ifc_cpus) != 0) {
                device_printf(dev, "Unable to fetch CPU list\n");
+#ifndef __rtems__
                CPU_COPY(&all_cpus, &ctx->ifc_cpus);
+#else /* __rtems__ */
+               cpuset_t cpus = {all_cpus};
+               CPU_COPY(&cpus, &ctx->ifc_cpus);
+#endif /* __rtems__ */
        }
        MPASS(CPU_COUNT(&ctx->ifc_cpus) > 0);
What is the reason for this change?

For RTEMS the all_cpus variable has been replaced in freebsd/sys/sys/smp.h to " 
#define all_cpus 1U".
The additional variable is there because CPU_COPY requires an address.
Ok, problems like this are an indication that you try to use a feature which is not really supported. I would first try to understand what the purpose of the ifc_cpus is. Maybe this stuff could be disabled completely.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to