xref: /titanic_44/usr/src/lib/libdladm/common/libdladm.h (revision 8eea8e29cc4374d1ee24c25a07f45af132db3499)
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 /*
23  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  */
26 
27 #ifndef _LIBDLADM_H
28 #define	_LIBDLADM_H
29 
30 #pragma ident	"%Z%%M%	%I%	%E% SMI"
31 
32 #include <sys/types.h>
33 #include <sys/param.h>
34 #include <sys/dls.h>
35 
36 #ifdef	__cplusplus
37 extern "C" {
38 #endif
39 
40 typedef struct dladm_attr	dladm_attr_t;
41 
42 struct dladm_attr {
43 	char		da_dev[MAXNAMELEN];
44 	uint_t		da_port;
45 	uint16_t	da_vid;
46 };
47 
48 /* number of attributes per devices in database file */
49 #define	DLADM_NATTR	3
50 
51 /*
52  * Diagnostic codes. These supplement error messages.
53  */
54 typedef enum {
55 	DLADM_DIAG_INVALID_LINKNAME	= 1,
56 	DLADM_DIAG_INVALID_INTFNAME	= 2,
57 	DLADM_DIAG_CORRUPT_REPOSITORY   = 3,
58 	DLADM_DIAG_REPOSITORY_OPENFAIL  = 4,
59 	DLADM_DIAG_REPOSITORY_WRITEFAIL = 5,
60 	DLADM_DIAG_REPOSITORY_CLOSEFAIL = 6,
61 	DLADM_DIAG_DEVICE_OPENFAIL	= 7
62 } dladm_diag_t;
63 
64 /*
65  * Flags recognized by dladm_link()
66  */
67 #define	DLADM_LINK_TEMP		0x01
68 #define	DLADM_LINK_FORCED	0x02
69 
70 extern int	dladm_link(const char *, dladm_attr_t *,
71     int, const char *, dladm_diag_t *);
72 extern int	dladm_up(const char *, dladm_diag_t *);
73 extern int	dladm_unlink(const char *, boolean_t, const char *,
74     dladm_diag_t *);
75 extern int	dladm_down(const char *, dladm_diag_t *);
76 extern int	dladm_walk(void (*)(void *, const char *), void *);
77 extern int	dladm_info(const char *, dladm_attr_t *);
78 extern void	dladm_db_walk(void (*)(void *, const char *,
79     dladm_attr_t *), void *);
80 extern int	dladm_sync(void);
81 extern const char *dladm_diag(dladm_diag_t);
82 
83 #ifdef	__cplusplus
84 }
85 #endif
86 
87 #endif	/* _LIBDLADM_H */
88