the changes to syscall_ret are mostly no-ops in the generated code, just cleanup of type issues and removal of some implementation-defined behavior. the one exception is the change in the comparison value, which is fixed so that 0xf...f000 (which in principle could be a valid return value for mmap, although probably never in reality) is not treated as an error return.
11 lines
141 B
C
11 lines
141 B
C
#include <errno.h>
|
|
#include <unistd.h>
|
|
|
|
long __syscall_ret(unsigned long r)
|
|
{
|
|
if (r > -4096UL) {
|
|
errno = -r;
|
|
return -1;
|
|
}
|
|
return r;
|
|
}
|