Pristine Ack-5.5
[Ack-5.5.git] / modules / src / system / system.h
1 /*
2  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
3  * See the copyright notice in the ACK home directory, in the file "Copyright".
4  */
5 /* RCS: $Id: system.h,v 1.7 1994/06/24 11:25:02 ceriel Exp $ */
6 #ifndef __SYSTEM_INCLUDED__
7 #define __SYSTEM_INCLUDED__
8
9 #include <ansi.h>
10
11 struct _sys_fildes {
12         int o_fd;       /* UNIX filedescriptor */
13         int o_flags;    /* flags for open; 0 if not used */
14 };
15
16 typedef struct _sys_fildes File;
17
18 extern File _sys_ftab[];
19
20 /* flags for sys_open() */
21 #define OP_READ         01
22 #define OP_WRITE        02
23 #define OP_APPEND       04
24
25 /* flags for sys_access() */
26 #define AC_EXIST        00
27 #define AC_READ         04
28 #define AC_WRITE        02
29 #define AC_EXEC         01
30
31 /* flags for sys_stop() */
32 #define S_END   0
33 #define S_EXIT  1
34 #define S_ABORT 2
35
36 _PROTOTYPE(int sys_open, (char *, int, File **));
37 _PROTOTYPE(void sys_close, (File *));
38 _PROTOTYPE(int sys_read, (File *, char *, int, int *));
39 _PROTOTYPE(int sys_write, (File *, char *, int));
40 _PROTOTYPE(int sys_seek, (File *, long, int, long *));
41 _PROTOTYPE(int sys_reset, (File *));
42 _PROTOTYPE(int sys_access, (char *, int));
43 _PROTOTYPE(int sys_remove, (char *));
44 _PROTOTYPE(int sys_rename, (char *, char *));
45 _PROTOTYPE(long sys_filesize, (char *));
46 _PROTOTYPE(int sys_chmode, (char *, int));
47 _PROTOTYPE(int sys_lock, (char *));
48 _PROTOTYPE(int sys_unlock, (char *));
49 _PROTOTYPE(char *sys_break, (int));
50 _PROTOTYPE(void sys_stop, (int));
51 _PROTOTYPE(long sys_time, (void));
52 _PROTOTYPE(long sys_modtime, (char *));
53
54 /* standard file decsriptors */
55 #define STDIN   &_sys_ftab[0]
56 #define STDOUT  &_sys_ftab[1]
57 #define STDERR  &_sys_ftab[2]
58
59 /* maximum number of open files */
60 #define SYS_NOPEN       20
61
62 /* return value for sys_break */
63 #define ILL_BREAK       ((char *)0)
64
65 /* system's idea of block */
66 #define BUFSIZ  1024
67 #endif /* __SYSTEM_INCLUDED__ */