xref: /onnv-gate/usr/src/cmd/fs.d/nfs/lib/smfcfg.h (revision 13080)
1*13080SPavan.Mettu@Oracle.COM /*
2*13080SPavan.Mettu@Oracle.COM  * CDDL HEADER START
3*13080SPavan.Mettu@Oracle.COM  *
4*13080SPavan.Mettu@Oracle.COM  * The contents of this file are subject to the terms of the
5*13080SPavan.Mettu@Oracle.COM  * Common Development and Distribution License (the "License").
6*13080SPavan.Mettu@Oracle.COM  * You may not use this file except in compliance with the License.
7*13080SPavan.Mettu@Oracle.COM  *
8*13080SPavan.Mettu@Oracle.COM  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*13080SPavan.Mettu@Oracle.COM  * or http://www.opensolaris.org/os/licensing.
10*13080SPavan.Mettu@Oracle.COM  * See the License for the specific language governing permissions
11*13080SPavan.Mettu@Oracle.COM  * and limitations under the License.
12*13080SPavan.Mettu@Oracle.COM  *
13*13080SPavan.Mettu@Oracle.COM  * When distributing Covered Code, include this CDDL HEADER in each
14*13080SPavan.Mettu@Oracle.COM  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*13080SPavan.Mettu@Oracle.COM  * If applicable, add the following below this CDDL HEADER, with the
16*13080SPavan.Mettu@Oracle.COM  * fields enclosed by brackets "[]" replaced with your own identifying
17*13080SPavan.Mettu@Oracle.COM  * information: Portions Copyright [yyyy] [name of copyright owner]
18*13080SPavan.Mettu@Oracle.COM  *
19*13080SPavan.Mettu@Oracle.COM  * CDDL HEADER END
20*13080SPavan.Mettu@Oracle.COM  */
21*13080SPavan.Mettu@Oracle.COM /*
22*13080SPavan.Mettu@Oracle.COM  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
23*13080SPavan.Mettu@Oracle.COM  */
24*13080SPavan.Mettu@Oracle.COM 
25*13080SPavan.Mettu@Oracle.COM #ifndef	_SMFCFG_H
26*13080SPavan.Mettu@Oracle.COM #define	_SMFCFG_H
27*13080SPavan.Mettu@Oracle.COM 
28*13080SPavan.Mettu@Oracle.COM #include <stdio.h>
29*13080SPavan.Mettu@Oracle.COM #include <stdlib.h>
30*13080SPavan.Mettu@Oracle.COM #include <syslog.h>
31*13080SPavan.Mettu@Oracle.COM #include <stdarg.h>
32*13080SPavan.Mettu@Oracle.COM #include <rpc/rpc.h>
33*13080SPavan.Mettu@Oracle.COM #include <synch.h>
34*13080SPavan.Mettu@Oracle.COM #include <thread.h>
35*13080SPavan.Mettu@Oracle.COM #include <libintl.h>
36*13080SPavan.Mettu@Oracle.COM #include <strings.h>
37*13080SPavan.Mettu@Oracle.COM #include <inttypes.h>
38*13080SPavan.Mettu@Oracle.COM #include <limits.h>
39*13080SPavan.Mettu@Oracle.COM #include <assert.h>
40*13080SPavan.Mettu@Oracle.COM #include <libscf.h>
41*13080SPavan.Mettu@Oracle.COM #include <libshare.h>
42*13080SPavan.Mettu@Oracle.COM #include <locale.h>
43*13080SPavan.Mettu@Oracle.COM #include <errno.h>
44*13080SPavan.Mettu@Oracle.COM #include <sys/types.h>
45*13080SPavan.Mettu@Oracle.COM 
46*13080SPavan.Mettu@Oracle.COM #ifdef	__cplusplus
47*13080SPavan.Mettu@Oracle.COM extern	"C" {
48*13080SPavan.Mettu@Oracle.COM #endif
49*13080SPavan.Mettu@Oracle.COM 
50*13080SPavan.Mettu@Oracle.COM typedef enum {
51*13080SPavan.Mettu@Oracle.COM 	NFS_SMF = 1,
52*13080SPavan.Mettu@Oracle.COM 	AUTOFS_SMF
53*13080SPavan.Mettu@Oracle.COM } smf_fstype_t;
54*13080SPavan.Mettu@Oracle.COM 
55*13080SPavan.Mettu@Oracle.COM typedef struct fs_smfhandle {
56*13080SPavan.Mettu@Oracle.COM 	scf_handle_t		*fs_handle;
57*13080SPavan.Mettu@Oracle.COM 	scf_service_t		*fs_service;
58*13080SPavan.Mettu@Oracle.COM 	scf_scope_t		*fs_scope;
59*13080SPavan.Mettu@Oracle.COM 	scf_instance_t		*fs_instance;
60*13080SPavan.Mettu@Oracle.COM 	scf_propertygroup_t	*fs_pg;
61*13080SPavan.Mettu@Oracle.COM 	scf_property_t		*fs_property;
62*13080SPavan.Mettu@Oracle.COM 	scf_value_t		*fs_value;
63*13080SPavan.Mettu@Oracle.COM } fs_smfhandle_t;
64*13080SPavan.Mettu@Oracle.COM 
65*13080SPavan.Mettu@Oracle.COM #define	DEFAULT_INSTANCE	"default"
66*13080SPavan.Mettu@Oracle.COM 
67*13080SPavan.Mettu@Oracle.COM /*
68*13080SPavan.Mettu@Oracle.COM  * NFS Property Group names.
69*13080SPavan.Mettu@Oracle.COM  */
70*13080SPavan.Mettu@Oracle.COM #define	SMF_PG_NFSPROPS		((const char *)"com.oracle.nfs,props")
71*13080SPavan.Mettu@Oracle.COM #define	NFS_PROPS_PGNAME	((const char *)"nfs-props")
72*13080SPavan.Mettu@Oracle.COM #define	SVC_NFS_CLIENT		"svc:/network/nfs/client"
73*13080SPavan.Mettu@Oracle.COM 
74*13080SPavan.Mettu@Oracle.COM /*
75*13080SPavan.Mettu@Oracle.COM  * AUTOFS Property Group Names.
76*13080SPavan.Mettu@Oracle.COM  */
77*13080SPavan.Mettu@Oracle.COM #define	SMF_PG_AUTOFS		((const char *)"com.oracle.autofs,props")
78*13080SPavan.Mettu@Oracle.COM #define	AUTOFS_PROPS_PGNAME	((const char *)"autofs-props")
79*13080SPavan.Mettu@Oracle.COM 
80*13080SPavan.Mettu@Oracle.COM #define	AUTOFS_FMRI		"svc:/system/filesystem/autofs"
81*13080SPavan.Mettu@Oracle.COM #define	AUTOFS_DEFAULT_FMRI	"svc:/system/filesystem/autofs:default"
82*13080SPavan.Mettu@Oracle.COM #define	MAXDIGITS	32
83*13080SPavan.Mettu@Oracle.COM 
84*13080SPavan.Mettu@Oracle.COM /*
85*13080SPavan.Mettu@Oracle.COM  * ERRORS
86*13080SPavan.Mettu@Oracle.COM  */
87*13080SPavan.Mettu@Oracle.COM #define	SMF_OK			0
88*13080SPavan.Mettu@Oracle.COM #define	SMF_SYSTEM_ERR		-1
89*13080SPavan.Mettu@Oracle.COM #define	STATE_INITIALIZING	1
90*13080SPavan.Mettu@Oracle.COM #define	SMF_NO_PERMISSION	2
91*13080SPavan.Mettu@Oracle.COM #define	SMF_NO_PGTYPE		3
92*13080SPavan.Mettu@Oracle.COM 
93*13080SPavan.Mettu@Oracle.COM extern int nfs_smf_get_prop(char *, char *, char *, scf_type_t, char *, int *);
94*13080SPavan.Mettu@Oracle.COM extern int fs_smf_get_prop(smf_fstype_t,  char *, char *, char *, scf_type_t,
95*13080SPavan.Mettu@Oracle.COM 	char *, int *);
96*13080SPavan.Mettu@Oracle.COM extern int nfs_smf_set_prop(char *, char *, char *, scf_type_t, char *);
97*13080SPavan.Mettu@Oracle.COM extern int fs_smf_set_prop(smf_fstype_t, char *, char *,
98*13080SPavan.Mettu@Oracle.COM     char *, scf_type_t, char *);
99*13080SPavan.Mettu@Oracle.COM extern int autofs_smf_set_prop(char *, char *, char *, scf_type_t, char *);
100*13080SPavan.Mettu@Oracle.COM extern int autofs_smf_get_prop(char *, char *, char *, scf_type_t,
101*13080SPavan.Mettu@Oracle.COM     char *, int *);
102*13080SPavan.Mettu@Oracle.COM extern void fs_smf_fini(fs_smfhandle_t *);
103*13080SPavan.Mettu@Oracle.COM extern boolean_t string_to_boolean(const char *);
104*13080SPavan.Mettu@Oracle.COM 
105*13080SPavan.Mettu@Oracle.COM #ifdef	__cplusplus
106*13080SPavan.Mettu@Oracle.COM }
107*13080SPavan.Mettu@Oracle.COM #endif
108*13080SPavan.Mettu@Oracle.COM 
109*13080SPavan.Mettu@Oracle.COM #endif	/* _SMFCFG_H */
110