1 /*
2  * Copyright (c) 1992-1998 Michael A. Cooper.
3  * This software may be freely used and distributed provided it is not
4  * sold for profit or used in part or in whole for commercial gain
5  * without prior written agreement, and the author is credited
6  * appropriately.
7  */
8 
9 /*
10  * $Id: os-unicos.h,v 6.5 1998/11/10 04:00:07 mcooper Exp $
11  * @(#)os-unicos.h
12  */
13 
14 /*
15  * Unicos
16  */
17 
18 /*
19  * Define the following name for use in #ifdef's.
20  * The value should be all upper-case with no periods (.).
21  */
22 #if	!defined(UNICOS)
23 #define UNICOS
24 #endif
25 
26 /*
27  * Set process args to messages that show up when running ps(1)
28  *
29  * Under some OS's, the SETARGS code will cause ": is not an identifier"
30  * errors for "special" commands.
31  */
32 #define SETARGS
33 
34 /*
35  * Define the type of directory routines your system has.
36  */
37 #define DIR_TYPE	DIR_DIRENT
38 
39 /*
40  * Determine what routines we have to get filesystem info.
41  */
42 #define FSI_TYPE	FSI_GETMNTENT2
43 
44 /*
45  * Type of non-blocking I/O.
46  */
47 #define NBIO_TYPE	NBIO_FCNTL
48 
49 /*
50  * Type of wait() function to use.
51  */
52 #define WAIT_TYPE	WAIT_WAITPID
53 
54 /*
55  * Type of argument passed to wait() (above).
56  */
57 #define WAIT_ARG_TYPE	int
58 
59 /*
60  * Select the type of executable file format.
61  */
62 #define EXE_TYPE	EXE_AOUT
63 
64 /*
65  * Select the type of statfs() system call (if any).
66  */
67 #define STATFS_TYPE	STATFS_SYSV
68 
69 /*
70  * Type of arg functions we have.
71  */
72 #define ARG_TYPE	ARG_VARARGS
73 
74 /*
75  * System V compatibility
76  */
77 #include <string.h>
78 
79 #define bcopy(a,b,c) 	memcpy(b,a,c)
80 #define bzero(a,b) 	memset(a,0,b)
81 #define setlinebuf(a)	setvbuf(a, NULL, _IOLBF, BUFSIZ)
82 
83 /*
84  * UID argument type for chown()
85  */
86 typedef int CHOWN_UID_T;
87 
88 /*
89  * GID argument type for chown()
90  */
91 typedef int CHOWN_GID_T;
92 
93 /*
94  * Our types
95  */
96 typedef long UID_T;	/* Must be signed */
97 typedef long GID_T;	/* Must be signed */
98 
99 #define MAXPATHLEN	PATH_MAX
100 #define N_BADMAG	BADMAG
101 
102 #define mnt_special	mt_filsys
103 #define mnt_fstype	mt_fstyp
104 #define mnt_mntopts	mt_mntopts
105 #define mnt_mountp	mt_dev
106 #define target		utarget
107 
108 /*
109  * Generic pointer, used by memcpy, malloc, etc.  Usually char or void.
110  */
111 typedef void POINTER;
112 
113 /*
114  * Type of set file time function available
115  */
116 #define SETFTIME_TYPE   SETFTIME_UTIMES
117 
118 /*
119  * Things we have
120  */
121 #define HAVE_FCHOWN			/* Have fchown() */
122 #define HAVE_FCHMOD			/* Have fchmod() */
123 #define HAVE_SELECT			/* Have select() */
124 /*#define HAVE_SAVED_IDS		/* Have POSIX style saved [ug]id's */
125 #ifndef POSIX_SIGNALS
126 #define POSIX_SIGNALS			/* Have POSIX signals */
127 #endif
128 
129 /*
130  * Things we need
131  */
132 #define NEED_UNISTD_H			/* Need <unistd.h> */
133 #define NEED_FCNTL_H			/* Need <fcntl.h> */
134 
135 /*
136  * Miscellaneous
137  */
138 #define MNTENT_H	<mntent.h>	/* Name of mntent.h include file */
139 #define MNTTAB_H	<mnttab.h>	/* Name of mnttab.h include file */
140 
141 /*
142  * Mount table
143  */
144 #ifndef MNTTAB
145 #define MNTTAB   "/etc/mnttab
146 #endif
147