about summary refs log tree commit diff
path: root/include
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
parente5fb6820a42a1f675ba09c15273953e1ace65777 (diff)
downloadmusl-4e8b0938d90793d6e1e200d6b25e6581b72bd4d0.tar.gz
musl-4e8b0938d90793d6e1e200d6b25e6581b72bd4d0.tar.xz
musl-4e8b0938d90793d6e1e200d6b25e6581b72bd4d0.zip
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')
-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