| 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__ | 
|---|