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