• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-arm-linux-2.6.36-uclibc-4.5.3/usr/include/
1/* Copyright (C) 1991,1992,1994-2001,2003,2004,2005,2006,2007, 2009
2	Free Software Foundation, Inc.
3   This file is part of the GNU C Library.
4
5   The GNU C Library is free software; you can redistribute it and/or
6   modify it under the terms of the GNU Lesser General Public
7   License as published by the Free Software Foundation; either
8   version 2.1 of the License, or (at your option) any later version.
9
10   The GNU C Library is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13   Lesser General Public License for more details.
14
15   You should have received a copy of the GNU Lesser General Public
16   License along with the GNU C Library; if not, write to the Free
17   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18   02111-1307 USA.  */
19
20/*
21 *	POSIX Standard: 6.5 File Control Operations	<fcntl.h>
22 */
23
24#ifndef	_FCNTL_H
25#define	_FCNTL_H	1
26
27#include <features.h>
28
29/* This must be early so <bits/fcntl.h> can define types winningly.  */
30__BEGIN_DECLS
31
32/* Get the definitions of O_*, F_*, FD_*: all the
33   numbers and flag bits for `open', `fcntl', et al.  */
34#include <bits/fcntl.h>
35
36/* For XPG all symbols from <sys/stat.h> should also be available.  */
37#ifdef __USE_XOPEN
38# include <sys/stat.h>
39#endif
40
41#ifdef	__USE_MISC
42# ifndef R_OK			/* Verbatim from <unistd.h>.  Ugh.  */
43/* Values for the second argument to access.
44   These may be OR'd together.  */
45#  define R_OK	4		/* Test for read permission.  */
46#  define W_OK	2		/* Test for write permission.  */
47#  define X_OK	1		/* Test for execute permission.  */
48#  define F_OK	0		/* Test for existence.  */
49# endif
50#endif /* Use misc.  */
51
52/* XPG wants the following symbols.  */
53#ifdef __USE_XOPEN		/* <stdio.h> has the same definitions.  */
54# define SEEK_SET	0	/* Seek from beginning of file.  */
55# define SEEK_CUR	1	/* Seek from current position.  */
56# define SEEK_END	2	/* Seek from end of file.  */
57#endif	/* XPG */
58
59#ifdef __USE_ATFILE
60# define AT_FDCWD		-100	/* Special value used to indicate
61					   the *at functions should use the
62					   current working directory. */
63# define AT_SYMLINK_NOFOLLOW	0x100	/* Do not follow symbolic links.  */
64# define AT_REMOVEDIR		0x200	/* Remove directory instead of
65					   unlinking file.  */
66# define AT_SYMLINK_FOLLOW	0x400	/* Follow symbolic links.  */
67# define AT_EACCESS		0x200	/* Test access permitted for
68					   effective IDs, not real IDs.  */
69#endif
70
71/* Do the file control operation described by CMD on FD.
72   The remaining arguments are interpreted depending on CMD.
73
74   This function is a cancellation point and therefore not marked with
75   __THROW.  */
76#if !defined(__USE_FILE_OFFSET64) || defined(__LP64__)
77extern int fcntl (int __fd, int __cmd, ...);
78#else
79# ifdef __REDIRECT
80extern int __REDIRECT (fcntl, (int __fd, int __cmd, ...), fcntl64);
81# else
82#  define fcntl fcntl64
83# endif
84#endif
85#if defined(__USE_LARGEFILE64) && !defined(__LP64__)
86extern int fcntl64 (int __fd, int __cmd, ...);
87#endif
88
89/* Open FILE and return a new file descriptor for it, or -1 on error.
90   OFLAG determines the type of access used.  If O_CREAT is on OFLAG,
91   the third argument is taken as a `mode_t', the mode of the created file.
92
93   This function is a cancellation point and therefore not marked with
94   __THROW.  */
95#ifndef __USE_FILE_OFFSET64
96extern int open (__const char *__file, int __oflag, ...) __nonnull ((1));
97#else
98# ifdef __REDIRECT
99extern int __REDIRECT (open, (__const char *__file, int __oflag, ...), open64)
100     __nonnull ((1));
101# else
102#  define open open64
103# endif
104#endif
105#ifdef __USE_LARGEFILE64
106extern int open64 (__const char *__file, int __oflag, ...) __nonnull ((1));
107#endif
108
109#ifdef __USE_ATFILE
110/* Similar to `open' but a relative path name is interpreted relative to
111   the directory for which FD is a descriptor.
112
113   NOTE: some other `openat' implementation support additional functionality
114   through this interface, especially using the O_XATTR flag.  This is not
115   yet supported here.
116
117   This function is a cancellation point and therefore not marked with
118   __THROW.  */
119# ifndef __USE_FILE_OFFSET64
120extern int openat (int __fd, __const char *__file, int __oflag, ...)
121     __nonnull ((2));
122# else
123#  ifdef __REDIRECT
124extern int __REDIRECT (openat, (int __fd, __const char *__file, int __oflag,
125				...), openat64) __nonnull ((2));
126#  else
127#   define openat openat64
128#  endif
129# endif
130
131extern int openat64 (int __fd, __const char *__file, int __oflag, ...)
132     __nonnull ((2));
133#endif
134
135/* Create and open FILE, with mode MODE.  This takes an `int' MODE
136   argument because that is what `mode_t' will be widened to.
137
138   This function is a cancellation point and therefore not marked with
139   __THROW.  */
140#ifndef __USE_FILE_OFFSET64
141extern int creat (__const char *__file, __mode_t __mode) __nonnull ((1));
142#else
143# ifdef __REDIRECT
144extern int __REDIRECT (creat, (__const char *__file, __mode_t __mode),
145		       creat64) __nonnull ((1));
146# else
147#  define creat creat64
148# endif
149#endif
150#ifdef __USE_LARGEFILE64
151extern int creat64 (__const char *__file, __mode_t __mode) __nonnull ((1));
152#endif
153
154#if !defined F_LOCK && (defined __USE_MISC || (defined __USE_XOPEN_EXTENDED \
155					       && !defined __USE_POSIX))
156/* NOTE: These declarations also appear in <unistd.h>; be sure to keep both
157   files consistent.  Some systems have them there and some here, and some
158   software depends on the macros being defined without including both.  */
159
160/* `lockf' is a simpler interface to the locking facilities of `fcntl'.
161   LEN is always relative to the current file position.
162   The CMD argument is one of the following.  */
163
164# define F_ULOCK 0	/* Unlock a previously locked region.  */
165# define F_LOCK  1	/* Lock a region for exclusive use.  */
166# define F_TLOCK 2	/* Test and lock a region for exclusive use.  */
167# define F_TEST  3	/* Test a region for other processes locks.  */
168
169# ifndef __USE_FILE_OFFSET64
170extern int lockf (int __fd, int __cmd, __off_t __len);
171# else
172#  ifdef __REDIRECT
173extern int __REDIRECT (lockf, (int __fd, int __cmd, __off64_t __len), lockf64);
174#  else
175#   define lockf lockf64
176#  endif
177# endif
178# ifdef __USE_LARGEFILE64
179extern int lockf64 (int __fd, int __cmd, __off64_t __len);
180# endif
181#endif
182
183#if defined __USE_XOPEN2K && defined __UCLIBC_HAS_ADVANCED_REALTIME__
184/* Advice the system about the expected behaviour of the application with
185   respect to the file associated with FD.  */
186# ifndef __USE_FILE_OFFSET64
187extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len,
188			  int __advise) __THROW;
189# else
190#  ifdef __REDIRECT_NTH
191extern int __REDIRECT_NTH (posix_fadvise, (int __fd, __off64_t __offset,
192					   __off64_t __len, int __advise),
193			   posix_fadvise64);
194#  else
195#   define posix_fadvise posix_fadvise64
196#  endif
197# endif
198# ifdef __USE_LARGEFILE64
199extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len,
200			    int __advise) __THROW;
201# endif
202
203#endif
204
205#if 0 /* && defined __UCLIBC_HAS_ADVANCED_REALTIME__ */
206
207/* FIXME -- uClibc should probably implement these... */
208
209/* Reserve storage for the data of the file associated with FD.
210
211   This function is a possible cancellation points and therefore not
212   marked with __THROW.  */
213# ifndef __USE_FILE_OFFSET64
214extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len);
215# else
216#  ifdef __REDIRECT
217extern int __REDIRECT (posix_fallocate, (int __fd, __off64_t __offset,
218					 __off64_t __len),
219		       posix_fallocate64);
220#  else
221#   define posix_fallocate posix_fallocate64
222#  endif
223# endif
224# ifdef __USE_LARGEFILE64
225extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len);
226# endif
227#endif
228
229
230__END_DECLS
231
232#endif /* fcntl.h  */
233