Revision 0c1592d9
b/linux-user/syscall.c | ||
---|---|---|
6127 | 6127 |
#ifdef TARGET_NR__llseek /* Not on alpha */ |
6128 | 6128 |
case TARGET_NR__llseek: |
6129 | 6129 |
{ |
6130 |
int64_t res; |
|
6130 | 6131 |
#if !defined(__NR_llseek) |
6131 |
ret = get_errno(lseek(arg1, ((uint64_t )arg2 << 32) | arg3, arg5)); |
|
6132 |
if (put_user_s64(ret, arg4)) |
|
6133 |
goto efault; |
|
6132 |
res = lseek(arg1, ((uint64_t)arg2 << 32) | arg3, arg5); |
|
6133 |
if (res == -1) { |
|
6134 |
ret = get_errno(res); |
|
6135 |
} else { |
|
6136 |
ret = 0; |
|
6137 |
} |
|
6134 | 6138 |
#else |
6135 |
int64_t res; |
|
6136 | 6139 |
ret = get_errno(_llseek(arg1, arg2, arg3, &res, arg5)); |
6137 |
if (put_user_s64(res, arg4)) |
|
6138 |
goto efault; |
|
6139 | 6140 |
#endif |
6141 |
if ((ret == 0) && put_user_s64(res, arg4)) { |
|
6142 |
goto efault; |
|
6143 |
} |
|
6140 | 6144 |
} |
6141 | 6145 |
break; |
6142 | 6146 |
#endif |
Also available in: Unified diff