Using this patch stacked on Steven Noonan's I was able to make BootX from Mac OS X 10.4 load XNU successfully in qemu-system-ppc.
Unfortunately, most of this patch is nothing but a mere hack to find out what we really need to get this working.
Also I didn't manage to get anything but 10.4 running. Other versions broke in the partition table interpretation.
I would not feel good taking the patch as is, because it would be better to implement the correct Forth magic to make the real callbacks work. Here is what I found to be broken:
- unselect-dev is missing - local variables don't work ({ ... }) - I ran into an endless loop, getting isi and dsi faults on the same 2 addresses all the time
Also, Qemu's only usable Desktop PPC target is a G3 Beige which is only supported up to 10.2.8 IIRC. So even getting the bootloader running for 10.4 didn't exactly buy me much.
Don't apply the patch as is! It'd be great to see someone build on this! --- arch/ppc/qemu/ofmem.c | 4 ++-- modules/client.c | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/arch/ppc/qemu/ofmem.c b/arch/ppc/qemu/ofmem.c index a1a8fb1..32642e2 100644 --- a/arch/ppc/qemu/ofmem.c +++ b/arch/ppc/qemu/ofmem.c @@ -716,8 +716,8 @@ hash_page_32( ulong ea, ulong phys, int mode )
/* out of slots, just evict one */ if( !found ) { - i = next_grab_slot + 1; - next_grab_slot = (next_grab_slot + 1) % 8; + i = next_grab_slot + 3; + next_grab_slot = (next_grab_slot + 3) % 8; } i--; upte[i*2] = cmp; diff --git a/modules/client.c b/modules/client.c index a2e8405..a8c89ff 100644 --- a/modules/client.c +++ b/modules/client.c @@ -49,6 +49,46 @@ handle_calls( prom_args_t *pb ) pb->nargs, pb->nret); #endif
+#if 1 + if (!strcmp(pb->service, "interpret")) + { + char *ns; + + ns = strstr((char*)pb->args[0], "{ ; dpth }"); + if (ns) return 0; + + ns = strstr((char*)pb->args[0], "dev /chosen "); + if (ns) memcpy(ns, " " /chosen"", 11); + } + else if (!strcmp(pb->service, "call-method")) + { + if (!strncmp((char*)pb->args[0], "slw_init_keymap", 15)) { + + char *a = (char*)malloc(20); + memset(a, 0x00, 20); + pb->args[4] = (uint32_t)a; + pb->args[3] = 0; + + return 0; + } + if (!strncmp((char*)pb->args[0], "slw_emit", strlen("slw_emit"))) { + PUSH( (char)pb->args[2] ); + fword("emit"); + + return 0; + } + if (!strncmp((char*)pb->args[0], "slw_cr", strlen("slw_cr"))) { + PUSH( '\n' ); + fword("emit"); + return 0; + } + if (!strncmp((char*)pb->args[0], "slw_update_keymap", strlen("slw_update_keymap"))) return 0; + if (!strncmp((char*)pb->args[0], "slw_set_output_level", strlen("slw_set_output_level"))) return 0; + if (!strncmp((char*)pb->args[0], "slw_spin_init", strlen("slw_spin_init"))) return 0; + if (!strncmp((char*)pb->args[0], "slw_spin", strlen("slw_spin"))) return 0; + } +#endif + for( i=pb->nargs-1; i>=0; i-- ) PUSH( pb->args[i] );
On Thu, Jul 30, 2009 at 8:00 PM, Alexander Grafagraf@suse.de wrote:
Using this patch stacked on Steven Noonan's I was able to make BootX from Mac OS X 10.4 load XNU successfully in qemu-system-ppc.
Unfortunately, most of this patch is nothing but a mere hack to find out what we really need to get this working.
Also I didn't manage to get anything but 10.4 running. Other versions broke in the partition table interpretation.
I would not feel good taking the patch as is, because it would be better to implement the correct Forth magic to make the real callbacks work. Here is what I found to be broken:
- unselect-dev is missing - local variables don't work ({ ... }) - I ran into an endless loop, getting isi and dsi faults on the same 2 addresses all the time
Also, Qemu's only usable Desktop PPC target is a G3 Beige which is only supported up to 10.2.8 IIRC. So even getting the bootloader running for 10.4 didn't exactly buy me much.
While working on sparc64 ofmem patch I used ppc/qemu ofmem implementation as reference. What I noticed is there are several corner cases not handled by range lists code; I fixed several ones for sparc64.
Hope we can work out good common ofmem base soon.
On 31.07.2009, at 08:22, Igor Kovalenko wrote:
On Thu, Jul 30, 2009 at 8:00 PM, Alexander Grafagraf@suse.de wrote:
Using this patch stacked on Steven Noonan's I was able to make BootX from Mac OS X 10.4 load XNU successfully in qemu-system-ppc.
Unfortunately, most of this patch is nothing but a mere hack to find out what we really need to get this working.
Also I didn't manage to get anything but 10.4 running. Other versions broke in the partition table interpretation.
I would not feel good taking the patch as is, because it would be better to implement the correct Forth magic to make the real callbacks work. Here is what I found to be broken:
- unselect-dev is missing
- local variables don't work ({ ... })
- I ran into an endless loop, getting isi and dsi faults on the
same 2 addresses all the time
Also, Qemu's only usable Desktop PPC target is a G3 Beige which is only supported up to 10.2.8 IIRC. So even getting the bootloader running for 10.4 didn't exactly buy me much.
While working on sparc64 ofmem patch I used ppc/qemu ofmem implementation as reference. What I noticed is there are several corner cases not handled by range lists code; I fixed several ones for sparc64.
It looked like the real problem was the low level hash entry mechanism, which is the one I changed.
Hope we can work out good common ofmem base soon.
That would still be great. In fact, hearing that all other targets broke anyways, it might make sense to take the qemu/ directory and just make it the default for all of ppc.
From there on going towards merging different architectures as well sounds like a really good idea.
Alex
On Fri, Jul 31, 2009 at 10:28 AM, Alexander Grafagraf@suse.de wrote:
On 31.07.2009, at 08:22, Igor Kovalenko wrote:
On Thu, Jul 30, 2009 at 8:00 PM, Alexander Grafagraf@suse.de wrote:
Using this patch stacked on Steven Noonan's I was able to make BootX from Mac OS X 10.4 load XNU successfully in qemu-system-ppc.
Unfortunately, most of this patch is nothing but a mere hack to find out what we really need to get this working.
Also I didn't manage to get anything but 10.4 running. Other versions broke in the partition table interpretation.
I would not feel good taking the patch as is, because it would be better to implement the correct Forth magic to make the real callbacks work. Here is what I found to be broken:
- unselect-dev is missing - local variables don't work ({ ... }) - I ran into an endless loop, getting isi and dsi faults on the same 2 addresses all the time
Also, Qemu's only usable Desktop PPC target is a G3 Beige which is only supported up to 10.2.8 IIRC. So even getting the bootloader running for 10.4 didn't exactly buy me much.
While working on sparc64 ofmem patch I used ppc/qemu ofmem implementation as reference. What I noticed is there are several corner cases not handled by range lists code; I fixed several ones for sparc64.
It looked like the real problem was the low level hash entry mechanism, which is the one I changed.
Hope we can work out good common ofmem base soon.
That would still be great. In fact, hearing that all other targets broke anyways, it might make sense to take the qemu/ directory and just make it the default for all of ppc.
If you mean building for ppc, it is already the default (only ppc/qemu is enabled in configuration examples.)
The build problem for others was introduced in commit r362 "Really create a tree for PCI devices (Laurent Vivier)" I cannot figure out what exactly caused a problem.
From there on going towards merging different architectures as well sounds like a really good idea.
I like reducing code duplication :)
On Thu, Jul 30, 2009 at 7:00 PM, Alexander Grafagraf@suse.de wrote:
Using this patch stacked on Steven Noonan's I was able to make BootX from Mac OS X 10.4 load XNU successfully in qemu-system-ppc.
Unfortunately, most of this patch is nothing but a mere hack to find out what we really need to get this working.
Also I didn't manage to get anything but 10.4 running. Other versions broke in the partition table interpretation.
I would not feel good taking the patch as is, because it would be better to implement the correct Forth magic to make the real callbacks work. Here is what I found to be broken:
- unselect-dev is missing - local variables don't work ({ ... }) - I ran into an endless loop, getting isi and dsi faults on the same 2 addresses all the time
Also, Qemu's only usable Desktop PPC target is a G3 Beige which is only supported up to 10.2.8 IIRC. So even getting the bootloader running for 10.4 didn't exactly buy me much.
mac99 also should do something. What machines have the best support?
Don't apply the patch as is! It'd be great to see someone build on this!
arch/ppc/qemu/ofmem.c | 4 ++-- modules/client.c | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/arch/ppc/qemu/ofmem.c b/arch/ppc/qemu/ofmem.c index a1a8fb1..32642e2 100644 --- a/arch/ppc/qemu/ofmem.c +++ b/arch/ppc/qemu/ofmem.c @@ -716,8 +716,8 @@ hash_page_32( ulong ea, ulong phys, int mode )
/* out of slots, just evict one */ if( !found ) {
- i = next_grab_slot + 1;
- next_grab_slot = (next_grab_slot + 1) % 8;
- i = next_grab_slot + 3;
- next_grab_slot = (next_grab_slot + 3) % 8;
} i--; upte[i*2] = cmp; diff --git a/modules/client.c b/modules/client.c index a2e8405..a8c89ff 100644 --- a/modules/client.c +++ b/modules/client.c @@ -49,6 +49,46 @@ handle_calls( prom_args_t *pb ) pb->nargs, pb->nret); #endif
+#if 1
- if (!strcmp(pb->service, "interpret"))
- {
- char *ns;
- ns = strstr((char*)pb->args[0], "{ ; dpth }");
- if (ns) return 0;
- ns = strstr((char*)pb->args[0], "dev /chosen ");
- if (ns) memcpy(ns, " " /chosen"", 11);
- }
- else if (!strcmp(pb->service, "call-method"))
- {
- if (!strncmp((char*)pb->args[0], "slw_init_keymap", 15)) {
- char *a = (char*)malloc(20);
- memset(a, 0x00, 20);
- pb->args[4] = (uint32_t)a;
- pb->args[3] = 0;
- return 0;
- }
- if (!strncmp((char*)pb->args[0], "slw_emit", strlen("slw_emit"))) {
- PUSH( (char)pb->args[2] );
- fword("emit");
- return 0;
- }
- if (!strncmp((char*)pb->args[0], "slw_cr", strlen("slw_cr"))) {
- PUSH( '\n' );
- fword("emit");
- return 0;
- }
- if (!strncmp((char*)pb->args[0], "slw_update_keymap", strlen("slw_update_keymap"))) return 0;
- if (!strncmp((char*)pb->args[0], "slw_set_output_level", strlen("slw_set_output_level"))) return 0;
- if (!strncmp((char*)pb->args[0], "slw_spin_init", strlen("slw_spin_init"))) return 0;
- if (!strncmp((char*)pb->args[0], "slw_spin", strlen("slw_spin"))) return 0;
Is the loader trying to install these callbacks or does it assume that they exist already?
On 31.07.2009, at 12:46, Blue Swirl wrote:
On Thu, Jul 30, 2009 at 7:00 PM, Alexander Grafagraf@suse.de wrote:
Using this patch stacked on Steven Noonan's I was able to make BootX from Mac OS X 10.4 load XNU successfully in qemu-system-ppc.
Unfortunately, most of this patch is nothing but a mere hack to find out what we really need to get this working.
Also I didn't manage to get anything but 10.4 running. Other versions broke in the partition table interpretation.
I would not feel good taking the patch as is, because it would be better to implement the correct Forth magic to make the real callbacks work. Here is what I found to be broken:
- unselect-dev is missing
- local variables don't work ({ ... })
- I ran into an endless loop, getting isi and dsi faults on the
same 2 addresses all the time
Also, Qemu's only usable Desktop PPC target is a G3 Beige which is only supported up to 10.2.8 IIRC. So even getting the bootloader running for 10.4 didn't exactly buy me much.
mac99 also should do something. What machines have the best support?
Don't apply the patch as is! It'd be great to see someone build on this!
arch/ppc/qemu/ofmem.c | 4 ++-- modules/client.c | 40 ++++++++++++++++++++++++++++++++++++++ ++ 2 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/arch/ppc/qemu/ofmem.c b/arch/ppc/qemu/ofmem.c index a1a8fb1..32642e2 100644 --- a/arch/ppc/qemu/ofmem.c +++ b/arch/ppc/qemu/ofmem.c @@ -716,8 +716,8 @@ hash_page_32( ulong ea, ulong phys, int mode )
/* out of slots, just evict one */ if( !found ) {
i = next_grab_slot + 1;
next_grab_slot = (next_grab_slot + 1) % 8;
i = next_grab_slot + 3;
next_grab_slot = (next_grab_slot + 3) % 8; } i--; upte[i*2] = cmp;
diff --git a/modules/client.c b/modules/client.c index a2e8405..a8c89ff 100644 --- a/modules/client.c +++ b/modules/client.c @@ -49,6 +49,46 @@ handle_calls( prom_args_t *pb ) pb->nargs, pb->nret); #endif
+#if 1
if (!strcmp(pb->service, "interpret"))
{
char *ns;
ns = strstr((char*)pb->args[0], "{ ; dpth }");
if (ns) return 0;
^^^^^^^
ns = strstr((char*)pb->args[0], "dev /chosen ");
if (ns) memcpy(ns, " \" /chosen\"", 11);
}
else if (!strcmp(pb->service, "call-method"))
{
if (!strncmp((char*)pb->args[0], "slw_init_keymap",
15)) {
char *a = (char*)malloc(20);
memset(a, 0x00, 20);
pb->args[4] = (uint32_t)a;
pb->args[3] = 0;
return 0;
}
if (!strncmp((char*)pb->args[0], "slw_emit",
strlen("slw_emit"))) {
PUSH( (char)pb->args[2] );
fword("emit");
return 0;
}
if (!strncmp((char*)pb->args[0], "slw_cr",
strlen("slw_cr"))) {
PUSH( '\n' );
fword("emit");
return 0;
}
if (!strncmp((char*)pb->args[0],
"slw_update_keymap", strlen("slw_update_keymap"))) return 0;
if (!strncmp((char*)pb->args[0],
"slw_set_output_level", strlen("slw_set_output_level"))) return 0;
if (!strncmp((char*)pb->args[0], "slw_spin_init",
strlen("slw_spin_init"))) return 0;
if (!strncmp((char*)pb->args[0], "slw_spin",
strlen("slw_spin"))) return 0;
Is the loader trying to install these callbacks or does it assume that they exist already?
It installs them in the interpret call I marked above.
Alex
On 31.07.2009, at 12:46, Blue Swirl wrote:
On Thu, Jul 30, 2009 at 7:00 PM, Alexander Grafagraf@suse.de wrote:
Using this patch stacked on Steven Noonan's I was able to make BootX from Mac OS X 10.4 load XNU successfully in qemu-system-ppc.
Unfortunately, most of this patch is nothing but a mere hack to find out what we really need to get this working.
Also I didn't manage to get anything but 10.4 running. Other versions broke in the partition table interpretation.
I would not feel good taking the patch as is, because it would be better to implement the correct Forth magic to make the real callbacks work. Here is what I found to be broken:
- unselect-dev is missing
- local variables don't work ({ ... })
- I ran into an endless loop, getting isi and dsi faults on the
same 2 addresses all the time
Also, Qemu's only usable Desktop PPC target is a G3 Beige which is only supported up to 10.2.8 IIRC. So even getting the bootloader running for 10.4 didn't exactly buy me much.
mac99 also should do something. What machines have the best support?
Don't apply the patch as is! It'd be great to see someone build on this!
arch/ppc/qemu/ofmem.c | 4 ++-- modules/client.c | 40 ++++++++++++++++++++++++++++++++++++++ ++ 2 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/arch/ppc/qemu/ofmem.c b/arch/ppc/qemu/ofmem.c index a1a8fb1..32642e2 100644 --- a/arch/ppc/qemu/ofmem.c +++ b/arch/ppc/qemu/ofmem.c @@ -716,8 +716,8 @@ hash_page_32( ulong ea, ulong phys, int mode )
/* out of slots, just evict one */ if( !found ) {
i = next_grab_slot + 1;
next_grab_slot = (next_grab_slot + 1) % 8;
i = next_grab_slot + 3;
next_grab_slot = (next_grab_slot + 3) % 8; } i--; upte[i*2] = cmp;
diff --git a/modules/client.c b/modules/client.c index a2e8405..a8c89ff 100644 --- a/modules/client.c +++ b/modules/client.c @@ -49,6 +49,46 @@ handle_calls( prom_args_t *pb ) pb->nargs, pb->nret); #endif
+#if 1
if (!strcmp(pb->service, "interpret"))
{
char *ns;
ns = strstr((char*)pb->args[0], "{ ; dpth }");
if (ns) return 0;
In fact, it does this:
interpret hex unselect-dev " /packages" find-device new-device "
sl_words" device-name : open true ; : close ; 0 value outputLevel : slw_set_output_level dup 0= if 0 stdout ! then to outputLevel ; : slw_emit 2 outputLevel <= if emit else drop then ; : slw_cr 2 outputLevel <= if cr then ; 0 value keyboardIH 20 buffer: keyMap : slw_init_keymap to keyboardIH keyMap dup 20 0 fill ; : slw_update_keymap { ; dpth } depth -> dpth keyboardIH if " get- key-map" keyboardIH $call-method depth dpth - 1 = if 20 then 4 / 0 do dup i 4 * + l@ keyMap i 4 * + tuck l@ or swap l! loop drop then ; 0 value screenIH 0 value cursorAddr 0 value cursorX 0 value cursorY 0 value cursorW 0 value cursorH 0 value cursorFrames 0 value cursorPixelSize 0 value cursorStage 0 value cursorTime 0 value cursorDelay : slw_spin screenIH 0<> cursorAddr 0<> and if get- msecs dup cursorTime - cursorDelay >= if to cursorTime slw_update_keymap cursorStage 1+ cursorFrames mod dup to cursorStage of_client_interface: finddevice 56128f0
ns = strstr((char*)pb->args[0], "dev /chosen ");
if (ns) memcpy(ns, " \" /chosen\"", 11);
interpret dev /chosen new-device " memory-map" device-name active-
package device-end ([1] -- [2])
Alex
Le jeudi 30 juillet 2009 à 18:00 +0200, Alexander Graf a écrit :
Using this patch stacked on Steven Noonan's I was able to make BootX from Mac OS X 10.4 load XNU successfully in qemu-system-ppc.
Hi,
I'd like to play with that.
Which patches to apply before ? How to boot ?
Regards, Laurent
Unfortunately, most of this patch is nothing but a mere hack to find out what we really need to get this working.
Also I didn't manage to get anything but 10.4 running. Other versions broke in the partition table interpretation.
I would not feel good taking the patch as is, because it would be better to implement the correct Forth magic to make the real callbacks work. Here is what I found to be broken:
- unselect-dev is missing
- local variables don't work ({ ... })
- I ran into an endless loop, getting isi and dsi faults on the same 2 addresses all the time
Also, Qemu's only usable Desktop PPC target is a G3 Beige which is only supported up to 10.2.8 IIRC. So even getting the bootloader running for 10.4 didn't exactly buy me much.
Don't apply the patch as is! It'd be great to see someone build on this!
arch/ppc/qemu/ofmem.c | 4 ++-- modules/client.c | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/arch/ppc/qemu/ofmem.c b/arch/ppc/qemu/ofmem.c index a1a8fb1..32642e2 100644 --- a/arch/ppc/qemu/ofmem.c +++ b/arch/ppc/qemu/ofmem.c @@ -716,8 +716,8 @@ hash_page_32( ulong ea, ulong phys, int mode )
/* out of slots, just evict one */ if( !found ) {
i = next_grab_slot + 1;
next_grab_slot = (next_grab_slot + 1) % 8;
i = next_grab_slot + 3;
} i--; upte[i*2] = cmp;next_grab_slot = (next_grab_slot + 3) % 8;
diff --git a/modules/client.c b/modules/client.c index a2e8405..a8c89ff 100644 --- a/modules/client.c +++ b/modules/client.c @@ -49,6 +49,46 @@ handle_calls( prom_args_t *pb ) pb->nargs, pb->nret); #endif
+#if 1
- if (!strcmp(pb->service, "interpret"))
- {
char *ns;
ns = strstr((char*)pb->args[0], "{ ; dpth }");
if (ns) return 0;
ns = strstr((char*)pb->args[0], "dev /chosen ");
if (ns) memcpy(ns, " \" /chosen\"", 11);
- }
- else if (!strcmp(pb->service, "call-method"))
- {
if (!strncmp((char*)pb->args[0], "slw_init_keymap", 15)) {
char *a = (char*)malloc(20);
memset(a, 0x00, 20);
pb->args[4] = (uint32_t)a;
pb->args[3] = 0;
return 0;
}
if (!strncmp((char*)pb->args[0], "slw_emit", strlen("slw_emit"))) {
PUSH( (char)pb->args[2] );
fword("emit");
return 0;
}
if (!strncmp((char*)pb->args[0], "slw_cr", strlen("slw_cr"))) {
PUSH( '\n' );
fword("emit");
return 0;
}
if (!strncmp((char*)pb->args[0], "slw_update_keymap", strlen("slw_update_keymap"))) return 0;
if (!strncmp((char*)pb->args[0], "slw_set_output_level", strlen("slw_set_output_level"))) return 0;
if (!strncmp((char*)pb->args[0], "slw_spin_init", strlen("slw_spin_init"))) return 0;
if (!strncmp((char*)pb->args[0], "slw_spin", strlen("slw_spin"))) return 0;
- }
+#endif
- for( i=pb->nargs-1; i>=0; i-- ) PUSH( pb->args[i] );
-- 1.6.0.2
On 10.08.2009, at 00:51, Laurent Vivier wrote:
Le jeudi 30 juillet 2009 à 18:00 +0200, Alexander Graf a écrit :
Using this patch stacked on Steven Noonan's I was able to make BootX from Mac OS X 10.4 load XNU successfully in qemu-system-ppc.
Hi,
I'd like to play with that.
Which patches to apply before ?
I took those rebased on current git:
http://github.com/tycho/openbios/tree/macosx-boot
How to boot ?
The normal way. Just use -boot d. So far only the 10.4 CD did boot IIRC.
Alex
Regards, Laurent
Unfortunately, most of this patch is nothing but a mere hack to find out what we really need to get this working.
Also I didn't manage to get anything but 10.4 running. Other versions broke in the partition table interpretation.
I would not feel good taking the patch as is, because it would be better to implement the correct Forth magic to make the real callbacks work. Here is what I found to be broken:
- unselect-dev is missing
- local variables don't work ({ ... })
- I ran into an endless loop, getting isi and dsi faults on the
same 2 addresses all the time
Also, Qemu's only usable Desktop PPC target is a G3 Beige which is only supported up to 10.2.8 IIRC. So even getting the bootloader running for 10.4 didn't exactly buy me much.
Don't apply the patch as is! It'd be great to see someone build on this!
arch/ppc/qemu/ofmem.c | 4 ++-- modules/client.c | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/arch/ppc/qemu/ofmem.c b/arch/ppc/qemu/ofmem.c index a1a8fb1..32642e2 100644 --- a/arch/ppc/qemu/ofmem.c +++ b/arch/ppc/qemu/ofmem.c @@ -716,8 +716,8 @@ hash_page_32( ulong ea, ulong phys, int mode )
/* out of slots, just evict one */ if( !found ) {
i = next_grab_slot + 1;
next_grab_slot = (next_grab_slot + 1) % 8;
i = next_grab_slot + 3;
} i--; upte[i*2] = cmp;next_grab_slot = (next_grab_slot + 3) % 8;
diff --git a/modules/client.c b/modules/client.c index a2e8405..a8c89ff 100644 --- a/modules/client.c +++ b/modules/client.c @@ -49,6 +49,46 @@ handle_calls( prom_args_t *pb ) pb->nargs, pb->nret); #endif
+#if 1
- if (!strcmp(pb->service, "interpret"))
- {
char *ns;
ns = strstr((char*)pb->args[0], "{ ; dpth }");
if (ns) return 0;
ns = strstr((char*)pb->args[0], "dev /chosen ");
if (ns) memcpy(ns, " \" /chosen\"", 11);
- }
- else if (!strcmp(pb->service, "call-method"))
- {
if (!strncmp((char*)pb->args[0], "slw_init_keymap", 15)) {
char *a = (char*)malloc(20);
memset(a, 0x00, 20);
pb->args[4] = (uint32_t)a;
pb->args[3] = 0;
return 0;
}
if (!strncmp((char*)pb->args[0], "slw_emit",
strlen("slw_emit"))) {
PUSH( (char)pb->args[2] );
fword("emit");
return 0;
}
if (!strncmp((char*)pb->args[0], "slw_cr", strlen("slw_cr"))) {
PUSH( '\n' );
fword("emit");
return 0;
}
if (!strncmp((char*)pb->args[0], "slw_update_keymap",
strlen("slw_update_keymap"))) return 0;
if (!strncmp((char*)pb->args[0], "slw_set_output_level",
strlen("slw_set_output_level"))) return 0;
if (!strncmp((char*)pb->args[0], "slw_spin_init",
strlen("slw_spin_init"))) return 0;
if (!strncmp((char*)pb->args[0], "slw_spin",
strlen("slw_spin"))) return 0;
- }
+#endif
- for( i=pb->nargs-1; i>=0; i-- ) PUSH( pb->args[i] );
-- 1.6.0.2
-- --------------------- laurent@vivier.eu ---------------------- "Tout ce qui est impossible reste à accomplir" Jules Verne "Things are only impossible until they're not" Jean-Luc Picard
-- OpenBIOS http://openbios.org/ Mailinglist: http://lists.openbios.org/mailman/listinfo Free your System - May the Forth be with you