1*77abaea0Snicm /* $OpenBSD: icdb.h,v 1.4 2016/09/04 14:51:39 nicm Exp $ */ 246d82e2eStedu /* 346d82e2eStedu * Copyright (c) 2015 Ted Unangst <tedu@openbsd.org> 446d82e2eStedu * 546d82e2eStedu * Permission to use, copy, modify, and distribute this software for any 646d82e2eStedu * purpose with or without fee is hereby granted, provided that the above 746d82e2eStedu * copyright notice and this permission notice appear in all copies. 846d82e2eStedu * 946d82e2eStedu * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1046d82e2eStedu * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1146d82e2eStedu * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1246d82e2eStedu * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1346d82e2eStedu * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1446d82e2eStedu * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 1546d82e2eStedu * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1646d82e2eStedu */ 1746d82e2eStedu 18bcaff74cSnicm #ifndef _ICDB_H_ 19bcaff74cSnicm #define _ICDB_H_ 20bcaff74cSnicm 21bcaff74cSnicm #include <sys/types.h> 22bcaff74cSnicm 23bcaff74cSnicm __BEGIN_DECLS 2446d82e2eStedu 2546d82e2eStedu struct icdb; 2646d82e2eStedu 27025678faStedu struct icdb *icdb_new(uint32_t version, uint32_t nentries, uint32_t entrysize, 28*77abaea0Snicm uint32_t nkeys, const uint32_t *keysizes, const uint32_t *keyoffsets); 2946d82e2eStedu 30025678faStedu struct icdb *icdb_open(const char *name, int flags, uint32_t version); 3146d82e2eStedu int icdb_get(struct icdb *db, void *entry, uint32_t idx); 3246d82e2eStedu int icdb_lookup(struct icdb *db, int keynum, const void *key, void *entry, 3346d82e2eStedu uint32_t *idxp); 3446d82e2eStedu int icdb_nentries(struct icdb *db); 3546d82e2eStedu const void *icdb_entries(struct icdb *db); 3646d82e2eStedu int icdb_update(struct icdb *db, const void *entry, int offset); 3746d82e2eStedu int icdb_add(struct icdb *db, const void *entry); 3846d82e2eStedu int icdb_rehash(struct icdb *db); 3946d82e2eStedu int icdb_save(struct icdb *db, int fd); 4046d82e2eStedu int icdb_close(struct icdb *db); 41bcaff74cSnicm 42bcaff74cSnicm __END_DECLS 43bcaff74cSnicm 44bcaff74cSnicm #endif /* !_ICDB_H_ */ 45