#include <stdio.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <sys/param.h>
#include <ctype.h>
#include <errno.h>
#include <lwp/lock.h>
#include <rpc2/rpc2.h>
#include <util.h>
#include "coda_assert.h"
#include <vice.h>
#include <inconsist.h>
#include "venusstats.h"
#include "venusfid.h"
Go to the source code of this file.
|
| #define | O_BINARY 0 |
| |
| #define | RC_STATUSREAD 1 |
| |
| #define | RC_STATUSWRITE 2 |
| |
| #define | RC_STATUS (RC_STATUSREAD | RC_STATUSWRITE) |
| |
| #define | RC_DATAREAD 4 |
| |
| #define | RC_DATAWRITE 8 |
| |
| #define | RC_DATA (RC_DATAREAD | RC_DATAWRITE) |
| |
| #define | EMULTRSLTS ETOOMANYREFS /* external */ |
| |
| #define | ESYNRESOLVE 155 /* internal */ |
| |
| #define | EASYRESOLVE 156 /* internal */ |
| |
| #define | ERETRY 157 /* internal */ |
| |
| #define | EASRSTARTED 200 |
| |
| #define | ASR_INTERVAL 300 |
| |
| #define | DFLT_VR "/coda" /* venus root */ |
| |
| #define | DFLT_CD "/usr/coda/venus.cache" /* cache directory */ |
| |
| #define | DFLT_PIDFILE "pid" /* default pid file */ |
| |
| #define | DFLT_CTRLFILE "VENUS_CTRL" /* default control file */ |
| |
| #define | DFLT_LOGFILE "/usr/coda/etc/venus.log" /* venus log file */ |
| |
| #define | DFLT_ERRLOG "/usr/coda/etc/console" /* venus error log */ |
| |
| #define | MIN_CS "2MB" |
| |
| #define | UNSET_PRIMARYUSER 0 /* primary user of this machine */ |
| |
| #define | ALL_FIDS (&NullFid) |
| |
| #define | STREQ(a, b) (strcmp((a), (b)) == 0) |
| |
| #define | STRNEQ(a, b, n) (strncmp((a), (b), (n)) == 0) |
| |
| #define | NBLOCKS(bytes) ((bytes + 1023) >> 10) |
| |
| #define | NBLOCKS_BYTES(bytes) (NBLOCKS(bytes) << 10) |
| |
| #define | FOLLOW_SYMLINKS 0x1 /* should lookup follow symlinks for last component? */ |
| |
| #define | TRAVERSE_MTPTS 0x2 /* should lookup cross covered mount points? */ |
| |
| #define | REFERENCE 0x8 /* should cache references be noted? */ |
| |
| #define | LOG(level, stmt) |
| |
| #define | ObtainLock(lock, level) |
| |
| #define | ReleaseLock(lock, level) |
| |
| #define | SubTimes(end, start) (0.0) |
| |
| #define | START_TIMING() |
| |
| #define | END_TIMING() float elapsed = 0.0; |
| |
| #define | TRANSLATE_TO_LOWER(s) |
| |
| #define | TRANSLATE_TO_UPPER(s) |
| |
| #define | CHOKE(me...) choke(__FILE__, __LINE__, ##me) |
| |
|
| enum | LockLevel { NL
, RD
, SH
, WR
} |
| |
| enum | CacheType { ATTR
, DATA
} |
| |
| enum | CacheEvent {
HIT
, MISS
, RETRY
, TIMEOUT
,
NOSPACE
, FAILURE
, CREATE
, WRITE
,
REMOVE
, REPLACE
} |
| |
|
| void | dprint (const char *...) |
| |
| void | choke (const char *file, int line, const char *...) |
| |
| void | rds_printer (char *...) |
| |
| void | VenusPrint (int argc, const char **argv) |
| |
| void | VenusPrint (FILE *, int argc, const char **argv) |
| |
| void | VenusPrint (int, int argc, const char **argv) |
| |
| const char * | VenusOpStr (int) |
| |
| const char * | IoctlOpStr (unsigned char nr) |
| |
| const char * | VenusRetStr (int) |
| |
| void | VVPrint (FILE *, ViceVersionVector **) |
| |
| int | binaryfloor (int) |
| |
| void | LogInit () |
| |
| void | DebugOn () |
| |
| void | DebugOff () |
| |
| void | Terminate () |
| |
| void | DumpState () |
| |
| void | RusagePrint (int) |
| |
| void | VFSPrint (int) |
| |
| void | RPCPrint (int) |
| |
| void | GetCSS (RPCPktStatistics *) |
| |
| void | SubCSSs (RPCPktStatistics *, RPCPktStatistics *) |
| |
| void | MallocPrint (int) |
| |
| void | StatsInit () |
| |
| void | SwapLog () |
| |
| void | ToggleMallocTrace () |
| |
| const char * | lvlstr (LockLevel) |
| |
| int | GetTime (long *, long *) |
| |
| time_t | Vtime () |
| |
| int | FAV_Compare (ViceFidAndVV *, ViceFidAndVV *) |
| |
| void | DaemonInit () |
| |
| void | FireAndForget (const char *name, void(*f)(void), int interval, int stacksize=32 *1024) EXCLUDES_TRANSACTION |
| |
| void | RegisterDaemon (unsigned long, char *) |
| |
| void | DispatchDaemons () |
| |
| void | MUX_add_callback (int fd, void(*cb)(int fd, void *udata), void *udata) |
| |
| void | MakeUserSpoolDir (char *, uid_t) |
| |
◆ ALL_FIDS
◆ ASR_INTERVAL
◆ CHOKE
◆ DFLT_CD
| #define DFLT_CD "/usr/coda/venus.cache" /* cache directory */ |
◆ DFLT_CTRLFILE
| #define DFLT_CTRLFILE "VENUS_CTRL" /* default control file */ |
◆ DFLT_ERRLOG
| #define DFLT_ERRLOG "/usr/coda/etc/console" /* venus error log */ |
◆ DFLT_LOGFILE
| #define DFLT_LOGFILE "/usr/coda/etc/venus.log" /* venus log file */ |
◆ DFLT_PIDFILE
◆ DFLT_VR
| #define DFLT_VR "/coda" /* venus root */ |
◆ EASRSTARTED
◆ EASYRESOLVE
| #define EASYRESOLVE 156 /* internal */ |
◆ EMULTRSLTS
◆ END_TIMING
| #define END_TIMING |
( |
| ) |
float elapsed = 0.0; |
◆ ERETRY
| #define ERETRY 157 /* internal */ |
◆ ESYNRESOLVE
| #define ESYNRESOLVE 155 /* internal */ |
◆ FOLLOW_SYMLINKS
| #define FOLLOW_SYMLINKS 0x1 /* should lookup follow symlinks for last component? */ |
◆ LOG
◆ MIN_CS
◆ NBLOCKS
◆ NBLOCKS_BYTES
◆ O_BINARY
◆ ObtainLock
| #define ObtainLock |
( |
|
lock, |
|
|
|
level |
|
) |
| |
Value: { \
ObtainReadLock(lock); \
break; \
\
ObtainSharedLock(lock); \
break; \
\
ObtainWriteLock(lock); \
break; \
\
default: \
CODA_ASSERT(0); \
} \
}
level
Definition: make_certs.py:100
@ SH
Definition: venus.private.h:173
@ RD
Definition: venus.private.h:172
@ WR
Definition: venus.private.h:174
@ NL
Definition: venus.private.h:171
◆ RC_DATA
◆ RC_DATAREAD
◆ RC_DATAWRITE
◆ RC_STATUS
◆ RC_STATUSREAD
◆ RC_STATUSWRITE
◆ REFERENCE
| #define REFERENCE 0x8 /* should cache references be noted? */ |
◆ ReleaseLock
| #define ReleaseLock |
( |
|
lock, |
|
|
|
level |
|
) |
| |
Value: { \
ReleaseReadLock(lock); \
break; \
\
ReleaseSharedLock(lock); \
break; \
\
ReleaseWriteLock(lock); \
break; \
\
default: \
CODA_ASSERT(0); \
} \
}
◆ START_TIMING
◆ STREQ
◆ STRNEQ
| #define STRNEQ |
( |
|
a, |
|
|
|
b, |
|
|
|
n |
|
) |
| (strncmp((a), (b), (n)) == 0) |
◆ SubTimes
| #define SubTimes |
( |
|
end, |
|
|
|
start |
|
) |
| (0.0) |
◆ TRANSLATE_TO_LOWER
| #define TRANSLATE_TO_LOWER |
( |
|
s | ) |
|
Value: { \
for (
char *
c = s; *
c;
c++) \
}
char c
Definition: tdb.c:54
◆ TRANSLATE_TO_UPPER
| #define TRANSLATE_TO_UPPER |
( |
|
s | ) |
|
Value: { \
for (
char *
c = s; *
c;
c++) \
}
◆ TRAVERSE_MTPTS
| #define TRAVERSE_MTPTS 0x2 /* should lookup cross covered mount points? */ |
◆ UNSET_PRIMARYUSER
| #define UNSET_PRIMARYUSER 0 /* primary user of this machine */ |
◆ PROC_V_UL
| typedef void(* PROC_V_UL) (unsigned long) |
◆ CacheEvent
| Enumerator |
|---|
| HIT | |
| MISS | |
| RETRY | |
| TIMEOUT | |
| NOSPACE | |
| FAILURE | |
| CREATE | |
| WRITE | |
| REMOVE | |
| REPLACE | |
◆ CacheType
◆ LockLevel
◆ binaryfloor()
◆ choke()
| void choke |
( |
const char * |
file, |
|
|
int |
line, |
|
|
const char * |
... |
|
) |
| |
◆ DaemonInit()
◆ DebugOff()
◆ DebugOn()
◆ DispatchDaemons()
◆ dprint()
| void dprint |
( |
const char * |
... | ) |
|
◆ DumpState()
◆ FAV_Compare()
| int FAV_Compare |
( |
ViceFidAndVV * |
fav1, |
|
|
ViceFidAndVV * |
fav2 |
|
) |
| |
◆ FireAndForget()
| void FireAndForget |
( |
const char * |
name, |
|
|
void(*)(void) |
f, |
|
|
int |
interval, |
|
|
int |
stacksize = 32 *1024 |
|
) |
| |
◆ GetCSS()
◆ GetTime()
| int GetTime |
( |
long * |
, |
|
|
long * |
|
|
) |
| |
◆ IoctlOpStr()
| const char * IoctlOpStr |
( |
unsigned char |
nr | ) |
|
◆ LogInit()
◆ lvlstr()
◆ MakeUserSpoolDir()
| void MakeUserSpoolDir |
( |
char * |
usd, |
|
|
uid_t |
owner |
|
) |
| |
◆ MallocPrint()
| void MallocPrint |
( |
int |
fd | ) |
|
◆ MUX_add_callback()
| void MUX_add_callback |
( |
int |
fd, |
|
|
void(*)(int fd, void *udata) |
cb, |
|
|
void * |
udata |
|
) |
| |
◆ rds_printer()
| void rds_printer |
( |
char * |
... | ) |
|
◆ RegisterDaemon()
| void RegisterDaemon |
( |
unsigned long |
interval, |
|
|
char * |
sync |
|
) |
| |
◆ RPCPrint()
◆ RusagePrint()
| void RusagePrint |
( |
int |
afd | ) |
|
◆ StatsInit()
◆ SubCSSs()
◆ SwapLog()
◆ Terminate()
◆ ToggleMallocTrace()
| void ToggleMallocTrace |
( |
| ) |
|
◆ VenusOpStr()
| const char * VenusOpStr |
( |
int |
opcode | ) |
|
◆ VenusPrint() [1/3]
| void VenusPrint |
( |
FILE * |
fp, |
|
|
int |
argc, |
|
|
const char ** |
argv |
|
) |
| |
◆ VenusPrint() [2/3]
| void VenusPrint |
( |
int |
argc, |
|
|
const char ** |
argv |
|
) |
| |
◆ VenusPrint() [3/3]
| void VenusPrint |
( |
int |
fd, |
|
|
int |
argc, |
|
|
const char ** |
argv |
|
) |
| |
◆ VenusRetStr()
| const char * VenusRetStr |
( |
int |
retcode | ) |
|
◆ VFSPrint()
◆ Vtime()
◆ VVPrint()
| void VVPrint |
( |
FILE * |
fp, |
|
|
ViceVersionVector ** |
vvp |
|
) |
| |
◆ allow_reattach
◆ ANYUSER_UID
| const uid_t ANYUSER_UID = (uid_t)-1 |
◆ ASRfid
◆ ASRLauncherFile
| const char* ASRLauncherFile |
|
extern |
◆ ASRpid
◆ ASRPolicyFile
| const char* ASRPolicyFile |
|
extern |
◆ ASRuid
◆ BLOCKS_PER_FILE
| const int BLOCKS_PER_FILE = 24 |
◆ CacheBlocks
◆ CacheDir
◆ CachePrefix
◆ CleanShutDown
◆ consoleFile
◆ DaemonExpiry
| struct timeval DaemonExpiry |
|
extern |
◆ detect_reintegration_retry
| int detect_reintegration_retry |
|
extern |
◆ FILES_PER_HDBE
| const int FILES_PER_HDBE = 2 |
◆ FREE_FACTOR
| const int FREE_FACTOR = 16 |
◆ GETDATA
◆ HOARD_UID
| const uid_t HOARD_UID = (uid_t)-2 |
◆ kernDevice
◆ logFile
◆ LogLevel
◆ Main
◆ MallocTrace
◆ mariner_tcp_enable
◆ MarinerSocketPath
| const char* MarinerSocketPath |
|
extern |
◆ masquerade_port
◆ MIN_CB
◆ MIN_CF
◆ MIN_HDBE
◆ MIN_MLE
◆ MLES_PER_FILE
| const int MLES_PER_FILE = 4 |
◆ NO_HOST
◆ nofork
◆ NullFid
◆ NullVV
| const ViceVersionVector NullVV |
|
extern |
◆ option_isr
◆ OWNERBITS
| const int OWNERBITS = 0700 |
◆ OWNEREXEC
| const int OWNEREXEC = 0100 |
◆ OWNERREAD
| const int OWNERREAD = 0400 |
◆ OWNERWRITE
| const int OWNERWRITE = 0200 |
◆ parent_fd
◆ PiggyValidations
◆ plan9server_enabled
◆ PrimaryUser
◆ realmtab
◆ redzone_limit
◆ rootfid
◆ rootnodeid
◆ RPC2_DebugLevel
◆ RPC2_Trace
◆ RPCOpStats
◆ SFTP_DebugLevel
◆ SpoolDir
◆ T1Interval
◆ TIMERINTERVAL
| const int TIMERINTERVAL = 5 |
◆ UNSET_UID
| const uid_t UNSET_UID = (uid_t)-666 |
◆ V_BLKSIZE
| const int V_BLKSIZE = 8192 |
◆ V_GID
| const gid_t V_GID = 65534 |
◆ V_MAXACLLEN
◆ V_MODE
| const unsigned short V_MODE = 0600 |
◆ V_UID
| const uid_t V_UID = (uid_t)0 |
◆ VenusControlFile
| const char* VenusControlFile |
|
extern |
◆ VenusLogFile
◆ VenusPidFile
◆ venusRoot
◆ VFSStats
◆ yellowzone_limit