Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /*
  2  * V9FS definitions.
  3  *
  4  *  Copyright (C) 2004-2008 by Eric Van Hensbergen <ericvh@gmail.com>
  5  *  Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov>
  6  *
  7  *  This program is free software; you can redistribute it and/or modify
  8  *  it under the terms of the GNU General Public License version 2
  9  *  as published by the Free Software Foundation.
 10  *
 11  *  This program is distributed in the hope that it will be useful,
 12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 14  *  GNU General Public License for more details.
 15  *
 16  *  You should have received a copy of the GNU General Public License
 17  *  along with this program; if not, write to:
 18  *  Free Software Foundation
 19  *  51 Franklin Street, Fifth Floor
 20  *  Boston, MA  02111-1301  USA
 21  *
 22  */
 23 
 24 /*
 25   * Session structure provides information for an opened session
 26   *
 27   */
 28 
 29 struct v9fs_session_info {
 30         /* options */
 31         unsigned char flags;    /* session flags */
 32         unsigned char nodev;    /* set to 1 if no disable device mapping */
 33         unsigned short debug;   /* debug level */
 34         unsigned int afid;      /* authentication fid */
 35         unsigned int cache;     /* cache mode */
 36 
 37         char *options;          /* copy of mount options */
 38         char *uname;            /* user name to mount as */
 39         char *aname;            /* name of remote hierarchy being mounted */
 40         unsigned int maxdata;   /* max data for client interface */
 41         unsigned int dfltuid;   /* default uid/muid for legacy support */
 42         unsigned int dfltgid;   /* default gid for legacy support */
 43         u32 uid;                /* if ACCESS_SINGLE, the uid that has access */
 44         struct p9_client *clnt; /* 9p client */
 45         struct dentry *debugfs_dir;
 46 };
 47 
 48 /* session flags */
 49 enum {
 50         V9FS_EXTENDED           = 0x01, /* 9P2000.u */
 51         V9FS_ACCESS_MASK        = 0x06, /* access mask */
 52         V9FS_ACCESS_SINGLE      = 0x02, /* only one user can access the files */
 53         V9FS_ACCESS_USER        = 0x04, /* attache per user */
 54         V9FS_ACCESS_ANY         = 0x06, /* use the same attach for all users */
 55 };
 56 
 57 /* possible values of ->cache */
 58 /* eventually support loose, tight, time, session, default always none */
 59 enum {
 60         CACHE_NONE,             /* default */
 61         CACHE_LOOSE,            /* no consistency */
 62 };
 63 
 64 extern struct dentry *v9fs_debugfs_root;
 65 
 66 struct p9_fid *v9fs_session_init(struct v9fs_session_info *, const char *,
 67                                                                         char *);
 68 void v9fs_session_close(struct v9fs_session_info *v9ses);
 69 void v9fs_session_cancel(struct v9fs_session_info *v9ses);
 70 
 71 #define V9FS_MAGIC 0x01021997
 72 
 73 /* other default globals */
 74 #define V9FS_PORT       564
 75 #define V9FS_DEFUSER    "nobody"
 76 #define V9FS_DEFANAME   ""
 77 #define V9FS_DEFUID     (-2)
 78 #define V9FS_DEFGID     (-2)
 79 
 80 static inline struct v9fs_session_info *v9fs_inode2v9ses(struct inode *inode)
 81 {
 82         return (inode->i_sb->s_fs_info);
 83 }
 84 
 85 static inline int v9fs_extended(struct v9fs_session_info *v9ses)
 86 {
 87         return v9ses->flags & V9FS_EXTENDED;
 88 }
 89 
  This page was automatically generated by the LXR engine.