~ubuntu-branches/ubuntu/trusty/eglibc/trusty

« back to all changes in this revision

Viewing changes to .pc/any/submitted-bits-fcntl_h-at.diff/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h

  • Committer: Package Import Robot
  • Author(s): Adam Conrad
  • Date: 2013-01-10 18:39:35 UTC
  • mfrom: (1.5.2) (4.4.24 experimental)
  • Revision ID: package-import@ubuntu.com-20130110183935-afsgfxkmg7wk5eaj
Tags: 2.17-0ubuntu1
* Merge with Debian, bringing in a new upstream and many small fixes:
  - patches/any/cvs-malloc-deadlock.diff: Dropped, merged upstream.
  - patches/ubuntu/lddebug-scopes.diff: Rebase for upstream changes.
  - patches/ubuntu/local-CVE-2012-3406.diff: Rebased against upstream.
  - patches/ubuntu/no-asm-mtune-i686.diff: Fixed in recent binutils.
* This upstream merge fixes a nasty hang in pulseaudio (LP: #1085342)
* Bump MIN_KERNEL_SUPPORTED to 2.6.32 on ARM, now that we no longer
  have to support shonky 2.6.31 kernels on imx51 babbage builders.
* Drop patches/ubuntu/local-disable-nscd-host-caching.diff, as these
  issues were apparently resolved upstream a while ago (LP: #613662)
* Fix the compiled-in bug URL to point to launchpad.net, not Debian.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* O_*, F_*, FD_* bit values for Linux/SPARC.
2
 
   Copyright (C) 1995-1998, 2000, 2003, 2004, 2006, 2007, 2009, 2010, 2011
3
 
   Free Software Foundation, Inc.
4
 
   This file is part of the GNU C Library.
5
 
 
6
 
   The GNU C Library is free software; you can redistribute it and/or
7
 
   modify it under the terms of the GNU Lesser General Public
8
 
   License as published by the Free Software Foundation; either
9
 
   version 2.1 of the License, or (at your option) any later version.
10
 
 
11
 
   The GNU C Library is distributed in the hope that it will be useful,
12
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 
   Lesser General Public License for more details.
15
 
 
16
 
   You should have received a copy of the GNU Lesser General Public
17
 
   License along with the GNU C Library; if not, see
18
 
   <http://www.gnu.org/licenses/>.  */
19
 
 
20
 
#ifndef _FCNTL_H
21
 
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
22
 
#endif
23
 
 
24
 
#include <sys/types.h>
25
 
#include <bits/wordsize.h>
26
 
#ifdef __USE_GNU
27
 
# include <bits/uio.h>
28
 
#endif
29
 
 
30
 
/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
31
 
   located on a few file systems.  */
32
 
#define O_RDONLY        0x0000
33
 
#define O_WRONLY        0x0001
34
 
#define O_RDWR          0x0002
35
 
#define O_ACCMODE       0x0003
36
 
#define O_APPEND        0x0008
37
 
#define O_ASYNC         0x0040
38
 
#define O_CREAT         0x0200  /* not fcntl */
39
 
#define O_TRUNC         0x0400  /* not fcntl */
40
 
#define O_EXCL          0x0800  /* not fcntl */
41
 
#define O_SYNC          0x802000
42
 
#define O_FSYNC         O_SYNC
43
 
#define O_NONBLOCK      0x4000
44
 
#define O_NDELAY        (0x0004 | O_NONBLOCK)
45
 
#define O_NOCTTY        0x8000  /* not fcntl */
46
 
 
47
 
#ifdef __USE_XOPEN2K8
48
 
# define O_DIRECTORY    0x10000 /* must be a directory */
49
 
# define O_NOFOLLOW     0x20000 /* don't follow links */
50
 
# define O_CLOEXEC      0x400000 /* Set close_on_exit.  */
51
 
#endif
52
 
#ifdef __USE_GNU
53
 
# define O_DIRECT       0x100000 /* direct disk access hint */
54
 
# define O_NOATIME      0x200000 /* Do not set atime.  */
55
 
# define O_PATH         0x1000000 /* Resolve pathname but do not open file.  */
56
 
#endif
57
 
 
58
 
#ifdef __USE_LARGEFILE64
59
 
# if __WORDSIZE == 64
60
 
#  define O_LARGEFILE   0
61
 
# else
62
 
#  define O_LARGEFILE   0x40000
63
 
# endif
64
 
#endif
65
 
 
66
 
/* For now Linux has no synchronisity options for data and read
67
 
   operations.  We define the symbols here but let them do the same as
68
 
   O_SYNC since this is a superset.  */
69
 
#if defined __USE_POSIX199309 || defined __USE_UNIX98
70
 
# define O_DSYNC        0x2000  /* Synchronize data.  */
71
 
# define O_RSYNC        O_SYNC  /* Synchronize read operations.  */
72
 
#endif
73
 
 
74
 
/* Values for the second argument to `fcntl'.  */
75
 
#define F_DUPFD         0       /* Duplicate file descriptor.  */
76
 
#define F_GETFD         1       /* Get file descriptor flags.  */
77
 
#define F_SETFD         2       /* Set file descriptor flags.  */
78
 
#define F_GETFL         3       /* Get file status flags.  */
79
 
#define F_SETFL         4       /* Set file status flags.  */
80
 
#if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K8
81
 
# define F_GETOWN       5       /* Get owner (process receiving SIGIO).  */
82
 
# define F_SETOWN       6       /* Set owner (process receiving SIGIO).  */
83
 
#endif
84
 
#ifndef __USE_FILE_OFFSET64
85
 
# define F_GETLK        7       /* Get record locking info.  */
86
 
# define F_SETLK        8       /* Set record locking info (non-blocking).  */
87
 
# define F_SETLKW       9       /* Set record locking info (blocking).  */
88
 
#else
89
 
# define F_GETLK        F_GETLK64  /* Get record locking info.  */
90
 
# define F_SETLK        F_SETLK64  /* Set record locking info (non-blocking).*/
91
 
# define F_SETLKW       F_SETLKW64 /* Set record locking info (blocking).  */
92
 
#endif
93
 
 
94
 
#ifdef __USE_GNU
95
 
# define F_SETSIG       10      /* Set number of signal to be sent.  */
96
 
# define F_GETSIG       11      /* Get number of signal to be sent.  */
97
 
# define F_SETOWN_EX    15      /* Set owner (thread receiving SIGIO).  */
98
 
# define F_GETOWN_EX    16      /* Get owner (thread receiving SIGIO).  */
99
 
#endif
100
 
 
101
 
#ifdef __USE_GNU
102
 
# define F_SETLEASE     1024    /* Set a lease.  */
103
 
# define F_GETLEASE     1025    /* Enquire what lease is active.  */
104
 
# define F_NOTIFY       1026    /* Request notfications on a directory.  */
105
 
# define F_SETPIPE_SZ   1031    /* Set pipe page size array.  */
106
 
# define F_GETPIPE_SZ   1032    /* Set pipe page size array.  */
107
 
#endif
108
 
#ifdef __USE_XOPEN2K8
109
 
# define F_DUPFD_CLOEXEC 1030   /* Duplicate file descriptor with
110
 
                                   close-on-exit set.  */
111
 
#endif
112
 
 
113
 
#if __WORDSIZE == 64
114
 
# define F_GETLK64      7       /* Get record locking info.  */
115
 
# define F_SETLK64      8       /* Set record locking info (non-blocking).  */
116
 
# define F_SETLKW64     9       /* Set record locking info (blocking).  */
117
 
#else
118
 
# define F_GETLK64      12      /* Get record locking info.  */
119
 
# define F_SETLK64      13      /* Set record locking info (non-blocking).  */
120
 
# define F_SETLKW64     14      /* Set record locking info (blocking).  */
121
 
#endif
122
 
 
123
 
/* for F_[GET|SET]FD */
124
 
#define FD_CLOEXEC      1       /* actually anything with low bit set goes */
125
 
 
126
 
/* For posix fcntl() and `l_type' field of a `struct flock' for lockf().  */
127
 
#define F_RDLCK         1       /* Read lock.  */
128
 
#define F_WRLCK         2       /* Write lock.  */
129
 
#define F_UNLCK         3       /* Remove lock.  */
130
 
 
131
 
/* for old implementation of bsd flock () */
132
 
#define F_EXLCK         4       /* or 3 */
133
 
#define F_SHLCK         8       /* or 4 */
134
 
 
135
 
#ifdef __USE_BSD
136
 
/* Operations for bsd flock(), also used by the kernel implementation */
137
 
# define LOCK_SH        1       /* shared lock */
138
 
# define LOCK_EX        2       /* exclusive lock */
139
 
# define LOCK_NB        4       /* or'd with one of the above to prevent
140
 
                                   blocking */
141
 
# define LOCK_UN        8       /* remove lock */
142
 
#endif
143
 
 
144
 
#ifdef __USE_GNU
145
 
# define LOCK_MAND      32      /* This is a mandatory flock:   */
146
 
# define LOCK_READ      64      /* ... which allows concurrent read operations.  */
147
 
# define LOCK_WRITE     128     /* ... which allows concurrent write operations.  */
148
 
# define LOCK_RW        192     /* ... Which allows concurrent read & write operations.  */
149
 
#endif
150
 
 
151
 
#ifdef __USE_GNU
152
 
/* Types of directory notifications that may be requested with F_NOTIFY.  */
153
 
# define DN_ACCESS      0x00000001      /* File accessed.  */
154
 
# define DN_MODIFY      0x00000002      /* File modified.  */
155
 
# define DN_CREATE      0x00000004      /* File created.  */
156
 
# define DN_DELETE      0x00000008      /* File removed.  */
157
 
# define DN_RENAME      0x00000010      /* File renamed.  */
158
 
# define DN_ATTRIB      0x00000020      /* File changed attibutes.  */
159
 
# define DN_MULTISHOT   0x80000000      /* Don't remove notifier.  */
160
 
#endif
161
 
 
162
 
struct flock
163
 
  {
164
 
    short int l_type;   /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.  */
165
 
    short int l_whence; /* Where `l_start' is relative to (like `lseek').  */
166
 
#ifndef __USE_FILE_OFFSET64
167
 
    __off_t l_start;    /* Offset where the lock begins.  */
168
 
    __off_t l_len;      /* Size of the locked area; zero means until EOF.  */
169
 
#else
170
 
    __off64_t l_start;  /* Offset where the lock begins.  */
171
 
    __off64_t l_len;    /* Size of the locked area; zero means until EOF.  */
172
 
#endif
173
 
    __pid_t l_pid;      /* Process holding the lock.  */
174
 
    short int __unused;
175
 
  };
176
 
 
177
 
#ifdef __USE_LARGEFILE64
178
 
struct flock64
179
 
  {
180
 
    short int l_type;   /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.  */
181
 
    short int l_whence; /* Where `l_start' is relative to (like `lseek').  */
182
 
    __off64_t l_start;  /* Offset where the lock begins.  */
183
 
    __off64_t l_len;    /* Size of the locked area; zero means until EOF.  */
184
 
    __pid_t l_pid;      /* Process holding the lock.  */
185
 
    short int __unused;
186
 
  };
187
 
#endif
188
 
 
189
 
#ifdef __USE_GNU
190
 
/* Owner types.  */
191
 
enum __pid_type
192
 
  {
193
 
    F_OWNER_TID = 0,            /* Kernel thread.  */
194
 
    F_OWNER_PID,                /* Process.  */
195
 
    F_OWNER_PGRP,               /* Process group.  */
196
 
    F_OWNER_GID = F_OWNER_PGRP  /* Alternative, obsolete name.  */
197
 
  };
198
 
 
199
 
/* Structure to use with F_GETOWN_EX and F_SETOWN_EX.  */
200
 
struct f_owner_ex
201
 
  {
202
 
    enum __pid_type type;       /* Owner type of ID.  */
203
 
    __pid_t pid;                /* ID of owner.  */
204
 
  };
205
 
#endif
206
 
 
207
 
/* Define some more compatibility macros to be backward compatible with
208
 
   BSD systems which did not managed to hide these kernel macros.  */
209
 
#ifdef  __USE_BSD
210
 
# define FAPPEND        O_APPEND
211
 
# define FFSYNC         O_FSYNC
212
 
# define FASYNC         O_ASYNC
213
 
# define FNONBLOCK      O_NONBLOCK
214
 
# define FNDELAY        O_NDELAY
215
 
#endif /* Use BSD.  */
216
 
 
217
 
/* Advise to `posix_fadvise'.  */
218
 
#ifdef __USE_XOPEN2K
219
 
# define POSIX_FADV_NORMAL      0 /* No further special treatment.  */
220
 
# define POSIX_FADV_RANDOM      1 /* Expect random page references.  */
221
 
# define POSIX_FADV_SEQUENTIAL  2 /* Expect sequential page references.  */
222
 
# define POSIX_FADV_WILLNEED    3 /* Will need these pages.  */
223
 
# define POSIX_FADV_DONTNEED    4 /* Don't need these pages.  */
224
 
# define POSIX_FADV_NOREUSE     5 /* Data will be accessed once.  */
225
 
#endif
226
 
 
227
 
 
228
 
#ifdef __USE_GNU
229
 
/* Flags for SYNC_FILE_RANGE.  */
230
 
# define SYNC_FILE_RANGE_WAIT_BEFORE    1 /* Wait upon writeout of all pages
231
 
                                             in the range before performing the
232
 
                                             write.  */
233
 
# define SYNC_FILE_RANGE_WRITE          2 /* Initiate writeout of all those
234
 
                                             dirty pages in the range which are
235
 
                                             not presently under writeback.  */
236
 
# define SYNC_FILE_RANGE_WAIT_AFTER     4 /* Wait upon writeout of all pages in
237
 
                                             the range after performing the
238
 
                                             write.  */
239
 
 
240
 
/* Flags for SPLICE and VMSPLICE.  */
241
 
# define SPLICE_F_MOVE          1       /* Move pages instead of copying.  */
242
 
# define SPLICE_F_NONBLOCK      2       /* Don't block on the pipe splicing
243
 
                                           (but we may still block on the fd
244
 
                                           we splice from/to).  */
245
 
# define SPLICE_F_MORE          4       /* Expect more data.  */
246
 
# define SPLICE_F_GIFT          8       /* Pages passed in are a gift.  */
247
 
 
248
 
 
249
 
/* File handle structure.  */
250
 
struct file_handle
251
 
{
252
 
  unsigned int handle_bytes;
253
 
  int handle_type;
254
 
  /* File identifier.  */
255
 
  unsigned char f_handle[0];
256
 
};
257
 
 
258
 
/* Maximum handle size (for now).  */
259
 
# define MAX_HANDLE_SZ  128
260
 
#endif
261
 
 
262
 
__BEGIN_DECLS
263
 
 
264
 
#ifdef __USE_GNU
265
 
 
266
 
/* Provide kernel hint to read ahead.  */
267
 
extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
268
 
    __THROW;
269
 
 
270
 
 
271
 
/* Selective file content synch'ing.
272
 
 
273
 
   This function is a possible cancellation point and therefore not
274
 
   marked with __THROW.  */
275
 
extern int sync_file_range (int __fd, __off64_t __offset, __off64_t __count,
276
 
                            unsigned int __flags);
277
 
 
278
 
 
279
 
/* Splice address range into a pipe.  */
280
 
extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
281
 
                         size_t __count, unsigned int __flags);
282
 
 
283
 
/* Splice two files together.
284
 
 
285
 
   This function is a possible cancellation point and therefore not
286
 
   marked with __THROW.  */
287
 
extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
288
 
                       __off64_t *__offout, size_t __len,
289
 
                       unsigned int __flags);
290
 
 
291
 
/* In-kernel implementation of tee for pipe buffers.
292
 
 
293
 
   This function is a possible cancellation point and therefore not
294
 
   marked with __THROW.  */
295
 
extern ssize_t tee (int __fdin, int __fdout, size_t __len,
296
 
                    unsigned int __flags);
297
 
 
298
 
/* Reserve storage for the data of the file associated with FD.
299
 
 
300
 
   This function is a possible cancellation point and therefore not
301
 
   marked with __THROW.  */
302
 
# ifndef __USE_FILE_OFFSET64
303
 
extern int fallocate (int __fd, int __mode, __off_t __offset, __off_t __len);
304
 
# else
305
 
#  ifdef __REDIRECT
306
 
extern int __REDIRECT (fallocate, (int __fd, int __mode, __off64_t __offset,
307
 
                                   __off64_t __len),
308
 
                       fallocate64);
309
 
#  else
310
 
#   define fallocate fallocate64
311
 
#  endif
312
 
# endif
313
 
# ifdef __USE_LARGEFILE64
314
 
extern int fallocate64 (int __fd, int __mode, __off64_t __offset,
315
 
                        __off64_t __len);
316
 
# endif
317
 
 
318
 
 
319
 
/* Map file name to file handle.  */
320
 
extern int name_to_handle_at (int __dfd, const char *__name,
321
 
                              struct file_handle *__handle, int *__mnt_id,
322
 
                              int __flags) __THROW;
323
 
 
324
 
/* Open file using the file handle.
325
 
 
326
 
   This function is a possible cancellation point and therefore not
327
 
   marked with __THROW.  */
328
 
extern int open_by_handle_at (int __mountdirfd, struct file_handle *__handle,
329
 
                              int __flags);
330
 
 
331
 
#endif
332
 
 
333
 
__END_DECLS