[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