nfs4_db_impl.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (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 2004 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _NFS4_DB_IMPL_H
#define _NFS4_DB_IMPL_H
#pragma ident "%Z%%M% %I% %E% SMI"
/*
* This is a private header file. Applications should not directly include
* this file.
*/
#ifdef __cplusplus
extern "C" {
#endif
#define SEARCH_DEBUG 0x0001
#define CREATE_DEBUG 0x0002
#define CACHED_DEBUG 0x0004
#define DESTROY_DEBUG 0x0008
#define REAP_DEBUG 0x0010
#define OTHER_DEBUG 0x0020
#define WALK_DEBUG 0x0040
/*
* A database is made up of a collection of tables.
* Tables are in turn made up of a collection of
* entries. Each table may haveone or more indices
* associtated with it.
*/
/* Private implementation */
typedef struct rfs4_link {
} rfs4_link;
struct rfs4_dbe {
unsigned reserved:31;
};
typedef struct rfs4_bucket {
} rfs4_bucket;
struct rfs4_index {
char *keyname; /* String rep of key */
};
struct rfs4_table {
char *name; /* Table name */
/* Given entry and data construct entry */
/* set of vars used for managing the reaper thread */
};
struct rfs4_database {
};
#define RFS4_RECLAIM_PERCENT 10
#define RFS4_REAP_INTERVAL 300
if ((l)->next) \
(head) = (l); \
}
if ((l)->prev) \
else \
if ((l)->next) \
}
#define INVALIDATE_ADDR(a) ((a) = (void *)((unsigned long)(a) | 1L))
#define VALIDATE_ADDR(a) ((a) = (void *)((unsigned long)(a) & ~1L))
#define INVALID_ADDR(a) (((unsigned long)(a) & 1L))
#define ENQUEUE_IDX(bp, l) { \
VALIDATE_ADDR((l)->entry); \
}
#define DEQUEUE_IDX(bp, l) { \
INVALIDATE_ADDR((l)->entry); \
}
#ifdef __cplusplus
}
#endif
#endif /* _NFS4_DB_IMPL_H */