125 lines
3.6 KiB
C
125 lines
3.6 KiB
C
|
/*
|
||
|
* FCntl.h -- faccess(), fcntl(), and open() mode flags
|
||
|
*
|
||
|
* Portions copyright American Telephone & Telegraph
|
||
|
* Used with permission, Apple Computer Inc. (1985,1988,1990,1992)
|
||
|
* All rights reserved.
|
||
|
*/
|
||
|
|
||
|
#ifndef __FCNTL__
|
||
|
#define __FCNTL__
|
||
|
|
||
|
#ifndef __TYPES__
|
||
|
#include <Types.h>
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* For use by lseek():
|
||
|
*/
|
||
|
|
||
|
#ifndef __STDIO__ /* these defns exactly paralled in StdIO.h for fseek() */
|
||
|
#define SEEK_CUR 1
|
||
|
#define SEEK_END 2
|
||
|
#define SEEK_SET 0
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* faccess() commands; for general use
|
||
|
*/
|
||
|
/* 'd' => "directory" ops */
|
||
|
#define F_DELETE (('d'<<8)|0x01)
|
||
|
#define F_RENAME (('d'<<8)|0x02)
|
||
|
|
||
|
/*
|
||
|
* more faccess() commands; for use only by MPW tools
|
||
|
*/
|
||
|
|
||
|
#define F_OPEN (('d'<<8)|0x00) /* reserved for operating system use */
|
||
|
/* 'e' => "editor" ops */
|
||
|
#define F_GTABINFO (('e'<<8)|0x00) /* get tab offset for file */
|
||
|
#define F_STABINFO (('e'<<8)|0x01) /* set " " " " */
|
||
|
#define F_GFONTINFO (('e'<<8)|0x02) /* get font number and size for file */
|
||
|
#define F_SFONTINFO (('e'<<8)|0x03) /* set " " " " " " */
|
||
|
#define F_GPRINTREC (('e'<<8)|0x04) /* get print record for file */
|
||
|
#define F_SPRINTREC (('e'<<8)|0x05) /* set " " " " */
|
||
|
#define F_GSELINFO (('e'<<8)|0x06) /* get selection information for file */
|
||
|
#define F_SSELINFO (('e'<<8)|0x07) /* set " " " " */
|
||
|
#define F_GWININFO (('e'<<8)|0x08) /* get current window position */
|
||
|
#define F_SWININFO (('e'<<8)|0x09) /* set " " " */
|
||
|
#define F_GSCROLLINFO (('e'<<8)|0x0A) /* get scroll information */
|
||
|
#define F_SSCROLLINFO (('e'<<8)|0x0B) /* set " " */
|
||
|
#define F_GMARKER (('e'<<8)|0x0D) /* Get Marker */
|
||
|
#define F_SMARKER (('e'<<8)|0x0C) /* Set " */
|
||
|
#define F_GSAVEONCLOSE (('e'<<8)|0x0F) /* Get Save on close */
|
||
|
#define F_SSAVEONCLOSE (('e'<<8)|0x0E) /* Set " " " */
|
||
|
|
||
|
/*
|
||
|
* argument structures used by various faccess() commands
|
||
|
*/
|
||
|
|
||
|
struct MarkElement {
|
||
|
int start; /* start position of mark */
|
||
|
int end; /* end position */
|
||
|
unsigned char charCount; /* number of chars in mark name */
|
||
|
char name[64]; /* mark name */
|
||
|
} ; /* note: marker names may be up to 64 characters long */
|
||
|
|
||
|
#ifndef __cplusplus
|
||
|
typedef struct MarkElement MarkElement;
|
||
|
#endif
|
||
|
|
||
|
struct SelectionRecord {
|
||
|
long startingPos;
|
||
|
long endingPos;
|
||
|
long displayTop;
|
||
|
};
|
||
|
|
||
|
#ifndef __cplusplus
|
||
|
typedef struct SelectionRecord SelectionRecord;
|
||
|
#endif
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Mode values accessible to open()
|
||
|
*/
|
||
|
#define O_RDONLY 0 /* Bits 0 and 1 are used internally */
|
||
|
#define O_WRONLY 1 /* Values 0..2 are historical */
|
||
|
#define O_RDWR 2 /* NOTE: it goes 0, 1, 2, *!* 8, 16, 32, ... */
|
||
|
#define O_APPEND (1<< 3) /* append (writes guaranteed at the end) */
|
||
|
#define O_RSRC (1<< 4) /* Open the resource fork */
|
||
|
#define O_ALIAS (1<< 5) /* Open alias file */
|
||
|
#define O_CREAT (1<< 8) /* Open with file create */
|
||
|
#define O_TRUNC (1<< 9) /* Open with truncation */
|
||
|
#define O_EXCL (1<<10) /* w/ O_CREAT: Exclusive "create-only" */
|
||
|
#define O_BINARY (1<<11) /* Open as a binary stream */
|
||
|
#define O_NRESOLVE (1<<14) /* Don't resolve any aliases */
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* function prototypes
|
||
|
*/
|
||
|
int close(int);
|
||
|
int creat(const char*);
|
||
|
int dup(int filedes); /* OBSOLETE: fcntl(filedes, F_DUPFD, 0) is preferred */
|
||
|
int faccess(char*, unsigned int, long*);
|
||
|
int fcntl(int, unsigned int, int);
|
||
|
long lseek(int, long, int);
|
||
|
int open(const char*, int, ...);
|
||
|
int read(int, char*, unsigned);
|
||
|
int unlink(char*);
|
||
|
int write(int, const char*, unsigned);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* fcntl() commands
|
||
|
*/
|
||
|
#define F_DUPFD 0 /* Duplicate files (file descriptor) */
|
||
|
|
||
|
#endif __FCNTL__
|