X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=netatalk.git;a=blobdiff_plain;f=include%2Fatalk%2Fcnid.h;h=4fefcd0439a0b902ef6548fdc9f3143629e77429;hp=d7df70e1d164ddd82c5c61f44f9e07996500607a;hb=5eb3b5ac51c8221009041928a5a08c101d2be743;hpb=8ea9eaad323ec8ea180ffc277cd409d713a5895f diff --git a/include/atalk/cnid.h b/include/atalk/cnid.h index d7df70e1..4fefcd04 100644 --- a/include/atalk/cnid.h +++ b/include/atalk/cnid.h @@ -24,6 +24,7 @@ #include #include +#include /* CNID object flags */ #define CNID_FLAG_PERSISTENT 0x01 /* This backend implements DID persistence */ @@ -48,40 +49,37 @@ /* * This is instance of CNID database object. */ -struct _cnid_db { - u_int32_t flags; /* Flags describing some CNID backend aspects. */ - char *volpath; /* Volume path this particular CNID db refers to. */ - void *_private; /* back-end speficic data */ +typedef struct _cnid_db { + uint32_t cnid_db_flags; /* Flags describing some CNID backend aspects. */ + struct vol *cnid_db_vol; + void *cnid_db_private; /* back-end speficic data */ - cnid_t (*cnid_add) (struct _cnid_db *cdb, const struct stat *st, const cnid_t did, - char *name, const size_t, cnid_t hint); + cnid_t (*cnid_add) (struct _cnid_db *cdb, const struct stat *st, cnid_t did, + const char *name, size_t, cnid_t hint); int (*cnid_delete) (struct _cnid_db *cdb, cnid_t id); - cnid_t (*cnid_get) (struct _cnid_db *cdb, const cnid_t did, char *name, const size_t); - cnid_t (*cnid_lookup) (struct _cnid_db *cdb, const struct stat *st, const cnid_t did, - char *name, const size_t); + cnid_t (*cnid_get) (struct _cnid_db *cdb, cnid_t did, const char *name, size_t); + cnid_t (*cnid_lookup) (struct _cnid_db *cdb, const struct stat *st, cnid_t did, + const char *name, size_t); cnid_t (*cnid_nextid) (struct _cnid_db *cdb); char * (*cnid_resolve) (struct _cnid_db *cdb, cnid_t *id, void *buffer, size_t len); - int (*cnid_update) (struct _cnid_db *cdb, const cnid_t id, const struct stat *st, - const cnid_t did, char *name, const size_t len); + int (*cnid_update) (struct _cnid_db *cdb, cnid_t id, const struct stat *st, + cnid_t did, const char *name, size_t len); void (*cnid_close) (struct _cnid_db *cdb); int (*cnid_getstamp) (struct _cnid_db *cdb, void *buffer, const size_t len); - cnid_t (*cnid_rebuild_add) (struct _cnid_db *, const struct stat *, const cnid_t, - char *, const size_t, cnid_t); - int (*cnid_find) (struct _cnid_db *cdb, char *name, size_t namelen, + cnid_t (*cnid_rebuild_add) (struct _cnid_db *, const struct stat *, cnid_t, + const char *, size_t, cnid_t); + int (*cnid_find) (struct _cnid_db *cdb, const char *name, size_t namelen, void *buffer, size_t buflen); -}; -typedef struct _cnid_db cnid_db; + int (*cnid_wipe) (struct _cnid_db *cdb); +} cnid_db; /* * Consolidation of args passedn from main cnid_open to modules cnid_XXX_open, so * that it's easier to add aditional args as required. */ struct cnid_open_args { - const char *dir; - mode_t mask; - uint32_t flags; - const char *cnidserver; /* for dbd */ - const char *cnidport; /* for dbd */ + uint32_t cnid_args_flags; + struct vol *cnid_args_vol; }; /* @@ -91,7 +89,7 @@ struct _cnid_module { char *name; struct list_head db_list; /* CNID modules are also stored on a bidirectional list. */ struct _cnid_db *(*cnid_open)(struct cnid_open_args *args); - u_int32_t flags; /* Flags describing some CNID backend aspects. */ + uint32_t flags; /* Flags describing some CNID backend aspects. */ }; typedef struct _cnid_module cnid_module; @@ -103,12 +101,7 @@ void cnid_init(); void cnid_register(struct _cnid_module *module); /* This function opens a CNID database for selected volume. */ -struct _cnid_db *cnid_open(const char *volpath, - mode_t mask, - char *type, - int flags, - const char *cnidsrv, - const char *cnidport); +struct _cnid_db *cnid_open(struct vol *vol, char *type, int flags); cnid_t cnid_add (struct _cnid_db *cdb, const struct stat *st, const cnid_t did, const char *name, const size_t len, cnid_t hint); int cnid_delete (struct _cnid_db *cdb, cnid_t id); @@ -123,6 +116,7 @@ cnid_t cnid_rebuild_add(struct _cnid_db *cdb, const struct stat *st, const cnid_ char *name, const size_t len, cnid_t hint); int cnid_find (struct _cnid_db *cdb, const char *name, size_t namelen, void *buffer, size_t buflen); +int cnid_wipe (struct _cnid_db *cdb); void cnid_close (struct _cnid_db *db); #endif