On Mon, 3 Mar 2014, BALATON Zoltan wrote:
It can be. It looks like that the buffer is cleared before it gets used by later code. Do you have any idea how to fix this?
OK, how about this patch:
Index: forth/system/ciface.fs =================================================================== --- forth/system/ciface.fs (revision 1270) +++ forth/system/ciface.fs (working copy) @@ -108,7 +108,6 @@ dup 0= if 0 else dup cstrlen then
( buf prev prev_len ) - 0 3 pick c!
\ verify that prev exists (overkill...) dup if @@ -126,7 +125,7 @@ dup 1+ -rot ci-strcpy drop 1 else ( buf ) - drop 0 + 0 swap c! 0 then ;
with this it gets further (and then fails like before, assumably because of missing/wrong properties but it seems to get over the nextprop issue at least). Here is the debug log I get now with SVN trunk and the above patch (without Olivier's):
finddevice("/uni-n") = 0xfff512f4 finddevice("/cpus") = 0xfff4ba7c child(0xfff4ba7c) = 0xfff517dc nextprop(0xfff517dc, "", 0x07de7e30) = 1 0x07de7e30 6e 61 6d 65 00 00 00 00 00 00 00 00 00 00 00 00 name............ 0x07de7e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ getprop(0xfff517dc, "name", 0x07de7df0, 64) = 11 0x07de7df0 50 6f 77 65 72 50 43 2c 47 34 00 __ __ __ __ __ PowerPC,G4. nextprop(0xfff517dc, "name", 0x07de7e30) = 1 0x07de7e30 64 65 76 69 63 65 5f 74 79 70 65 00 00 00 00 00 device_type..... 0x07de7e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ getprop(0xfff517dc, "device_type", 0x07de7df0, 64) = 4 0x07de7df0 63 70 75 00 __ __ __ __ __ __ __ __ __ __ __ __ cpu. nextprop(0xfff517dc, "device_type", 0x07de7e30) = 1 0x07de7e30 63 70 75 2d 76 65 72 73 69 6f 6e 00 00 00 00 00 cpu-version..... 0x07de7e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ getprop(0xfff517dc, "cpu-version", 0x07de7df0, 64) = 4 0x07de7df0 00 0c 02 09 __ __ __ __ __ __ __ __ __ __ __ __ .... nextprop(0xfff517dc, "cpu-version", 0x07de7e30) = 1 0x07de7e30 64 63 61 63 68 65 2d 73 69 7a 65 00 00 00 00 00 dcache-size..... 0x07de7e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ getprop(0xfff517dc, "dcache-size", 0x07de7df0, 64) = 4 0x07de7df0 00 00 80 00 __ __ __ __ __ __ __ __ __ __ __ __ .... nextprop(0xfff517dc, "dcache-size", 0x07de7e30) = 1 0x07de7e30 69 63 61 63 68 65 2d 73 69 7a 65 00 00 00 00 00 icache-size..... 0x07de7e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ getprop(0xfff517dc, "icache-size", 0x07de7df0, 64) = 4 0x07de7df0 00 00 80 00 __ __ __ __ __ __ __ __ __ __ __ __ .... nextprop(0xfff517dc, "icache-size", 0x07de7e30) = 1 0x07de7e30 64 63 61 63 68 65 2d 73 65 74 73 00 00 00 00 00 dcache-sets..... 0x07de7e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ getprop(0xfff517dc, "dcache-sets", 0x07de7df0, 64) = 4 0x07de7df0 00 00 00 80 __ __ __ __ __ __ __ __ __ __ __ __ .... nextprop(0xfff517dc, "dcache-sets", 0x07de7e30) = 1 0x07de7e30 69 63 61 63 68 65 2d 73 65 74 73 00 00 00 00 00 icache-sets..... 0x07de7e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ getprop(0xfff517dc, "icache-sets", 0x07de7df0, 64) = 4 0x07de7df0 00 00 00 80 __ __ __ __ __ __ __ __ __ __ __ __ .... nextprop(0xfff517dc, "icache-sets", 0x07de7e30) = 1 0x07de7e30 64 63 61 63 68 65 2d 62 6c 6f 63 6b 2d 73 69 7a dcache-block-siz 0x07de7e40 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e............... getprop(0xfff517dc, "dcache-block-size", 0x07de7df0, 64) = 4 0x07de7df0 00 00 00 20 __ __ __ __ __ __ __ __ __ __ __ __ ... nextprop(0xfff517dc, "dcache-block-size", 0x07de7e30) = 1 0x07de7e30 69 63 61 63 68 65 2d 62 6c 6f 63 6b 2d 73 69 7a icache-block-siz 0x07de7e40 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e............... getprop(0xfff517dc, "icache-block-size", 0x07de7df0, 64) = 4 0x07de7df0 00 00 00 20 __ __ __ __ __ __ __ __ __ __ __ __ ... nextprop(0xfff517dc, "icache-block-size", 0x07de7e30) = 1 0x07de7e30 74 69 6d 65 62 61 73 65 2d 66 72 65 71 75 65 6e timebase-frequen 0x07de7e40 63 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cy.............. getprop(0xfff517dc, "timebase-frequency", 0x07de7df0, 64) = 4 0x07de7df0 3b 9a ca 00 __ __ __ __ __ __ __ __ __ __ __ __ ;... nextprop(0xfff517dc, "timebase-frequency", 0x07de7e30) = 1 0x07de7e30 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 00 clock-frequency. 0x07de7e40 63 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cy.............. getprop(0xfff517dc, "clock-frequency", 0x07de7df0, 64) = 4 0x07de7df0 00 00 00 00 __ __ __ __ __ __ __ __ __ __ __ __ .... nextprop(0xfff517dc, "clock-frequency", 0x07de7e30) = 1 0x07de7e30 73 74 61 74 65 00 66 72 65 71 75 65 6e 63 79 00 state.frequency. 0x07de7e40 63 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cy.............. getprop(0xfff517dc, "state", 0x07de7df0, 64) = 8 0x07de7df0 72 75 6e 6e 69 6e 67 00 __ __ __ __ __ __ __ __ running. nextprop(0xfff517dc, "state", 0x07de7e30) = 1 0x07de7e30 72 65 67 00 65 00 66 72 65 71 75 65 6e 63 79 00 reg.e.frequency. 0x07de7e40 63 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cy.............. getprop(0xfff517dc, "reg", 0x07de7df0, 64) = 4 0x07de7df0 00 00 00 00 __ __ __ __ __ __ __ __ __ __ __ __ .... nextprop(0xfff517dc, "reg", 0x07de7e30) = 1 0x07de7e30 61 76 61 69 6c 61 62 6c 65 00 75 65 6e 63 79 00 available.uency. 0x07de7e40 63 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cy.............. getprop(0xfff517dc, "available", 0x07de7df0, 64) = 40 0x07de7df0 00 00 40 00 00 3f c0 00 00 68 72 4c 07 5d 0d b4 ..@..?...hrL.].. 0x07de7e00 07 e1 00 00 78 1f 00 00 81 00 00 00 7e f0 00 00 ....x.......~... 0x07de7e10 00 00 00 00 ff ff ff ff __ __ __ __ __ __ __ __ ........ nextprop(0xfff517dc, "available", 0x07de7e30) = 1 0x07de7e30 74 72 61 6e 73 6c 61 74 69 6f 6e 73 00 63 79 00 translations.cy. 0x07de7e40 63 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cy.............. getprop(0xfff517dc, "translations", 0x07de7df0, 64) = 80 0x07de7df0 00 00 10 00 00 00 30 00 00 00 10 00 00 00 00 00 ......0......... 0x07de7e00 00 40 00 00 00 28 80 00 00 40 00 00 00 00 00 02 .@...(...@...... 0x07de7e10 07 c5 80 00 00 1b 80 00 07 c5 80 00 00 00 00 00 ................ 0x07de7e20 80 00 00 00 01 00 00 00 80 00 00 00 00 00 00 6a ...............j nextprop(0xfff517dc, "translations", 0x07de7e30) = 0 0x07de7e30 00 72 61 6e 73 6c 61 74 69 6f 6e 73 00 63 79 00 .ranslations.cy. 0x07de7e40 63 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cy.............. child(0xfff517dc) = 0x00000000
Regards, BALATON Zoltan