xref: /titanic_50/usr/src/lib/libdladm/common/libdladm.h (revision d62bc4badc1c1f1549c961cfb8b420e650e1272b)
17c478bd9Sstevel@tonic-gate /*
27c478bd9Sstevel@tonic-gate  * CDDL HEADER START
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5ba2e4443Sseb  * Common Development and Distribution License (the "License").
6ba2e4443Sseb  * You may not use this file except in compliance with the License.
77c478bd9Sstevel@tonic-gate  *
87c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
97c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
107c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
117c478bd9Sstevel@tonic-gate  * and limitations under the License.
127c478bd9Sstevel@tonic-gate  *
137c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
147c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
157c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
167c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
177c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
187c478bd9Sstevel@tonic-gate  *
197c478bd9Sstevel@tonic-gate  * CDDL HEADER END
207c478bd9Sstevel@tonic-gate  */
217c478bd9Sstevel@tonic-gate /*
22*d62bc4baSyz147064  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
237c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
247c478bd9Sstevel@tonic-gate  */
257c478bd9Sstevel@tonic-gate 
267c478bd9Sstevel@tonic-gate #ifndef _LIBDLADM_H
277c478bd9Sstevel@tonic-gate #define	_LIBDLADM_H
287c478bd9Sstevel@tonic-gate 
297c478bd9Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
307c478bd9Sstevel@tonic-gate 
31*d62bc4baSyz147064 #include <sys/dls.h>
32*d62bc4baSyz147064 #include <sys/dlpi.h>
33*d62bc4baSyz147064 
34f595a68aSyz147064 /*
35f595a68aSyz147064  * This file includes structures, macros and common routines shared by all
36f595a68aSyz147064  * data-link administration, and routines which do not directly administrate
37f595a68aSyz147064  * links. For example, dladm_status2str().
38f595a68aSyz147064  */
397c478bd9Sstevel@tonic-gate 
407c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
417c478bd9Sstevel@tonic-gate extern "C" {
427c478bd9Sstevel@tonic-gate #endif
437c478bd9Sstevel@tonic-gate 
44*d62bc4baSyz147064 #define	LINKID_STR_WIDTH	10
450ba2cbe9Sxc151355 #define	DLADM_STRSIZE		256
46*d62bc4baSyz147064 
47*d62bc4baSyz147064 /*
48*d62bc4baSyz147064  * option flags taken by the libdladm functions
49*d62bc4baSyz147064  *
50*d62bc4baSyz147064  *  - DLADM_OPT_ACTIVE:
51*d62bc4baSyz147064  *    The function requests to bringup some configuration that only take
52*d62bc4baSyz147064  *    effect on active system (not persistent).
53*d62bc4baSyz147064  *
54*d62bc4baSyz147064  *  - DLADM_OPT_PERSIST:
55*d62bc4baSyz147064  *    The function requests to persist some configuration.
56*d62bc4baSyz147064  *
57*d62bc4baSyz147064  *  - DLADM_OPT_CREATE:
58*d62bc4baSyz147064  *    Today, only used by dladm_set_secobj() - requests to create a secobj.
59*d62bc4baSyz147064  *
60*d62bc4baSyz147064  *  - DLADM_OPT_FORCE:
61*d62bc4baSyz147064  *    The function requests to execute a specific operation forcefully.
62*d62bc4baSyz147064  *
63*d62bc4baSyz147064  *  - DLADM_OPT_PREFIX:
64*d62bc4baSyz147064  *    The function requests to generate a link name using the specified prefix.
65*d62bc4baSyz147064  */
66*d62bc4baSyz147064 #define	DLADM_OPT_ACTIVE	0x00000001
67*d62bc4baSyz147064 #define	DLADM_OPT_PERSIST	0x00000002
68*d62bc4baSyz147064 #define	DLADM_OPT_CREATE	0x00000004
69*d62bc4baSyz147064 #define	DLADM_OPT_FORCE		0x00000008
70*d62bc4baSyz147064 #define	DLADM_OPT_PREFIX	0x00000010
71*d62bc4baSyz147064 
72*d62bc4baSyz147064 #define	DLADM_WALK_TERMINATE	0
73*d62bc4baSyz147064 #define	DLADM_WALK_CONTINUE	-1
740ba2cbe9Sxc151355 
750ba2cbe9Sxc151355 typedef enum {
760ba2cbe9Sxc151355 	DLADM_STATUS_OK = 0,
770ba2cbe9Sxc151355 	DLADM_STATUS_BADARG,
780ba2cbe9Sxc151355 	DLADM_STATUS_FAILED,
790ba2cbe9Sxc151355 	DLADM_STATUS_TOOSMALL,
800ba2cbe9Sxc151355 	DLADM_STATUS_NOTSUP,
810ba2cbe9Sxc151355 	DLADM_STATUS_NOTFOUND,
820ba2cbe9Sxc151355 	DLADM_STATUS_BADVAL,
830ba2cbe9Sxc151355 	DLADM_STATUS_NOMEM,
840ba2cbe9Sxc151355 	DLADM_STATUS_EXIST,
850ba2cbe9Sxc151355 	DLADM_STATUS_LINKINVAL,
860ba2cbe9Sxc151355 	DLADM_STATUS_PROPRDONLY,
870ba2cbe9Sxc151355 	DLADM_STATUS_BADVALCNT,
880ba2cbe9Sxc151355 	DLADM_STATUS_DBNOTFOUND,
890ba2cbe9Sxc151355 	DLADM_STATUS_DENIED,
90f4b3ec61Sdh155122 	DLADM_STATUS_IOERR,
91f595a68aSyz147064 	DLADM_STATUS_TEMPONLY,
92f595a68aSyz147064 	DLADM_STATUS_TIMEDOUT,
93f595a68aSyz147064 	DLADM_STATUS_ISCONN,
94f595a68aSyz147064 	DLADM_STATUS_NOTCONN,
95f595a68aSyz147064 	DLADM_STATUS_REPOSITORYINVAL,
96f595a68aSyz147064 	DLADM_STATUS_MACADDRINVAL,
97843e1988Sjohnlev 	DLADM_STATUS_KEYINVAL,
98843e1988Sjohnlev 	DLADM_STATUS_INVALIDMACADDRLEN,
99843e1988Sjohnlev 	DLADM_STATUS_INVALIDMACADDRTYPE,
100*d62bc4baSyz147064 	DLADM_STATUS_LINKBUSY,
101*d62bc4baSyz147064 	DLADM_STATUS_VIDINVAL,
102*d62bc4baSyz147064 	DLADM_STATUS_NONOTIF,
103*d62bc4baSyz147064 	DLADM_STATUS_TRYAGAIN
1040ba2cbe9Sxc151355 } dladm_status_t;
1050ba2cbe9Sxc151355 
1060ba2cbe9Sxc151355 typedef enum {
107*d62bc4baSyz147064 	DLADM_TYPE_STR,
108*d62bc4baSyz147064 	DLADM_TYPE_BOOLEAN,
109*d62bc4baSyz147064 	DLADM_TYPE_UINT64
110*d62bc4baSyz147064 } dladm_datatype_t;
111*d62bc4baSyz147064 
112*d62bc4baSyz147064 typedef int dladm_conf_t;
113*d62bc4baSyz147064 #define	DLADM_INVALID_CONF	0
1140ba2cbe9Sxc151355 
1150ba2cbe9Sxc151355 extern const char	*dladm_status2str(dladm_status_t, char *);
116f595a68aSyz147064 extern dladm_status_t	dladm_set_rootdir(const char *);
117*d62bc4baSyz147064 extern const char	*dladm_class2str(datalink_class_t, char *);
118*d62bc4baSyz147064 extern const char	*dladm_media2str(uint32_t, char *);
119*d62bc4baSyz147064 extern boolean_t	dladm_valid_linkname(const char *);
1200ba2cbe9Sxc151355 
1217c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
1227c478bd9Sstevel@tonic-gate }
1237c478bd9Sstevel@tonic-gate #endif
1247c478bd9Sstevel@tonic-gate 
1257c478bd9Sstevel@tonic-gate #endif	/* _LIBDLADM_H */
126