xref: /onnv-gate/usr/src/lib/cfgadm_plugins/ib/common/cfga_conf.h (revision 0:68f95e015346)
1*0Sstevel@tonic-gate /*
2*0Sstevel@tonic-gate  * CDDL HEADER START
3*0Sstevel@tonic-gate  *
4*0Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*0Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
6*0Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
7*0Sstevel@tonic-gate  * with the License.
8*0Sstevel@tonic-gate  *
9*0Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*0Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
11*0Sstevel@tonic-gate  * See the License for the specific language governing permissions
12*0Sstevel@tonic-gate  * and limitations under the License.
13*0Sstevel@tonic-gate  *
14*0Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
15*0Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*0Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
17*0Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
18*0Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
19*0Sstevel@tonic-gate  *
20*0Sstevel@tonic-gate  * CDDL HEADER END
21*0Sstevel@tonic-gate  */
22*0Sstevel@tonic-gate /*
23*0Sstevel@tonic-gate  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
24*0Sstevel@tonic-gate  * Use is subject to license terms.
25*0Sstevel@tonic-gate  */
26*0Sstevel@tonic-gate 
27*0Sstevel@tonic-gate #ifndef _CFGA_CONF_H
28*0Sstevel@tonic-gate #define	_CFGA_CONF_H
29*0Sstevel@tonic-gate 
30*0Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
31*0Sstevel@tonic-gate 
32*0Sstevel@tonic-gate #ifdef __cplusplus
33*0Sstevel@tonic-gate extern "C" {
34*0Sstevel@tonic-gate #endif
35*0Sstevel@tonic-gate 
36*0Sstevel@tonic-gate /* for ib.conf file support */
37*0Sstevel@tonic-gate 
38*0Sstevel@tonic-gate #define	IBCONF_FILE		"/kernel/drv/ib.conf"
39*0Sstevel@tonic-gate 
40*0Sstevel@tonic-gate /* type of variable entries read */
41*0Sstevel@tonic-gate typedef struct ibcfg_var {
42*0Sstevel@tonic-gate 	char			*name;		/* service name */
43*0Sstevel@tonic-gate 	ib_service_type_t	type;		/* service type */
44*0Sstevel@tonic-gate } ibcfg_var_t;
45*0Sstevel@tonic-gate 
46*0Sstevel@tonic-gate /* values returned during parsing */
47*0Sstevel@tonic-gate typedef enum ib_parse_state_e {
48*0Sstevel@tonic-gate 	IB_NEWVAR,				/* new token seen */
49*0Sstevel@tonic-gate 	IB_CONFIG_VAR,				/* "name" token seen */
50*0Sstevel@tonic-gate 	IB_VAR_EQUAL,				/* "=" token seen */
51*0Sstevel@tonic-gate 	IB_VAR_VALUE,				/* "value" token seen */
52*0Sstevel@tonic-gate 	IB_ERROR				/* error seen */
53*0Sstevel@tonic-gate } ib_parse_state_t;
54*0Sstevel@tonic-gate 
55*0Sstevel@tonic-gate /* service record for each entry read */
56*0Sstevel@tonic-gate typedef struct ib_svc_rec_s {
57*0Sstevel@tonic-gate 	char			*name;		/* service name */
58*0Sstevel@tonic-gate 	ib_service_type_t	type;		/* service type */
59*0Sstevel@tonic-gate 	struct ib_svc_rec_s	*next;		/* next link */
60*0Sstevel@tonic-gate } ib_svc_rec_t;
61*0Sstevel@tonic-gate 
62*0Sstevel@tonic-gate 
63*0Sstevel@tonic-gate #define	isunary(ch)		((ch) == '~' || (ch) == '-')
64*0Sstevel@tonic-gate #define	iswhite(ch)		((ch) == ' ' || (ch) == '\t')
65*0Sstevel@tonic-gate #define	isnewline(ch)		((ch) == '\n' || (ch) == '\r' || (ch) == '\f')
66*0Sstevel@tonic-gate #define	isalphanum(ch)		(isalpha(ch) || isdigit(ch))
67*0Sstevel@tonic-gate #define	isnamechar(ch)		(isalphanum(ch) || (ch) == '_' || (ch) == '-')
68*0Sstevel@tonic-gate 
69*0Sstevel@tonic-gate #define	GETC(a, cntr)		a[cntr++]
70*0Sstevel@tonic-gate #define	UNGETC(cntr)		cntr--
71*0Sstevel@tonic-gate #define	MAXLINESIZE		132
72*0Sstevel@tonic-gate 
73*0Sstevel@tonic-gate /* string defines for conf file usage */
74*0Sstevel@tonic-gate #define	IBCONF_PORT_SERVICE_HDR	"PORT communication services:\n"
75*0Sstevel@tonic-gate #define	IBCONF_VPPA_SERVICE_HDR	"VPPA communication services:\n"
76*0Sstevel@tonic-gate #define	IBCONF_HCA_SERVICE_HDR	"HCA communication services:\n"
77*0Sstevel@tonic-gate #define	IBCONF_SERVICE_HDR_LEN	32
78*0Sstevel@tonic-gate 
79*0Sstevel@tonic-gate /* tokens as read from IBCONF_FILE */
80*0Sstevel@tonic-gate typedef enum ib_token_e {
81*0Sstevel@tonic-gate 	EQUALS,
82*0Sstevel@tonic-gate 	AMPERSAND,
83*0Sstevel@tonic-gate 	BIT_OR,
84*0Sstevel@tonic-gate 	STAR,
85*0Sstevel@tonic-gate 	POUND,
86*0Sstevel@tonic-gate 	COLON,
87*0Sstevel@tonic-gate 	SEMICOLON,
88*0Sstevel@tonic-gate 	COMMA,
89*0Sstevel@tonic-gate 	SLASH,
90*0Sstevel@tonic-gate 	WHITE_SPACE,
91*0Sstevel@tonic-gate 	NEWLINE,
92*0Sstevel@tonic-gate 	E_O_F,
93*0Sstevel@tonic-gate 	STRING,			/* c */
94*0Sstevel@tonic-gate 	HEXVAL,
95*0Sstevel@tonic-gate 	DECVAL,
96*0Sstevel@tonic-gate 	NAME			/* f */
97*0Sstevel@tonic-gate } ib_token_t;
98*0Sstevel@tonic-gate 
99*0Sstevel@tonic-gate 
100*0Sstevel@tonic-gate #ifdef __cplusplus
101*0Sstevel@tonic-gate }
102*0Sstevel@tonic-gate #endif
103*0Sstevel@tonic-gate 
104*0Sstevel@tonic-gate #endif /* _CFGA_CONF_H */
105