77 lines
2.6 KiB
C
77 lines
2.6 KiB
C
/****************************************************************
|
|
* *
|
|
* Copyright 2001, 2012 Fidelity Information Services, Inc *
|
|
* *
|
|
* This source code contains the intellectual property *
|
|
* of its copyright holder(s), and is made available *
|
|
* under a license. If you do not know the terms of *
|
|
* the license, please stop and do not read further. *
|
|
* *
|
|
****************************************************************/
|
|
|
|
#ifndef MUPINT_H
|
|
#define MUPINT_H
|
|
|
|
/* requires gdsroot.h */
|
|
|
|
#define NO_ONLINE_ERR_MSG "ONLINE qualifier for this region will be ignored"
|
|
|
|
typedef struct global_list_struct
|
|
{
|
|
block_id root;
|
|
struct global_list_struct *link;
|
|
block_id path[MAX_BT_DEPTH + 1];
|
|
uint4 offset[MAX_BT_DEPTH + 1];
|
|
unsigned char nct;
|
|
unsigned char act;
|
|
unsigned char ver;
|
|
char key[MAX_MIDENT_LEN + 1]; /* max key length plus one for printf terminator */
|
|
int4 keysize; /* length of the key */
|
|
} global_list;
|
|
#ifdef BIGENDIAN
|
|
typedef struct
|
|
{ unsigned int two : 4;
|
|
unsigned int one : 4;
|
|
} sub_num;
|
|
#else
|
|
typedef struct
|
|
{ unsigned int one : 4;
|
|
unsigned int two : 4;
|
|
} sub_num;
|
|
#endif
|
|
|
|
enum sn_type
|
|
{
|
|
SN_NOT = 0,
|
|
SPAN_NODE,
|
|
SN_CHUNK
|
|
};
|
|
|
|
typedef struct struct_spanode_integ{
|
|
uint4 sn_type; /* 0: not in spanning node. 1: spanning node. 2:spanning fragment*/
|
|
uint4 span_prev_blk; /* Left sibling of current block of spanning node */
|
|
uint4 span_blk_cnt; /* Count of the blocks of spanning node seen so far */
|
|
uint4 span_tot_blks; /* Total blks in the spanning nodes to be integ-checked */
|
|
uint4 span_node_sz; /* Size of the spanning node value */
|
|
uint4 span_frag_off; /* Spanning node fragment offset */
|
|
uint4 key_len; /* Length of the key of spanning node */
|
|
uint4 val_len; /* Length of the val of spanning node */
|
|
uint4 sn_cnt; /* Spanning node count */
|
|
uint4 sn_blk_cnt; /* Count of the blocks used by the spanning node */
|
|
unsigned char span_node_buf[MAX_KEY_SZ]; /* Spanning node key */
|
|
}span_node_integ;
|
|
|
|
boolean_t mu_int_blk(block_id blk, char level, boolean_t is_root, unsigned char *bot_key,
|
|
int bot_len, unsigned char *top_key, int top_len, boolean_t eb_ok);
|
|
boolean_t mu_int_fhead(void);
|
|
boolean_t mu_int_init(void);
|
|
void mu_int_reg(gd_region *reg, boolean_t *return_value);
|
|
int mu_int_getkey(unsigned char *key_buff, int keylen);
|
|
uchar_ptr_t mu_int_read(block_id blk, enum db_ver *ondsk_blkver);
|
|
void mu_int_err(int err, boolean_t do_path, boolean_t do_range, unsigned char *bot, int has_bot,
|
|
unsigned char *top, int has_top, unsigned int level);
|
|
void mu_int_maps(void);
|
|
void mu_int_write(block_id blk, uchar_ptr_t ptr);
|
|
|
|
#endif
|