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