1/*	$NetBSD: netconfig.h,v 1.1 2000/06/02 22:57:54 fvdl Exp $	*/
2/*	$FreeBSD$ */
3
4
5#ifndef _NETCONFIG_H_
6#define _NETCONFIG_H_
7
8#include <sys/cdefs.h>
9
10#define NETCONFIG	"/etc/netconfig"
11#define NETPATH		"NETPATH"
12
13struct netconfig {
14	char *nc_netid;			/* Network ID */
15	unsigned long nc_semantics;	/* Semantics (see below) */
16	unsigned long nc_flag;		/* Flags (see below) */
17	char *nc_protofmly;		/* Protocol family */
18	char *nc_proto;			/* Protocol name */
19	char *nc_device;		/* Network device pathname */
20	unsigned long nc_nlookups;	/* Number of directory lookup libs */
21	char **nc_lookups;		/* Names of the libraries */
22	unsigned long nc_unused[9];	/* reserved */
23};
24
25typedef struct {
26	struct netconfig **nc_head;
27	struct netconfig **nc_curr;
28} NCONF_HANDLE;
29
30/*
31 * nc_semantics values
32 */
33#define NC_TPI_CLTS	1
34#define NC_TPI_COTS	2
35#define NC_TPI_COTS_ORD	3
36#define NC_TPI_RAW	4
37
38/*
39 * nc_flag values
40 */
41#define NC_NOFLAG	0x00
42#define NC_VISIBLE	0x01
43#define NC_BROADCAST	0x02
44
45/*
46 * nc_protofmly values
47 */
48#define NC_NOPROTOFMLY	"-"
49#define NC_LOOPBACK	"loopback"
50#define NC_INET		"inet"
51#define NC_INET6	"inet6"
52#define NC_IMPLINK	"implink"
53#define NC_PUP		"pup"
54#define NC_CHAOS	"chaos"
55#define NC_NS		"ns"
56#define NC_NBS		"nbs"
57#define NC_ECMA		"ecma"
58#define NC_DATAKIT	"datakit"
59#define NC_CCITT	"ccitt"
60#define NC_SNA		"sna"
61#define NC_DECNET	"decnet"
62#define NC_DLI		"dli"
63#define NC_LAT		"lat"
64#define NC_HYLINK	"hylink"
65#define NC_APPLETALK	"appletalk"
66#define NC_NIT		"nit"
67#define NC_IEEE802	"ieee802"
68#define NC_OSI		"osi"
69#define NC_X25		"x25"
70#define NC_OSINET	"osinet"
71#define NC_GOSIP	"gosip"
72
73/*
74 * nc_proto values
75 */
76#define NC_NOPROTO	"-"
77#define NC_TCP		"tcp"
78#define NC_UDP		"udp"
79#define NC_ICMP		"icmp"
80
81__BEGIN_DECLS
82void *setnetconfig(void);
83struct netconfig *getnetconfig(void *);
84struct netconfig *getnetconfigent(const char *);
85void freenetconfigent(struct netconfig *);
86int endnetconfig(void *);
87
88void *setnetpath(void);
89struct netconfig *getnetpath(void *);
90int endnetpath(void *);
91
92void nc_perror(const char *);
93char *nc_sperror(void);
94__END_DECLS
95
96#endif /* _NETCONFIG_H_ */
97