#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