Ahem. No. Sorry to reply so late, I was out of the country for a while.
As I'm working on the native interface to the kernel (no more libc), I was
reading the glibc2.1 sources and in there is written:
| /* Linux uses a negative return value to indicate syscall errors,
| unlike most Unices, which use the condition codes' carry flag.
|
| Since version 2.1 the return value of a system call might be
| negative even if the call succeeded. E.g., the `lseek' system call
| might return a large offset. Therefore we must not anymore test
| for < 0, but test for a real error by making sure the value in %eax
| is a real error number. Linus said he will make sure the no syscall
| returns a value in -1 .. -4095 as a valid result so we can savely
| test with -4095. */
I found no public statement about this fact.
Groetjes, Peter
-- It's logic Jim, but not as we know it. | pvaneynd@debian.org for pleasure, "God, root, what is difference?",Pitr | pvaneynd@inthan.be for more pleasure!- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/