linux/arch/mips/include/asm/fcntl.h
<<
>>
Prefs
   1/*
   2 * This file is subject to the terms and conditions of the GNU General Public
   3 * License.  See the file "COPYING" in the main directory of this archive
   4 * for more details.
   5 *
   6 * Copyright (C) 1995, 96, 97, 98, 99, 2003, 05 Ralf Baechle
   7 */
   8#ifndef _ASM_FCNTL_H
   9#define _ASM_FCNTL_H
  10
  11
  12#define O_APPEND        0x0008
  13#define O_DSYNC         0x0010  /* used to be O_SYNC, see below */
  14#define O_NONBLOCK      0x0080
  15#define O_CREAT         0x0100  /* not fcntl */
  16#define O_TRUNC         0x0200  /* not fcntl */
  17#define O_EXCL          0x0400  /* not fcntl */
  18#define O_NOCTTY        0x0800  /* not fcntl */
  19#define FASYNC          0x1000  /* fcntl, for BSD compatibility */
  20#define O_LARGEFILE     0x2000  /* allow large file opens */
  21/*
  22 * Before Linux 2.6.33 only O_DSYNC semantics were implemented, but using
  23 * the O_SYNC flag.  We continue to use the existing numerical value
  24 * for O_DSYNC semantics now, but using the correct symbolic name for it.
  25 * This new value is used to request true Posix O_SYNC semantics.  It is
  26 * defined in this strange way to make sure applications compiled against
  27 * new headers get at least O_DSYNC semantics on older kernels.
  28 *
  29 * This has the nice side-effect that we can simply test for O_DSYNC
  30 * wherever we do not care if O_DSYNC or O_SYNC is used.
  31 *
  32 * Note: __O_SYNC must never be used directly.
  33 */
  34#define __O_SYNC        0x4000
  35#define O_SYNC          (__O_SYNC|O_DSYNC)
  36#define O_DIRECT        0x8000  /* direct disk access hint */
  37
  38#define F_GETLK         14
  39#define F_SETLK         6
  40#define F_SETLKW        7
  41
  42#define F_SETOWN        24      /*  for sockets. */
  43#define F_GETOWN        23      /*  for sockets. */
  44
  45#ifndef __mips64
  46#define F_GETLK64       33      /*  using 'struct flock64' */
  47#define F_SETLK64       34
  48#define F_SETLKW64      35
  49#endif
  50
  51/*
  52 * The flavours of struct flock.  "struct flock" is the ABI compliant
  53 * variant.  Finally struct flock64 is the LFS variant of struct flock.  As
  54 * a historic accident and inconsistence with the ABI definition it doesn't
  55 * contain all the same fields as struct flock.
  56 */
  57
  58#ifdef CONFIG_32BIT
  59#include <linux/types.h>
  60
  61struct flock {
  62        short   l_type;
  63        short   l_whence;
  64        off_t   l_start;
  65        off_t   l_len;
  66        long    l_sysid;
  67        __kernel_pid_t l_pid;
  68        long    pad[4];
  69};
  70
  71#define HAVE_ARCH_STRUCT_FLOCK
  72
  73#endif /* CONFIG_32BIT */
  74
  75#include <asm-generic/fcntl.h>
  76
  77#endif /* _ASM_FCNTL_H */
  78