[OpenBIOS] OpenSolaris starts to live on SPARC64

Mark Cave-Ayland mark.cave-ayland at siriusit.co.uk
Sat Apr 3 13:12:43 CEST 2010


Blue Swirl wrote:

>>  Hmmmm that's strange. Perhaps since the CIF argument array is passed in by
>> the client then we do need to respect pb->nrets since the client has
>> allocated the appropriate memory? What happens if you simply add the missing
>> "0" from r732 in forth/system/ciface.fs to r731 and leave
>> libopenbios/client.c as it was?
> 
> I took the other approach and this seems to work:
> 
> diff --git a/forth/system/ciface.fs b/forth/system/ciface.fs
> index aada422..b2035bc 100644
> --- a/forth/system/ciface.fs
> +++ b/forth/system/ciface.fs
> @@ -341,5 +341,4 @@ device-end
>  : client-call-iface ( [args] name len -- [args] -1 | [rets] 0 )
>    ciface-ph find-method 0= if -1 exit then
>    execute
> -  0
>  ;

AFAICT that really should not work because line 297 in 
libopenbios/client.c will drop the top-most stack argument for any 
successful call.

I wonder if it's calling the special code for "call-method" and 
"interpret" instead? Are you able to send me a DEBUG_CIF output for your 
Linux kernel boot against r732 or point me towards how you are booting 
the kernel so I can try myself?


Many thanks,

Mark.

--
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063

Sirius Labs: http://www.siriusit.co.uk/labs



More information about the OpenBIOS mailing list