24#ifndef _VENUS_PRIVATE_H_
25#define _VENUS_PRIVATE_H_
34#include <sys/resource.h>
65#define RC_STATUSREAD 1
66#define RC_STATUSWRITE 2
67#define RC_STATUS (RC_STATUSREAD | RC_STATUSWRITE)
70#define RC_DATA (RC_DATAREAD | RC_DATAWRITE)
72#define EMULTRSLTS ETOOMANYREFS
73#define ESYNRESOLVE 155
74#define EASYRESOLVE 156
84#define EASRSTARTED 200
86#define ASR_INTERVAL 300
89#define DFLT_VR "/coda"
90#define DFLT_CD "/usr/coda/venus.cache"
92#define DFLT_PIDFILE "pid"
93#define DFLT_CTRLFILE "VENUS_CTRL"
95#define DFLT_LOGFILE "/usr/coda/etc/venus.log"
96#define DFLT_ERRLOG "/usr/coda/etc/console"
109#define UNSET_PRIMARYUSER 0
125#if defined(__CYGWIN32__)
126const gid_t
V_GID = 513;
143#define ALL_FIDS (&NullFid)
145#define STREQ(a, b) (strcmp((a), (b)) == 0)
146#define STRNEQ(a, b, n) (strncmp((a), (b), (n)) == 0)
147#define NBLOCKS(bytes) ((bytes + 1023) >> 10)
148#define NBLOCKS_BYTES(bytes) (NBLOCKS(bytes) << 10)
151#define FOLLOW_SYMLINKS \
153#define TRAVERSE_MTPTS 0x2
158#define LOG(level, stmt) \
160 if (LogLevel >= (level)) \
164#define LOG(level, stmt)
177#define ObtainLock(lock, level) \
181 ObtainReadLock(lock); \
185 ObtainSharedLock(lock); \
189 ObtainWriteLock(lock); \
198#define ReleaseLock(lock, level) \
202 ReleaseReadLock(lock); \
206 ReleaseSharedLock(lock); \
210 ReleaseWriteLock(lock); \
221#define SubTimes(end, start) \
222 ((((end)->tv_sec - (start)->tv_sec) * 1000.0) + \
223 (((end)->tv_usec - (start)->tv_usec) / 1000.0))
225#define START_TIMING() \
226 struct timeval StartTV, EndTV; \
227 gettimeofday(&StartTV, 0);
229#define END_TIMING() \
230 gettimeofday(&EndTV, 0); \
232 elapsed = SubTimes(&EndTV, &StartTV);
234#define SubTimes(end, start) (0.0)
235#define START_TIMING()
236#define END_TIMING() float elapsed = 0.0;
275#define TRANSLATE_TO_LOWER(s) \
277 for (char *c = s; *c; c++) \
281#define TRANSLATE_TO_UPPER(s) \
283 for (char *c = s; *c; c++) \
288#define CHOKE(me...) choke(__FILE__, __LINE__, ##me)
291void dprint(
const char *...);
292void choke(
const char *
file,
int line,
const char *...);
300void VVPrint(FILE *, ViceVersionVector **);
336extern const ViceVersionVector
NullVV;
unsigned int uint32_t
Definition: coda.h:105
#define EXCLUDES_TRANSACTION
Definition: coda_tsa.h:108
char * argv[]
Definition: dir.cc:35
FILE * file
Definition: dirtest.c:723
int32_t RPC2_Integer
Definition: rpc2.h:297
uint32_t RPC2_Unsigned
Definition: rpc2.h:300
RPC2_Integer RPC2_Handle
Definition: rpc2.h:345
@ f
Definition: rvm_private.h:416
Definition: venus.private.h:265
int count
Definition: venus.private.h:266
int blocks
Definition: venus.private.h:267
Definition: venus.private.h:270
CacheEventRecord events[10]
Definition: venus.private.h:271
Definition: venus.private.h:388
RPC2_Handle * handles
Definition: venus.private.h:390
RPC2_Integer * retcodes
Definition: venus.private.h:392
unsigned long ph
Definition: venus.private.h:394
int ph_ix
Definition: venus.private.h:393
RPC2_Unsigned nservers
Definition: venus.private.h:389
struct in_addr * hosts
Definition: venus.private.h:391
RPC2_Multicast * MIp
Definition: venus.private.h:395
Definition: venusstats.h:110
Definition: venusstats.h:114
Definition: venusstats.h:50
Definition: venusfid.h:24
const char * venusRoot
Definition: venus.cc:90
VenusFid ASRfid
Definition: venus.cc:109
const char * VenusLogFile
Definition: venus.cc:102
const char * VenusOpStr(int)
Definition: venusutil.cc:292
int option_isr
Definition: venus.cc:112
LockLevel
Definition: venus.private.h:170
@ SH
Definition: venus.private.h:173
@ RD
Definition: venus.private.h:172
@ WR
Definition: venus.private.h:174
@ NL
Definition: venus.private.h:171
RPCOpStatistics RPCOpStats
Definition: venusutil.cc:88
const unsigned short V_MODE
Definition: venus.private.h:133
void ToggleMallocTrace()
Definition: venusutil.cc:833
const char * VenusControlFile
Definition: venus.cc:101
int binaryfloor(int)
Definition: venusutil.cc:522
int CleanShutDown
Definition: venus.cc:84
const int MIN_CF
Definition: venus.private.h:105
VenusFid rootfid
Definition: venus.cc:82
const int OWNERWRITE
Definition: venus.private.h:136
const char * MarinerSocketPath
Definition: venus.cc:105
time_t Vtime()
Definition: venusutil.cc:884
int FAV_Compare(ViceFidAndVV *, ViceFidAndVV *)
Definition: venusutil.cc:893
const char * VenusRetStr(int)
Definition: venusutil.cc:494
void LogInit()
Definition: venusutil.cc:532
void SwapLog()
Definition: venusutil.cc:851
long int RPC2_DebugLevel
Definition: globals.c:53
void MUX_add_callback(int fd, void(*cb)(int fd, void *udata), void *udata)
Definition: venus.cc:213
void rds_printer(char *...)
Definition: srv.cc:1282
uid_t PrimaryUser
Definition: venus.cc:97
const ViceVersionVector NullVV
Definition: dummy.cc:41
void RPCPrint(int)
Definition: venusutil.cc:618
FILE * logFile
Definition: venusutil.cc:82
vproc * Main
Definition: venus.cc:81
void dprint(const char *...)
Definition: venusutil.cc:106
int PiggyValidations
Definition: venus.cc:107
uid_t ASRuid
Definition: venus.cc:110
const int MIN_CB
Definition: venus.private.h:104
const int FILES_PER_HDBE
Definition: venus.private.h:102
const int OWNEREXEC
Definition: venus.private.h:137
const char * realmtab
Definition: venus.cc:92
const char * ASRLauncherFile
Definition: venus.cc:103
int T1Interval
Definition: comm_daemon.cc:46
const uint32_t V_MAXACLLEN
Definition: venus.private.h:139
const int V_BLKSIZE
Definition: venus.private.h:140
void DumpState()
Definition: venusutil.cc:565
int masquerade_port
Definition: venus.cc:106
void StatsInit()
Definition: venusutil.cc:816
long rootnodeid
Definition: venus.cc:83
const gid_t V_GID
Definition: venus.private.h:128
int yellowzone_limit
Definition: venus.private.h:372
int redzone_limit
Definition: venus.cc:133
CacheType
Definition: venus.private.h:241
@ DATA
Definition: venus.private.h:243
@ ATTR
Definition: venus.private.h:242
void SubCSSs(RPCPktStatistics *, RPCPktStatistics *)
Definition: venusutil.cc:706
int nofork
Definition: venus.cc:130
const int BLOCKS_PER_FILE
Definition: venus.private.h:100
long int RPC2_Trace
Definition: globals.c:53
void VVPrint(FILE *, ViceVersionVector **)
Definition: venusutil.cc:513
const int MIN_HDBE
Definition: venus.private.h:107
uint64_t CacheBlocks
Definition: venus.cc:96
void choke(const char *file, int line, const char *...)
Definition: venusutil.cc:141
int LogLevel
Definition: proctest.cc:26
const uid_t UNSET_UID
Definition: venus.private.h:132
const int MLES_PER_FILE
Definition: venus.private.h:101
const char * ASRPolicyFile
Definition: venus.cc:104
void DebugOff()
Definition: venusutil.cc:554
const char * IoctlOpStr(unsigned char nr)
Definition: venusutil.cc:303
const int FREE_FACTOR
Definition: venus.private.h:110
pid_t ASRpid
Definition: venus.cc:108
void Terminate()
Definition: rvm_basher.c:132
const VenusFid NullFid
Definition: venusutil.cc:85
const int MIN_MLE
Definition: venus.private.h:106
const int TIMERINTERVAL
Definition: venus.private.h:141
int GetTime(long *, long *)
void DaemonInit()
Definition: daemon.cc:53
CacheEvent
Definition: venus.private.h:249
@ CREATE
Definition: venus.private.h:256
@ WRITE
Definition: venus.private.h:257
@ REPLACE
Definition: venus.private.h:259
@ RETRY
Definition: venus.private.h:252
@ NOSPACE
Definition: venus.private.h:254
@ REMOVE
Definition: venus.private.h:258
@ FAILURE
Definition: venus.private.h:255
@ TIMEOUT
Definition: venus.private.h:253
@ HIT
Definition: venus.private.h:250
@ MISS
Definition: venus.private.h:251
const int OWNERBITS
Definition: venus.private.h:134
const char * SpoolDir
Definition: venus.cc:98
void RusagePrint(int)
Definition: venusutil.cc:576
const uid_t V_UID
Definition: venus.private.h:116
void MallocPrint(int)
Definition: venusutil.cc:788
const char * CachePrefix
Definition: venus.cc:95
int parent_fd
Definition: venus.cc:158
VFSStatistics VFSStats
Definition: venusutil.cc:87
void VFSPrint(int)
Definition: venusutil.cc:594
const char * lvlstr(LockLevel)
Definition: venusutil.cc:863
struct timeval DaemonExpiry
Definition: venus.cc:140
const char * VenusPidFile
Definition: venus.cc:100
void MakeUserSpoolDir(char *, uid_t)
Definition: spool.cc:54
void FireAndForget(const char *name, void(*f)(void), int interval, int stacksize=32 *1024) EXCLUDES_TRANSACTION
Definition: daemon.cc:177
const uid_t HOARD_UID
Definition: venus.private.h:131
void GetCSS(RPCPktStatistics *)
Definition: venusutil.cc:694
const char * consoleFile
Definition: venus.cc:89
int MallocTrace
Definition: venusutil.cc:84
void RegisterDaemon(unsigned long, char *)
Definition: daemon.cc:62
int mariner_tcp_enable
Definition: venus.cc:126
const char * CacheDir
Definition: venus.cc:94
int detect_reintegration_retry
Definition: venus.cc:111
const int OWNERREAD
Definition: venus.private.h:135
void DispatchDaemons()
Definition: daemon.cc:104
void(* PROC_V_UL)(unsigned long)
Definition: venus.private.h:144
int allow_reattach
Definition: worker.cc:127
void VenusPrint(int argc, const char **argv)
Definition: venusutil.cc:179
const int GETDATA
Definition: venus.private.h:142
int plan9server_enabled
Definition: venus.cc:129
const uint32_t NO_HOST
Definition: venus.private.h:138
const char * kernDevice
Definition: venus.cc:91
void DebugOn()
Definition: venusutil.cc:548
const uid_t ANYUSER_UID
Definition: venus.private.h:130