about summary refs log tree commit diff
path: root/io/fcntl.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-11-10 00:12:21 +0000
committerUlrich Drepper <drepper@redhat.com>2005-11-10 00:12:21 +0000
commit4973cbe599b0ddc97306eb8bb23bd2104c89a565 (patch)
treeefb1daac3e5f9e78859ff420722c824569d94fb8 /io/fcntl.h
parent9f1016c0df0dc9c548700619af7c33f882fc76ed (diff)
downloadglibc-4973cbe599b0ddc97306eb8bb23bd2104c89a565.tar.gz
glibc-4973cbe599b0ddc97306eb8bb23bd2104c89a565.tar.xz
glibc-4973cbe599b0ddc97306eb8bb23bd2104c89a565.zip
* io/fcntl.h: Declare openat and openat64.
	* io/Makefile (routines): Add openat and openat64.
	(tests): Add tst-openat.
	* io/Versions: Add openat and openat64 for GLIBC_2.4.
	* sysdeps/generic/openat.c: New file.
	* sysdeps/generic/openat64.c: New file.
	* sysdeps/unix/sysv/linux/openat.c: New file.
	* sysdeps/unix/sysv/linux/openat64.c: New file.
	* io/tst-openat.c: New file.

	* sysdeps/unix/sysv/linux/device-nrs.h: Add info for /dev/full.
Diffstat (limited to 'io/fcntl.h')
-rw-r--r--io/fcntl.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/io/fcntl.h b/io/fcntl.h
index ef9d5f9b81..044a988872 100644
--- a/io/fcntl.h
+++ b/io/fcntl.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991,1992,1994-2001,2003,2004 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1992,1994-2001,2003,2004,2005
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -82,6 +83,32 @@ extern int __REDIRECT (open, (__const char *__file, int __oflag, ...), open64)
 extern int open64 (__const char *__file, int __oflag, ...) __nonnull ((1));
 #endif
 
+#ifdef __USE_GNU
+/* Similar to OPEN but a relative path name is interpreted relative to
+   the directory for which FD is a descriptor.
+
+   NOTE: some other OPENAT implementation support additional functionality
+   through this interface, especially using the O_XATTR flag.  This is not
+   yet supported here.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+# ifndef __USE_FILE_OFFSET64
+extern int openat (int __fd, __const char *__file, int __oflag, ...)
+     __nonnull ((2));
+# else
+#  ifdef __REDIRECT
+extern int __REDIRECT (openat, (int __fd, __const char *__file, int __oflag,
+				...), openat64) __nonnull ((2));
+#  else
+#   define openat openat64
+#  endif
+# endif
+
+extern int openat64 (int __fd, __const char *__file, int __oflag, ...)
+     __nonnull ((2));
+#endif
+
 /* Create and open FILE, with mode MODE.  This takes an `int' MODE
    argument because that is what `mode_t' will be widened to.