#include <stdio.h>
#include <db.h>
#include "multidbutil.h"
#include "kd_generic_multi.h"

/*
#ifdef MULTI_DB
#endif
 */

/*
 * 'which_ db' function ==> hash('keyid') mod 'db_array_size'
 * but real hash function isn't required because keyid would be 
 * random number.
 */
int which_db(void *byte) 
{
  unsigned int i;
  BIT_TO_UINT(byte,i);

#ifdef MULTI_DEBUG
  fprintf(stderr,"which_db: keyid %8.8X\n",i);
#endif
  return i % DB_ARRAY_SIZE;
}

#define MAX_ZERO_AREA 1024
static unsigned char nullbuf[MAX_ZERO_AREA];
static int clear_flag=0;
int zerocmp(unsigned char *buf,int n) 
{
  int ret;
  if ( clear_flag == 0 ) {
    /* init nullbuf */
    bzero(nullbuf,MAX_ZERO_AREA);
    clear_flag=1;
  }
  if ( n > MAX_ZERO_AREA ) {
    return -1;
  }
  ret = memcmp(buf,nullbuf,n);
  return ( ret==0? (0):(1) );
}
