idm.h revision 72cf314316bed51cd2e5fd0cb021a9725316a6b0
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _IDM_H
#define _IDM_H
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
IDM_STATUS_SUCCESS = 0,
} idm_status_t;
typedef enum {
CN_READY_FOR_LOGIN, /* Initiator only */
#ifdef IDM_CN_NOTIFY_STRINGS
"CN_UNDEFINED",
"CN_CONNECT_ACCEPT",
"CN_LOGIN_FAIL",
"CN_READY_FOR_LOGIN",
"CN_FFP_ENABLED",
"CN_FFP_DISABLED",
"CN_CONNECT_LOST",
"CN_CONNECT_DESTROY",
"CN_CONNECT_FAIL",
"CN_MAX"
};
#endif
typedef enum {
typedef enum {
typedef enum {
#ifdef IDM_TASK_SM_STRINGS
"TASK_IDLE",
"TASK_ACTIVE",
"TASK_SUSPENDING",
"TASK_SUSPENDED",
"TASK_ABORTING",
"TASK_ABORTED",
"TASK_COMPLETE",
"TASK_MAX_STATE"
};
#endif
typedef enum {
KV_HANDLED = 0,
} kv_status_t;
/*
* Request structures
*/
/* Defined in idm_impl.h */
struct idm_conn_s;
struct idm_svc_s;
struct idm_buf_s;
struct idm_pdu_s;
struct idm_task_s;
typedef idm_status_t (idm_client_notify_cb_t)(
typedef void (idm_build_hdr_cb_t)(
typedef union idm_sockaddr {
struct sockaddr_in sin4;
struct sockaddr_in6 sin6;
#define SIZEOF_SOCKADDR(so) \
sizeof (struct sockaddr_in) : sizeof (struct sockaddr_in6))
typedef struct {
typedef struct {
int cr_domain;
int cr_type;
int cr_protocol;
typedef struct {
/* This is not how other networking code handles this */
typedef struct {
union {
} i_addr;
/* i_insize determines which is valid in the union above */
int i_insize;
} idm_ipaddr_t;
typedef struct {
} idm_addr_t;
typedef struct {
al_oid; /* In */
/*
* State machine auditing
*/
#define SM_AUDIT_BUF_MAX_REC 32
typedef enum {
SAR_UNDEFINED = 0,
typedef enum {
SAS_UNDEFINED = 0,
typedef struct {
int sar_state;
int sar_new_state; /* Only for SAR_STATE_CHANGE */
int sar_event; /* Only for SAR_STATE_EVENT */
typedef struct {
int sab_index;
int sab_max_index;
extern boolean_t idm_sm_logging;
extern boolean_t idm_conn_logging;
extern boolean_t idm_svc_logging;
#include <sys/iscsi_protocol.h>
/*
* iSCSI Initiator Services
*/
void
void
void
/*
* iSCSI Target Services
*/
void
void
void
void
void
void
void
void
/*
* Target data transfer services
*/
void
void
/*
*/
void
/*
* Buffer services
*/
void
void
void
void
void
void
extern boolean_t idm_pattern_checking;
#define IDM_BUFPAT_SET(CHK_BUF) \
}
if (idm_pattern_checking) { \
}
/*
* Task services
*/
void
void
void
void
void
void *
void
void
/*
* PDU Services
*/
void
void
void
void
void
void
/*
* Object reference tracking
*/
void
void
void
void
void
void
void
void
#ifdef __cplusplus
}
#endif
#endif /* _IDM_H */