OpenAFS
OpenAFS distributed network file system
/cygdrive/c/src/openafs/openafs.git/repo/src/ubik/ubik.h
00001 /*
00002  * ubik.h:
00003  * This file is automatically generated; please do not edit it.
00004  */
00005 /* Including ./ubik.p.h at beginning of ubik.h file. */
00006 
00007 /*
00008  * Copyright 2000, International Business Machines Corporation and others.
00009  * All Rights Reserved.
00010  *
00011  * This software has been released under the terms of the IBM Public
00012  * License.  For details, see the LICENSE file in the top-level source
00013  * directory or online at http://www.openafs.org/dl/license10.html
00014  */
00015 
00016 #ifndef UBIK_H
00017 #define UBIK_H
00018 
00019 #include <stdarg.h>
00020 
00021 #include <ubik_int.h>
00022 
00024 #define UBIK_READTRANS      0
00025 #define UBIK_WRITETRANS     1
00026 /*\}*/
00027 
00029 #define LOCKREAD            1
00030 #define LOCKWRITE           2
00031 #define LOCKWAIT            3
00032 /*\}*/
00033 
00035 #define UPUBIKONLY          1   
00036 #define UBIK_CALL_NEW       2   
00037 /*\}*/
00038 
00040 #define VOTE_SERVICE_ID     50
00041 #define DISK_SERVICE_ID     51
00042 #define USER_SERVICE_ID     52  
00043 /*\}*/
00044 
00045 #define UBIK_MAGIC      0x354545
00046 
00048 #define MAXSERVERS          20  
00049 /*\}*/
00050 
00052 #define vcmp(a,b) ((a).epoch == (b).epoch? ((a).counter - (b).counter) : ((a).epoch - (b).epoch))
00053 
00055 #define CFLastFailed        1   
00056 /*\}*/
00057 
00058 #ifdef AFS_PTHREAD_ENV
00059 #include <pthread.h>
00060 #else
00061 #include <lwp.h>
00062 #endif
00063 
00067 struct ubik_client {
00068     short initializationState;  
00069     short states[MAXSERVERS];   
00070     struct rx_connection *conns[MAXSERVERS];
00071     afs_int32 syncSite;
00072 #ifdef AFS_PTHREAD_ENV
00073     pthread_mutex_t cm;
00074 #endif
00075 };
00076 
00077 #ifdef AFS_PTHREAD_ENV
00078 #define LOCK_UBIK_CLIENT(client) MUTEX_ENTER(&client->cm)
00079 #define UNLOCK_UBIK_CLIENT(client) MUTEX_EXIT(&client->cm)
00080 #else
00081 #define LOCK_UBIK_CLIENT(client)
00082 #define UNLOCK_UBIK_CLIENT(client)
00083 #endif
00084 
00085 #define ubik_GetRPCConn(astr,aindex)    ((aindex) >= MAXSERVERS? 0 : (astr)->conns[aindex])
00086 #define ubik_GetRPCHost(astr,aindex)    ((aindex) >= MAXSERVERS? 0 : (astr)->hosts[aindex])
00087 
00091 struct ubik_hdr {
00092     afs_int32 magic;            
00093     short pad1;                 
00094     short size;                 
00095     struct ubik_version version;        
00096 };
00097 
00101 struct ubik_trans {
00102     struct ubik_dbase *dbase;   
00103     struct ubik_trans *next;    
00104     afs_int32 locktype;         
00105     struct ubik_trunc *activeTruncs;    
00106     struct ubik_tid tid;        
00107     afs_int32 minCommitTime;    
00108     afs_int32 seekFile;         
00109     afs_int32 seekPos;          
00110     short flags;                
00111     char type;                  
00112     iovec_wrt iovec_info;
00113     iovec_buf iovec_data;
00114 };
00115 
00119 struct ubik_trunc {
00120     struct ubik_trunc *next;
00121     afs_int32 file;             
00122     afs_int32 length;           
00123 };
00124 
00125 struct ubik_stat {
00126     afs_int32 size;
00127     afs_int32 mtime;
00128 };
00129 
00130 #if defined(UKERNEL)
00131 #include "afs/lock.h"
00132 #else /* defined(UKERNEL) */
00133 #include <lock.h>               /* just to make sure we've got this */
00134 #endif /* defined(UKERNEL) */
00135 
00142 struct ubik_dbase {
00143     char *pathName;             
00144     struct ubik_trans *activeTrans;     
00145     struct ubik_version version;        
00146 #ifdef AFS_PTHREAD_ENV
00147     pthread_mutex_t versionLock;        
00148 #elif defined(UKERNEL)
00149     struct afs_lock versionLock;        
00150 #else                           /* defined(UKERNEL) */
00151     struct Lock versionLock;    
00152 #endif                          /* defined(UKERNEL) */
00153     afs_int32 tidCounter;       
00154     afs_int32 writeTidCounter;  
00155     afs_int32 flags;            
00156     /* physio procedures */
00157     int (*read) (struct ubik_dbase * adbase, afs_int32 afile, void *abuffer,
00158                  afs_int32 apos, afs_int32 alength);
00159     int (*write) (struct ubik_dbase * adbase, afs_int32 afile, void *abuffer,
00160                   afs_int32 apos, afs_int32 alength);
00161     int (*truncate) (struct ubik_dbase * adbase, afs_int32 afile,
00162                      afs_int32 asize);
00163     int (*sync) (struct ubik_dbase * adbase, afs_int32 afile);
00164     int (*stat) (struct ubik_dbase * adbase, afs_int32 afid,
00165                  struct ubik_stat * astat);
00166     void (*open) (struct ubik_dbase * adbase, afs_int32 afid);
00167     int (*setlabel) (struct ubik_dbase * adbase, afs_int32 afile, struct ubik_version * aversion);      
00168     int (*getlabel) (struct ubik_dbase * adbase, afs_int32 afile, struct ubik_version * aversion);      
00169     int (*getnfiles) (struct ubik_dbase * adbase);      
00170     short readers;              
00171     struct ubik_version cachedVersion;  
00172 #ifdef UKERNEL
00173     struct afs_lock cache_lock;
00174 #else
00175     struct Lock cache_lock; 
00176 #endif
00177 #ifdef AFS_PTHREAD_ENV
00178     pthread_cond_t version_cond;    
00179     pthread_cond_t flags_cond;      
00180 #endif
00181 };
00182 
00192 typedef int (*ubik_updatecache_func) (struct ubik_trans *atrans, void *rock);
00193 
00195 extern int (*ubik_CRXSecurityProc) (void *, struct rx_securityClass **,
00196                                     afs_int32 *);
00197 extern void *ubik_CRXSecurityRock;
00198 extern int (*ubik_SRXSecurityProc) (void *, struct rx_securityClass **,
00199                                     afs_int32 *);
00200 extern void *ubik_SRXSecurityRock;
00201 extern int (*ubik_CheckRXSecurityProc) (void *, struct rx_call *);
00202 extern void *ubik_CheckRXSecurityRock;
00203 
00204 extern void ubik_SetClientSecurityProcs(int (*scproc)(void *,
00205                                                       struct rx_securityClass **,
00206                                                       afs_int32 *),
00207                                         int (*checkproc) (void *),
00208                                         void *rock);
00209 extern void ubik_SetServerSecurityProcs
00210                 (void (*buildproc) (void *,
00211                                     struct rx_securityClass ***,
00212                                     afs_int32 *),
00213                  int (*checkproc) (void *, struct rx_call *),
00214                  void *rock);
00215 
00216 /*\}*/
00217 
00218 /*
00219  * For applications that make use of ubik_BeginTransReadAnyWrite, writing
00220  * processes must not update the application-level cache as they write,
00221  * or else readers can read the new cache before the data is committed to
00222  * the db. So, when a commit occurs, the cache must be updated right then.
00223  * If set, this function will be called during commits of write transactions,
00224  * to update the application-level cache after a write. This will be called
00225  * immediately after the local disk commit succeeds, and it will be called
00226  * with a lock held that prevents other threads from reading from the cache
00227  * or the db in general.
00228  *
00229  * Note that this function MUST be set in order to make use of
00230  * ubik_BeginTransReadAnyWrite.
00231  */
00232 extern int (*ubik_SyncWriterCacheProc) (void);
00233 
00234 /****************INTERNALS BELOW ****************/
00235 
00236 #ifdef UBIK_INTERNALS
00237 
00238 #define UBIK_PAGESIZE       1024        
00239 #define UBIK_LOGPAGESIZE    10  
00240 #define NBUFFERS            20  
00241 #define HDRSIZE             64  
00242 /*\}*/
00243 
00245 #define DBWRITING           1   
00246 /*\}*/
00247 
00249 #define TRDONE              1   
00250 #define TRABORT             2   
00251 #define TRREADANY           4   
00252 #define TRCACHELOCKED       32  
00255 #define TRREADWRITE         64  
00257 /*\}*/
00258 
00260 #define LWANT               1
00261 /*\}*/
00262 
00264 #define LOGFILE             (-1)
00265 /*\}*/
00266 
00268 #define LOGNEW              100 
00269 #define LOGEND              101 
00270 #define LOGABORT            102 
00271 #define LOGDATA             103 
00272 #define LOGTRUNCATE         104 
00273 /*\}*/
00274 
00285 #define MAXSKEW 10
00286 #define POLLTIME 15
00287 #define RPCTIMEOUT 20
00288 #define BIGTIME 75
00289 #define SMALLTIME 60
00290 /*\}*/
00291 
00295 struct ubik_server {
00296     struct ubik_server *next;   
00297     afs_uint32 addr[UBIK_MAX_INTERFACE_ADDR];   
00298     afs_int32 lastVoteTime;     
00299     afs_int32 lastBeaconSent;   
00300     struct ubik_version version;        
00301     struct rx_connection *vote_rxcid;   
00302     struct rx_connection *disk_rxcid;   
00303     char lastVote;              
00304     char up;                    
00305     char beaconSinceDown;       
00306     char currentDB;             
00307     char magic;                 
00308     char isClone;               
00309 };
00310 
00312 #ifdef AFS_PTHREAD_ENV
00313 # define        DBHOLD(a)       MUTEX_ENTER(&((a)->versionLock))
00314 # define        DBRELE(a)       MUTEX_EXIT(&((a)->versionLock))
00315 #else /* !AFS_PTHREAD_ENV */
00316 # define        DBHOLD(a)       ObtainWriteLock(&((a)->versionLock))
00317 # define        DBRELE(a)       ReleaseWriteLock(&((a)->versionLock))
00318 #endif /* !AFS_PTHREAD_ENV */
00319 /*\}*/
00320 
00321 /* globals */
00322 
00324 extern struct ubik_server *ubik_servers;
00325 extern char amIClone;
00326 /*\}*/
00327 
00329 extern short ubik_callPortal;
00330 /*\}*/
00331 
00333 #define UBIK_RECSYNCSITE        1       /* am sync site */
00334 #define UBIK_RECFOUNDDB         2       /* found acceptable dbase from quorum */
00335 #define UBIK_RECHAVEDB          4       /* fetched best dbase */
00336 #define UBIK_RECLABELDB         8       /* relabelled dbase */
00337 #define UBIK_RECSENTDB          0x10    /* sent best db to *everyone* */
00338 #define UBIK_RECSBETTER         UBIK_RECLABELDB /* last state */
00339 /*\}*/
00340 
00341 extern afs_int32 ubik_quorum;   /* min hosts in quorum */
00342 extern struct ubik_dbase *ubik_dbase;   /* the database handled by this server */
00343 extern afs_uint32 ubik_host[UBIK_MAX_INTERFACE_ADDR];   /* this host addr, in net order */
00344 extern int ubik_amSyncSite;     /* sleep on this waiting to be sync site */
00345 extern struct ubik_stats {      /* random stats */
00346     afs_int32 escapes;
00347 } ubik_stats;
00348 extern afs_int32 urecovery_state;       /* sync site recovery process state */
00349 extern struct ubik_trans *ubik_currentTrans;    /* current trans */
00350 extern afs_int32 ubik_debugFlag;        /* ubik debug flag */
00351 extern int ubikPrimaryAddrOnly; /* use only primary address */
00352 
00353 /*
00354  * Lock ordering
00355  *
00356  * Any of the locks may be acquired singly; when acquiring multiple locks, they
00357  * should be acquired in the listed order:
00358  *      application cache lock  (dbase->cache_lock)
00359  *      database lock           DBHOLD/DBRELE
00360  *      beacon lock             UBIK_BEACON_LOCK/UNLOCK
00361  *      vote lock               UBIK_VOTE_LOCK/UNLOCK
00362  *      version lock            UBIK_VERSION_LOCK/UNLOCK
00363  *      server address lock     UBIK_ADDR_LOCK/UNLOCK
00364  */
00365 
00375 struct beacon_data {
00376 #ifdef AFS_PTHREAD_ENV
00377     pthread_mutex_t beacon_lock;
00378 #endif
00379     int ubik_amSyncSite;                
00380     afs_int32 syncSiteUntil;            
00381 };
00382 
00383 #define UBIK_BEACON_LOCK MUTEX_ENTER(&beacon_globals.beacon_lock)
00384 #define UBIK_BEACON_UNLOCK MUTEX_EXIT(&beacon_globals.beacon_lock)
00385 
00389 struct vote_data {
00390 #ifdef AFS_PTHREAD_ENV
00391     pthread_mutex_t vote_lock;
00392 #endif
00393     struct ubik_version ubik_dbVersion; /* sync site's dbase version */
00394     struct ubik_tid ubik_dbTid;         /* sync site's tid, or 0 if none */
00395     /* Used by all sites in nominating new sync sites */
00396     afs_int32 ubik_lastYesTime;         /* time we sent the last yes vote */
00397     afs_uint32 lastYesHost;             /* host to which we sent yes vote */
00398     /* Next is time sync site began this vote: guarantees sync site until this + SMALLTIME */
00399     afs_int32 lastYesClaim;
00400     int lastYesState;                   /* did last site we voted for claim to be sync site? */
00401     /* Used to guarantee that nomination process doesn't loop */
00402     afs_int32 lowestTime;
00403     afs_uint32 lowestHost;
00404     afs_int32 syncTime;
00405     afs_int32 syncHost;
00406 };
00407 
00408 #define UBIK_VOTE_LOCK MUTEX_ENTER(&vote_globals.vote_lock)
00409 #define UBIK_VOTE_UNLOCK MUTEX_EXIT(&vote_globals.vote_lock)
00410 
00418 struct addr_data {
00419 #ifdef AFS_PTHREAD_ENV
00420     pthread_mutex_t addr_lock;
00421 #endif
00422     afs_int32 ubikSecIndex;
00423     struct rx_securityClass *ubikSecClass;
00424 };
00425 
00426 #define UBIK_ADDR_LOCK MUTEX_ENTER(&addr_globals.addr_lock)
00427 #define UBIK_ADDR_UNLOCK MUTEX_EXIT(&addr_globals.addr_lock)
00428 
00433 struct version_data {
00434 #ifdef AFS_PTHREAD_ENV
00435     pthread_mutex_t version_lock;
00436 #endif
00437     afs_int32 ubik_epochTime;   /* time when this site started */
00438 };
00439 
00440 #define UBIK_VERSION_LOCK MUTEX_ENTER(&version_globals.version_lock)
00441 #define UBIK_VERSION_UNLOCK MUTEX_EXIT(&version_globals.version_lock)
00442 
00443 /* phys.c */
00444 extern int uphys_stat(struct ubik_dbase *adbase, afs_int32 afid,
00445                       struct ubik_stat *astat);
00446 extern int uphys_read(struct ubik_dbase *adbase, afs_int32 afile,
00447                       void *abuffer, afs_int32 apos,
00448                       afs_int32 alength);
00449 extern int uphys_write(struct ubik_dbase *adbase, afs_int32 afile,
00450                        void *abuffer, afs_int32 apos,
00451                        afs_int32 alength);
00452 extern int uphys_truncate(struct ubik_dbase *adbase, afs_int32 afile,
00453                           afs_int32 asize);
00454 extern int uphys_getnfiles(struct ubik_dbase *adbase);
00455 extern int uphys_getlabel(struct ubik_dbase *adbase, afs_int32 afile,
00456                           struct ubik_version *aversion);
00457 extern int uphys_setlabel(struct ubik_dbase *adbase, afs_int32 afile,
00458                           struct ubik_version *aversion);
00459 extern int uphys_sync(struct ubik_dbase *adbase, afs_int32 afile);
00460 extern void uphys_invalidate(struct ubik_dbase *adbase,
00461                              afs_int32 afid);
00462 
00464 extern int urecovery_ResetState(void);
00465 extern int urecovery_LostServer(struct ubik_server *server);
00466 extern int urecovery_AllBetter(struct ubik_dbase *adbase,
00467                                int areadAny);
00468 extern int urecovery_AbortAll(struct ubik_dbase *adbase);
00469 extern int urecovery_CheckTid(struct ubik_tid *atid, int abortalways);
00470 extern int urecovery_Initialize(struct ubik_dbase *adbase);
00471 extern void *urecovery_Interact(void *);
00472 extern int DoProbe(struct ubik_server *server);
00473 /*\}*/
00474 
00476 extern afs_int32 ContactQuorum_NoArguments(afs_int32 (*proc)
00477                                                        (struct rx_connection *,
00478                                                         ubik_tid *),
00479                                            struct ubik_trans *atrans,
00480                                            int aflags);
00481 
00482 extern afs_int32 ContactQuorum_DISK_Lock(struct ubik_trans *atrans,
00483                                          int aflags,
00484                                          afs_int32 file, afs_int32 position,
00485                                          afs_int32 length, afs_int32 type);
00486 
00487 extern afs_int32 ContactQuorum_DISK_Write(struct ubik_trans *atrans,
00488                                           int aflags,
00489                                           afs_int32 file, afs_int32 position,
00490                                           bulkdata *data);
00491 
00492 extern afs_int32 ContactQuorum_DISK_Truncate(struct ubik_trans *atrans,
00493                                              int aflags,
00494                                              afs_int32 file, afs_int32 length);
00495 
00496 extern afs_int32 ContactQuorum_DISK_WriteV(struct ubik_trans *atrans,
00497                                            int aflags,
00498                                            iovec_wrt * io_vector,
00499                                            iovec_buf *io_buffer);
00500 
00501 extern afs_int32 ContactQuorum_DISK_SetVersion(struct ubik_trans *atrans,
00502                                                int aflags,
00503                                                ubik_version *OldVersion,
00504                                                ubik_version *NewVersion);
00505 
00506 extern void panic(char *format, ...)
00507     AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
00508 
00509 extern afs_uint32 ubikGetPrimaryInterfaceAddr(afs_uint32 addr);
00510 
00511 extern int ubik_CheckAuth(struct rx_call *);
00512 
00513 /*\}*/
00514 
00516 struct afsconf_cell;
00517 extern void ubeacon_InitSecurityClass(void);
00518 extern void ubeacon_ReinitServer(struct ubik_server *ts);
00519 extern void ubeacon_Debug(struct ubik_debug *aparm);
00520 extern int ubeacon_AmSyncSite(void);
00521 extern int ubeacon_InitServerListByInfo(afs_uint32 ame,
00522                                         struct afsconf_cell *info,
00523                                         char clones[]);
00524 extern int ubeacon_InitServerList(afs_uint32 ame, afs_uint32 aservers[]);
00525 extern void *ubeacon_Interact(void *);
00526 extern int ubeacon_updateUbikNetworkAddress(afs_uint32 ubik_host[]);
00527 extern struct beacon_data beacon_globals;
00528 extern struct addr_data addr_globals;
00529 
00530 /*\}*/
00531 
00533 extern int udisk_Init(int nBUffers);
00534 extern void udisk_Debug(struct ubik_debug *aparm);
00535 extern int udisk_Invalidate(struct ubik_dbase *adbase, afs_int32 afid);
00536 extern int udisk_read(struct ubik_trans *atrans, afs_int32 afile,
00537                       void *abuffer, afs_int32 apos, afs_int32 alen);
00538 extern int udisk_truncate(struct ubik_trans *atrans, afs_int32 afile,
00539                           afs_int32 alength);
00540 extern int udisk_write(struct ubik_trans *atrans, afs_int32 afile,
00541                        void *abuffer, afs_int32 apos, afs_int32 alen);
00542 extern int udisk_begin(struct ubik_dbase *adbase, int atype,
00543                        struct ubik_trans **atrans);
00544 extern int udisk_commit(struct ubik_trans *atrans);
00545 extern int udisk_abort(struct ubik_trans *atrans);
00546 extern int udisk_end(struct ubik_trans *atrans);
00547 /*\}*/
00548 
00550 extern void ulock_Init(void);
00551 extern int  ulock_getLock(struct ubik_trans *atrans, int atype, int await);
00552 extern void ulock_relLock(struct ubik_trans *atrans);
00553 extern void ulock_Debug(struct ubik_debug *aparm);
00554 /*\}*/
00555 
00557 extern int uvote_ShouldIRun(void);
00558 extern afs_int32 uvote_GetSyncSite(void);
00559 extern int uvote_Init(void);
00560 extern void ubik_vprint(const char *format, va_list ap)
00561     AFS_ATTRIBUTE_FORMAT(__printf__, 1, 0);
00562 
00563 extern void ubik_print(const char *format, ...)
00564     AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
00565 
00566 extern void ubik_dprint(const char *format, ...)
00567     AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
00568 
00569 extern void ubik_dprint_25(const char *format, ...)
00570     AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
00571 extern struct vote_data vote_globals;
00572 extern void uvote_set_dbVersion(struct ubik_version);
00573 extern int uvote_eq_dbVersion(struct ubik_version);
00574 extern int uvote_HaveSyncAndVersion(struct ubik_version);
00575 /*\}*/
00576 
00577 #endif /* UBIK_INTERNALS */
00578 
00579 extern afs_int32 ubik_nBuffers;
00580 
00586 struct afsconf_cell;
00587 extern int ubik_ServerInitByInfo(afs_uint32 myHost, short myPort,
00588                                  struct afsconf_cell *info, char clones[],
00589                                  const char *pathName,
00590                                  struct ubik_dbase **dbase);
00591 extern int ubik_ServerInit(afs_uint32 myHost, short myPort,
00592                            afs_uint32 serverList[],
00593                            const char *pathName, struct ubik_dbase **dbase);
00594 extern int ubik_BeginTrans(struct ubik_dbase *dbase,
00595                            afs_int32 transMode, struct ubik_trans **transPtr);
00596 extern int ubik_BeginTransReadAny(struct ubik_dbase *dbase,
00597                                   afs_int32 transMode,
00598                                   struct ubik_trans **transPtr);
00599 extern int ubik_BeginTransReadAnyWrite(struct ubik_dbase *dbase,
00600                                        afs_int32 transMode,
00601                                        struct ubik_trans **transPtr);
00602 extern int ubik_AbortTrans(struct ubik_trans *transPtr);
00603 
00604 extern int ubik_EndTrans(struct ubik_trans *transPtr);
00605 extern int ubik_Read(struct ubik_trans *transPtr, void *buffer,
00606                      afs_int32 length);
00607 extern int ubik_Flush(struct ubik_trans *transPtr);
00608 extern int ubik_Write(struct ubik_trans *transPtr, void *buffer,
00609                       afs_int32 length);
00610 extern int ubik_Seek(struct ubik_trans *transPtr, afs_int32 fileid,
00611                      afs_int32 position);
00612 extern int ubik_Tell(struct ubik_trans *transPtr, afs_int32 * fileid,
00613                      afs_int32 * position);
00614 extern int ubik_Truncate(struct ubik_trans *transPtr,
00615                          afs_int32 length);
00616 extern int ubik_SetLock(struct ubik_trans *atrans, afs_int32 apos,
00617                         afs_int32 alen, int atype);
00618 extern int ubik_WaitVersion(struct ubik_dbase *adatabase,
00619                             struct ubik_version *aversion);
00620 extern int ubik_GetVersion(struct ubik_trans *atrans,
00621                            struct ubik_version *avers);
00622 extern int ubik_CheckCache(struct ubik_trans *atrans,
00623                            ubik_updatecache_func check,
00624                            void *rock);
00625 extern struct version_data version_globals;
00626 /*\}*/
00627 
00630 extern int ubik_ParseClientList(int argc, char **argv, afs_uint32 * aothers);
00631 extern unsigned int afs_random(void);
00632 extern int ubik_ClientInit(struct rx_connection **serverconns,
00633                            struct ubik_client **aclient);
00634 extern afs_int32 ubik_ClientDestroy(struct ubik_client *aclient);
00635 extern struct rx_connection *ubik_RefreshConn(struct rx_connection *tc);
00636 #ifdef UBIK_LEGACY_CALLITER
00637 extern afs_int32 ubik_CallIter(int (*aproc) (), struct ubik_client *aclient,
00638                                afs_int32 aflags, int *apos, long p1, long p2,
00639                                long p3, long p4, long p5, long p6, long p7,
00640                                long p8, long p9, long p10, long p11, long p12,
00641                                long p13, long p14, long p15, long p16);
00642 extern afs_int32 ubik_Call_New(int (*aproc) (), struct ubik_client
00643                                *aclient, afs_int32 aflags, long p1, long p2,
00644                                long p3, long p4, long p5, long p6, long p7,
00645                                long p8, long p9, long p10, long p11, long p12,
00646                                long p13, long p14, long p15, long p16);
00647 #endif
00648 /*\}*/
00649 
00650 /* \name ubikcmd.c */
00651 extern int ubik_ParseServerList(int argc, char **argv, afs_uint32 *ahost,
00652                                 afs_uint32 *aothers);
00653 /*\}*/
00654 
00655 /* \name uinit.c */
00656 
00657 struct rx_securityClass;
00658 extern afs_int32 ugen_ClientInit(int noAuthFlag, const char *confDir,
00659                                  char *cellName, afs_int32 sauth,
00660                                  struct ubik_client **uclientp,
00661                                  int (*secproc) (struct rx_securityClass *sc,
00662                                                  afs_int32 scIndex),
00663                                  char *funcName,
00664                                  afs_int32 gen_rxkad_level,
00665                                  afs_int32 maxservers, char *serviceid,
00666                                  afs_int32 deadtime, afs_uint32 server,
00667                                  afs_uint32 port, afs_int32 usrvid);
00668 
00669 #endif /* UBIK_H */
00670 
00671 /* End of prolog file ./ubik.p.h. */
00672 
00673 #define UNOQUORUM                                (5376L)
00674 #define UNOTSYNC                                 (5377L)
00675 #define UNHOSTS                                  (5378L)
00676 #define UIOERROR                                 (5379L)
00677 #define UINTERNAL                                (5380L)
00678 #define USYNC                                    (5381L)
00679 #define UNOENT                                   (5382L)
00680 #define UBADLOCK                                 (5383L)
00681 #define UBADLOG                                  (5384L)
00682 #define UBADHOST                                 (5385L)
00683 #define UBADTYPE                                 (5386L)
00684 #define UTWOENDS                                 (5387L)
00685 #define UDONE                                    (5388L)
00686 #define UNOSERVERS                               (5389L)
00687 #define UEOF                                     (5390L)
00688 #define ULOGIO                                   (5391L)
00689 #define UBADFAM                                  (5392L)
00690 #define UBADCELL                                 (5393L)
00691 #define UBADSECGRP                               (5394L)
00692 #define UBADGROUP                                (5395L)
00693 #define UBADUUID                                 (5396L)
00694 #define UNOMEM                                   (5397L)
00695 #define UNOTMEMBER                               (5398L)
00696 #define UNBINDINGS                               (5399L)
00697 #define UBADPRINNAME                             (5400L)
00698 #define UPIPE                                    (5401L)
00699 #define UDEADLOCK                                (5402L)
00700 #define UEXCEPTION                               (5403L)
00701 #define UTPQFAIL                                 (5404L)
00702 #define USKEWED                                  (5405L)
00703 #define UNOLOCK                                  (5406L)
00704 #define UNOACCESS                                (5407L)
00705 #define UNOSPC                                   (5408L)
00706 #define UBADPATH                                 (5409L)
00707 #define UBADF                                    (5410L)
00708 #define UREINITIALIZE                            (5411L)
00709 #define UMUTEXINIT                               (5412L)
00710 #define UMUTEXDESTROY                            (5413L)
00711 extern void initialize_U_error_table(void);
00712 #define ERROR_TABLE_BASE_U (5376L)
00713 
00714 /* for compatibility with older versions... */
00715 #define init_U_err_tbl initialize_U_error_table
00716 #define U_err_base ERROR_TABLE_BASE_U
00717 
00718 /* for compatibility with other users... */
00719 #define ERROR_TABLE_BASE_u (5376L)
00720 #define init_u_err_tbl initialize_U_error_table
00721 #define initialize_u_error_table initialize_U_error_table
00722 #define u_err_base ERROR_TABLE_BASE_u
 All Data Structures Files Functions Variables