1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23 /* All Rights Reserved */ 24 25 26 /* 27 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 28 * Use is subject to license terms. 29 */ 30 31 #ifndef _SYS_NETCONFIG_H 32 #define _SYS_NETCONFIG_H 33 34 #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.4 */ 35 36 #ifdef __cplusplus 37 extern "C" { 38 #endif 39 40 #define NETCONFIG "/etc/netconfig" 41 #define NETPATH "NETPATH" 42 43 struct netconfig { 44 char *nc_netid; /* network identifier */ 45 unsigned int nc_semantics; /* defined below */ 46 unsigned int nc_flag; /* defined below */ 47 char *nc_protofmly; /* protocol family name */ 48 char *nc_proto; /* protocol name */ 49 char *nc_device; /* device name for network id */ 50 unsigned int nc_nlookups; /* # of entries in nc_lookups */ 51 char **nc_lookups; /* list of lookup directories */ 52 unsigned int nc_unused[8]; /* borrowed for lockd etc. */ 53 }; 54 55 typedef struct { 56 struct netconfig **nc_head; 57 struct netconfig **nc_curr; 58 } NCONF_HANDLE; 59 60 /* 61 * Values of nc_semantics 62 */ 63 64 #define NC_TPI_CLTS 1 65 #define NC_TPI_COTS 2 66 #define NC_TPI_COTS_ORD 3 67 #define NC_TPI_RAW 4 68 /* 69 * NOT FOR PUBLIC USE, Solaris internal only. 70 * This value of nc_semantics is strictly for use of Remote Direct 71 * Memory Access provider interfaces in Solaris only and not for 72 * general use. Do not use this value for general purpose user or 73 * kernel programming. If used the behavior is undefined. 74 * This is a PRIVATE interface to be used by Solaris kRPC only. 75 */ 76 #define NC_TPI_RDMA 5 77 78 /* 79 * Values of nc_flag 80 */ 81 82 #define NC_NOFLAG 00 83 #define NC_VISIBLE 01 84 #define NC_BROADCAST 02 85 86 /* 87 * Values of nc_protofmly 88 */ 89 90 #define NC_NOPROTOFMLY "-" 91 #define NC_LOOPBACK "loopback" 92 #define NC_INET "inet" 93 #define NC_INET6 "inet6" 94 #define NC_IMPLINK "implink" 95 #define NC_PUP "pup" 96 #define NC_CHAOS "chaos" 97 #define NC_NS "ns" 98 #define NC_NBS "nbs" 99 #define NC_ECMA "ecma" 100 #define NC_DATAKIT "datakit" 101 #define NC_CCITT "ccitt" 102 #define NC_SNA "sna" 103 #define NC_DECNET "decnet" 104 #define NC_DLI "dli" 105 #define NC_LAT "lat" 106 #define NC_HYLINK "hylink" 107 #define NC_APPLETALK "appletalk" 108 #define NC_NIT "nit" 109 #define NC_IEEE802 "ieee802" 110 #define NC_OSI "osi" 111 #define NC_X25 "x25" 112 #define NC_OSINET "osinet" 113 #define NC_GOSIP "gosip" 114 /* 115 * NOT FOR PUBLIC USE, Solaris internal only. 116 * This value of nc_semantics is strictly for use of Remote Direct 117 * Memory Access provider interfaces in Solaris only and not for 118 * general use. Do not use this value for general purpose user or 119 * kernel programming. If used the behavior is undefined. 120 * This is a PRIVATE interface to be used by Solaris kRPC only. 121 */ 122 #define NC_RDMA "rdma" 123 124 /* 125 * Values for nc_proto 126 */ 127 128 #define NC_NOPROTO "-" 129 #define NC_TCP "tcp" 130 #define NC_UDP "udp" 131 #define NC_ICMP "icmp" 132 133 /* 134 * Values for nc_proto for "rdma" protofmly 135 */ 136 #define NC_KVIPL "kvipl" 137 #define NC_IBTF "ibtf" 138 #define NC_KDAPL "kdapl" 139 140 #if defined(__STDC__) 141 142 extern void *setnetconfig(void); 143 extern int endnetconfig(void *); 144 extern struct netconfig *getnetconfig(void *); 145 extern struct netconfig *getnetconfigent(const char *); 146 extern void freenetconfigent(struct netconfig *); 147 extern void *setnetpath(void); 148 extern int endnetpath(void *); 149 extern struct netconfig *getnetpath(void *); 150 extern void nc_perror(const char *); 151 extern char *nc_sperror(void); 152 153 #else /* __STDC__ */ 154 155 extern void *setnetconfig(); 156 extern int endnetconfig(); 157 extern struct netconfig *getnetconfig(); 158 extern struct netconfig *getnetconfigent(); 159 extern void freenetconfigent(); 160 extern void *setnetpath(); 161 extern int endnetpath(); 162 extern struct netconfig *getnetpath(); 163 extern void nc_perror(); 164 extern char *nc_sperror(); 165 166 #endif /* __STDC__ */ 167 168 #ifdef __cplusplus 169 } 170 #endif 171 172 #endif /* _SYS_NETCONFIG_H */