1*1cfa752fSRamaswamy Tummala /* 2*1cfa752fSRamaswamy Tummala * CDDL HEADER START 3*1cfa752fSRamaswamy Tummala * 4*1cfa752fSRamaswamy Tummala * The contents of this file are subject to the terms of the 5*1cfa752fSRamaswamy Tummala * Common Development and Distribution License (the "License"). 6*1cfa752fSRamaswamy Tummala * You may not use this file except in compliance with the License. 7*1cfa752fSRamaswamy Tummala * 8*1cfa752fSRamaswamy Tummala * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*1cfa752fSRamaswamy Tummala * or http://www.opensolaris.org/os/licensing. 10*1cfa752fSRamaswamy Tummala * See the License for the specific language governing permissions 11*1cfa752fSRamaswamy Tummala * and limitations under the License. 12*1cfa752fSRamaswamy Tummala * 13*1cfa752fSRamaswamy Tummala * When distributing Covered Code, include this CDDL HEADER in each 14*1cfa752fSRamaswamy Tummala * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*1cfa752fSRamaswamy Tummala * If applicable, add the following below this CDDL HEADER, with the 16*1cfa752fSRamaswamy Tummala * fields enclosed by brackets "[]" replaced with your own identifying 17*1cfa752fSRamaswamy Tummala * information: Portions Copyright [yyyy] [name of copyright owner] 18*1cfa752fSRamaswamy Tummala * 19*1cfa752fSRamaswamy Tummala * CDDL HEADER END 20*1cfa752fSRamaswamy Tummala */ 21*1cfa752fSRamaswamy Tummala /* 22*1cfa752fSRamaswamy Tummala * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. 23*1cfa752fSRamaswamy Tummala */ 24*1cfa752fSRamaswamy Tummala 25*1cfa752fSRamaswamy Tummala #ifndef _LIBDLIB_H 26*1cfa752fSRamaswamy Tummala #define _LIBDLIB_H 27*1cfa752fSRamaswamy Tummala 28*1cfa752fSRamaswamy Tummala #ifdef __cplusplus 29*1cfa752fSRamaswamy Tummala extern "C" { 30*1cfa752fSRamaswamy Tummala #endif 31*1cfa752fSRamaswamy Tummala 32*1cfa752fSRamaswamy Tummala #include <sys/types.h> 33*1cfa752fSRamaswamy Tummala #include <sys/ib/ib_types.h> 34*1cfa752fSRamaswamy Tummala 35*1cfa752fSRamaswamy Tummala #define MAXPKEYSTRSZ 968 36*1cfa752fSRamaswamy Tummala #define MAXPKEYLEN 6 37*1cfa752fSRamaswamy Tummala #define IBGUIDSTRLEN 16 38*1cfa752fSRamaswamy Tummala #define IBPORTSTRLEN 5 39*1cfa752fSRamaswamy Tummala 40*1cfa752fSRamaswamy Tummala #define DLADM_IBPART_FORCE_CREATE 0x1 41*1cfa752fSRamaswamy Tummala 42*1cfa752fSRamaswamy Tummala typedef struct dladm_ib_attr_s { 43*1cfa752fSRamaswamy Tummala datalink_id_t dia_physlinkid; /* IB Phys link datalink ID */ 44*1cfa752fSRamaswamy Tummala datalink_id_t dia_partlinkid; /* IB Partition datalink ID */ 45*1cfa752fSRamaswamy Tummala ib_pkey_t dia_pkey; /* IB partitions P_Key */ 46*1cfa752fSRamaswamy Tummala uint32_t dia_flags; 47*1cfa752fSRamaswamy Tummala char *dia_devname; /* IB Phys link's device name */ 48*1cfa752fSRamaswamy Tummala char *dia_pname; /* IB partition's name */ 49*1cfa752fSRamaswamy Tummala uint_t dia_portnum; /* IB Phys link's HCA port number */ 50*1cfa752fSRamaswamy Tummala int dia_instance; /* IP over IB driver instance number */ 51*1cfa752fSRamaswamy Tummala ib_guid_t dia_hca_guid; /* IB HCA GUID */ 52*1cfa752fSRamaswamy Tummala ib_guid_t dia_port_guid; /* IB HCA Port GUID */ 53*1cfa752fSRamaswamy Tummala uint_t dia_port_pkey_tbl_sz; 54*1cfa752fSRamaswamy Tummala ib_pkey_t *dia_port_pkeys; /* Ptr to the P_Key table */ 55*1cfa752fSRamaswamy Tummala } dladm_ib_attr_t; 56*1cfa752fSRamaswamy Tummala 57*1cfa752fSRamaswamy Tummala typedef struct dladm_ib_attr_s dladm_part_attr_t; 58*1cfa752fSRamaswamy Tummala 59*1cfa752fSRamaswamy Tummala typedef enum { 60*1cfa752fSRamaswamy Tummala DLADM_IBPART_UD_MODE = 0, 61*1cfa752fSRamaswamy Tummala DLADM_IBPART_CM_MODE 62*1cfa752fSRamaswamy Tummala } dladm_ibpart_linkmode_t; 63*1cfa752fSRamaswamy Tummala 64*1cfa752fSRamaswamy Tummala extern dladm_status_t dladm_part_create(dladm_handle_t, datalink_id_t, 65*1cfa752fSRamaswamy Tummala ib_pkey_t, uint32_t, char *, datalink_id_t *, dladm_arg_list_t *); 66*1cfa752fSRamaswamy Tummala extern dladm_status_t dladm_part_delete(dladm_handle_t, datalink_id_t, int); 67*1cfa752fSRamaswamy Tummala extern dladm_status_t dladm_part_up(dladm_handle_t, datalink_id_t, uint32_t); 68*1cfa752fSRamaswamy Tummala extern dladm_status_t dladm_part_info(dladm_handle_t, datalink_id_t, 69*1cfa752fSRamaswamy Tummala dladm_part_attr_t *, uint32_t); 70*1cfa752fSRamaswamy Tummala extern dladm_status_t dladm_ib_info(dladm_handle_t, datalink_id_t, 71*1cfa752fSRamaswamy Tummala dladm_ib_attr_t *, uint32_t); 72*1cfa752fSRamaswamy Tummala extern void dladm_free_ib_info(dladm_ib_attr_t *); 73*1cfa752fSRamaswamy Tummala 74*1cfa752fSRamaswamy Tummala #ifdef __cplusplus 75*1cfa752fSRamaswamy Tummala } 76*1cfa752fSRamaswamy Tummala #endif 77*1cfa752fSRamaswamy Tummala 78*1cfa752fSRamaswamy Tummala #endif /* _LIBDLIB_H */ 79