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-tracebsd.h,v 6.6 1998/11/10 04:00:06 mcooper Exp $
11  * @(#)os-tracebsd.h
12  */
13 
14 /*
15  * Multiflow TRACEBSD
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(TRACEBSD)
23 #define TRACEBSD
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_DIRECT
38 
39 /*
40  * Determine what routines we have to get filesystem info.
41  */
42 #define FSI_TYPE	FSI_GETMNTENT
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_WAIT3
53 
54 /*
55  * Type of argument passed to wait() (above).
56  */
57 #define WAIT_ARG_TYPE	union wait
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_BSD
68 
69 /*
70  * Type of arg functions we have.
71  */
72 #define ARG_TYPE	ARG_VARARGS
73 
74 /*
75  * Do we have select()?
76  */
77 #define HAVE_SELECT
78 
79 /*
80  * UID argument type for chown()
81  */
82 typedef uid_t CHOWN_UID_T;
83 
84 /*
85  * GID argument type for chown()
86  */
87 typedef int CHOWN_GID_T;
88 
89 /*
90  * Our types, usually these are uid_t and gid_t.
91  */
92 typedef int UID_T;	/* Must be signed */
93 typedef int GID_T;	/* Must be signed */
94 
95 /*
96  * Generic pointer, used by memcpy, malloc, etc.  Usually char or void.
97  */
98 typedef char POINTER;
99 
100 /*
101  * OS doesn't define pid_t
102  */
103 typedef int pid_t;
104 
105 /*
106  * Type of set file time function available
107  */
108 #define SETFTIME_TYPE	SETFTIME_UTIMES
109 
110 /*
111  * We have fchown()
112  */
113 #define HAVE_FCHOWN
114 
115 /*
116  * We have fchmod()
117  */
118 #define HAVE_FCHMOD
119