1 | /*
|
---|
2 | * FCntl.h -- faccess(), fcntl(), and open() mode flags
|
---|
3 | *
|
---|
4 | * Portions copyright American Telephone & Telegraph
|
---|
5 | * Used with permission, Apple Computer Inc. (1985,1988,1990,1992)
|
---|
6 | * All rights reserved.
|
---|
7 | */
|
---|
8 |
|
---|
9 | #ifndef __FCNTL__
|
---|
10 | #define __FCNTL__
|
---|
11 |
|
---|
12 | #ifndef __TYPES__
|
---|
13 | #include <Types.h>
|
---|
14 | #endif
|
---|
15 |
|
---|
16 | /*
|
---|
17 | * For use by lseek():
|
---|
18 | */
|
---|
19 |
|
---|
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
|
---|
25 |
|
---|
26 | /*
|
---|
27 | * faccess() commands; for general use
|
---|
28 | */
|
---|
29 | /* 'd' => "directory" ops */
|
---|
30 | #define F_DELETE (('d'<<8)|0x01)
|
---|
31 | #define F_RENAME (('d'<<8)|0x02)
|
---|
32 |
|
---|
33 | /*
|
---|
34 | * more faccess() commands; for use only by MPW tools
|
---|
35 | */
|
---|
36 |
|
---|
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 " " " */
|
---|
55 |
|
---|
56 | /*
|
---|
57 | * argument structures used by various faccess() commands
|
---|
58 | */
|
---|
59 |
|
---|
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 */
|
---|
66 |
|
---|
67 | #ifndef __cplusplus
|
---|
68 | typedef struct MarkElement MarkElement;
|
---|
69 | #endif
|
---|
70 |
|
---|
71 | struct SelectionRecord {
|
---|
72 | long startingPos;
|
---|
73 | long endingPos;
|
---|
74 | long displayTop;
|
---|
75 | };
|
---|
76 |
|
---|
77 | #ifndef __cplusplus
|
---|
78 | typedef struct SelectionRecord SelectionRecord;
|
---|
79 | #endif
|
---|
80 |
|
---|
81 |
|
---|
82 | /*
|
---|
83 | * Mode values accessible to open()
|
---|
84 | */
|
---|
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 */
|
---|
96 |
|
---|
97 | #ifdef __cplusplus
|
---|
98 | extern "C" {
|
---|
99 | #endif
|
---|
100 |
|
---|
101 | /*
|
---|
102 | * function prototypes
|
---|
103 | */
|
---|
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);
|
---|
114 |
|
---|
115 | #ifdef __cplusplus
|
---|
116 | }
|
---|
117 | #endif
|
---|
118 |
|
---|
119 | /*
|
---|
120 | * fcntl() commands
|
---|
121 | */
|
---|
122 | #define F_DUPFD 0 /* Duplicate files (file descriptor) */
|
---|
123 |
|
---|
124 | #endif __FCNTL__
|
---|