linux_fcntl.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /* $OpenBSD: linux_fcntl.h,v 1.4 2011/04/05 22:54:30 pirofti Exp $ */
  2. /* $NetBSD: linux_fcntl.h,v 1.1 1995/02/28 23:25:40 fvdl Exp $ */
  3. /*
  4. * Copyright (c) 1995 Frank van der Linden
  5. * All rights reserved.
  6. *
  7. * Redistribution and use in source and binary forms, with or without
  8. * modification, are permitted provided that the following conditions
  9. * are met:
  10. * 1. Redistributions of source code must retain the above copyright
  11. * notice, this list of conditions and the following disclaimer.
  12. * 2. Redistributions in binary form must reproduce the above copyright
  13. * notice, this list of conditions and the following disclaimer in the
  14. * documentation and/or other materials provided with the distribution.
  15. * 3. All advertising materials mentioning features or use of this software
  16. * must display the following acknowledgement:
  17. * This product includes software developed for the NetBSD Project
  18. * by Frank van der Linden
  19. * 4. The name of the author may not be used to endorse or promote products
  20. * derived from this software without specific prior written permission
  21. *
  22. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  23. * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  24. * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  25. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  26. * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  27. * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  28. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  29. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  30. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  31. * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  32. */
  33. /*
  34. * Various flag values used in Linux for open(2) and fcntl(2).
  35. */
  36. #ifndef _LINUX_FCNTL_H_
  37. #define _LINUX_FCNTL_H_
  38. /* read/write mode for open(2) (as usual) */
  39. #define LINUX_O_RDONLY 0x0000
  40. #define LINUX_O_WRONLY 0x0001
  41. #define LINUX_O_RDWR 0x0002
  42. #define LINUX_O_ACCMODE 0x0003
  43. /* flags used in open(2) */
  44. #define LINUX_O_CREAT 0x0040
  45. #define LINUX_O_EXCL 0x0080
  46. #define LINUX_O_NOCTTY 0x0100
  47. #define LINUX_O_TRUNC 0x0200
  48. #define LINUX_O_APPEND 0x0400
  49. #define LINUX_O_NDELAY 0x0800
  50. #define LINUX_O_SYNC 0x1000
  51. #define LINUX_FASYNC 0x2000
  52. /* fcntl(2) operations */
  53. #define LINUX_F_DUPFD 0
  54. #define LINUX_F_GETFD 1
  55. #define LINUX_F_SETFD 2
  56. #define LINUX_F_GETFL 3
  57. #define LINUX_F_SETFL 4
  58. #define LINUX_F_GETLK 5
  59. #define LINUX_F_SETLK 6
  60. #define LINUX_F_SETLKW 7
  61. #define LINUX_F_SETOWN 8
  62. #define LINUX_F_GETOWN 9
  63. #define LINUX_F_GETLK64 12
  64. #define LINUX_F_SETLK64 13
  65. #define LINUX_F_SETLKW64 14
  66. #define LINUX_F_RDLCK 0
  67. #define LINUX_F_WRLCK 1
  68. #define LINUX_F_UNLCK 2
  69. #define LINUX_LOCK_EX 4
  70. #define LINUX_LOCK_SH 8
  71. /*
  72. * The arguments in the flock structure have a different order from the
  73. * BSD structure.
  74. */
  75. struct linux_flock {
  76. short l_type;
  77. short l_whence;
  78. linux_off_t l_start;
  79. linux_off_t l_len;
  80. linux_pid_t l_pid;
  81. };
  82. struct linux_flock64 {
  83. short l_type;
  84. short l_whence;
  85. linux_loff_t l_start;
  86. linux_loff_t l_len;
  87. linux_pid_t l_pid;
  88. };
  89. #endif /* _LINUX_FCNTL_H_ */