112163SRamaswamy.Tummala@Sun.COM /*
212163SRamaswamy.Tummala@Sun.COM  * CDDL HEADER START
312163SRamaswamy.Tummala@Sun.COM  *
412163SRamaswamy.Tummala@Sun.COM  * The contents of this file are subject to the terms of the
512163SRamaswamy.Tummala@Sun.COM  * Common Development and Distribution License (the "License").
612163SRamaswamy.Tummala@Sun.COM  * You may not use this file except in compliance with the License.
712163SRamaswamy.Tummala@Sun.COM  *
812163SRamaswamy.Tummala@Sun.COM  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
912163SRamaswamy.Tummala@Sun.COM  * or http://www.opensolaris.org/os/licensing.
1012163SRamaswamy.Tummala@Sun.COM  * See the License for the specific language governing permissions
1112163SRamaswamy.Tummala@Sun.COM  * and limitations under the License.
1212163SRamaswamy.Tummala@Sun.COM  *
1312163SRamaswamy.Tummala@Sun.COM  * When distributing Covered Code, include this CDDL HEADER in each
1412163SRamaswamy.Tummala@Sun.COM  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1512163SRamaswamy.Tummala@Sun.COM  * If applicable, add the following below this CDDL HEADER, with the
1612163SRamaswamy.Tummala@Sun.COM  * fields enclosed by brackets "[]" replaced with your own identifying
1712163SRamaswamy.Tummala@Sun.COM  * information: Portions Copyright [yyyy] [name of copyright owner]
1812163SRamaswamy.Tummala@Sun.COM  *
1912163SRamaswamy.Tummala@Sun.COM  * CDDL HEADER END
2012163SRamaswamy.Tummala@Sun.COM  */
2112163SRamaswamy.Tummala@Sun.COM /*
2212163SRamaswamy.Tummala@Sun.COM  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
2312163SRamaswamy.Tummala@Sun.COM  */
2412163SRamaswamy.Tummala@Sun.COM 
2512163SRamaswamy.Tummala@Sun.COM #ifndef _LIBDLIB_H
2612163SRamaswamy.Tummala@Sun.COM #define	_LIBDLIB_H
2712163SRamaswamy.Tummala@Sun.COM 
2812163SRamaswamy.Tummala@Sun.COM #ifdef	__cplusplus
2912163SRamaswamy.Tummala@Sun.COM extern "C" {
3012163SRamaswamy.Tummala@Sun.COM #endif
3112163SRamaswamy.Tummala@Sun.COM 
3212163SRamaswamy.Tummala@Sun.COM #include <sys/types.h>
3312163SRamaswamy.Tummala@Sun.COM #include <sys/ib/ib_types.h>
3412163SRamaswamy.Tummala@Sun.COM 
3512163SRamaswamy.Tummala@Sun.COM #define	MAXPKEYSTRSZ	968
3612163SRamaswamy.Tummala@Sun.COM #define	MAXPKEYLEN 6
3712163SRamaswamy.Tummala@Sun.COM #define	IBGUIDSTRLEN 16
3812163SRamaswamy.Tummala@Sun.COM #define	IBPORTSTRLEN 5
3912163SRamaswamy.Tummala@Sun.COM 
40*12303SRajkumar.Sivaprakasam@Sun.COM #define	DLADM_PART_FORCE_CREATE 0x1
4112163SRamaswamy.Tummala@Sun.COM 
4212163SRamaswamy.Tummala@Sun.COM typedef struct dladm_ib_attr_s {
4312163SRamaswamy.Tummala@Sun.COM 	datalink_id_t	dia_physlinkid;	/* IB Phys link datalink ID */
4412163SRamaswamy.Tummala@Sun.COM 	datalink_id_t	dia_partlinkid;	/* IB Partition datalink ID */
4512163SRamaswamy.Tummala@Sun.COM 	ib_pkey_t	dia_pkey;	/* IB partitions P_Key */
4612163SRamaswamy.Tummala@Sun.COM 	uint32_t	dia_flags;
4712163SRamaswamy.Tummala@Sun.COM 	uint_t		dia_portnum;	/* IB Phys link's HCA port number */
4812163SRamaswamy.Tummala@Sun.COM 	int		dia_instance;	/* IP over IB driver instance number */
4912163SRamaswamy.Tummala@Sun.COM 	ib_guid_t	dia_hca_guid;	/* IB HCA GUID */
5012163SRamaswamy.Tummala@Sun.COM 	ib_guid_t	dia_port_guid;	/* IB HCA Port GUID */
5112163SRamaswamy.Tummala@Sun.COM 	uint_t		dia_port_pkey_tbl_sz;
5212163SRamaswamy.Tummala@Sun.COM 	ib_pkey_t	*dia_port_pkeys;	/* Ptr to the P_Key table */
5312163SRamaswamy.Tummala@Sun.COM } dladm_ib_attr_t;
5412163SRamaswamy.Tummala@Sun.COM 
5512163SRamaswamy.Tummala@Sun.COM typedef struct dladm_ib_attr_s dladm_part_attr_t;
5612163SRamaswamy.Tummala@Sun.COM 
5712163SRamaswamy.Tummala@Sun.COM typedef enum {
58*12303SRajkumar.Sivaprakasam@Sun.COM 	DLADM_PART_UD_MODE = 0,
59*12303SRajkumar.Sivaprakasam@Sun.COM 	DLADM_PART_CM_MODE
60*12303SRajkumar.Sivaprakasam@Sun.COM } dladm_part_linkmode_t;
6112163SRamaswamy.Tummala@Sun.COM 
6212163SRamaswamy.Tummala@Sun.COM extern dladm_status_t dladm_part_create(dladm_handle_t, datalink_id_t,
6312163SRamaswamy.Tummala@Sun.COM     ib_pkey_t, uint32_t, char *, datalink_id_t *, dladm_arg_list_t *);
6412163SRamaswamy.Tummala@Sun.COM extern dladm_status_t dladm_part_delete(dladm_handle_t, datalink_id_t, int);
6512163SRamaswamy.Tummala@Sun.COM extern dladm_status_t dladm_part_up(dladm_handle_t, datalink_id_t, uint32_t);
6612163SRamaswamy.Tummala@Sun.COM extern dladm_status_t dladm_part_info(dladm_handle_t, datalink_id_t,
6712163SRamaswamy.Tummala@Sun.COM     dladm_part_attr_t *, uint32_t);
6812163SRamaswamy.Tummala@Sun.COM extern dladm_status_t dladm_ib_info(dladm_handle_t, datalink_id_t,
6912163SRamaswamy.Tummala@Sun.COM     dladm_ib_attr_t *, uint32_t);
7012163SRamaswamy.Tummala@Sun.COM extern void dladm_free_ib_info(dladm_ib_attr_t *);
7112163SRamaswamy.Tummala@Sun.COM 
7212163SRamaswamy.Tummala@Sun.COM #ifdef	__cplusplus
7312163SRamaswamy.Tummala@Sun.COM }
7412163SRamaswamy.Tummala@Sun.COM #endif
7512163SRamaswamy.Tummala@Sun.COM 
7612163SRamaswamy.Tummala@Sun.COM #endif /* _LIBDLIB_H */
77