ubik: remove unused ContactQuorum_DISK_Write
[openafs.git] / src / ubik / ubik.p.h
index 109c766..06f5321 100644 (file)
 #define        CFLastFailed        1   /*!< last call failed to this guy (to detect down hosts) */
 /*\}*/
 
-#include <afs/afs_assert.h>
 #ifdef AFS_PTHREAD_ENV
 #include <pthread.h>
 #else
 #include <lwp.h>
 #endif
 
+/*! Sanity check: This macro represents an arbitrary date in the past
+ * (Tue Jun 20 15:36:43 2017). The database epoch must be greater or
+ * equal to this value. */
+#define        UBIK_MILESTONE      1497987403
+
 /*!
  * \brief per-client structure for ubik
  */
@@ -70,8 +74,8 @@ struct ubik_client {
 };
 
 #ifdef AFS_PTHREAD_ENV
-#define LOCK_UBIK_CLIENT(client) MUTEX_ENTER(&client->cm)
-#define UNLOCK_UBIK_CLIENT(client) MUTEX_EXIT(&client->cm)
+#define LOCK_UBIK_CLIENT(client) opr_mutex_enter(&client->cm)
+#define UNLOCK_UBIK_CLIENT(client) opr_mutex_exit(&client->cm)
 #else
 #define LOCK_UBIK_CLIENT(client)
 #define UNLOCK_UBIK_CLIENT(client)
@@ -119,14 +123,9 @@ struct ubik_trunc {
 
 struct ubik_stat {
     afs_int32 size;
-    afs_int32 mtime;
 };
 
-#if defined(UKERNEL)
-#include "afs/lock.h"
-#else /* defined(UKERNEL) */
 #include <lock.h>              /* just to make sure we've got this */
-#endif /* defined(UKERNEL) */
 
 /*!
  * \brief representation of a ubik database.
@@ -140,11 +139,9 @@ struct ubik_dbase {
     struct ubik_version version;       /*!< version number */
 #ifdef AFS_PTHREAD_ENV
     pthread_mutex_t versionLock;       /*!< lock on version number */
-#elif defined(UKERNEL)
-    struct afs_lock versionLock;       /*!< lock on version number */
-#else                          /* defined(UKERNEL) */
+#else
     struct Lock versionLock;   /*!< lock on version number */
-#endif                         /* defined(UKERNEL) */
+#endif
     afs_int32 tidCounter;      /*!< last RW or RO trans tid counter */
     afs_int32 writeTidCounter; /*!< last write trans tid counter */
     afs_int32 flags;           /*!< flags */
@@ -164,11 +161,7 @@ struct ubik_dbase {
     int (*getnfiles) (struct ubik_dbase * adbase);     /*!< find out number of files */
     short readers;             /*!< number of current read transactions */
     struct ubik_version cachedVersion; /*!< version of caller's cached data */
-#ifdef UKERNEL
-    struct afs_lock cache_lock;
-#else
     struct Lock cache_lock; /*!< protects cached application data */
-#endif
 #ifdef AFS_PTHREAD_ENV
     pthread_cond_t version_cond;    /*!< condition variable to manage changes to version */
     pthread_cond_t flags_cond;      /*!< condition variable to manage changes to flags */
@@ -305,8 +298,8 @@ struct ubik_server {
 
 /*! \name hold and release functions on a database */
 #ifdef AFS_PTHREAD_ENV
-# define       DBHOLD(a)       MUTEX_ENTER(&((a)->versionLock))
-# define       DBRELE(a)       MUTEX_EXIT(&((a)->versionLock))
+# define       DBHOLD(a)       opr_mutex_enter(&((a)->versionLock))
+# define       DBRELE(a)       opr_mutex_exit(&((a)->versionLock))
 #else /* !AFS_PTHREAD_ENV */
 # define       DBHOLD(a)       ObtainWriteLock(&((a)->versionLock))
 # define       DBRELE(a)       ReleaseWriteLock(&((a)->versionLock))
@@ -373,10 +366,11 @@ struct beacon_data {
 #endif
     int ubik_amSyncSite;               /*!< flag telling if I'm sync site */
     afs_int32 syncSiteUntil;           /*!< valid only if amSyncSite */
+    int ubik_syncSiteAdvertised;       /*!< flag telling if remotes are aware we have quorum */
 };
 
-#define UBIK_BEACON_LOCK MUTEX_ENTER(&beacon_globals.beacon_lock)
-#define UBIK_BEACON_UNLOCK MUTEX_EXIT(&beacon_globals.beacon_lock)
+#define UBIK_BEACON_LOCK opr_mutex_enter(&beacon_globals.beacon_lock)
+#define UBIK_BEACON_UNLOCK opr_mutex_exit(&beacon_globals.beacon_lock)
 
 /*!
  * \brief Global vote data.  All values are protected by vote_lock
@@ -400,8 +394,8 @@ struct vote_data {
     afs_int32 syncHost;
 };
 
-#define UBIK_VOTE_LOCK MUTEX_ENTER(&vote_globals.vote_lock)
-#define UBIK_VOTE_UNLOCK MUTEX_EXIT(&vote_globals.vote_lock)
+#define UBIK_VOTE_LOCK opr_mutex_enter(&vote_globals.vote_lock)
+#define UBIK_VOTE_UNLOCK opr_mutex_exit(&vote_globals.vote_lock)
 
 /*!
  * \brief Server address data.  All values are protected by addr_lock
@@ -418,8 +412,8 @@ struct addr_data {
     struct rx_securityClass *ubikSecClass;
 };
 
-#define UBIK_ADDR_LOCK MUTEX_ENTER(&addr_globals.addr_lock)
-#define UBIK_ADDR_UNLOCK MUTEX_EXIT(&addr_globals.addr_lock)
+#define UBIK_ADDR_LOCK opr_mutex_enter(&addr_globals.addr_lock)
+#define UBIK_ADDR_UNLOCK opr_mutex_exit(&addr_globals.addr_lock)
 
 /*!
  * \brief The version lock protects the structure member, as well as
@@ -432,8 +426,8 @@ struct version_data {
     afs_int32 ubik_epochTime;  /* time when this site started */
 };
 
-#define UBIK_VERSION_LOCK MUTEX_ENTER(&version_globals.version_lock)
-#define UBIK_VERSION_UNLOCK MUTEX_EXIT(&version_globals.version_lock)
+#define UBIK_VERSION_LOCK opr_mutex_enter(&version_globals.version_lock)
+#define UBIK_VERSION_UNLOCK opr_mutex_exit(&version_globals.version_lock)
 
 /* phys.c */
 extern int uphys_stat(struct ubik_dbase *adbase, afs_int32 afid,
@@ -479,11 +473,6 @@ extern afs_int32 ContactQuorum_DISK_Lock(struct ubik_trans *atrans,
                                         afs_int32 file, afs_int32 position,
                                         afs_int32 length, afs_int32 type);
 
-extern afs_int32 ContactQuorum_DISK_Write(struct ubik_trans *atrans,
-                                         int aflags,
-                                         afs_int32 file, afs_int32 position,
-                                         bulkdata *data);
-
 extern afs_int32 ContactQuorum_DISK_Truncate(struct ubik_trans *atrans,
                                             int aflags,
                                             afs_int32 file, afs_int32 length);
@@ -513,6 +502,7 @@ extern void ubeacon_InitSecurityClass(void);
 extern void ubeacon_ReinitServer(struct ubik_server *ts);
 extern void ubeacon_Debug(struct ubik_debug *aparm);
 extern int ubeacon_AmSyncSite(void);
+extern int ubeacon_SyncSiteAdvertised(void);
 extern int ubeacon_InitServerListByInfo(afs_uint32 ame,
                                        struct afsconf_cell *info,
                                        char clones[]);
@@ -552,17 +542,6 @@ extern void ulock_Debug(struct ubik_debug *aparm);
 extern int uvote_ShouldIRun(void);
 extern afs_int32 uvote_GetSyncSite(void);
 extern int uvote_Init(void);
-extern void ubik_vprint(const char *format, va_list ap)
-    AFS_ATTRIBUTE_FORMAT(__printf__, 1, 0);
-
-extern void ubik_print(const char *format, ...)
-    AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
-
-extern void ubik_dprint(const char *format, ...)
-    AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
-
-extern void ubik_dprint_25(const char *format, ...)
-    AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
 extern struct vote_data vote_globals;
 extern void uvote_set_dbVersion(struct ubik_version);
 extern int uvote_eq_dbVersion(struct ubik_version);
@@ -650,6 +629,24 @@ extern int ubik_ParseServerList(int argc, char **argv, afs_uint32 *ahost,
 /* \name uinit.c */
 
 struct rx_securityClass;
+struct afsconf_dir;
+extern int ugen_ClientInitCell(struct afsconf_dir *dir,
+                              struct afsconf_cell *info,
+                              int secFlags,
+                              struct ubik_client **uclientp,
+                              int maxservers, const char *serviceid,
+                              int deadtime);
+extern int ugen_ClientInitServer(const char *confDir, char *cellName,
+                                int secFlags, struct ubik_client **uclientp,
+                                int maxservers, char *serviceid,
+                                int deadtime, afs_uint32 server,
+                                afs_uint32 port);
+extern int ugen_ClientInitFlags(const char *confDir, char *cellName,
+                               int secFlags, struct ubik_client **uclientp,
+                               int (*secproc) (struct rx_securityClass *,
+                                               afs_int32),
+                               int maxservers, char *serviceid,
+                               int deadtime);
 extern afs_int32 ugen_ClientInit(int noAuthFlag, const char *confDir,
                                 char *cellName, afs_int32 sauth,
                                 struct ubik_client **uclientp,