/*
* 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 _SD_SAFESTORE_IMPL_H
#define _SD_SAFESTORE_IMPL_H
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _KERNEL
/* ss config stages */
/*
* Global fields for cache LRU entry. Fault tolerant structure in RMS.
*/
typedef struct _sd_wr_slp_queue {
int slp_wqneed;
typedef struct _sd_wr_queue {
unsigned int wq_slp_top;
unsigned int wq_slp_index;
unsigned int wq_slp_inq;
} _sd_writeq_t;
}
{ \
int ix = q->wq_slp_index; \
INCX(q->wq_slp_index); \
mutex_exit(&q->wq_qlock); \
}
{ \
DECX(q->wq_slp_top); \
mutex_exit(&q->wq_qlock); \
}
#define WQ_NEED_SIG(q) \
#define WQ_SVSIG(q) \
{ \
int tp = q->wq_slp_top; \
INCX(q->wq_slp_top); \
}
/*
* cache entry information
* note -- this structure is a identical to the first 4 words of
* the exported ss_centry_info_t. internal copies depened on this
* fact. changes to this structure may require changes to the
* *getcentry() and *setcentry() functions.
*
*/
typedef struct ss_centry_info_impl_s {
/*
* The write control structure has information about the remote page that
* will mirror a write.
*/
typedef struct ss_wr_cctl {
} ss_wr_cctl_t;
/* volume information */
typedef struct ss_voldata_impl_s {
extern int _sdbc_writeq_configure(_sd_writeq_t *);
extern void _sdbc_writeq_deconfigure(_sd_writeq_t *);
#endif /* _KERNEL */
#ifdef __cplusplus
}
#endif
#endif /* _SD_SAFESTORE_IMPL_H */