xref: /openbsd-src/gnu/usr.bin/binutils/include/mpw/fcntl.h (revision 2159047f7a97bd07d66507696a8b038f6aef0509)
1*2159047fSniklas /*
2*2159047fSniklas  * FCntl.h -- faccess(), fcntl(), and open() mode flags
3*2159047fSniklas  *
4*2159047fSniklas  * Portions copyright American Telephone & Telegraph
5*2159047fSniklas  * Used with permission, Apple Computer Inc. (1985,1988,1990,1992)
6*2159047fSniklas  * All rights reserved.
7*2159047fSniklas  */
8*2159047fSniklas 
9*2159047fSniklas #ifndef __FCNTL__
10*2159047fSniklas #define __FCNTL__
11*2159047fSniklas 
12*2159047fSniklas #ifndef __TYPES__
13*2159047fSniklas #include <Types.h>
14*2159047fSniklas #endif
15*2159047fSniklas 
16*2159047fSniklas /*
17*2159047fSniklas  *	For use by lseek():
18*2159047fSniklas  */
19*2159047fSniklas 
20*2159047fSniklas #ifndef __STDIO__			/* these defns exactly paralled in StdIO.h for fseek() */
21*2159047fSniklas #define SEEK_CUR	1
22*2159047fSniklas #define SEEK_END	2
23*2159047fSniklas #define SEEK_SET	0
24*2159047fSniklas #endif
25*2159047fSniklas 
26*2159047fSniklas /*
27*2159047fSniklas  * faccess() commands; for general use
28*2159047fSniklas  */
29*2159047fSniklas  					/* 'd' => "directory" ops */
30*2159047fSniklas #define F_DELETE		(('d'<<8)|0x01)
31*2159047fSniklas #define F_RENAME		(('d'<<8)|0x02)
32*2159047fSniklas 
33*2159047fSniklas /*
34*2159047fSniklas  * more faccess() commands; for use only by MPW tools
35*2159047fSniklas  */
36*2159047fSniklas 
37*2159047fSniklas #define F_OPEN 			(('d'<<8)|0x00)		/* reserved for operating system use */
38*2159047fSniklas 					/* 'e' => "editor" ops */
39*2159047fSniklas #define F_GTABINFO 		(('e'<<8)|0x00)		/* get tab offset for file */
40*2159047fSniklas #define F_STABINFO 		(('e'<<8)|0x01)		/* set 	"	"		"	"  */
41*2159047fSniklas #define F_GFONTINFO		(('e'<<8)|0x02)		/* get font number and size for file */
42*2159047fSniklas #define F_SFONTINFO		(('e'<<8)|0x03)		/* set 	"		"	"	"	"	" 	 */
43*2159047fSniklas #define F_GPRINTREC		(('e'<<8)|0x04)		/* get print record for file */
44*2159047fSniklas #define F_SPRINTREC		(('e'<<8)|0x05)		/* set 	"		"	"	" 	 */
45*2159047fSniklas #define F_GSELINFO 		(('e'<<8)|0x06)		/* get selection information for file */
46*2159047fSniklas #define F_SSELINFO 		(('e'<<8)|0x07)		/* set		"		"		"		" */
47*2159047fSniklas #define F_GWININFO 		(('e'<<8)|0x08)		/* get current window position */
48*2159047fSniklas #define F_SWININFO 		(('e'<<8)|0x09)		/* set	"		"		" 	   */
49*2159047fSniklas #define F_GSCROLLINFO	(('e'<<8)|0x0A)		/* get scroll information */
50*2159047fSniklas #define F_SSCROLLINFO	(('e'<<8)|0x0B)		/* set    "   		"  	  */
51*2159047fSniklas #define F_GMARKER		(('e'<<8)|0x0D)		/* Get Marker */
52*2159047fSniklas #define F_SMARKER		(('e'<<8)|0x0C)		/* Set   " 	  */
53*2159047fSniklas #define F_GSAVEONCLOSE	(('e'<<8)|0x0F)		/* Get Save on close */
54*2159047fSniklas #define F_SSAVEONCLOSE	(('e'<<8)|0x0E)		/* Set   "	 "	 " 	 */
55*2159047fSniklas 
56*2159047fSniklas /*
57*2159047fSniklas  *	argument structures used by various faccess() commands
58*2159047fSniklas  */
59*2159047fSniklas 
60*2159047fSniklas struct MarkElement {
61*2159047fSniklas 	int				start;			/* start position of mark */
62*2159047fSniklas 	int				end;			/* end position */
63*2159047fSniklas 	unsigned char	charCount;		/* number of chars in mark name */
64*2159047fSniklas 	char			name[64];		/* mark name */
65*2159047fSniklas } ;									/* note: marker names may be up to 64 characters long */
66*2159047fSniklas 
67*2159047fSniklas #ifndef __cplusplus
68*2159047fSniklas typedef struct MarkElement MarkElement;
69*2159047fSniklas #endif
70*2159047fSniklas 
71*2159047fSniklas struct SelectionRecord {
72*2159047fSniklas 	long	startingPos;
73*2159047fSniklas 	long	endingPos;
74*2159047fSniklas 	long	displayTop;
75*2159047fSniklas };
76*2159047fSniklas 
77*2159047fSniklas #ifndef __cplusplus
78*2159047fSniklas typedef struct SelectionRecord SelectionRecord;
79*2159047fSniklas #endif
80*2159047fSniklas 
81*2159047fSniklas 
82*2159047fSniklas /*
83*2159047fSniklas  * Mode values accessible to open()
84*2159047fSniklas  */
85*2159047fSniklas #define O_RDONLY		 0 		/* Bits 0 and 1 are used internally */
86*2159047fSniklas #define O_WRONLY		 1 		/* Values 0..2 are historical */
87*2159047fSniklas #define O_RDWR 			 2		/* NOTE: it goes 0, 1, 2, *!* 8, 16, 32, ... */
88*2159047fSniklas #define O_APPEND	(1<< 3)		/* append (writes guaranteed at the end) */
89*2159047fSniklas #define O_RSRC 		(1<< 4)		/* Open the resource fork */
90*2159047fSniklas #define O_ALIAS		(1<< 5)		/* Open alias file */
91*2159047fSniklas #define O_CREAT		(1<< 8)		/* Open with file create */
92*2159047fSniklas #define O_TRUNC		(1<< 9)		/* Open with truncation */
93*2159047fSniklas #define O_EXCL 		(1<<10) 	/* w/ O_CREAT:  Exclusive "create-only" */
94*2159047fSniklas #define O_BINARY	(1<<11) 	/* Open as a binary stream */
95*2159047fSniklas #define O_NRESOLVE	(1<<14)		/* Don't resolve any aliases */
96*2159047fSniklas 
97*2159047fSniklas #ifdef __cplusplus
98*2159047fSniklas extern "C" {
99*2159047fSniklas #endif
100*2159047fSniklas 
101*2159047fSniklas /*
102*2159047fSniklas  *		function prototypes
103*2159047fSniklas  */
104*2159047fSniklas int  close(int);
105*2159047fSniklas int  creat(const char*);
106*2159047fSniklas int	 dup(int filedes);		/* OBSOLETE: fcntl(filedes, F_DUPFD, 0) is preferred */
107*2159047fSniklas int	 faccess(char*, unsigned int, long*);
108*2159047fSniklas int  fcntl(int, unsigned int, int);
109*2159047fSniklas long lseek(int, long, int);
110*2159047fSniklas int  open(const char*, int, ...);
111*2159047fSniklas int  read(int, char*, unsigned);
112*2159047fSniklas int  unlink(char*);
113*2159047fSniklas int  write(int, const char*, unsigned);
114*2159047fSniklas 
115*2159047fSniklas #ifdef __cplusplus
116*2159047fSniklas }
117*2159047fSniklas #endif
118*2159047fSniklas 
119*2159047fSniklas /*
120*2159047fSniklas  * fcntl() commands
121*2159047fSniklas  */
122*2159047fSniklas #define F_DUPFD 0	   /* Duplicate files (file descriptor) */
123*2159047fSniklas 
124*2159047fSniklas #endif __FCNTL__
125