Linux Kernel
3.7.1
|
Go to the source code of this file.
Data Structures | |
struct | p9_qid |
struct | p9_wstat |
struct | p9_stat_dotl |
struct | p9_iattr_dotl |
struct | p9_flock |
struct | p9_getlock |
struct | p9_rstatfs |
struct | p9_fcall |
Macros | |
#define | p9_debug(level, fmt,...) no_printk(fmt, ##__VA_ARGS__) |
#define | P9_DOTL_RDONLY 00000000 |
#define | P9_DOTL_WRONLY 00000001 |
#define | P9_DOTL_RDWR 00000002 |
#define | P9_DOTL_NOACCESS 00000003 |
#define | P9_DOTL_CREATE 00000100 |
#define | P9_DOTL_EXCL 00000200 |
#define | P9_DOTL_NOCTTY 00000400 |
#define | P9_DOTL_TRUNC 00001000 |
#define | P9_DOTL_APPEND 00002000 |
#define | P9_DOTL_NONBLOCK 00004000 |
#define | P9_DOTL_DSYNC 00010000 |
#define | P9_DOTL_FASYNC 00020000 |
#define | P9_DOTL_DIRECT 00040000 |
#define | P9_DOTL_LARGEFILE 00100000 |
#define | P9_DOTL_DIRECTORY 00200000 |
#define | P9_DOTL_NOFOLLOW 00400000 |
#define | P9_DOTL_NOATIME 01000000 |
#define | P9_DOTL_CLOEXEC 02000000 |
#define | P9_DOTL_SYNC 04000000 |
#define | P9_DOTL_AT_REMOVEDIR 0x200 |
#define | P9_LOCK_TYPE_RDLCK 0 |
#define | P9_LOCK_TYPE_WRLCK 1 |
#define | P9_LOCK_TYPE_UNLCK 2 |
#define | P9_NOTAG (u16)(~0) |
#define | P9_NOFID (u32)(~0) |
#define | P9_MAXWELEM 16 |
#define | P9_IOHDRSZ 24 |
#define | P9_READDIRHDRSZ 24 |
#define | P9_ZC_HDR_SZ 4096 |
: last element of path (aka filename) | |
struct p9_wstat - file system metadata information : length prefix for this stat structure instance : the type of the server (equivalent to a major number) : the sub-type of the server (equivalent to a minor number) : unique id from the server of type &p9_qid : Plan 9 format permissions of type &p9_perm_t : Last access/read time : Last modify/write time : file length : owner name : group owner : last modifier : area used to encode extended UNIX support : numeric user id of owner (part of 9p2000.u extension) : numeric group id (part of 9p2000.u extension) : numeric user id of laster modifier (part of 9p2000.u extension) | |
#define | P9_STATS_MODE 0x00000001ULL |
#define | P9_STATS_NLINK 0x00000002ULL |
#define | P9_STATS_UID 0x00000004ULL |
#define | P9_STATS_GID 0x00000008ULL |
#define | P9_STATS_RDEV 0x00000010ULL |
#define | P9_STATS_ATIME 0x00000020ULL |
#define | P9_STATS_MTIME 0x00000040ULL |
#define | P9_STATS_CTIME 0x00000080ULL |
#define | P9_STATS_INO 0x00000100ULL |
#define | P9_STATS_SIZE 0x00000200ULL |
#define | P9_STATS_BLOCKS 0x00000400ULL |
#define | P9_STATS_BTIME 0x00000800ULL |
#define | P9_STATS_GEN 0x00001000ULL |
#define | P9_STATS_DATA_VERSION 0x00002000ULL |
#define | P9_STATS_BASIC 0x000007ffULL /* Mask for fields up to BLOCKS */ |
#define | P9_STATS_ALL 0x00003fffULL /* Mask for All fields above */ |
#define | P9_LOCK_SUCCESS 0 |
#define | P9_LOCK_BLOCKED 1 |
#define | P9_LOCK_ERROR 2 |
#define | P9_LOCK_GRACE 3 |
#define | P9_LOCK_FLAGS_BLOCK 1 |
#define | P9_LOCK_FLAGS_RECLAIM 2 |
int | p9_errstr2errno (char *errstr, int len) |
struct p9_idpool * | p9_idpool_create (void) |
void | p9_idpool_destroy (struct p9_idpool *) |
int | p9_idpool_get (struct p9_idpool *p) |
void | p9_idpool_put (int id, struct p9_idpool *p) |
int | p9_idpool_check (int id, struct p9_idpool *p) |
int | p9_error_init (void) |
int | p9_trans_fd_init (void) |
void | p9_trans_fd_exit (void) |
#define P9_STATS_ALL 0x00003fffULL /* Mask for All fields above */ |
#define P9_STATS_BASIC 0x000007ffULL /* Mask for fields up to BLOCKS */ |
enum p9_debug_flags |
enum p9_debug_flags - bits for mount time debug parameter : more verbose error messages including original error string : 9P protocol tracing : VFS API tracing : protocol conversion tracing : trace management of concurrent transactions : transport tracing : memory management tracing : verbose dump of protocol messages : fid allocation/deallocation tracking : packet marshalling/unmarshalling : FS-cache tracing : Verbose packet debugging (full packet dump)
These flags are passed at mount time to turn on various levels of verbosity and tracing which will be output to the system logs.
enum p9_msg_t |
enum p9_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 transferred 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
enum p9_open_mode_t |
enum p9_open_mode_t - 9P open modes : open file for reading only : open file for writing only : open file for reading or writing : open file for execution : truncate file to zero-length before opening it : close the file when an exec(2) system call is made : remove the file when the file is closed : open the file and seek to the end : only create a file, do not open it
9P open modes differ slightly from Posix standard modes. In particular, there are extra modes which specify different semantic behaviors than may be available on standard Posix systems. For example, and are modes that most likely will not be issued from the Linux VFS client, but may be supported by servers.
enum p9_perm_t |
enum p9_perm_t - 9P permissions : mode bit for directories : mode bit for is append-only : mode bit for excluse use (only one open handle allowed) : mode bit for mount points : mode bit for authentication file : mode bit for non-backed-up files : mode bit for symbolic links (9P2000.u) : mode bit for hard-link (9P2000.u) : mode bit for device files (9P2000.u) : mode bit for named pipe (9P2000.u) : mode bit for socket (9P2000.u) : mode bit for setuid (9P2000.u) : mode bit for setgid (9P2000.u) : mode bit for sticky bit (9P2000.u)
9P permissions differ slightly from Posix standard modes.
enum p9_qid_t |
enum p9_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 significant 16 bits of the permission_t
Definition at line 1084 of file trans_fd.c.
Definition at line 1075 of file trans_fd.c.