fcntl.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. #include <linux/config.h>
  11. #define O_APPEND 0x0008
  12. #define O_SYNC 0x0010
  13. #define O_NONBLOCK 0x0080
  14. #define O_CREAT 0x0100 /* not fcntl */
  15. #define O_EXCL 0x0400 /* not fcntl */
  16. #define O_NOCTTY 0x0800 /* not fcntl */
  17. #define FASYNC 0x1000 /* fcntl, for BSD compatibility */
  18. #define O_LARGEFILE 0x2000 /* allow large file opens */
  19. #define O_DIRECT 0x8000 /* direct disk access hint */
  20. #define F_GETLK 14
  21. #define F_SETLK 6
  22. #define F_SETLKW 7
  23. #define F_SETOWN 24 /* for sockets. */
  24. #define F_GETOWN 23 /* for sockets. */
  25. #define F_SETSIG 10 /* for sockets. */
  26. #define F_GETSIG 11 /* for sockets. */
  27. #ifndef __mips64
  28. #define F_GETLK64 33 /* using 'struct flock64' */
  29. #define F_SETLK64 34
  30. #define F_SETLKW64 35
  31. #endif
  32. /*
  33. * The flavours of struct flock. "struct flock" is the ABI compliant
  34. * variant. Finally struct flock64 is the LFS variant of struct flock. As
  35. * a historic accident and inconsistence with the ABI definition it doesn't
  36. * contain all the same fields as struct flock.
  37. */
  38. #ifdef CONFIG_32BIT
  39. struct flock {
  40. short l_type;
  41. short l_whence;
  42. off_t l_start;
  43. off_t l_len;
  44. long l_sysid;
  45. __kernel_pid_t l_pid;
  46. long pad[4];
  47. };
  48. #define HAVE_ARCH_STRUCT_FLOCK
  49. #endif /* CONFIG_32BIT */
  50. #include <asm-generic/fcntl.h>
  51. #endif /* _ASM_FCNTL_H */