#include "system/select.h"
#include "system/wait.h"
#else
-#define _XOPEN_SOURCE 500
+#include "config.h"
#define _FILE_OFFSET_BITS 64
#include <stdint.h>
#include <stdbool.h>
#include <errno.h>
#include <stdio.h>
#include <utime.h>
-#include "config.h"
#endif
#include "tdb.h"
typedef uint32_t tdb_off_t;
#ifndef offsetof
-#define offsetof(t,f) ((unsigned int)&((t *)0)->f)
+#define offsetof(t,f) ((size_t)&((t *)0)->f)
#endif
#define TDB_MAGIC_FOOD "TDB file\n"
#define TDB_DEAD_MAGIC (0xFEE1DEAD)
#define TDB_RECOVERY_MAGIC (0xf53bc0e7U)
#define TDB_RECOVERY_INVALID_MAGIC (0x0)
+#define TDB_HASH_RWLOCK_MAGIC (0xbad1a51U)
#define TDB_ALIGNMENT 4
#define DEFAULT_HASH_SIZE 131
#define FREELIST_TOP (sizeof(struct tdb_header))
struct tdb_record *rec);
void tdb_header_hash(struct tdb_context *tdb,
uint32_t *magic1_hash, uint32_t *magic2_hash);
-
+unsigned int tdb_old_hash(TDB_DATA *key);
+size_t tdb_dead_space(struct tdb_context *tdb, tdb_off_t off);
#endif