xref: /original-bsd/usr.sbin/amd/fsinfo/fsinfo.h (revision ff516eb5)
1e377bd31Spendry /*
2e377bd31Spendry  * Copyright (c) 1989 Jan-Simon Pendry
3e377bd31Spendry  * Copyright (c) 1989 Imperial College of Science, Technology & Medicine
4*ff516eb5Sbostic  * Copyright (c) 1989, 1993
5*ff516eb5Sbostic  *	The Regents of the University of California.  All rights reserved.
6e377bd31Spendry  *
7e377bd31Spendry  * This code is derived from software contributed to Berkeley by
8e377bd31Spendry  * Jan-Simon Pendry at Imperial College, London.
9e377bd31Spendry  *
1040bce266Spendry  * %sccs.include.redist.c%
11e377bd31Spendry  *
12*ff516eb5Sbostic  *	@(#)fsinfo.h	8.1 (Berkeley) 06/06/93
13278f1af9Spendry  *
1485d0f232Spendry  * $Id: fsinfo.h,v 5.2.2.1 1992/02/09 15:09:51 jsp beta $
15278f1af9Spendry  *
16e377bd31Spendry  */
17e377bd31Spendry 
18e377bd31Spendry /*
19e377bd31Spendry  * Get this in now so that OS_HDR can use it
20e377bd31Spendry  */
21e377bd31Spendry #ifdef __STDC__
22e377bd31Spendry #define	P(x) x
23e377bd31Spendry #define	P_void void
24e377bd31Spendry #define Const const
25e377bd31Spendry #else
26e377bd31Spendry #define P(x) ()
27e377bd31Spendry #define P_void /* as nothing */
28e377bd31Spendry #define Const /* as nothing */
29e377bd31Spendry #endif /* __STDC__ */
30e377bd31Spendry 
31e377bd31Spendry #ifdef __GNUC__
32e377bd31Spendry #define INLINE /* __inline */
33e377bd31Spendry #else
34e377bd31Spendry #define	INLINE
35e377bd31Spendry #endif /* __GNUC__ */
36e377bd31Spendry 
37e377bd31Spendry /*
38e377bd31Spendry  * Pick up target dependent definitions
39e377bd31Spendry  */
40e377bd31Spendry #include "os-defaults.h"
41e377bd31Spendry #include OS_HDR
42e377bd31Spendry 
43e377bd31Spendry #ifdef VOIDP
44e377bd31Spendry typedef void *voidp;
45e377bd31Spendry #else
46e377bd31Spendry typedef char *voidp;
47e377bd31Spendry #endif /* VOIDP */
48e377bd31Spendry 
49e377bd31Spendry #include <stdio.h>
50e377bd31Spendry #include <sys/types.h>
51e377bd31Spendry #include <sys/param.h>
52e377bd31Spendry 
53e377bd31Spendry /*
54e377bd31Spendry  * Bogosity to deal with ether { ... }
55e377bd31Spendry  */
56e377bd31Spendry #include <sys/socket.h>
57e377bd31Spendry #include <netinet/in.h>
58e377bd31Spendry #include <net/if.h>
59e377bd31Spendry #include <netinet/if_ether.h>
60e377bd31Spendry 
61e377bd31Spendry #include "fsi_data.h"
62e377bd31Spendry 
63e377bd31Spendry extern char* strchr P((Const char*, int)); /* C */
64e377bd31Spendry extern char* strrchr P((Const char*, int)); /* C */
65e377bd31Spendry extern char *strdup P((char*)); /* C */
66e377bd31Spendry extern void fatal();
67e377bd31Spendry extern void warning();
68e377bd31Spendry extern void error();
69e377bd31Spendry extern void analyze_automounts P((qelem*));
70e377bd31Spendry extern void analyze_hosts P((qelem*));
71e377bd31Spendry extern void compute_automount_point P((char*, host*, char*));
72e377bd31Spendry extern automount *new_automount P((char*));
73e377bd31Spendry extern auto_tree *new_auto_tree P((char*, qelem*));
74e377bd31Spendry extern host *new_host P((void));
75e377bd31Spendry extern disk_fs *new_disk_fs P((void));
76e377bd31Spendry extern void set_disk_fs P((disk_fs*, int, char*));
77e377bd31Spendry extern ether_if *new_ether_if P((void));
78e377bd31Spendry extern mount *new_mount P((void));
79e377bd31Spendry extern void set_mount P((mount*, int, char*));
80e377bd31Spendry extern fsmount *new_fsmount P((void));
81e377bd31Spendry extern void set_fsmount P((fsmount*, int, char*));
82e377bd31Spendry extern qelem *new_que P((void));
83e377bd31Spendry extern void init_que P((qelem*));
84e377bd31Spendry extern void ins_que P((qelem*, qelem*));
85e377bd31Spendry extern void rem_que P((qelem*));
86e377bd31Spendry extern dict *new_dict P((void));
87e377bd31Spendry extern dict_ent *dict_locate P((dict*, char*));
88e377bd31Spendry extern void dict_add P((dict*, char*, char*));
89e377bd31Spendry extern int dict_iter P((dict*, int (*)()));
90e377bd31Spendry extern void info_hdr();
91e377bd31Spendry extern void gen_hdr();
92e377bd31Spendry extern FILE *pref_open();
93e377bd31Spendry extern int pref_close();
94e377bd31Spendry extern ioloc *current_location();
95e377bd31Spendry 
96e377bd31Spendry extern char *disk_fs_strings[];
97e377bd31Spendry extern char *mount_strings[];
98e377bd31Spendry extern char *fsmount_strings[];
99e377bd31Spendry extern char *host_strings[];
100e377bd31Spendry extern char *ether_if_strings[];
101e377bd31Spendry extern char *autodir;
102e377bd31Spendry extern char *progname;
103e377bd31Spendry extern char hostname[];
104e377bd31Spendry extern char *username;
105e377bd31Spendry extern char **g_argv;
106e377bd31Spendry extern char *fstab_pref;
107e377bd31Spendry extern char *exportfs_pref;
108e377bd31Spendry extern char *mount_pref;
109e377bd31Spendry extern char *dumpset_pref;
110e377bd31Spendry extern char *bootparams_pref;
111e377bd31Spendry extern char idvbuf[];
112e377bd31Spendry 
113e377bd31Spendry extern int file_io_errors;
114e377bd31Spendry extern int parse_errors;
115e377bd31Spendry extern int errors;
116e377bd31Spendry extern int verbose;
117e377bd31Spendry 
118e377bd31Spendry extern dict *dict_of_hosts;
119e377bd31Spendry extern dict *dict_of_volnames;
120e377bd31Spendry 
121e377bd31Spendry extern char *xcalloc();
122e377bd31Spendry extern char *xmalloc();
123e377bd31Spendry #define	ALLOC(x)	((struct x *) xcalloc(1, sizeof(struct x)))
124e377bd31Spendry #define	STREQ(s,t)	(*(s) == *(t) && strcmp((s)+1,(t)+1) == 0)
125e377bd31Spendry #define	ISSET(m,b)	((m) & (1<<(b)))
126e377bd31Spendry #define	BITSET(m,b)	((m) |= (1<<(b)))
127e377bd31Spendry 
128e377bd31Spendry #define	FIRST(ty, q)	((ty *) ((q)->q_forw))
129e377bd31Spendry #define	LAST(ty, q)	((ty *) ((q)->q_back))
130e377bd31Spendry #define	NEXT(ty, q)	((ty *) (((qelem *) q)->q_forw))
131e377bd31Spendry #define	HEAD(ty, q)	((ty *) q)
132e377bd31Spendry #define	ITER(v, ty, q) \
133e377bd31Spendry 	for ((v) = FIRST(ty,(q)); (v) != HEAD(ty,(q)); (v) = NEXT(ty,(v)))
134