ftp.nice.ch/pub/next/developer/languages/c/gcc.2.7.2.2.N.b.tar.gz#/lib/gcc-lib/m68k-next-nextstep3/2.7.2.2.f.2/include/bsd/sys/fcntl.h

This is fcntl.h in view mode; [Download] [Up]

/*	@(#)fcntl.h	2.2 88/05/26 NFSSRC4.0 SMI; from UCB 5.1 85/05/30	*/
/*
 * Copyright (c) 1983 Regents of the University of California.
 * All rights reserved.  The Berkeley software License Agreement
 * specifies the terms and conditions for redistribution.
 *
 * HISTORY
 *  7-Jan-93  Mac Gillon (mgillon) at NeXT
 *	Integrated POSIX support
 *
 * 27-Sep-89  Morris Meyer (mmeyer) at NeXT
 *	NFS 4.0 Changes: addition of FSYNC flag for synchronous writes
 *
 * 19-Oct-87  Peter King (king) at NeXT, Inc.
 *	Original Sun file.  Moved FNOSPC
 */

#ifndef __FCNTL_HEADER__
#define __FCNTL_HEADER__

#ifndef KERNEL
	#include <standards.h>
#endif

#if defined(_POSIX_SOURCE) && !defined(KERNEL)
	#include <sys/types.h>
#endif	/* _POSIX_SOURCE  & !KERNEL */

/*
 * Flag values accessible to open(2) and fcntl(2)
 *  (The first three can only be set by open)
 */
#if defined(_POSIX_SOURCE) || defined(_NEXT_SOURCE)
	#define	O_RDONLY	000
	#define	O_WRONLY	001
	#define	O_RDWR		002

	#define	O_APPEND	00010	/* append (writes guaranteed */
					/* at the end) */
	#define	O_CREAT		01000	/* open with file create */
	#define	O_TRUNC		02000	/* open with truncation */
	#define	O_EXCL		04000	/* error on create if file */
					/* exists */
#endif /* _POSIX_SOURCE || _NEXT_SOURCE */

#ifdef _POSIX_SOURCE
	#define O_ACCMODE	003	/* mask for file access modes */
	#define O_NONBLOCK	00004	/* non-blocking open */
	#define O_NOCTTY	00020	/* do not acquire a */
					/* controlling terminal */
#endif /* _POSIX_SOURCE */

#ifdef _NEXT_SOURCE
	#define	O_NDELAY	FNDELAY	/* Non-blocking I/O */
	#define	O_SYNC		FSYNC	/* Synchronous writes */

	#ifdef NeXT
		#define	O_POPUP	   0x80000000   /* force window to */
						/* popup on open */
		#define	O_NO_MFS   0x40000000   /* don't use mapped */
						/* files */
		#define	O_ALERT	   0x20000000	/* small, clean popup */
						/* window */
	#endif /* NeXT */
#endif	/* _NEXT_SOURCE */

/* flags for F_GETFL, F_SETFL-- needed by <sys/file.h> */
#ifdef _NEXT_SOURCE
	#define	FNDELAY		00004		/* non-blocking reads */
	#define	FAPPEND		00010		/* append on each */
						/* write */
	#define	FASYNC		00100		/* signal pgrp when */
						/* data */
						/* ready */
	#define	FCREAT		01000		/* create if */
						/* nonexistant */
	#define	FTRUNC		02000		/* truncate to zero */
						/* length */
	#define	FEXCL		04000		/* error if already */
						/* created */
	/* CS_RPAUSE */
	#define	FNOSPC		010000		/* disable resource */
						/* pause */
						/* for file */
	/* CS_RPAUSE */
	#define	FSYNC		01000000	/* Synchronous writes */

	/* fcntl(2) requests */
	#define	F_GETOWN 	5		/* Get owner */
	#define F_SETOWN 	6		/* Set owner */

#endif /* _NEXT_SOURCE */

/* fcntl(2) requests */
#if defined(_POSIX_SOURCE) || defined(_NEXT_SOURCE)
	#define	F_DUPFD	0	/* Duplicate fildes */
	#define	F_GETFD	1	/* Get fildes flags */
	#define	F_SETFD	2	/* Set fildes flags */
	#define	F_GETFL	3	/* Get file flags */
	#define	F_SETFL	4	/* Set file flags */
	#define F_GETLK  7      /* Get record-locking information */
	#define F_SETLK  8      /* Set or Clear a record-lock */
				/* (Non-Blocking) */
	#define F_SETLKW 9      /* Set or Clear a record-lock */
				/* (Blocking) */
#endif /* _POSIX_SOURCE || _NEXT_SOURCE */

#if POSIX_KERN
	#define _POSIX_FILE_FLAGS	(O_NO_MFS | FNOSPC)
#endif  /* POSIX_KERN */

/* access(2) requests */
#if defined(_POSIX_SOURCE) || defined(_NEXT_SOURCE)
	#define	F_OK		0	/* does file exist */
	#define	X_OK		1	/* is it executable by caller */
	#define	W_OK		2	/* writable by caller */
	#define	R_OK		4	/* readable by caller */
#endif /* _POSIX_SOURCE || _NEXT_SOURCE */

/* System-V record-locking options */
/* lockf(2) requests */
#ifdef _NEXT_SOURCE 
	#define F_ULOCK 0       /* Unlock a previously locked region */
	#define F_LOCK  1       /* Lock a region for exclusive use */ 
	#define F_TLOCK 2       /* Test and lock a region for */
				/* exclusive use */
	#define F_TEST  3       /* Test a region for other processes locks */
#endif /* _NEXT_SOURCE */

/* fcntl(2) flags (l_type field of flock structure) */
#if defined(_POSIX_SOURCE) || defined(_NEXT_SOURCE)
	#define F_RDLCK 1       /* read lock */
	#define F_WRLCK 2       /* write lock */
	#define F_UNLCK 3       /* remove lock(s) */
#endif /* _POSIX_SOURCE || _NEXT_SOURCE */

#ifdef _POSIX_SOURCE
	#define FD_CLOEXEC	01	/* Close on exec flag */
#endif 	/* _POSIX_SOURCE */


/* file segment locking set data type - information passed to 
 * system by user */
struct flock {
#if defined(_POSIX_SOURCE) || defined(_NEXT_SOURCE)
       	short   l_type;		/* F_RDLCK, F_WRLCK, or F_UNLCK */
       	short   l_whence;	/* flag to choose starting offset */
#if defined(_POSIX_SOURCE) && !defined(KERNEL)
       	off_t	l_start;	/* relative offset, in bytes */
       	off_t	l_len;          /* length, in bytes; 0 means lock */
				/* to EOF */
#else	/* _POSIX_SOURCE && !KERNEL */
       	long    l_start;	/* relative offset, in bytes */
       	long    l_len;          /* length, in bytes; 0 means lock */
				/* to EOF */
#endif	/* _POSIX_SOURCE && !KERNEL */
#if defined(_POSIX_SOURCE)
       	pid_t	l_pid;		/* returned with F_GETLK */	
#else	/* _POSIX_SOURCE */
       	short   l_pid;		/* returned with F_GETLK */
#endif	/* _POSIX_SOURCE */
       	short   l_xxx;		/* reserved for future use */
#endif /* _POSIX_SOURCE) || _NEXT_SOURCE */
};

#if defined(_POSIX_SOURCE) && !defined(KERNEL)
	#ifdef __STDC__
		extern creat(const char *path, mode_t mode);
		extern fcntl(int fildes, int cmd, ...);
		extern open(const char *path, int oflag, ...);
	#else
		extern creat();
		extern fcntl();
		extern open();
	#endif	/* __STDC__ */
#endif /* _POSIX_SOURCE && !KERNEL */
#endif

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.