2 * Copyright (c) 1995-1996, Index Data.
3 * See the file LICENSE for details.
21 typedef unsigned ISAMD_BLOCK_SIZE;
23 typedef struct ISAMD_file_s {
28 int no_writes; /* statistics, to be used properly... */
42 char *alloc_buf; /* free-list handling (?) */
43 int alloc_entries_num;
44 int alloc_entries_max;
53 //char *startblock; /* start of the chain, update lastptr and numKeys here */
54 //char *lastblock; /* end of the chain, append here */
61 char *buf; /* buffer for read/write operations */
62 ISAMD_BLOCK_SIZE offset; /* position for next read/write */
63 ISAMD_BLOCK_SIZE size; /* size of actual pointer data */
64 int cat; /* category of this block */
65 int pos; /* block number of this block */
66 int next; /* number of the next block */
67 int diffs; /* either block or offset (in head) of start of diffs */
69 void *decodeClientData;
74 #define ISAMD_BLOCK_OFFSET_N (sizeof(int) + \
75 sizeof(ISAMD_BLOCK_SIZE))
77 #define ISAMD_BLOCK_OFFSET_1 (sizeof(int) + \
78 sizeof(ISAMD_BLOCK_SIZE) + \
80 sizeof(ISAMD_BLOCK_SIZE))
82 int isamd_alloc_block (ISAMD is, int cat);
83 void isamd_release_block (ISAMD is, int cat, int pos);
84 int isamd_read_block (ISAMD is, int cat, int pos, char *dst);
85 int isamd_write_block (ISAMD is, int cat, int pos, char *src);
95 * Revision 1.3 1999-07-14 15:05:30 heikki
96 * slow start on isam-d
98 * Revision 1.1 1999/07/14 12:34:43 heikki
99 * Copied from isamh, starting to change things...