]> arthur.barton.de Git - netatalk.git/blobdiff - include/atalk/cnid.h
Adjust dircache for renamed files and minor fixes
[netatalk.git] / include / atalk / cnid.h
index 7aa037661f1eb88826f69fc4f701044b3b9f3ed2..5cd5ff7039103901fca2025e4e4787e3f8e26886 100644 (file)
@@ -1,5 +1,5 @@
 /* 
- * $Id: cnid.h,v 1.11 2005-05-03 14:55:12 didg Exp $
+ * $Id: cnid.h,v 1.15 2010-03-31 09:47:32 franklahm Exp $
  *
  * Copyright (c) 2003 the Netatalk Team
  * Copyright (c) 2003 Rafal Lewczuk <rlewczuk@pronet.pl>
 #define CNID_FLAG_SETUID       0x04      /* Set db owner to parent folder owner. */
 #define CNID_FLAG_BLOCK        0x08      /* block signals in update. */
 #define CNID_FLAG_NODEV        0x10      /* don't use device number only inode */
+#define CNID_FLAG_LAZY_INIT    0x20      /* */
+#define CNID_FLAG_MEMORY       0x40     /* this is a memory only db */
+#define CNID_FLAG_INODE        0x80     /* in cnid_add the inode is authoritative */
 
 #define CNID_INVALID   0
+/* first valid ID */
+#define CNID_START     17
 
 #define CNID_ERR_PARAM 0x80000001
 #define CNID_ERR_PATH  0x80000002
@@ -67,13 +72,25 @@ struct _cnid_db {
 };
 typedef struct _cnid_db 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 */
+};
+
 /*
  * CNID module - represents particular CNID implementation
  */
 struct _cnid_module {
        char *name;
        struct list_head db_list;   /* CNID modules are also stored on a bidirectional list. */
-       struct _cnid_db *(*cnid_open)(const char *dir, mode_t mask);
+       struct _cnid_db *(*cnid_open)(struct cnid_open_args *args);
        u_int32_t flags;            /* Flags describing some CNID backend aspects. */
 
 };
@@ -86,10 +103,15 @@ 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);
+struct _cnid_db *cnid_open(const char *volpath,
+                           mode_t mask,
+                           char *type,
+                           int flags,
+                           const char *cnidsrv, /* Only for dbd */
+                           const char *cnidport); /* Only for dbd */
 
 cnid_t cnid_add(struct _cnid_db *cdb, const struct stat *st, const cnid_t did, 
-                       char *name, const size_t len, cnid_t hint);
+                       const char *name, const size_t len, cnid_t hint);
 
 int    cnid_delete(struct _cnid_db *cdb, cnid_t id);
 
@@ -116,7 +138,20 @@ void cnid_close(struct _cnid_db *db);
 
 /*
  * $Log: cnid.h,v $
- * Revision 1.11  2005-05-03 14:55:12  didg
+ * Revision 1.15  2010-03-31 09:47:32  franklahm
+ * clustering support: new per volume option cnidserver
+ *
+ * Revision 1.14  2009/11/28 13:09:25  didg
+ * guard against confused DB returning junk values
+ *
+ * Revision 1.13  2009/11/24 12:18:19  didg
+ * add a flag parameter to cnid open functions
+ *
+ * Revision 1.12  2005/09/07 15:23:21  didg
+ *
+ * lazy init dbd database, help with pre tiger OS and a lot of volumes.
+ *
+ * Revision 1.11  2005/05/03 14:55:12  didg
  *
  * remove gcc warning
  *