af15e0698b
git-svn-id: svn://10.65.10.50/trunk@4679 c028cbd2-c16b-5b4b-a496-9718f37d4682
75 lines
2.2 KiB
C
Executable File
75 lines
2.2 KiB
C
Executable File
/* o4opt.h (c)Copyright Sequiter Software Inc., 1990-1995. All rights reserved. */
|
|
|
|
/* these defines must be here even if no optimization for documentation purposes */
|
|
|
|
#define OPT4AVAIL -1
|
|
#define OPT4NONE 0
|
|
#define OPT4DBF 1
|
|
#define OPT4INDEX 2
|
|
#define OPT4OTHER 3
|
|
|
|
#ifndef S4OFF_OPTIMIZE
|
|
|
|
#define OPT4DBF_LO_MIN_LINK .05
|
|
#define OPT4DBF_LO_MAX_TIME .25
|
|
#define OPT4DBF_LO_MIN_TIME .25
|
|
#define OPT4DBF_HI_MIN_LINK .1
|
|
#define OPT4DBF_HI_MAX_TIME 1.0
|
|
#define OPT4DBF_HI_MIN_TIME 1.0
|
|
#define OPT4INDEX_LO_MIN_LINK .05
|
|
#define OPT4INDEX_LO_MAX_TIME .25
|
|
#define OPT4INDEX_LO_MIN_TIME .25
|
|
#define OPT4INDEX_HI_MIN_LINK .15
|
|
#define OPT4INDEX_HI_MAX_TIME 2.0
|
|
#define OPT4INDEX_HI_MIN_TIME 2.0
|
|
#define OPT4OTHER_MIN_LINK .05
|
|
#define OPT4OTHER_MAX_TIME .1
|
|
#define OPT4OTHER_MIN_TIME .1
|
|
|
|
/* OPT4CHECK_RATE must be a minimum of 5 in order to optimize correctly */
|
|
#define OPT4CHECK_RATE 15
|
|
|
|
/* factor of 2 that estimates the hash distribution, #slots = between #blocks * OPT4BLOCK_DENSITY and #blocks * OPT4BLOCK_DENSITY * 2 */
|
|
#define OPT4BLOCK_DENSITY 2L
|
|
|
|
/* this structure must match OPT4BLOCK with opt4=file followed by pos=pos */
|
|
typedef struct
|
|
{
|
|
FILE4 S4PTR *file ;
|
|
long pos ;
|
|
} OPT4CMP ;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
S4EXPORT int S4FUNCTION c4calcType( unsigned long ) ;
|
|
|
|
int d4updatePrio( CODE4 * ) ;
|
|
void file4setWriteOpt( FILE4 *, int ) ;
|
|
#ifdef S4ADVANCE_READ
|
|
void opt4fileAdvanceRead( FILE4 *, long, unsigned ) ;
|
|
#endif
|
|
|
|
int opt4blockClear( OPT4BLOCK * ) ;
|
|
int opt4blockRemove( OPT4 *, OPT4BLOCK *, int ) ;
|
|
|
|
int opt4fileDelete( FILE4 *, long, long ) ;
|
|
int opt4fileFlushList( OPT4 *, FILE4 *, LIST4 *, int ) ;
|
|
/*long opt4fileHash( OPT4 *, FILE4 *, unsigned long ) ; */
|
|
#define opt4fileHash( opt, file, pos ) ((long)( (( (file)->hashInit + (pos) ) >> (opt)->blockPower ) & (opt)->mask ))
|
|
void opt4blockLruTop( OPT4BLOCK * ) ;
|
|
unsigned opt4fileRead( FILE4 *, long, void *, unsigned ) ;
|
|
OPT4BLOCK *opt4fileReturnBlock( FILE4 *, long, long ) ;
|
|
int opt4fileWrite( FILE4 *, long, unsigned, const void *, char ) ;
|
|
|
|
int opt4fileFlush( FILE4 *, const int ) ;
|
|
int opt4flushAll( OPT4 *, char ) ;
|
|
int opt4flushWriteBuffer( OPT4 * ) ;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* S4OFF_OPTIMIZE */
|