nfs-ganesha 1.4
Classes | Defines | Typedefs | Enumerations | Functions

9p.h File Reference

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <sys/select.h>
#include "fsal.h"
#include "cache_inode.h"

Go to the source code of this file.

Classes

struct  _9p_str
struct  _9p_qid
struct  _9p_param__
struct  _9p_fid__
struct  _9p_conn__
struct  _9p_request_data__
struct  _9p_function_desc__

Defines

#define NB_PREALLOC_HASH_9P   100
#define NB_PREALLOC_FID_9P   100
#define PRIME_9P   17
#define _9P_PORT   564
#define _9P_SEND_BUFFER_SIZE   131072
#define _9P_RECV_BUFFER_SIZE   131072
#define _9p_READ_BUFFER_SIZE   _9P_SEND_BUFFER_SIZE
#define _9P_MAXDIRCOUNT   2000
#define _9P_LOCK_CLIENT_LEN   64
#define CONF_LABEL_9P   "_9P"
#define _9P_MSG_SIZE   70000
#define _9P_HDR_SIZE   4
#define _9P_TYPE_SIZE   1
#define _9P_TAG_SIZE   2
#define _9p_BLK_SIZE   4096
#define _9P_NOTAG   (u16)(~0)
#define _9P_NOFID   (u32)(~0)
#define _9P_NONUNAME   (u32)(~0)
#define _9P_MAXWELEM   16
#define _9P_IOHDRSZ   24
#define _9P_READDIRHDRSZ   24
#define _9P_FID_PER_CONN   32
#define _9p_getptr(__cursor, __pvar, __type)
#define _9p_getstr(__cursor, __len, __str)
#define _9p_setptr(__cursor, __pvar, __type)
#define _9p_setvalue(__cursor, __var, __type)
#define _9p_savepos(__cursor, __savedpos, __type)
#define _9p_setqid(__cursor, __qid)
#define _9p_setstr(__cursor, __len, __str)
#define _9p_setbuffer(__cursor, __len, __buffer)
#define _9p_setinitptr(__cursor, __start, __reqtype)
#define _9p_setendptr(__cursor, __start)
#define _9p_checkbound(__cursor, __start, __maxlen)
#define _9P_GETATTR_MODE   0x00000001ULL
#define _9P_GETATTR_NLINK   0x00000002ULL
#define _9P_GETATTR_UID   0x00000004ULL
#define _9P_GETATTR_GID   0x00000008ULL
#define _9P_GETATTR_RDEV   0x00000010ULL
#define _9P_GETATTR_ATIME   0x00000020ULL
#define _9P_GETATTR_MTIME   0x00000040ULL
#define _9P_GETATTR_CTIME   0x00000080ULL
#define _9P_GETATTR_INO   0x00000100ULL
#define _9P_GETATTR_SIZE   0x00000200ULL
#define _9P_GETATTR_BLOCKS   0x00000400ULL
#define _9P_GETATTR_BTIME   0x00000800ULL
#define _9P_GETATTR_GEN   0x00001000ULL
#define _9P_GETATTR_DATA_VERSION   0x00002000ULL
#define _9P_GETATTR_BASIC   0x000007ffULL
#define _9P_GETATTR_ALL   0x00003fffULL
#define _9P_SETATTR_MODE   0x00000001UL
#define _9P_SETATTR_UID   0x00000002UL
#define _9P_SETATTR_GID   0x00000004UL
#define _9P_SETATTR_SIZE   0x00000008UL
#define _9P_SETATTR_ATIME   0x00000010UL
#define _9P_SETATTR_MTIME   0x00000020UL
#define _9P_SETATTR_CTIME   0x00000040UL
#define _9P_SETATTR_ATIME_SET   0x00000080UL
#define _9P_SETATTR_MTIME_SET   0x00000100UL
#define _9P_LOCK_TYPE_RDLCK   0
#define _9P_LOCK_TYPE_WRLCK   1
#define _9P_LOCK_TYPE_UNLCK   2
#define _9P_LOCK_SUCCESS   0
#define _9P_LOCK_BLOCKED   1
#define _9P_LOCK_ERROR   2
#define _9P_LOCK_GRACE   3
#define _9P_LOCK_FLAGS_BLOCK   1
#define _9P_LOCK_FLAGS_RECLAIM   2

Typedefs

typedef uint8_t u8
typedef uint16_t u16
typedef uint32_t u32
typedef uint64_t u64
typedef struct _9p_qid _9p_qid_t
typedef struct _9p_param__ _9p_parameter_t
typedef struct _9p_fid__ _9p_fid_t
typedef struct _9p_conn__ _9p_conn_t
typedef struct _9p_request_data__ _9p_request_data_t
typedef int(* _9p_function_t )(_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
typedef struct _9p_function_desc__ _9p_function_desc_t

Enumerations

enum  _9p_msg_t {
  _9P_TLERROR = 6, _9P_RLERROR, _9P_TSTATFS = 8, _9P_RSTATFS,
  _9P_TLOPEN = 12, _9P_RLOPEN, _9P_TLCREATE = 14, _9P_RLCREATE,
  _9P_TSYMLINK = 16, _9P_RSYMLINK, _9P_TMKNOD = 18, _9P_RMKNOD,
  _9P_TRENAME = 20, _9P_RRENAME, _9P_TREADLINK = 22, _9P_RREADLINK,
  _9P_TGETATTR = 24, _9P_RGETATTR, _9P_TSETATTR = 26, _9P_RSETATTR,
  _9P_TXATTRWALK = 30, _9P_RXATTRWALK, _9P_TXATTRCREATE = 32, _9P_RXATTRCREATE,
  _9P_TREADDIR = 40, _9P_RREADDIR, _9P_TFSYNC = 50, _9P_RFSYNC,
  _9P_TLOCK = 52, _9P_RLOCK, _9P_TGETLOCK = 54, _9P_RGETLOCK,
  _9P_TLINK = 70, _9P_RLINK, _9P_TMKDIR = 72, _9P_RMKDIR,
  _9P_TRENAMEAT = 74, _9P_RRENAMEAT, _9P_TUNLINKAT = 76, _9P_RUNLINKAT,
  _9P_TVERSION = 100, _9P_RVERSION, _9P_TAUTH = 102, _9P_RAUTH,
  _9P_TATTACH = 104, _9P_RATTACH, _9P_TERROR = 106, _9P_RERROR,
  _9P_TFLUSH = 108, _9P_RFLUSH, _9P_TWALK = 110, _9P_RWALK,
  _9P_TOPEN = 112, _9P_ROPEN, _9P_TCREATE = 114, _9P_RCREATE,
  _9P_TREAD = 116, _9P_RREAD, _9P_TWRITE = 118, _9P_RWRITE,
  _9P_TCLUNK = 120, _9P_RCLUNK, _9P_TREMOVE = 122, _9P_RREMOVE,
  _9P_TSTAT = 124, _9P_RSTAT, _9P_TWSTAT = 126, _9P_RWSTAT
}
enum  _9p_qid_t {
  _9P_QTDIR = 0x80, _9P_QTAPPEND = 0x40, _9P_QTEXCL = 0x20, _9P_QTMOUNT = 0x10,
  _9P_QTAUTH = 0x08, _9P_QTTMP = 0x04, _9P_QTSYMLINK = 0x02, _9P_QTLINK = 0x01,
  _9P_QTFILE = 0x00
}

Functions

int _9p_read_conf (config_file_t in_config, _9p_parameter_t *pparam)
int _9p_init (_9p_parameter_t *pparam)
int _9p_tools_get_fsal_op_context_by_uid (u32 uid, _9p_fid_t *pfid)
int _9p_tools_get_fsal_op_context_by_name (int uname_len, char *uname_str, _9p_fid_t *pfid)
int _9p_tools_errno (cache_inode_status_t cache_status)
void _9p_tools_fsal_attr2stat (fsal_attrib_list_t *pfsalattr, struct stat *pstat)
void _9p_tools_acess2fsal (u32 *paccessin, fsal_accessflags_t *pfsalaccess)
void _9p_openflags2FSAL (u32 *inflags, fsal_openflags_t *outflags)
void _9p_chomp_attr_value (char *str, size_t size)
int _9p_not_2000L (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_clunk (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_attach (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_auth (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_lcreate (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_flush (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_getattr (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_getlock (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_link (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_lock (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_lopen (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_mkdir (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_mknod (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_read (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_readdir (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_readlink (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_setattr (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_symlink (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_remove (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_rename (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_renameat (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_statfs (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_fsync (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_unlinkat (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_version (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_walk (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_write (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_xattrcreate (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_xattrwalk (_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)
int _9p_rerror (_9p_request_data_t *preq9p, u16 *msgtag, u32 err, u32 *plenout, char *preply)

Define Documentation

#define _9p_BLK_SIZE   4096

Definition at line 59 of file 9p.h.

#define _9p_checkbound (   __cursor,
  __start,
  __maxlen 
)
Value:
do                                                    \
{                                                     \
if( (u32)( __cursor - __start ) > *__maxlen )         \
  return -1 ;                                         \
else                                                  \
   *__maxlen = (u32)( __cursor - __start )  ;         \
} while( 0 )

Definition at line 401 of file 9p.h.

#define _9P_FID_PER_CONN   32

Definition at line 228 of file 9p.h.

#define _9P_GETATTR_ALL   0x00003fffULL

Definition at line 429 of file 9p.h.

#define _9P_GETATTR_ATIME   0x00000020ULL

Definition at line 417 of file 9p.h.

#define _9P_GETATTR_BASIC   0x000007ffULL

Definition at line 428 of file 9p.h.

#define _9P_GETATTR_BLOCKS   0x00000400ULL

Definition at line 422 of file 9p.h.

#define _9P_GETATTR_BTIME   0x00000800ULL

Definition at line 424 of file 9p.h.

#define _9P_GETATTR_CTIME   0x00000080ULL

Definition at line 419 of file 9p.h.

#define _9P_GETATTR_DATA_VERSION   0x00002000ULL

Definition at line 426 of file 9p.h.

#define _9P_GETATTR_GEN   0x00001000ULL

Definition at line 425 of file 9p.h.

#define _9P_GETATTR_GID   0x00000008ULL

Definition at line 415 of file 9p.h.

#define _9P_GETATTR_INO   0x00000100ULL

Definition at line 420 of file 9p.h.

#define _9P_GETATTR_MODE   0x00000001ULL

Definition at line 412 of file 9p.h.

#define _9P_GETATTR_MTIME   0x00000040ULL

Definition at line 418 of file 9p.h.

#define _9P_GETATTR_NLINK   0x00000002ULL

Definition at line 413 of file 9p.h.

#define _9P_GETATTR_RDEV   0x00000010ULL

Definition at line 416 of file 9p.h.

#define _9P_GETATTR_SIZE   0x00000200ULL

Definition at line 421 of file 9p.h.

#define _9P_GETATTR_UID   0x00000004ULL

Definition at line 414 of file 9p.h.

#define _9p_getptr (   __cursor,
  __pvar,
  __type 
)
Value:
do                                             \
{                                              \
  __pvar=(__type *)__cursor ;                  \
  __cursor += sizeof( __type ) ;               \
} while( 0 )

Definition at line 319 of file 9p.h.

#define _9p_getstr (   __cursor,
  __len,
  __str 
)
Value:
do                                           \
{                                            \
  __len = (u16 *)__cursor ;                  \
  __cursor += sizeof( u16 ) ;                \
  __str = __cursor ;                         \
  __cursor += *__len ;                       \
} while( 0 )

Definition at line 326 of file 9p.h.

#define _9P_HDR_SIZE   4

Definition at line 56 of file 9p.h.

#define _9P_IOHDRSZ   24

Definition at line 224 of file 9p.h.

#define _9P_LOCK_BLOCKED   1

Definition at line 452 of file 9p.h.

#define _9P_LOCK_CLIENT_LEN   64

Definition at line 52 of file 9p.h.

#define _9P_LOCK_ERROR   2

Definition at line 453 of file 9p.h.

#define _9P_LOCK_FLAGS_BLOCK   1

Definition at line 458 of file 9p.h.

#define _9P_LOCK_FLAGS_RECLAIM   2

Definition at line 459 of file 9p.h.

#define _9P_LOCK_GRACE   3

Definition at line 454 of file 9p.h.

#define _9P_LOCK_SUCCESS   0

Definition at line 451 of file 9p.h.

#define _9P_LOCK_TYPE_RDLCK   0

Definition at line 445 of file 9p.h.

#define _9P_LOCK_TYPE_UNLCK   2

Definition at line 447 of file 9p.h.

#define _9P_LOCK_TYPE_WRLCK   1

Definition at line 446 of file 9p.h.

#define _9P_MAXDIRCOUNT   2000

Definition at line 51 of file 9p.h.

#define _9P_MAXWELEM   16

Definition at line 221 of file 9p.h.

#define _9P_MSG_SIZE   70000

Definition at line 55 of file 9p.h.

#define _9P_NOFID   (u32)(~0)

Definition at line 219 of file 9p.h.

#define _9P_NONUNAME   (u32)(~0)

Definition at line 220 of file 9p.h.

#define _9P_NOTAG   (u16)(~0)

Definition at line 218 of file 9p.h.

#define _9P_PORT   564

Definition at line 47 of file 9p.h.

#define _9p_READ_BUFFER_SIZE   _9P_SEND_BUFFER_SIZE

Definition at line 50 of file 9p.h.

#define _9P_READDIRHDRSZ   24

Definition at line 227 of file 9p.h.

#define _9P_RECV_BUFFER_SIZE   131072

Definition at line 49 of file 9p.h.

#define _9p_savepos (   __cursor,
  __savedpos,
  __type 
)
Value:
do                                                  \
{                                                   \
  __savedpos = __cursor ;                           \
  __cursor += sizeof( __type ) ;                    \
} while ( 0 )

Definition at line 349 of file 9p.h.

#define _9P_SEND_BUFFER_SIZE   131072

Definition at line 48 of file 9p.h.

#define _9P_SETATTR_ATIME   0x00000010UL

Definition at line 437 of file 9p.h.

#define _9P_SETATTR_ATIME_SET   0x00000080UL

Definition at line 440 of file 9p.h.

#define _9P_SETATTR_CTIME   0x00000040UL

Definition at line 439 of file 9p.h.

#define _9P_SETATTR_GID   0x00000004UL

Definition at line 435 of file 9p.h.

#define _9P_SETATTR_MODE   0x00000001UL

Definition at line 433 of file 9p.h.

#define _9P_SETATTR_MTIME   0x00000020UL

Definition at line 438 of file 9p.h.

#define _9P_SETATTR_MTIME_SET   0x00000100UL

Definition at line 441 of file 9p.h.

#define _9P_SETATTR_SIZE   0x00000008UL

Definition at line 436 of file 9p.h.

#define _9P_SETATTR_UID   0x00000002UL

Definition at line 434 of file 9p.h.

#define _9p_setbuffer (   __cursor,
  __len,
  __buffer 
)
Value:
do                                           \
{                                            \
  *((u32 *)__cursor) = __len ;               \
  __cursor += sizeof( u32 ) ;                \
  memcpy( __cursor, __buffer, __len ) ;         \
  __cursor += __len ;                        \
} while( 0 )

Definition at line 378 of file 9p.h.

#define _9p_setendptr (   __cursor,
  __start 
)
Value:
do                                                 \
{                                                  \
  *((u32 *)__start) =  (u32)(__cursor - __start) ; \
} while( 0 )

Definition at line 395 of file 9p.h.

#define _9p_setinitptr (   __cursor,
  __start,
  __reqtype 
)
Value:
do                                                     \
{                                                      \
  __cursor = __start + _9P_HDR_SIZE;                   \
  *((u8 *)__cursor) = __reqtype ;                      \
  __cursor += sizeof( u8 ) ;                           \
} while( 0 )

Definition at line 387 of file 9p.h.

#define _9p_setptr (   __cursor,
  __pvar,
  __type 
)
Value:
do                                             \
{                                              \
  *((__type *)__cursor) = *__pvar ;              \
  __cursor += sizeof( __type ) ;               \
} while( 0 )

Definition at line 335 of file 9p.h.

#define _9p_setqid (   __cursor,
  __qid 
)
Value:
do                                     \
{                                      \
  *((u8 *)__cursor) = __qid.type ;     \
  __cursor += sizeof( u8 ) ;           \
  *((u32 *)__cursor) = __qid.version ; \
  __cursor += sizeof( u32 ) ;          \
  *((u64 *)__cursor) = __qid.path ;    \
  __cursor += sizeof( u64 ) ;          \
} while( 0 )

Definition at line 357 of file 9p.h.

#define _9p_setstr (   __cursor,
  __len,
  __str 
)
Value:
do                                           \
{                                            \
  *((u16 *)__cursor) = __len ;               \
  __cursor += sizeof( u16 ) ;                \
  memcpy( __cursor, __str, __len ) ;         \
  __cursor += __len ;                        \
} while( 0 )

Definition at line 369 of file 9p.h.

#define _9p_setvalue (   __cursor,
  __var,
  __type 
)
Value:
do                                             \
{                                              \
  *((__type *)__cursor) = __var ;              \
  __cursor += sizeof( __type ) ;               \
} while( 0 )

Definition at line 342 of file 9p.h.

#define _9P_TAG_SIZE   2

Definition at line 58 of file 9p.h.

#define _9P_TYPE_SIZE   1

Definition at line 57 of file 9p.h.

#define CONF_LABEL_9P   "_9P"

Definition at line 53 of file 9p.h.

#define NB_PREALLOC_FID_9P   100

Definition at line 44 of file 9p.h.

#define NB_PREALLOC_HASH_9P   100

Definition at line 43 of file 9p.h.

#define PRIME_9P   17

Definition at line 45 of file 9p.h.


Typedef Documentation

typedef struct _9p_conn__ _9p_conn_t
typedef struct _9p_fid__ _9p_fid_t
typedef int(* _9p_function_t)(_9p_request_data_t *preq9p, void *pworker_data, u32 *plenout, char *preply)

Definition at line 308 of file 9p.h.

typedef struct _9p_param__ _9p_parameter_t
typedef struct _9p_qid _9p_qid_t

struct _9p_qid - file system entity information : 8-bit type &_9p_qid_t

Version:
: 16-bit monotonically incrementing version number : 64-bit per-server-unique ID for a file system element

qids are identifiers used by 9P servers to track file system entities. The type is used to differentiate semantics for operations on the entity (ie. read means something different on a directory than on a file). The path provides a server unique index for an entity (roughly analogous to an inode number), while the version is updated every time a file is modified and can be used to maintain cache coherency between clients and serves. Servers will often differentiate purely synthetic entities by setting their version to 0, signaling that they should never be cached and should be accessed synchronously.

See Also://plan9.bell-labs.com/magic/man2html/2/stat

typedef uint16_t u16

Definition at line 39 of file 9p.h.

typedef uint32_t u32

Definition at line 40 of file 9p.h.

typedef uint64_t u64

Definition at line 41 of file 9p.h.

typedef uint8_t u8

Definition at line 38 of file 9p.h.


Enumeration Type Documentation

enum _9p_msg_t

enum _9p_msg_t - 9P message types : not used : response for any failed request for 9P2000.L : file system status request : file system status response : make symlink request : make symlink response : create a special file object request : create a special file object response : prepare a handle for I/O on an new file for 9P2000.L : response with file access information for 9P2000.L : rename request : rename response : create a directory request : create a directory response : version handshake request : version handshake response : request to establish authentication channel : response with authentication information : establish user access to file service : response with top level handle to file hierarchy : not used : response for any failed request : request to abort a previous request : response when previous request has been cancelled : descend a directory hierarchy : response with new handle for position within hierarchy : prepare a handle for I/O on an existing file : response with file access information : prepare a handle for I/O on a new file : response with file access information : request to transfer data from a file or directory : response with data requested : reuqest to transfer data to a file : response with out much data was transfered to file : forget about a handle to an entity within the file system : response when server has forgotten about the handle : request to remove an entity from the hierarchy : response when server has removed the entity : request file entity attributes : response with file entity attributes : request to update file entity attributes : response when file entity attributes are updated

There are 14 basic operations in 9P2000, paired as requests and responses. The one special case is ERROR as there is no request for clients to transmit to the server, but the server may respond to any other request with an .

See Also: http://plan9.bell-labs.com/sys/man/5/INDEX.html

Enumerator:
_9P_TLERROR 
_9P_RLERROR 
_9P_TSTATFS 
_9P_RSTATFS 
_9P_TLOPEN 
_9P_RLOPEN 
_9P_TLCREATE 
_9P_RLCREATE 
_9P_TSYMLINK 
_9P_RSYMLINK 
_9P_TMKNOD 
_9P_RMKNOD 
_9P_TRENAME 
_9P_RRENAME 
_9P_TREADLINK 
_9P_RREADLINK 
_9P_TGETATTR 
_9P_RGETATTR 
_9P_TSETATTR 
_9P_RSETATTR 
_9P_TXATTRWALK 
_9P_RXATTRWALK 
_9P_TXATTRCREATE 
_9P_RXATTRCREATE 
_9P_TREADDIR 
_9P_RREADDIR 
_9P_TFSYNC 
_9P_RFSYNC 
_9P_TLOCK 
_9P_RLOCK 
_9P_TGETLOCK 
_9P_RGETLOCK 
_9P_TLINK 
_9P_RLINK 
_9P_TMKDIR 
_9P_RMKDIR 
_9P_TRENAMEAT 
_9P_RRENAMEAT 
_9P_TUNLINKAT 
_9P_RUNLINKAT 
_9P_TVERSION 
_9P_RVERSION 
_9P_TAUTH 
_9P_RAUTH 
_9P_TATTACH 
_9P_RATTACH 
_9P_TERROR 
_9P_RERROR 
_9P_TFLUSH 
_9P_RFLUSH 
_9P_TWALK 
_9P_RWALK 
_9P_TOPEN 
_9P_ROPEN 
_9P_TCREATE 
_9P_RCREATE 
_9P_TREAD 
_9P_RREAD 
_9P_TWRITE 
_9P_RWRITE 
_9P_TCLUNK 
_9P_RCLUNK 
_9P_TREMOVE 
_9P_RREMOVE 
_9P_TSTAT 
_9P_RSTAT 
_9P_TWSTAT 
_9P_RWSTAT 

Definition at line 115 of file 9p.h.

enum _9p_qid_t

enum _9p_qid_t - QID types : directory : append-only : excluse use (only one open handle allowed) : mount points : authentication file : non-backed-up files : symbolic links (9P2000.u) : hard-link (9P2000.u) : normal files

QID types are a subset of permissions - they are primarily used to differentiate semantics for a file system entity via a jump-table. Their value is also the most signifigant 16 bits of the permission_t

See Also: http://plan9.bell-labs.com/magic/man2html/2/stat

Enumerator:
_9P_QTDIR 
_9P_QTAPPEND 
_9P_QTEXCL 
_9P_QTMOUNT 
_9P_QTAUTH 
_9P_QTTMP 
_9P_QTSYMLINK 
_9P_QTLINK 
_9P_QTFILE 

Definition at line 205 of file 9p.h.


Function Documentation

int _9p_attach ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 53 of file 9p_attach.c.

int _9p_auth ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 53 of file 9p_auth.c.

void _9p_chomp_attr_value ( char *  str,
size_t  size 
)

Definition at line 244 of file 9p_proto_tools.c.

int _9p_clunk ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 53 of file 9p_clunk.c.

int _9p_flush ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 53 of file 9p_flush.c.

int _9p_fsync ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 52 of file 9p_fsync.c.

int _9p_getattr ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 56 of file 9p_getattr.c.

int _9p_getlock ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Todo:
This function does nothing for the moment. Make it compliant with fcntl( F_GETLCK, ...

Definition at line 55 of file 9p_getlock.c.

int _9p_init ( _9p_parameter_t *  pparam)

Definition at line 53 of file 9p_proto_tools.c.

int _9p_lcreate ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 53 of file 9p_lcreate.c.

int _9p_link ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 53 of file 9p_link.c.

int _9p_lock ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 57 of file 9p_lock.c.

int _9p_lopen ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Todo:
: Maybe other types (FIFO, sOCKET,...) may require to be opened too

Definition at line 54 of file 9p_lopen.c.

int _9p_mkdir ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 53 of file 9p_mkdir.c.

int _9p_mknod ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Todo:
BUGAZOMEU the gid parameter is not used yet
Todo:
BUGAZOMEU For wanting of something better

Definition at line 53 of file 9p_mknod.c.

int _9p_not_2000L ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 121 of file 9p_interpreter.c.

void _9p_openflags2FSAL ( u32 *  inflags,
fsal_openflags_t *  outflags 
)

Definition at line 259 of file 9p_proto_tools.c.

int _9p_read ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 55 of file 9p_read.c.

int _9p_read_conf ( config_file_t  in_config,
_9p_parameter_t *  pparam 
)

Definition at line 50 of file 9p_read_conf.c.

int _9p_readdir ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 121 of file 9p_readdir.c.

int _9p_readlink ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 53 of file 9p_readlink.c.

int _9p_remove ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 53 of file 9p_remove.c.

int _9p_rename ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 53 of file 9p_rename.c.

int _9p_renameat ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 52 of file 9p_renameat.c.

int _9p_rerror ( _9p_request_data_t *  preq9p,
u16 *  msgtag,
u32  err,
u32 *  plenout,
char *  preply 
)

Definition at line 51 of file 9p_rerror.c.

int _9p_setattr ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 53 of file 9p_setattr.c.

int _9p_statfs ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 55 of file 9p_statfs.c.

int _9p_symlink ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 53 of file 9p_symlink.c.

void _9p_tools_acess2fsal ( u32 *  paccessin,
fsal_accessflags_t *  pfsalaccess 
)

Definition at line 235 of file 9p_proto_tools.c.

int _9p_tools_errno ( cache_inode_status_t  cache_status)

Definition at line 103 of file 9p_proto_tools.c.

void _9p_tools_fsal_attr2stat ( fsal_attrib_list_t *  pfsalattr,
struct stat *  pstat 
)

Definition at line 205 of file 9p_proto_tools.c.

int _9p_tools_get_fsal_op_context_by_name ( int  uname_len,
char *  uname_str,
_9p_fid_t *  pfid 
)

Definition at line 84 of file 9p_proto_tools.c.

int _9p_tools_get_fsal_op_context_by_uid ( u32  uid,
_9p_fid_t *  pfid 
)

Definition at line 58 of file 9p_proto_tools.c.

int _9p_unlinkat ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 52 of file 9p_unlinkat.c.

int _9p_version ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 54 of file 9p_version.c.

int _9p_walk ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 54 of file 9p_walk.c.

int _9p_write ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 53 of file 9p_write.c.

int _9p_xattrcreate ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 56 of file 9p_xattrcreate.c.

int _9p_xattrwalk ( _9p_request_data_t *  preq9p,
void *  pworker_data,
u32 *  plenout,
char *  preply 
)

Definition at line 54 of file 9p_xattrwalk.c.