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 _SYS_IBPART_H 26*1cfa752fSRamaswamy Tummala #define _SYS_IBPART_H 27*1cfa752fSRamaswamy Tummala 28*1cfa752fSRamaswamy Tummala #include <sys/types.h> 29*1cfa752fSRamaswamy Tummala #include <sys/ib/ib_types.h> 30*1cfa752fSRamaswamy Tummala #include <sys/dld_ioc.h> 31*1cfa752fSRamaswamy Tummala 32*1cfa752fSRamaswamy Tummala #ifdef __cplusplus 33*1cfa752fSRamaswamy Tummala extern "C" { 34*1cfa752fSRamaswamy Tummala #endif 35*1cfa752fSRamaswamy Tummala 36*1cfa752fSRamaswamy Tummala #define IBD_CREATE_IBPART IBPARTIOC(1) 37*1cfa752fSRamaswamy Tummala #define IBD_DELETE_IBPART IBPARTIOC(2) 38*1cfa752fSRamaswamy Tummala #define IBD_INFO_IBPART IBPARTIOC(3) 39*1cfa752fSRamaswamy Tummala 40*1cfa752fSRamaswamy Tummala #define IBD_INFO_CMD_IBPART 1 41*1cfa752fSRamaswamy Tummala #define IBD_INFO_CMD_IBPORT 2 42*1cfa752fSRamaswamy Tummala #define IBD_INFO_CMD_PKEYTBLSZ 3 43*1cfa752fSRamaswamy Tummala 44*1cfa752fSRamaswamy Tummala typedef enum ibd_part_err_e { 45*1cfa752fSRamaswamy Tummala IBD_INVALID_PORT_INST = 1, 46*1cfa752fSRamaswamy Tummala IBD_PORT_IS_DOWN, 47*1cfa752fSRamaswamy Tummala IBD_PKEY_NOT_PRESENT, 48*1cfa752fSRamaswamy Tummala IBD_INVALID_PKEY, 49*1cfa752fSRamaswamy Tummala IBD_PARTITION_EXISTS, 50*1cfa752fSRamaswamy Tummala IBD_NO_HW_RESOURCE, 51*1cfa752fSRamaswamy Tummala IBD_INVALID_PKEY_TBL_SIZE 52*1cfa752fSRamaswamy Tummala } ibd_part_err_t; 53*1cfa752fSRamaswamy Tummala /* 54*1cfa752fSRamaswamy Tummala * NOTE: If you change this structure make sure that alignments are correct 55*1cfa752fSRamaswamy Tummala * for the proper operation of the ioctl in both the 32 and 64 bit modes. 56*1cfa752fSRamaswamy Tummala */ 57*1cfa752fSRamaswamy Tummala typedef struct ibd_ioctl_s { 58*1cfa752fSRamaswamy Tummala int ioc_info_cmd; 59*1cfa752fSRamaswamy Tummala datalink_id_t ioc_linkid; 60*1cfa752fSRamaswamy Tummala int ioc_port_inst; 61*1cfa752fSRamaswamy Tummala uint_t ioc_portnum; 62*1cfa752fSRamaswamy Tummala ib_guid_t ioc_hcaguid; 63*1cfa752fSRamaswamy Tummala ib_guid_t ioc_portguid; 64*1cfa752fSRamaswamy Tummala int ioc_status; 65*1cfa752fSRamaswamy Tummala uint32_t align1; 66*1cfa752fSRamaswamy Tummala } ibd_ioctl_t; 67*1cfa752fSRamaswamy Tummala 68*1cfa752fSRamaswamy Tummala /* 69*1cfa752fSRamaswamy Tummala * NOTE: If you change this structure make sure that alignments are correct 70*1cfa752fSRamaswamy Tummala * for the proper operation of the ioctl in both the 32 and 64 bit modes. 71*1cfa752fSRamaswamy Tummala */ 72*1cfa752fSRamaswamy Tummala typedef struct ibpart_ioctl_s { 73*1cfa752fSRamaswamy Tummala ibd_ioctl_t ibdioc; 74*1cfa752fSRamaswamy Tummala datalink_id_t ioc_partid; 75*1cfa752fSRamaswamy Tummala boolean_t ioc_force_create; 76*1cfa752fSRamaswamy Tummala ib_pkey_t ioc_pkey; 77*1cfa752fSRamaswamy Tummala uint16_t align1; 78*1cfa752fSRamaswamy Tummala uint32_t align2; 79*1cfa752fSRamaswamy Tummala } ibpart_ioctl_t; 80*1cfa752fSRamaswamy Tummala 81*1cfa752fSRamaswamy Tummala typedef struct ibpart_ioctl_s ibd_create_ioctl_t; 82*1cfa752fSRamaswamy Tummala typedef struct ibpart_ioctl_s ibd_delete_ioctl_t; 83*1cfa752fSRamaswamy Tummala 84*1cfa752fSRamaswamy Tummala typedef struct ibport_ioctl_s { 85*1cfa752fSRamaswamy Tummala ibd_ioctl_t ibdioc; 86*1cfa752fSRamaswamy Tummala uint_t ioc_pkey_tbl_sz; 87*1cfa752fSRamaswamy Tummala ib_pkey_t *ioc_pkeys; 88*1cfa752fSRamaswamy Tummala } ibport_ioctl_t; 89*1cfa752fSRamaswamy Tummala 90*1cfa752fSRamaswamy Tummala #ifdef _SYSCALL32 91*1cfa752fSRamaswamy Tummala typedef struct ibport_ioctl32_s { 92*1cfa752fSRamaswamy Tummala ibd_ioctl_t ibdioc; 93*1cfa752fSRamaswamy Tummala uint_t ioc_pkey_tbl_sz; 94*1cfa752fSRamaswamy Tummala caddr32_t ioc_pkeys; 95*1cfa752fSRamaswamy Tummala } ibport_ioctl32_t; 96*1cfa752fSRamaswamy Tummala #endif 97*1cfa752fSRamaswamy Tummala 98*1cfa752fSRamaswamy Tummala #ifdef __cplusplus 99*1cfa752fSRamaswamy Tummala } 100*1cfa752fSRamaswamy Tummala #endif 101*1cfa752fSRamaswamy Tummala 102*1cfa752fSRamaswamy Tummala #endif /* _SYS_IBPART_H */ 103