/*
* 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 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _ISNS_SERVER_H
#define _ISNS_SERVER_H
#ifdef __cplusplus
extern "C" {
#endif
#include <assert.h>
#include <isns_protocol.h>
#ifdef DEBUG
#else
#endif
/*
* definitions for SMF.
*/
#ifdef DEBUG
#endif
#define NUM_OF_ENTITY_ATTRS \
#define NUM_OF_ISCSI_ATTRS \
#define NUM_OF_PORTAL_ATTRS \
#define NUM_OF_PG_ATTRS \
#define NUM_OF_DD_ATTRS \
#define NUM_OF_DDS_ATTRS \
#define NUM_OF_ASSOC_ISCSI_ATTRS \
#define NUM_OF_ASSOC_DD_ATTRS \
/*
* isns object type.
*/
typedef enum isns_otype {
/*
* iSNS objects as they are defined in RFC 4171.
*/
/*
* dummy object types for future extension.
*/
/*
* madeup object for internal implementation.
*/
} isns_type_t;
/*
* lookup operation.
*/
typedef enum {
/*
* lookup control data.
*/
typedef struct lookup_ctrl {
union {
}
}
/*
* isns object attribute
*/
typedef struct isns_attr {
union {
int32_t i;
} value;
} isns_attr_t;
/*
* isns generic object.
*/
typedef struct isns_obj {
} isns_obj_t;
/*
* iSNS objects.
*/
typedef struct isns_dds {
} isns_dds_t;
typedef struct isns_assoc_dd {
/* parent object uid */
#ifdef ASSOC_DD_PARENT_TYPE
#endif
typedef struct isns_dd {
} isns_dd_t;
typedef struct isns_assoc_iscsi {
/* parent object uid */
#ifdef ASSOC_ISCSI_PARENT_TYPE
#endif
#define MAX_ISCSI_CHILD (0)
#define MAX_PORTAL_CHILD (0)
#define MAX_PG_CHILD (0)
typedef struct isns_iscsi {
/* parent object uid */
#ifdef ISCSI_PARENT_TYPE
#endif
/* subordinate object uid(s) */
#if defined(MAX_ISCSI_CHILD) && (MAX_ISCSI_CHILD > 0)
#endif
} isns_iscsi_t;
!IS_TYPE_INITIATOR(TYPE) && \
typedef struct isns_portal {
/* parent object uid */
#ifdef PORTAL_PARENT_TYPE
#endif
/* subordinate object uid(s) */
#if defined(MAX_PORTAL_CHILD) && (MAX_PORTAL_CHILD > 0)
#endif
typedef struct isns_pg {
/* parent object uid */
#ifdef PG_PARENT_TYPE
#endif
/* subordinate object uid(s) */
#if defined(MAX_PG_CHILD) && (MAX_PG_CHILD > 0)
#endif
/* ref count */
#if defined(PG_REF_COUNT) && (PG_REF_COUNT > 0)
#endif
} isns_pg_t;
typedef struct isns_entity {
/* parent object uid */
#ifdef ENTITY_PARENT_TYPE
#endif
/* subordinate object uid(s) */
#if defined(MAX_ENTITY_CHILD) && (MAX_ENTITY_CHILD > 0)
#endif
ISNS_VER_SHIFT) && \
#define DEFAULT_DD_FEATURES 0
#define DEFAULT_DD_SET_STATUS 0
/*
* function prototype.
*/
void *
void *
);
uint16_t get_server_xid(void);
void inc_thr_count(void);
void dec_thr_count(void);
void shutdown_server(void);
#ifdef __cplusplus
}
#endif
#endif /* _ISNS_SERVER_H */