Imported Upstream version 4.89
[platform/upstream/lsof.git] / proto.h
1 /*
2  * proto.h - common function prototypes for lsof
3  */
4
5
6 /*
7  * Copyright 1994 Purdue Research Foundation, West Lafayette, Indiana
8  * 47907.  All rights reserved.
9  *
10  * Written by Victor A. Abell
11  *
12  * This software is not subject to any license of the American Telephone
13  * and Telegraph Company or the Regents of the University of California.
14  *
15  * Permission is granted to anyone to use this software for any purpose on
16  * any computer system, and to alter it and redistribute it freely, subject
17  * to the following restrictions:
18  *
19  * 1. Neither the authors nor Purdue University are responsible for any
20  *    consequences of the use of this software.
21  *
22  * 2. The origin of this software must not be misrepresented, either by
23  *    explicit claim or by omission.  Credit to the authors and Purdue
24  *    University must appear in documentation and sources.
25  *
26  * 3. Altered versions must be plainly marked as such, and must not be
27  *    misrepresented as being the original software.
28  *
29  * 4. This notice may not be removed or altered.
30  */
31
32
33 /*
34  * $Id: proto.h,v 1.38 2015/07/07 20:16:58 abe Exp $
35  */
36
37
38 #if     !defined(PROTO_H)
39 #define PROTO_H 1
40
41
42 /*
43  * The _PROTOTYPE macro provides strict ANSI C prototypes if __STDC__
44  * is defined, and old-style K&R prototypes otherwise.
45  *
46  * (With thanks to Andy Tanenbaum)
47  */
48
49 # if    defined(__STDC__)
50 #define _PROTOTYPE(function, params)    function params
51 # else  /* !defined(__STDC__) */
52 #define _PROTOTYPE(function, params)    function()
53 # endif /* defined(__STDC__) */
54
55
56 /*
57  * The following define keeps gcc>=2.7 from complaining about the failure
58  * of the Exit() function to return.
59  *
60  * Paul Eggert supplied it.
61  */
62
63 # if    defined(__GNUC__) && !(__GNUC__<2 || (__GNUC__==2 && __GNUC_MINOR__<7))
64 #define exiting __attribute__((__noreturn__))
65 # else  /* !gcc || gcc<2.7 */
66 #define exiting
67 # endif /* gcc && gcc>=2.7 */
68
69
70 _PROTOTYPE(extern void add_nma,(char *cp, int len));
71 _PROTOTYPE(extern void alloc_lfile,(char *nm, int num));
72 _PROTOTYPE(extern void alloc_lproc,(int pid, int pgid, int ppid, UID_ARG uid, char *cmd, int pss, int sf));
73 _PROTOTYPE(extern void build_IPstates,(void));
74 _PROTOTYPE(extern void childx,(void));
75 _PROTOTYPE(extern int ck_fd_status,(char *nm, int num));
76 _PROTOTYPE(extern int ck_file_arg,(int i, int ac, char *av[], int fv, int rs, struct stat *sbp));
77 _PROTOTYPE(extern void ckkv,(char *d, char *er, char *ev, char *ea));
78 _PROTOTYPE(extern void clr_devtab,(void));
79 _PROTOTYPE(extern int compdev,(COMP_P *a1, COMP_P *a2));
80 _PROTOTYPE(extern int comppid,(COMP_P *a1, COMP_P *a2));
81
82 # if    defined(WILLDROPGID)
83 _PROTOTYPE(extern void dropgid,(void));
84 # endif /* defined(WILLDROPGID) */
85
86 _PROTOTYPE(extern char *endnm,(size_t *sz));
87 _PROTOTYPE(extern int enter_cmd_rx,(char *x));
88 _PROTOTYPE(extern void enter_dev_ch,(char *m));
89 _PROTOTYPE(extern int enter_dir,(char *d, int descend));
90
91 # if    defined(HASEOPT)
92 _PROTOTYPE(extern int enter_efsys,(char *e, int rdlnk));
93 # endif /* defined(HASEOPT) */
94
95 _PROTOTYPE(extern int enter_fd,(char *f));
96 _PROTOTYPE(extern int enter_network_address,(char *na));
97 _PROTOTYPE(extern int enter_id,(enum IDType ty, char *p));
98 _PROTOTYPE(extern void enter_IPstate,(char *ty, char *nm, int nr));
99 _PROTOTYPE(extern void enter_nm,(char *m));
100
101 # if    defined(HASTCPUDPSTATE)
102 _PROTOTYPE(extern int enter_state_spec,(char *ss));
103 # endif /* defined(HASTCPUDPSTATE) */
104
105 _PROTOTYPE(extern int enter_str_lst,(char *opt, char *s, struct str_lst **lp,
106                                      int *incl, int *excl));
107 _PROTOTYPE(extern int enter_uid,(char *us));
108 _PROTOTYPE(extern void ent_inaddr,(unsigned char *la, int lp, unsigned char *fa, int fp, int af));
109 _PROTOTYPE(extern int examine_lproc,(void));
110 _PROTOTYPE(extern void Exit,(int xv)) exiting;
111 _PROTOTYPE(extern void find_ch_ino,(void));
112
113 # if    defined(HASEPTOPTS)
114 _PROTOTYPE(extern void clear_pinfo,(void));
115 _PROTOTYPE(extern pxinfo_t *find_pendinfo,(struct lfile *lf, pxinfo_t *pp));
116 _PROTOTYPE(extern void process_pinfo,(int f));
117 #  if   defined(HASUXSOCKEPT)
118 _PROTOTYPE(extern struct uxsin *find_uxsepti,(struct lfile *lf));
119 _PROTOTYPE(extern void process_uxsinfo,(int f));
120 #  endif        /* defined(HASUXSOCKEPT) */
121 # endif /* defined(HASEPTOPTS) */
122
123 _PROTOTYPE(extern void free_lproc,(struct lproc *lp));
124 _PROTOTYPE(extern void gather_proc_info,(void));
125 _PROTOTYPE(extern char *gethostnm,(unsigned char *ia, int af));
126
127 # if    !defined(GET_MAX_FD)
128 /*
129  * This is not strictly a prototype, but GET_MAX_FD is the name of the
130  * function that, in lieu of getdtablesize(), returns the maximum file
131  * descriptor plus one (or file descriptor count).  GET_MAX_FD may be
132  * defined in the dialect's machine.h.  If it is not, the following
133  * selects getdtablesize().
134  */
135
136 #define GET_MAX_FD      getdtablesize
137 # endif /* !defined(GET_MAX_FD) */
138
139 _PROTOTYPE(extern int hashbyname,(char *nm, int mod));
140 _PROTOTYPE(extern void hashSfile,(void));
141 _PROTOTYPE(extern void initialize,(void));
142 _PROTOTYPE(extern int is_cmd_excl,(char *cmd, short *pss, short *sf));
143 _PROTOTYPE(extern int is_nw_addr,(unsigned char *ia, int p, int af));
144
145 #if     defined(HASTASKS)
146 _PROTOTYPE(extern int is_proc_excl,(int pid, int pgid, UID_ARG uid, short *pss, short *sf, int tid));
147 #else   /* !defined(HASTASKS) */
148 _PROTOTYPE(extern int is_proc_excl,(int pid, int pgid, UID_ARG uid, short *pss, short *sf));
149 #endif  /* defined(HASTASKS) */
150
151 _PROTOTYPE(extern int is_readable,(char *path, int msg));
152 _PROTOTYPE(extern int kread,(KA_T addr, char *buf, READLEN_T len));
153 _PROTOTYPE(extern void link_lfile,(void));
154 _PROTOTYPE(extern struct l_dev *lkupdev,(dev_t *dev,dev_t *rdev,int i,int r));
155 _PROTOTYPE(extern int main,(int argc, char *argv[]));
156 _PROTOTYPE(extern int lstatsafely,(char *path, struct stat *buf));
157 _PROTOTYPE(extern char *mkstrcpy,(char *src, MALLOC_S *rlp));
158 _PROTOTYPE(extern char *mkstrcat,(char *s1, int l1, char *s2, int l2, char *s3, int l3, MALLOC_S *clp));
159 _PROTOTYPE(extern int printdevname,(dev_t *dev, dev_t *rdev, int f, int nty));
160 _PROTOTYPE(extern void print_file,(void));
161 _PROTOTYPE(extern void print_init,(void));
162 _PROTOTYPE(extern void printname,(int nl));
163 _PROTOTYPE(extern char *print_kptr,(KA_T kp, char *buf, size_t bufl));
164 _PROTOTYPE(extern int print_proc,(void));
165 _PROTOTYPE(extern void printrawaddr,(struct sockaddr *sa));
166 _PROTOTYPE(extern void print_tcptpi,(int nl));
167 _PROTOTYPE(extern char *printuid,(UID_ARG uid, int *ty));
168 _PROTOTYPE(extern void printunkaf,(int fam, int ty));
169 _PROTOTYPE(extern char *printsockty,(int ty));
170 _PROTOTYPE(extern void process_file,(KA_T fp));
171 _PROTOTYPE(extern void process_node,(KA_T f));
172 _PROTOTYPE(extern char *Readlink,(char *arg));
173 _PROTOTYPE(extern void readdev,(int skip));
174 _PROTOTYPE(extern struct mounts *readmnt,(void));
175 _PROTOTYPE(extern void rereaddev,(void));
176 _PROTOTYPE(extern char *safepup,(unsigned int c, int *cl));
177 _PROTOTYPE(extern int safestrlen,(char *sp, int flags));
178 _PROTOTYPE(extern void safestrprtn,(char *sp, int len, FILE *fs, int flags));
179 _PROTOTYPE(extern void safestrprt,(char *sp, FILE *fs, int flags));
180 _PROTOTYPE(extern int statsafely,(char *path, struct stat *buf));
181 _PROTOTYPE(extern void stkdir,(char *p));
182 _PROTOTYPE(extern void usage,(int xv, int fh, int version));
183 _PROTOTYPE(extern int util_strftime,(char *fmtr, int fmtl, char *fmt));
184 _PROTOTYPE(extern int vfy_dev,(struct l_dev *dp));
185 _PROTOTYPE(extern char *x2dev,(char *s, dev_t *d));
186
187 # if    defined(HASBLKDEV)
188 _PROTOTYPE(extern void find_bl_ino,(void));
189 _PROTOTYPE(extern struct l_dev *lkupbdev,(dev_t *dev,dev_t *rdev,int i,int r));
190 _PROTOTYPE(extern int printbdevname,(dev_t *dev, dev_t *rdev, int f));
191 # endif /* defined(HASBLKDEV) */
192
193 # if    defined(HASCDRNODE)
194 _PROTOTYPE(extern int readcdrnode,(KA_T ca, struct cdrnode *c));
195 # endif /* defined(HASCDRNODE) */
196
197 # if    defined(HASDCACHE)
198 _PROTOTYPE(extern void alloc_dcache,(void));
199 _PROTOTYPE(extern void crc,(char *b, int l, unsigned *s));
200 _PROTOTYPE(extern void crdbld,(void));
201 _PROTOTYPE(extern int ctrl_dcache,(char *p));
202 _PROTOTYPE(extern int dcpath,(int rw, int npw));
203 _PROTOTYPE(extern int open_dcache,(int m, int r, struct stat *sb));
204 _PROTOTYPE(extern int read_dcache,(void));
205 _PROTOTYPE(extern int wr2DCfd,(char *b, unsigned *c));
206 _PROTOTYPE(extern void write_dcache,(void));
207 # endif /* defined(HASDCACHE) */
208
209 # if    defined(HASFIFONODE)
210 _PROTOTYPE(extern int readfifonode,(KA_T fa, struct fifonode *f));
211 # endif /* defined(HASFIFONODE) */
212
213 # if    defined(HASFSTRUCT)
214 _PROTOTYPE(extern char *print_fflags,(long ffg, long pof));
215 # endif /* defined(HASFSTRUCT) */
216
217 # if    defined(HASGNODE)
218 _PROTOTYPE(extern int readgnode,(KA_T ga, struct gnode *g));
219 # endif /* defined(HASGNODE) */
220
221 # if    defined(HASKQUEUE)
222 _PROTOTYPE(extern void process_kqueue,(KA_T ka));
223 # endif /* defined(HASKQUEUE) */
224
225 # if    defined(HASHSNODE)
226 _PROTOTYPE(extern int readhsnode,(KA_T ha, struct hsnode *h));
227 # endif /* defined(HASHSNODE) */
228
229 # if    defined(HASINODE)
230 _PROTOTYPE(extern int readinode,(KA_T ia, struct inode *i));
231 # endif /* defined(HASINODE) */
232
233 # if    defined(HASNCACHE)
234 _PROTOTYPE(extern void ncache_load,(void));
235 _PROTOTYPE(extern char *ncache_lookup,(char *buf, int blen, int *fp));
236 # endif /* defined(HASNCACHE) */
237
238 # if    defined(HASNLIST)
239 _PROTOTYPE(extern void build_Nl,(struct drive_Nl *d));
240 _PROTOTYPE(extern int get_Nl_value,(char *nn, struct drive_Nl *d, KA_T *v));
241 # endif /* defined(HASNLIST) */
242
243 # if    defined(HASPIPENODE)
244 _PROTOTYPE(extern int readpipenode,(KA_T pa, struct pipenode *p));
245 # endif /* defined(HASPIPENODE) */
246
247 # if    defined(HASPRINTDEV)
248 _PROTOTYPE(extern char *HASPRINTDEV,(struct lfile *lf, dev_t *dev));
249 # endif /* defined(HASPRINTDEV) */
250
251 # if    defined(HASPRINTINO)
252 _PROTOTYPE(extern char *HASPRINTINO,(struct lfile *lf));
253 # endif /* defined(HASPRINTINO) */
254
255 # if    defined(HASPRINTNM)
256 _PROTOTYPE(extern void HASPRINTNM,(struct lfile *lf));
257 # endif /* defined(HASPRINTNM) */
258
259 # if    defined(HASPRINTOFF)
260 _PROTOTYPE(extern char *HASPRINTOFF,(struct lfile *lf, int ty));
261 # endif /* defined(HASPRINTOFF) */
262
263 # if    defined(HASPRINTSZ)
264 _PROTOTYPE(extern char *HASPRINTSZ,(struct lfile *lf));
265 # endif /* defined(HASPRINTSZ) */
266
267 # if    defined(HASPRIVNMCACHE)
268 _PROTOTYPE(extern int HASPRIVNMCACHE,(struct lfile *lf));
269 # endif /* defined(HASPRIVNMCACHE) */
270
271 # if    !defined(HASPRIVPRIPP)
272 _PROTOTYPE(extern void printiproto,(int p));
273 # endif /* !defined(HASPRIVPRIPP) */
274
275 # if    defined(HASRNODE)
276 _PROTOTYPE(extern int readrnode,(KA_T ra, struct rnode *r));
277 # endif /* defined(HASRNODE) */
278
279 # if    defined(HASSPECDEVD)
280 _PROTOTYPE(extern void HASSPECDEVD,(char *p, struct stat *s));
281 # endif /* defined(HASSPECDEVD) */
282
283 # if    defined(HASSNODE)
284 _PROTOTYPE(extern int readsnode,(KA_T sa, struct snode *s));
285 # endif /* defined(HASSNODE) */
286
287 # if    defined(HASSTREAMS)
288 _PROTOTYPE(extern int readstdata,(KA_T addr, struct stdata *buf));
289 _PROTOTYPE(extern int readsthead,(KA_T addr, struct queue *buf));
290 _PROTOTYPE(extern int readstidnm,(KA_T addr, char *buf, READLEN_T len));
291 _PROTOTYPE(extern int readstmin,(KA_T addr, struct module_info *buf));
292 _PROTOTYPE(extern int readstqinit,(KA_T addr, struct qinit *buf));
293 # endif /* defined(HASSTREAMS) */
294
295 # if    defined(HASTMPNODE)
296 _PROTOTYPE(extern int readtnode,(KA_T ta, struct tmpnode *t));
297 # endif /* defined(HASTMPNODE) */
298
299 # if    defined(HASVNODE)
300 _PROTOTYPE(extern int readvnode,(KA_T va, struct vnode *v));
301 # endif /* defined(HASVNODE) */
302
303 # if    defined(USE_LIB_SNPF)
304 _PROTOTYPE(extern int snpf,(char *str, int len, char *fmt, ...));
305 # endif /* defined(USE_LIB_SNPF) */
306
307 # endif /* !defined(PROTO_H) */