2001-03-06 05:29:24 +08:00
|
|
|
/* fcntl.h
|
|
|
|
|
|
|
|
This file is part of Cygwin.
|
|
|
|
|
|
|
|
This software is a copyrighted work licensed under the terms of the
|
|
|
|
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
|
|
|
|
details. */
|
|
|
|
|
2000-02-18 03:38:33 +08:00
|
|
|
#ifndef _FCNTL_H
|
|
|
|
#define _FCNTL_H
|
|
|
|
|
2023-11-26 22:41:41 +08:00
|
|
|
#include <sys/cdefs.h>
|
2000-02-18 03:38:33 +08:00
|
|
|
#include <sys/fcntl.h>
|
2023-11-26 22:41:41 +08:00
|
|
|
|
2000-02-18 03:38:33 +08:00
|
|
|
#define O_NDELAY _FNDELAY
|
|
|
|
|
2013-06-02 18:22:14 +08:00
|
|
|
/* F_LCK_MANDATORY: Request mandatory locks for this file descriptor.
|
|
|
|
|
|
|
|
Cygwin extension to fcntl file locking mechanism. By default, fcntl file
|
|
|
|
locks are advisory locks. This works nicely as long as only Cygwin
|
|
|
|
processes interact. If you have the requirement to interact with native
|
|
|
|
Windows applications which use Windows mandatory file locking, your have
|
|
|
|
to use mandatory locking as well. The command
|
2020-03-11 20:28:27 +08:00
|
|
|
|
2013-06-02 18:22:14 +08:00
|
|
|
fcntl (fd, F_LCK_MANDATORY, 1)
|
|
|
|
|
|
|
|
switches subsequent F_GETLK, F_SETLK, F_SETLKW calls to mandatory locking
|
|
|
|
for this file descriptor and subsequently duplicated ones WITHIN THE SAME
|
|
|
|
PROCESS. Note that mandatory locks are NOT inherited by child processes,
|
|
|
|
nor do they survive an execve call. This fully corresponds to Windows
|
|
|
|
mandatory locking semantics. */
|
|
|
|
#define F_LCK_MANDATORY 0x99
|
|
|
|
|
2010-01-14 00:51:37 +08:00
|
|
|
/* POSIX-1.2008 requires this flag and allows to set it to 0 if its
|
|
|
|
functionality is not required. */
|
|
|
|
#define O_TTY_INIT 0
|
|
|
|
|
2006-08-08 03:29:14 +08:00
|
|
|
#define POSIX_FADV_NORMAL 0
|
|
|
|
#define POSIX_FADV_SEQUENTIAL 1
|
|
|
|
#define POSIX_FADV_RANDOM 2
|
|
|
|
#define POSIX_FADV_WILLNEED 3
|
|
|
|
#define POSIX_FADV_DONTNEED 4
|
|
|
|
#define POSIX_FADV_NOREUSE 5
|
|
|
|
|
2023-11-27 04:05:07 +08:00
|
|
|
#if __GNU_VISIBLE
|
|
|
|
#define FALLOC_FL_PUNCH_HOLE 0x0001
|
|
|
|
#define FALLOC_FL_ZERO_RANGE 0x0002
|
|
|
|
#define FALLOC_FL_UNSHARE_RANGE 0x0004
|
|
|
|
#define FALLOC_FL_COLLAPSE_RANGE 0x0008
|
|
|
|
#define FALLOC_FL_INSERT_RANGE 0x0010
|
|
|
|
#define FALLOC_FL_KEEP_SIZE 0x1000
|
|
|
|
/* Internal flags */
|
|
|
|
#define __FALLOC_FL_TRUNCATE 0x2000
|
2023-11-28 17:42:52 +08:00
|
|
|
#define __FALLOC_FL_ZERO_HOLES 0x4000
|
2023-11-27 04:05:07 +08:00
|
|
|
#endif
|
2023-11-26 19:50:38 +08:00
|
|
|
|
2023-11-26 22:41:41 +08:00
|
|
|
__BEGIN_DECLS
|
2023-11-26 19:50:38 +08:00
|
|
|
|
2017-12-04 10:41:16 +08:00
|
|
|
extern int posix_fadvise (int, off_t, off_t, int);
|
|
|
|
extern int posix_fallocate (int, off_t, off_t);
|
2023-11-27 04:05:07 +08:00
|
|
|
#if __GNU_VISIBLE
|
|
|
|
extern int fallocate (int, int, off_t, off_t);
|
|
|
|
#endif
|
2023-11-26 22:41:41 +08:00
|
|
|
|
|
|
|
__END_DECLS
|
2006-08-08 03:29:14 +08:00
|
|
|
|
2000-02-18 03:38:33 +08:00
|
|
|
#endif /* _FCNTL_H */
|