Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

dispatch.C File Reference

#include <Basics.H>
#include <pthread.h>
#include "logging.H"
#include "nfsd.H"
#include "AccessControl.H"
#include "timing.H"

Go to the source code of this file.

Defines

#define ROOT_UID   0
#define NOBODY_UID   ((uid_t) 65534)
#define NOBODY_GID   ((gid_t) 65534)
#define CONCAT(a, b)   a##b
#define CONCAT3(a, b, c)   a##b##c
#define STRING(a)   #a
#define table_ent(auth, ro, cred, res_type, arg_type, funct)
#define nil   char
#define xdr_nil   xdr_void
#define pr_nil   pr_void
#define pr_char   pr_void

Functions

void nfs_dispatch (struct svc_req *rqstp, SVCXPRT *transp)

Variables

authunix_parms nobody_cred
dispatch_entry dtable []


Define Documentation

#define CONCAT a,
 )     a##b
 

Definition at line 67 of file dispatch.C.

#define CONCAT3 a,
b,
 )     a##b##c
 

Definition at line 68 of file dispatch.C.

#define nil   char
 

Definition at line 80 of file dispatch.C.

#define NOBODY_GID   ((gid_t) 65534)
 

Definition at line 56 of file dispatch.C.

#define NOBODY_UID   ((uid_t) 65534)
 

Definition at line 52 of file dispatch.C.

#define pr_char   pr_void
 

Definition at line 83 of file dispatch.C.

#define pr_nil   pr_void
 

Definition at line 82 of file dispatch.C.

#define ROOT_UID   0
 

Definition at line 48 of file dispatch.C.

#define STRING  )     #a
 

Definition at line 69 of file dispatch.C.

#define table_ent auth,
ro,
cred,
res_type,
arg_type,
funct   ) 
 

Value:

{           \
        auth, ro, cred, sizeof(res_type), sizeof(arg_type),         \
        (xdrproc_t)CONCAT(xdr_,res_type),                           \
        (xdrproc_t)CONCAT(xdr_,arg_type),                           \
        (funct_proc)CONCAT3(nfsd_nfsproc_,funct,_2), STRING(funct), \
        (print_proc)CONCAT(Repos::pr_,arg_type),                           \
        (print_res_proc)CONCAT(Repos::pr_,res_type)                        \
}

Definition at line 71 of file dispatch.C.

#define xdr_nil   xdr_void
 

Definition at line 81 of file dispatch.C.


Function Documentation

void nfs_dispatch struct svc_req *  rqstp,
SVCXPRT *  transp
 

Definition at line 106 of file dispatch.C.

References AccessControl::admit(), dispatch_entry::arg_size, dispatch_entry::authenticate, DBG_NFS, Repos::dprintf(), dispatch_entry::funct, Repos::log_call(), Repos::log_result(), nobody_cred, result_types::r_nfsstat, result_types::r_readlinkres, result_types::r_readres, RECORD_TIME_POINT, dispatch_entry::res_size, dispatch_entry::xdr_argument, xdr_free(), and dispatch_entry::xdr_result.

Referenced by nfsd_thread().


Variable Documentation

struct dispatch_entry dtable[]
 

Initial value:

 {
        table_ent(0,0,0,nil,nil,null),
        table_ent(1,0,1,attrstat,nfs_fh,getattr),
        table_ent(1,1,1,attrstat,sattrargs,setattr),
        table_ent(0,0,0,nil,nil,root),
        table_ent(1,0,1,diropres,diropargs,lookup),
        table_ent(1,0,1,readlinkres,nfs_fh,readlink),
        table_ent(1,0,1,readres,readargs,read),
        table_ent(0,0,0,nil,nil,writecache),
        table_ent(1,1,1,attrstat,writeargs,write),
        table_ent(1,1,1,diropres,createargs,create),
        table_ent(1,1,1,nfsstat,diropargs,remove),
        table_ent(1,1,1,nfsstat,renameargs,rename),
        table_ent(1,1,1,nfsstat,linkargs,link),
        table_ent(1,1,1,nfsstat,symlinkargs,symlink),
        table_ent(1,1,1,diropres,createargs,mkdir),
        table_ent(1,1,1,nfsstat,diropargs,rmdir),
        table_ent(1,0,1,readdirres,readdirargs,readdir),
        table_ent(1,0,0,statfsres,nfs_fh,statfs),
}

Definition at line 85 of file dispatch.C.

struct authunix_parms nobody_cred
 

Initial value:

    { 0, "", NOBODY_UID, NOBODY_GID, 0, NULL }

Definition at line 59 of file dispatch.C.

Referenced by nfs_dispatch().


Generated on Mon May 8 00:49:03 2006 for Vesta by  doxygen 1.4.2