1/* 2 * interface for database access to cnids. i do it this way to abstract 3 * things a bit in case we want to change the underlying implementation. 4 */ 5 6#ifndef _ATALK_CNID_CDB__H 7#define _ATALK_CNID_CDB__H 1 8 9#include <sys/cdefs.h> 10#include <sys/stat.h> 11#include <unistd.h> 12#include <string.h> 13 14#include <netatalk/endian.h> 15#include <atalk/cnid.h> 16 17/* cnid_open.c */ 18extern struct _cnid_module cnid_cdb_module; 19extern struct _cnid_db *cnid_cdb_open (struct cnid_open_args *args); 20 21/* cnid_close.c */ 22extern void cnid_cdb_close (struct _cnid_db *); 23 24/* cnid_add.c */ 25extern cnid_t cnid_cdb_add (struct _cnid_db *, const struct stat *, const cnid_t, 26 char *, const size_t, cnid_t); 27extern int cnid_cdb_getstamp (struct _cnid_db *, void *, const size_t ); 28 29/* cnid_get.c */ 30extern cnid_t cnid_cdb_get (struct _cnid_db *, const cnid_t, char *, const size_t); 31extern char *cnid_cdb_resolve (struct _cnid_db *, cnid_t *, void *, size_t ); 32extern cnid_t cnid_cdb_lookup (struct _cnid_db *, const struct stat *, const cnid_t, 33 char *, const size_t); 34 35/* cnid_update.c */ 36extern int cnid_cdb_update (struct _cnid_db *, const cnid_t, const struct stat *, 37 const cnid_t, char *, size_t); 38 39/* cnid_delete.c */ 40extern int cnid_cdb_delete (struct _cnid_db *, const cnid_t); 41 42/* cnid_nextid.c */ 43extern cnid_t cnid_cdb_nextid (struct _cnid_db *); 44 45extern int cnid_cdb_lock (void *); 46extern int cnid_cdb_unlock (void *); 47 48extern cnid_t cnid_cdb_rebuild_add (struct _cnid_db *, const struct stat *, 49 const cnid_t, char *, const size_t, cnid_t); 50 51 52#endif /* include/atalk/cnid_cdb.h */ 53 54