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