+++ /dev/null
-/* $Id: fcntl.h,v 1.6 2002/10/29 04:45:08 rex Exp $
- */
-/*
- * fcntl.h
- *
- * file control options. Conforming to the Single UNIX(r) Specification
- * Version 2, System Interface & Headers Issue 5
- *
- * This file is part of the ReactOS Operating System.
- *
- * Contributors:
- * Created by KJK::Hyperion <noog@libero.it>
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-#ifndef __FCNTL_H_INCLUDED__
-#define __FCNTL_H_INCLUDED__
-
-/* INCLUDES */
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-/* OBJECTS */
-
-/* TYPES */
-/*
- the structure flock describes a file lock
- */
-struct flock
-{
- short l_type; /* type of lock; F_RDLCK, F_WRLCK, F_UNLCK */
- short l_whence; /* flag for starting offset */
- off_t l_start; /* relative offset in bytes */
- off_t l_len; /* size; if 0 then until EOF */
- pid_t l_pid; /* process ID of the process holding the lock;
- returned with F_GETLK */
-};
-
-/* CONSTANTS */
-/*
- values for cmd used by fcntl()
- */
-enum __fcntl_cmd
-{
- F_DUPFD, /* duplicate file descriptor */
- F_GETFD, /* get file descriptor flags */
- F_GETLK, /* get record locking information */
- F_SETFD, /* set file descriptor flags */
- F_GETFL, /* get file status flags and file access modes */
- F_SETFL, /* set file status flags */
- F_SETLK, /* set record locking information */
- F_SETLKW, /* set record locking information; wait if blocked */
-/* ReactOS-specific */
- F_NEWFD, /* create new file descriptor */
- F_DELFD, /* delete file descriptor */
- F_GETALL, /* get a copy of the internal descriptor object */
- F_SETALL, /* initialize internal descriptor object */
- F_GETXP, /* get file descriptor extra data pointer */
- F_SETXP, /* set file descriptor extra data pointer */
- F_GETXS, /* get file descriptor extra data size */
- F_SETXS, /* set file descriptor extra data size */
- F_GETFH, /* get file handle */
- F_SETFH /* set file handle */
-};
-
-/*
- file descriptor flags used for fcntl()
- */
-/* Close the file descriptor upon execution of an exec family function. */
-#define FD_CLOEXEC (0x00000001)
-
-/*
- values for l_type used for record locking with fcntl()
- */
-/* Shared or read lock. */
-#define F_RDLCK (1)
-/* Unlock. */
-#define F_UNLCK (2)
-/* Exclusive or write lock. */
-#define F_WRLCK (3)
-
-/*
- file flags used for open()
- */
-/* Create file if it does not exist. */
-#define O_CREAT (0x00000100)
-/* Truncate flag. */
-#define O_TRUNC (0x00000200)
-/* Exclusive use flag. */
-#define O_EXCL (0x00000400)
-/* Do not assign controlling terminal. */
-#define O_NOCTTY (0x00000800)
-/* ReactOS-specific */
-/* File must be a directory */
-#define _O_DIRFILE (0x00100000)
-
-/*
- file status flags used for open() and fcntl()
- */
-/* Set append mode. */
-#define O_APPEND (0x00000008)
-/* Non-blocking mode. */
-#define O_NONBLOCK (0x00001000)
-/* Write according to synchronised I/O data integrity completion. */
-#define O_DSYNC (0x00002000)
-/* Synchronised read I/O operations. */
-#define O_RSYNC (0x00004000)
-/* Write according to synchronised I/O file integrity completion. */
-#define O_SYNC (0x00008000)
-
-/*
- file access modes used for open() and fcntl()
- */
-/* Open for reading only. */
-#define O_RDONLY (0x00000000)
-/* Open for writing only. */
-#define O_WRONLY (0x00000001)
-/* Open for reading and writing. */
-#define O_RDWR (0x00000002)
-
-/*
- mask for use with file access modes
- */
-#define O_ACCMODE (0x00000007)
-
-/* PROTOTYPES */
-int creat(const char *, mode_t);
-int fcntl(int, int, ...);
-int open(const char *, int, ...);
-
-int _Wcreat(const wchar_t *, mode_t);
-int _Wopen(const wchar_t *, int, ...);
-
-/* MACROS */
-
-#endif /* __FCNTL_H_INCLUDED__ */
-
-/* EOF */
-