fix mips setjmp/longjmp fpu state on r6, related issues
[musl.git] / src / unistd / fchown.c
blob737b3672fcce506ec079ca819b2e91bd9eb872a9
1 #include <unistd.h>
2 #include <errno.h>
3 #include <fcntl.h>
4 #include "syscall.h"
6 int fchown(int fd, uid_t uid, gid_t gid)
8 int ret = __syscall(SYS_fchown, fd, uid, gid);
9 if (ret != -EBADF || __syscall(SYS_fcntl, fd, F_GETFD) < 0)
10 return __syscall_ret(ret);
12 char buf[15+3*sizeof(int)];
13 __procfdname(buf, fd);
14 #ifdef SYS_chown
15 return syscall(SYS_chown, buf, uid, gid);
16 #else
17 return syscall(SYS_fchownat, AT_FDCWD, buf, uid, gid, 0);
18 #endif