diff options
author | Vincent Torri <vincent.torri@gmail.com> | 2012-09-11 16:13:11 +0000 |
---|---|---|
committer | Vincent Torri <vincent.torri@gmail.com> | 2012-09-11 16:13:11 +0000 |
commit | cd69ef4c8a66e7155967a8b661a014856979cf31 (patch) | |
tree | 4a351ae4a4ca91abf29c85254b85ea8da71f74b0 /src/lib/evil/evil_fcntl.h | |
parent | 59a9dfd11860888a35e96dfe51af63cea5cecfe1 (diff) | |
download | efl-cd69ef4c8a66e7155967a8b661a014856979cf31.tar.gz |
merge: add evil files
SVN revision: 76464
Diffstat (limited to 'src/lib/evil/evil_fcntl.h')
-rw-r--r-- | src/lib/evil/evil_fcntl.h | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/src/lib/evil/evil_fcntl.h b/src/lib/evil/evil_fcntl.h new file mode 100644 index 0000000000..194341b369 --- /dev/null +++ b/src/lib/evil/evil_fcntl.h @@ -0,0 +1,110 @@ +#ifndef __EVIL_FCNTL_H__ +#define __EVIL_FCNTL_H__ + + +# include <sys/types.h> + + +/** + * @def FD_CLOEXEC + * Specifies that the file descriptor should be closed when an exec() + * function is invoked. + */ +# define FD_CLOEXEC 1 + +/** + * @def O_NONBLOCK + * Specifies that the socket is in non-blocking mode. + */ +# define O_NONBLOCK 04000 + +/** + * @def F_SETFD + * Specifies that fcntl() should set the file descriptor flags + * associated with the filedes argument. + */ + +/** + * @def F_SETLK + * Specifies that fcntl() should set or clear a file segment lock + * according to the lock description pointed to by the third argument. + */ + +/** + * @def F_SETLKW + * Equivalent to F_SETLK except that if a shared or exclusive lock + * is blocked by other locks, the thread shall wait until the request + * can be satisfied. + */ + +# define F_GETFD 1 +# define F_SETFD 2 +# define F_SETFL 4 +# define F_SETLK 6 +# define F_SETLKW 7 + +/** + * @def F_RDLCK + * Read (or shared) lock + */ + +/** + * @def F_WRLCK + * Write (or exclusive) lock + */ + +/** + * @def F_UNLCK + * Remove lock + */ + +# ifndef F_RDLCK +# define F_RDLCK 0 +# define F_WRLCK 1 +# define F_UNLCK 2 +# endif /* ! F_RDLCK */ + +/** + * @struct flock + * @brief A structure that controls the lock of a file descriptor. + */ +struct flock +{ + short int l_type; /**< lock type: read, write, ... */ + short int l_whence; /**< type of l_start */ + off_t l_start; /**< starting offset */ + off_t l_len; /**< 0 means end of the file */ + pid_t l_pid; /**< lock owner */ +}; + + +/** + * @brief Provide control over file descriptors. + * + * @param fd The file descriptor. + * @param cmd The type of control. + * @return 0 on success, -1 otherwise. + * + * Performs one of various miscellaneous operations on @p fd. + * The operation in question is determined by @p cmd: + * + * - F_SETFD: Set the close-on-exec flag to the value specified + * by the argument after command (only the least significant + * bit is used). + * - F_SETLK and F_SETLKW: used to manage discretionary file locks. + * The third argument must be a pointer to a struct flock (that + * may be overwritten by this call). + * + * This function returns 0 on success, -1 otherwise. + * + * Conformity: None. + * + * Supported OS: Windows Vista, Windows XP or Windows 2000 + * Professional. + * + * @ingroup Evil + */ +EAPI int fcntl(int fd, int cmd, ...); + + +#endif /* __EVIL_FCNTL_H__ */ |