gpiolib: gpio_to_irq() hooks
[safe/jmp/linux-2.6] / include / asm-generic / fcntl.h
index f3690e7..b847741 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef _ASM_GENERIC_FCNTL_H
 #define _ASM_GENERIC_FCNTL_H
 
+#include <linux/types.h>
+
 /* open/fcntl - O_SYNC is only implemented on blocks devices and on files
    located on an ext2 file system */
 #define O_ACCMODE      00000003
@@ -46,6 +48,9 @@
 #ifndef O_NOATIME
 #define O_NOATIME      01000000
 #endif
+#ifndef O_CLOEXEC
+#define O_CLOEXEC      02000000        /* set close_on_exec */
+#endif
 #ifndef O_NDELAY
 #define O_NDELAY       O_NONBLOCK
 #endif
 #define F_SETFD                2       /* set/clear close_on_exec */
 #define F_GETFL                3       /* get file->f_flags */
 #define F_SETFL                4       /* set file->f_flags */
+#ifndef F_GETLK
+#define F_GETLK                5
+#define F_SETLK                6
+#define F_SETLKW       7
+#endif
+#ifndef F_SETOWN
+#define F_SETOWN       8       /* for sockets. */
+#define F_GETOWN       9       /* for sockets. */
+#endif
+#ifndef F_SETSIG
+#define F_SETSIG       10      /* for sockets. */
+#define F_GETSIG       11      /* for sockets. */
+#endif
 
 /* for F_[GET|SET]FL */
 #define FD_CLOEXEC     1       /* actually anything with low bit set goes */
 
+/* for posix fcntl() and lockf() */
+#ifndef F_RDLCK
+#define F_RDLCK                0
+#define F_WRLCK                1
+#define F_UNLCK                2
+#endif
+
+/* for old implementation of bsd flock () */
+#ifndef F_EXLCK
+#define F_EXLCK                4       /* or 3 */
+#define F_SHLCK                8       /* or 4 */
+#endif
+
+/* for leases */
+#ifndef F_INPROGRESS
+#define F_INPROGRESS   16
+#endif
+
 /* operations for bsd flock(), also used by the kernel implementation */
 #define LOCK_SH                1       /* shared lock */
 #define LOCK_EX                2       /* exclusive lock */
 
 #define F_LINUX_SPECIFIC_BASE  1024
 
+#ifndef HAVE_ARCH_STRUCT_FLOCK
+#ifndef __ARCH_FLOCK_PAD
+#define __ARCH_FLOCK_PAD
+#endif
+
+struct flock {
+       short   l_type;
+       short   l_whence;
+       off_t   l_start;
+       off_t   l_len;
+       pid_t   l_pid;
+       __ARCH_FLOCK_PAD
+};
+#endif
+
+#ifndef CONFIG_64BIT
+
+#ifndef F_GETLK64
+#define F_GETLK64      12      /*  using 'struct flock64' */
+#define F_SETLK64      13
+#define F_SETLKW64     14
+#endif
+
+#ifndef HAVE_ARCH_STRUCT_FLOCK64
+#ifndef __ARCH_FLOCK64_PAD
+#define __ARCH_FLOCK64_PAD
+#endif
+
+struct flock64 {
+       short  l_type;
+       short  l_whence;
+       loff_t l_start;
+       loff_t l_len;
+       pid_t  l_pid;
+       __ARCH_FLOCK64_PAD
+};
+#endif
+#endif /* !CONFIG_64BIT */
+
 #endif /* _ASM_GENERIC_FCNTL_H */