Coda Distributed File System
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
vproc Class Reference

#include <vproc.h>

Inheritance diagram for vproc:
Inheritance graph
[legend]
Collaboration diagram for vproc:
Collaboration graph
[legend]

Public Member Functions

 vproc (const char *, PROCBODY, vproctype, int=VPROC_DEFAULT_STACK_SIZE, int=LWP_NORMAL_PRIORITY)
 
 vproc (vproc &)
 
int operator= (vproc &)
 
virtual ~vproc ()
 
void Begin_VFS (Volid *, int, int=-1) EXCLUDES_TRANSACTION
 
void Begin_VFS (VenusFid *fid, int op, int arg=-1) EXCLUDES_TRANSACTION
 
void End_VFS (int *=0) EXCLUDES_TRANSACTION
 
void root (struct venus_cnode *)
 
void statfs (struct coda_statfs *)
 
void sync ()
 
void vget (struct venus_cnode *, VenusFid *, int what=RC_STATUS) EXCLUDES_TRANSACTION
 
void open (struct venus_cnode *, int) EXCLUDES_TRANSACTION
 
void close (struct venus_cnode *, int) EXCLUDES_TRANSACTION
 
void ioctl (struct venus_cnode *, unsigned char nr, struct ViceIoctl *, int) EXCLUDES_TRANSACTION
 
void select (struct venus_cnode *, int)
 
void getattr (struct venus_cnode *, struct coda_vattr *) EXCLUDES_TRANSACTION
 
void setattr (struct venus_cnode *, struct coda_vattr *) EXCLUDES_TRANSACTION
 
void access (struct venus_cnode *, int) EXCLUDES_TRANSACTION
 
void lookup (struct venus_cnode *, const char *, struct venus_cnode *, int) EXCLUDES_TRANSACTION
 
void create (struct venus_cnode *, char *, struct coda_vattr *, int, int, struct venus_cnode *) EXCLUDES_TRANSACTION
 
void remove (struct venus_cnode *, char *) EXCLUDES_TRANSACTION
 
void link (struct venus_cnode *, struct venus_cnode *, char *) EXCLUDES_TRANSACTION
 
void rename (struct venus_cnode *, char *, struct venus_cnode *, char *) EXCLUDES_TRANSACTION
 
void mkdir (struct venus_cnode *, char *, struct coda_vattr *, struct venus_cnode *) EXCLUDES_TRANSACTION
 
void rmdir (struct venus_cnode *, char *) EXCLUDES_TRANSACTION
 
void symlink (struct venus_cnode *, char *, struct coda_vattr *, char *) EXCLUDES_TRANSACTION
 
void readlink (struct venus_cnode *, struct coda_string *) EXCLUDES_TRANSACTION
 
void fsync (struct venus_cnode *) EXCLUDES_TRANSACTION
 
void read (struct venus_cnode *node, uint64_t pos, int64_t count) EXCLUDES_TRANSACTION
 
void write (struct venus_cnode *node, uint64_t pos, int64_t count) EXCLUDES_TRANSACTION
 
void read_finish (struct venus_cnode *node, uint64_t pos, int64_t count) EXCLUDES_TRANSACTION
 
void write_finish (struct venus_cnode *node, uint64_t pos, int64_t count) EXCLUDES_TRANSACTION
 
void mmap (struct venus_cnode *node, uint64_t pos, int64_t count) EXCLUDES_TRANSACTION
 
int namev (char *, int, struct venus_cnode *) EXCLUDES_TRANSACTION
 
void GetPath (VenusFid *, char *, int *, int=1) EXCLUDES_TRANSACTION
 
const char * expansion (const char *path)
 
void verifyname (char *name, int flags)
 
void GetStamp (char *)
 
void print ()
 
void print (FILE *)
 
void print (int)
 

Public Attributes

vproctype type
 
int stacksize
 
int lwpri
 
int seq
 
struct uarea u
 
unsigned idle: 1
 
unsigned interrupted: 1
 
struct vcbevent * ve
 

Protected Member Functions

void start_thread (void) EXCLUDES_TRANSACTION
 
virtual void main (void)
 

Protected Attributes

PROCESS lwpid
 
char * name
 
PROCBODY func
 
int vpid
 
rvm_perthread_t rvm_data
 
struct Lock init_lock
 

Friends

class vproc_iterator
 
void VprocInit ()
 
void Rtry_Wait ()
 
void Rtry_Signal ()
 
vprocFindVproc (int)
 
void VprocPreamble (void *)
 
vprocVprocSelf ()
 
int VprocIdle ()
 
int VprocInterrupted ()
 
void PrintVprocs (int)
 
void PrintWorkers (int)
 
void PrintMariners (int)
 

Constructor & Destructor Documentation

◆ vproc() [1/2]

vproc::vproc ( const char *  n,
PROCBODY  f,
vproctype  t,
int  stksize = VPROC_DEFAULT_STACK_SIZE,
int  priority = LWP_NORMAL_PRIORITY 
)

◆ vproc() [2/2]

vproc::vproc ( vproc )

◆ ~vproc()

vproc::~vproc ( )
virtual

Member Function Documentation

◆ access()

void vproc::access ( struct venus_cnode cp,
int  mode 
)

◆ Begin_VFS() [1/2]

void vproc::Begin_VFS ( VenusFid fid,
int  op,
int  arg = -1 
)
inline

◆ Begin_VFS() [2/2]

void vproc::Begin_VFS ( Volid volid,
int  vfsop,
int  volmode = -1 
)

◆ close()

void vproc::close ( struct venus_cnode cp,
int  flags 
)

◆ create()

void vproc::create ( struct venus_cnode dcp,
char *  name,
struct coda_vattr vap,
int  excl,
int  flags,
struct venus_cnode cp 
)

◆ End_VFS()

void vproc::End_VFS ( int *  retryp = 0)

◆ expansion()

const char * vproc::expansion ( const char *  path)

◆ fsync()

void vproc::fsync ( struct venus_cnode cp)

◆ getattr()

void vproc::getattr ( struct venus_cnode cp,
struct coda_vattr vap 
)

◆ GetPath()

void vproc::GetPath ( VenusFid fid,
char *  out,
int *  outlen,
int  fullpath = 1 
)

◆ GetStamp()

void vproc::GetStamp ( char *  buf)

◆ ioctl()

void vproc::ioctl ( struct venus_cnode cp,
unsigned char  nr,
struct ViceIoctl data,
int  flags 
)

◆ link()

void vproc::link ( struct venus_cnode scp,
struct venus_cnode dcp,
char *  toname 
)

◆ lookup()

void vproc::lookup ( struct venus_cnode dcp,
const char *  name,
struct venus_cnode cp,
int  flags 
)

◆ main()

void vproc::main ( void  )
protectedvirtual

◆ mkdir()

void vproc::mkdir ( struct venus_cnode dcp,
char *  name,
struct coda_vattr vap,
struct venus_cnode cp 
)

◆ mmap()

void vproc::mmap ( struct venus_cnode node,
uint64_t  pos,
int64_t  count 
)

Memory map file operation

Parameters
nodeVenus cnode pointer holding file's metadata
posOffset within the file
countNumber of bytes mapped into memory

◆ namev()

int vproc::namev ( char *  path,
int  flags,
struct venus_cnode vpp 
)

◆ open()

void vproc::open ( struct venus_cnode cp,
int  flags 
)

◆ operator=()

int vproc::operator= ( vproc vp)

◆ print() [1/3]

void vproc::print ( void  )
virtual

Reimplemented from olink.

◆ print() [2/3]

void vproc::print ( FILE *  fp)
virtual

Reimplemented from olink.

◆ print() [3/3]

void vproc::print ( int  fd)
virtual

Reimplemented from olink.

◆ read()

void vproc::read ( struct venus_cnode node,
uint64_t  pos,
int64_t  count 
)

Read file operation

Parameters
nodeVenus cnode pointer holding file's metadata
posOffset within the file
countNumber of bytes to be read from the file

◆ read_finish()

void vproc::read_finish ( struct venus_cnode node,
uint64_t  pos,
int64_t  count 
)

Signal the end of a synchronous read file operation

Parameters
nodeVenus cnode pointer holding file's metadata
posOffset within the file
countNumber of bytes read from the file

◆ readlink()

void vproc::readlink ( struct venus_cnode cp,
struct coda_string string 
)

◆ remove()

void vproc::remove ( struct venus_cnode dcp,
char *  name 
)

◆ rename()

void vproc::rename ( struct venus_cnode spcp,
char *  name,
struct venus_cnode tpcp,
char *  toname 
)

◆ rmdir()

void vproc::rmdir ( struct venus_cnode dcp,
char *  name 
)

◆ root()

void vproc::root ( struct venus_cnode vpp)

◆ select()

void vproc::select ( struct venus_cnode ,
int   
)

◆ setattr()

void vproc::setattr ( struct venus_cnode cp,
struct coda_vattr vap 
)

◆ start_thread()

void vproc::start_thread ( void  )
protected

◆ statfs()

void vproc::statfs ( struct coda_statfs sfs)

◆ symlink()

void vproc::symlink ( struct venus_cnode dcp,
char *  contents,
struct coda_vattr vap,
char *  name 
)

◆ sync()

void vproc::sync ( )

◆ verifyname()

void vproc::verifyname ( char *  name,
int  flags 
)

◆ vget()

void vproc::vget ( struct venus_cnode vpp,
VenusFid vfid,
int  what = RC_STATUS 
)

◆ write()

void vproc::write ( struct venus_cnode node,
uint64_t  pos,
int64_t  count 
)

Write file operation

Parameters
nodeVenus cnode pointer holding file's metadata
posOffset within the file
countNumber of bytes to be written to the file

◆ write_finish()

void vproc::write_finish ( struct venus_cnode node,
uint64_t  pos,
int64_t  count 
)

Signal the end of a synchronous write file operation

Parameters
nodeVenus cnode pointer holding file's metadata
posOffset within the file
countNumber of bytes written to the file

Friends And Related Function Documentation

◆ FindVproc

vproc * FindVproc ( int  )
friend

◆ PrintMariners

void PrintMariners ( int  )
friend

◆ PrintVprocs

void PrintVprocs ( int  )
friend

◆ PrintWorkers

void PrintWorkers ( int  )
friend

◆ Rtry_Signal

void Rtry_Signal ( )
friend

◆ Rtry_Wait

void Rtry_Wait ( )
friend

◆ vproc_iterator

friend class vproc_iterator
friend

◆ VprocIdle

int VprocIdle ( )
friend

◆ VprocInit

void VprocInit ( )
friend

◆ VprocInterrupted

int VprocInterrupted ( )
friend

◆ VprocPreamble

void VprocPreamble ( void *  arg)
friend

◆ VprocSelf

vproc * VprocSelf ( )
friend

Member Data Documentation

◆ func

PROCBODY vproc::func
protected

◆ idle

unsigned vproc::idle

◆ init_lock

struct Lock vproc::init_lock
protected

◆ interrupted

unsigned vproc::interrupted

◆ lwpid

PROCESS vproc::lwpid
protected

◆ lwpri

int vproc::lwpri

◆ name

char* vproc::name
protected

◆ rvm_data

rvm_perthread_t vproc::rvm_data
protected

◆ seq

int vproc::seq

◆ stacksize

int vproc::stacksize

◆ type

vproctype vproc::type

◆ u

struct uarea vproc::u

◆ ve

struct vcbevent* vproc::ve

◆ vpid

int vproc::vpid
protected

The documentation for this class was generated from the following files: