[OpenBIOS] [PATCH] Introduce forth_init() for trampoline initialization

Andreas Färber andreas.faerber at web.de
Sat Nov 13 10:44:46 CET 2010


Am 10.11.2010 um 18:27 schrieb Blue Swirl:

> On Wed, Nov 10, 2010 at 10:52 AM, Mark Cave-Ayland
> <mark.cave-ayland at siriusit.co.uk> wrote:
>> Blue Swirl wrote:
>>
>>>> Are you sure it doesn't need to be initialized from anywhere  
>>>> else, like
>>>> load_dictionary() or forth_init(), for the initialization to take  
>>>> effect
>>>> before any of these?
>>>
>>> Yes, since all uses of trampoline call setup_trampoline() before  
>>> use.
>>> I also renamed 't' to trampoline2 to catch all uses of it.
>>
>> I think I prefer Andreas' approach but with a slight modification -  
>> change
>> the signature of init_trampoline() from:
>>
>> static void init_trampoline(void)
>>
>> to:
>>
>> static void init_trampoline(ucell *t)
>>
>> This enables the caller to pass in a pointer to the base of the  
>> trampoline
>> ucell array, and so should work correctly when compiled as part of  
>> both
>> bootstrap.c (host target) and the OpenBIOS output target.
>
> Yes, good idea. I still think that adding setup_trampoline() which
> just does the assignment to trampoline[1] would still be a small
> cleanup, but it can be added later.

Is anyone working on this or are you waiting for me to? I'm not sure I  
understand what exactly you want now...

Mark, do you mean we should go with Blue's initial forth_init()  
suggestion? Or do you just mean splitting init_trampoline(ucell* t)  
from Blue's setup_trampoline()?
Either way, where would we put a unified init_trampoline()? Into  
kernel/kernel.h as inline function?

Andreas



More information about the OpenBIOS mailing list