Genode 16.08 nova.iso rebooting on real Core 2 Duo after relocating modules
Christian Helmuth
christian.helmuth at ...1...
Fri Sep 23 10:47:46 CEST 2016
Hello Paul,
I like the approach of narrowing the issue with 'while(1);' and
suggest to go further (see below).
On Thu, Sep 22, 2016 at 10:02:51PM -0400, Paul Dufresne wrote:
> /****
> extern "C" INIT REGPARM (1)
> void init (mword mbi)
> {
>
> // Setup 0-page and 1-page
> memset (reinterpret_cast<void *>(&PAGE_0), 0, PAGE_SIZE);
> memset (reinterpret_cast<void *>(&PAGE_1), ~0u, PAGE_SIZE);
>
> // Console::print ("paul1");
> for (void (**func)() = &CTORS_G; func != &CTORS_E; (*func++)()) ;
> while(1);
> ****/
I'd move the 'while(1);' into the for loop like follows.
enum { STOP_AT = 0U };
unsigned i = 0;
for (void (**func)() = &CTORS_C; func != &CTORS_G; ) {
if (i == STOP_AT) while (1) ; ;
(*func++)();
++i;
}
In my case the ctors table has only 2 entries.
Greets
--
Christian Helmuth
Genode Labs
https://www.genode-labs.com/ · https://genode.org/
https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
More information about the users
mailing list