diff options
author | aiju <devnull@localhost> | 2018-12-11 09:17:44 +0000 |
---|---|---|
committer | aiju <devnull@localhost> | 2018-12-11 09:17:44 +0000 |
commit | a6517fb4984458d6f5ce4864a408c5057d15306d (patch) | |
tree | 5f0c57fe7329ec2c9c67d9bd7409e485324c576b | |
parent | cc066d813083789d76169720edbf7a3104538117 (diff) | |
download | plan9front-a6517fb4984458d6f5ce4864a408c5057d15306d.tar.xz |
kernel: change peek to return number of characters left rather than 0/-1
-rw-r--r-- | sys/src/9/pc/l.s | 2 | ||||
-rw-r--r-- | sys/src/9/pc/trap.c | 2 | ||||
-rw-r--r-- | sys/src/9/pc64/l.s | 2 | ||||
-rw-r--r-- | sys/src/9/pc64/trap.c | 2 | ||||
-rw-r--r-- | sys/src/9/port/devdtracy.c | 2 |
5 files changed, 3 insertions, 7 deletions
diff --git a/sys/src/9/pc/l.s b/sys/src/9/pc/l.s index 151985f3f..5f40295ef 100644 --- a/sys/src/9/pc/l.s +++ b/sys/src/9/pc/l.s @@ -513,13 +513,13 @@ TEXT _wrmsrinst(SB), $0 /* fault-proof memcpy */ TEXT peek(SB), $0 - MOVL $0, AX /* AX set to -1 if traped */ MOVL src+0(FP), SI MOVL dst+4(FP), DI MOVL cnt+8(FP), CX CLD TEXT _peekinst(SB), $0 REP; MOVSB + MOVL CX, AX RET /* diff --git a/sys/src/9/pc/trap.c b/sys/src/9/pc/trap.c index 12d062adf..0d74f0a98 100644 --- a/sys/src/9/pc/trap.c +++ b/sys/src/9/pc/trap.c @@ -481,7 +481,6 @@ trap(Ureg* ureg) } } else if(pc == _peekinst){ if(vno == VectorGPF){ - ureg->ax = -1; ureg->pc += 2; return; } @@ -722,7 +721,6 @@ fault386(Ureg* ureg, void*) { extern void _peekinst(void); if((void(*)(void))ureg->pc == _peekinst){ - ureg->ax = -1; ureg->pc += 2; return; } diff --git a/sys/src/9/pc64/l.s b/sys/src/9/pc64/l.s index 25d5c71e0..c00a24fc7 100644 --- a/sys/src/9/pc64/l.s +++ b/sys/src/9/pc64/l.s @@ -451,13 +451,13 @@ TEXT _wrmsrinst(SB), $0 /* fault-proof memcpy */ TEXT peek(SB), 1, $-4 - MOVQ $0, AX MOVQ RARG, SI MOVQ dst+8(FP), DI MOVL cnt+16(FP), CX CLD TEXT _peekinst(SB), $0 REP; MOVSB + MOVL CX, AX RET diff --git a/sys/src/9/pc64/trap.c b/sys/src/9/pc64/trap.c index 17a356463..23c1e9b69 100644 --- a/sys/src/9/pc64/trap.c +++ b/sys/src/9/pc64/trap.c @@ -451,7 +451,6 @@ trap(Ureg *ureg) } } else if(pc == _peekinst){ if(vno == VectorGPF){ - ureg->ax = -1; ureg->pc += 2; return; } @@ -683,7 +682,6 @@ faultamd64(Ureg* ureg, void*) extern void _peekinst(void); if((void(*)(void))ureg->pc == _peekinst){ - ureg->ax = -1; ureg->pc += 2; return; } diff --git a/sys/src/9/port/devdtracy.c b/sys/src/9/port/devdtracy.c index 1d382f9f1..4bd47ca0e 100644 --- a/sys/src/9/port/devdtracy.c +++ b/sys/src/9/port/devdtracy.c @@ -529,5 +529,5 @@ dtpeek(uvlong addr, void *buf, int len) if(len == 0) return 0; if(a != addr || a > -(uintptr)len || len < 0) return -1; if(up == nil || up->privatemem || a >= KZERO) return -1; - return peek((void *)a, buf, len); + return peek((void *)a, buf, len) > 0 ? -1 : 0; } |