1*7836SJohn.Forte@Sun.COM /* 2*7836SJohn.Forte@Sun.COM * CDDL HEADER START 3*7836SJohn.Forte@Sun.COM * 4*7836SJohn.Forte@Sun.COM * The contents of this file are subject to the terms of the 5*7836SJohn.Forte@Sun.COM * Common Development and Distribution License (the "License"). 6*7836SJohn.Forte@Sun.COM * You may not use this file except in compliance with the License. 7*7836SJohn.Forte@Sun.COM * 8*7836SJohn.Forte@Sun.COM * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*7836SJohn.Forte@Sun.COM * or http://www.opensolaris.org/os/licensing. 10*7836SJohn.Forte@Sun.COM * See the License for the specific language governing permissions 11*7836SJohn.Forte@Sun.COM * and limitations under the License. 12*7836SJohn.Forte@Sun.COM * 13*7836SJohn.Forte@Sun.COM * When distributing Covered Code, include this CDDL HEADER in each 14*7836SJohn.Forte@Sun.COM * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*7836SJohn.Forte@Sun.COM * If applicable, add the following below this CDDL HEADER, with the 16*7836SJohn.Forte@Sun.COM * fields enclosed by brackets "[]" replaced with your own identifying 17*7836SJohn.Forte@Sun.COM * information: Portions Copyright [yyyy] [name of copyright owner] 18*7836SJohn.Forte@Sun.COM * 19*7836SJohn.Forte@Sun.COM * CDDL HEADER END 20*7836SJohn.Forte@Sun.COM */ 21*7836SJohn.Forte@Sun.COM 22*7836SJohn.Forte@Sun.COM /* 23*7836SJohn.Forte@Sun.COM * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 24*7836SJohn.Forte@Sun.COM * Use is subject to license terms. 25*7836SJohn.Forte@Sun.COM */ 26*7836SJohn.Forte@Sun.COM 27*7836SJohn.Forte@Sun.COM #ifndef _ISNS_PDU_H 28*7836SJohn.Forte@Sun.COM #define _ISNS_PDU_H 29*7836SJohn.Forte@Sun.COM 30*7836SJohn.Forte@Sun.COM #ifdef __cplusplus 31*7836SJohn.Forte@Sun.COM extern "C" { 32*7836SJohn.Forte@Sun.COM #endif 33*7836SJohn.Forte@Sun.COM 34*7836SJohn.Forte@Sun.COM #define ISNS_RCV_TIMEOUT 5 35*7836SJohn.Forte@Sun.COM #define ISNS_RCV_SHORT_TIMEOUT 1 36*7836SJohn.Forte@Sun.COM 37*7836SJohn.Forte@Sun.COM #define NEXT_TLV(OP, LEN) { \ 38*7836SJohn.Forte@Sun.COM if ((LEN) >= (8 + (OP)->attr_len)) { \ 39*7836SJohn.Forte@Sun.COM uint8_t *b1 = (uint8_t *)(OP); \ 40*7836SJohn.Forte@Sun.COM (LEN) -= (8 + (OP)->attr_len); \ 41*7836SJohn.Forte@Sun.COM b1 += (8 + (OP)->attr_len); \ 42*7836SJohn.Forte@Sun.COM (OP) = (isns_tlv_t *)b1; \ 43*7836SJohn.Forte@Sun.COM } else { \ 44*7836SJohn.Forte@Sun.COM (LEN) = 0; \ 45*7836SJohn.Forte@Sun.COM (OP) = NULL; \ 46*7836SJohn.Forte@Sun.COM } \ 47*7836SJohn.Forte@Sun.COM } 48*7836SJohn.Forte@Sun.COM 49*7836SJohn.Forte@Sun.COM size_t isns_rcv_pdu(int, isns_pdu_t **, size_t *, int); 50*7836SJohn.Forte@Sun.COM int isns_send_pdu(int, isns_pdu_t *, size_t); 51*7836SJohn.Forte@Sun.COM int pdu_reset_rsp(isns_pdu_t **, size_t *, size_t *); 52*7836SJohn.Forte@Sun.COM int pdu_reset_scn(isns_pdu_t **, size_t *, size_t *); 53*7836SJohn.Forte@Sun.COM int pdu_reset_esi(isns_pdu_t **, size_t *, size_t *); 54*7836SJohn.Forte@Sun.COM int pdu_update_code(isns_pdu_t *, size_t *, int); 55*7836SJohn.Forte@Sun.COM int pdu_add_tlv(isns_pdu_t **, size_t *, size_t *, 56*7836SJohn.Forte@Sun.COM uint32_t, uint32_t, void *, int); 57*7836SJohn.Forte@Sun.COM 58*7836SJohn.Forte@Sun.COM isns_tlv_t *pdu_get_source(isns_pdu_t *); 59*7836SJohn.Forte@Sun.COM isns_tlv_t *pdu_get_key(isns_pdu_t *, size_t *); 60*7836SJohn.Forte@Sun.COM isns_tlv_t *pdu_get_operand(isns_pdu_t *, size_t *); 61*7836SJohn.Forte@Sun.COM 62*7836SJohn.Forte@Sun.COM #ifdef __cplusplus 63*7836SJohn.Forte@Sun.COM } 64*7836SJohn.Forte@Sun.COM #endif 65*7836SJohn.Forte@Sun.COM 66*7836SJohn.Forte@Sun.COM #endif /* _ISNS_PDU_H */ 67