summaryrefslogtreecommitdiff
path: root/include/fcntl.h
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-06-20 22:16:47 -0400
committerRich Felker <dalias@aerifal.cx>2012-06-20 22:16:47 -0400
commit4e8b0938d90793d6e1e200d6b25e6581b72bd4d0 (patch)
treecb0255413023716592eebc9f7978d7c1a1b00179 /include/fcntl.h
parente5fb6820a42a1f675ba09c15273953e1ace65777 (diff)
downloadmusl-4e8b0938d90793d6e1e200d6b25e6581b72bd4d0.tar.gz
proper error handling for fcntl F_GETOWN on modern kernels
on old kernels, there's no way to detect errors; we must assume negative syscall return values are pgrp ids. but if the F_GETOWN_EX fcntl works, we can get a reliable answer.
Diffstat (limited to 'include/fcntl.h')
-rw-r--r--include/fcntl.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/fcntl.h b/include/fcntl.h
index 36fb24bc..fcb622a2 100644
--- a/include/fcntl.h
+++ b/include/fcntl.h
@@ -99,6 +99,17 @@ int posix_fallocate(int, off_t, off_t);
int lockf(int, int, off_t);
#endif
+#if defined(_GNU_SOURCE)
+#define F_OWNER_TID 0
+#define F_OWNER_PID 1
+#define F_OWNER_PGRP 2
+#define F_OWNER_GID 2
+struct f_owner_ex {
+ int type;
+ pid_t pid;
+};
+#endif
+
#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
#define open64 open
#define openat64 openat