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 #ifndef __CODA_PSDEV_H
  2 #define __CODA_PSDEV_H
  3 
  4 #include <linux/magic.h>
  5 
  6 #define CODA_PSDEV_MAJOR 67
  7 #define MAX_CODADEVS  5    /* how many do we allow */
  8 
  9 #ifdef __KERNEL__
 10 struct kstatfs;
 11 
 12 /* communication pending/processing queues */
 13 struct venus_comm {
 14         u_long              vc_seq;
 15         wait_queue_head_t   vc_waitq; /* Venus wait queue */
 16         struct list_head    vc_pending;
 17         struct list_head    vc_processing;
 18         int                 vc_inuse;
 19         struct super_block *vc_sb;
 20 };
 21 
 22 
 23 static inline struct venus_comm *coda_vcp(struct super_block *sb)
 24 {
 25         return (struct venus_comm *)((sb)->s_fs_info);
 26 }
 27 
 28 /* upcalls */
 29 int venus_rootfid(struct super_block *sb, struct CodaFid *fidp);
 30 int venus_getattr(struct super_block *sb, struct CodaFid *fid,
 31                   struct coda_vattr *attr);
 32 int venus_setattr(struct super_block *, struct CodaFid *, struct coda_vattr *);
 33 int venus_lookup(struct super_block *sb, struct CodaFid *fid, 
 34                  const char *name, int length, int *type, 
 35                  struct CodaFid *resfid);
 36 int venus_close(struct super_block *sb, struct CodaFid *fid, int flags,
 37                 vuid_t uid);
 38 int venus_open(struct super_block *sb, struct CodaFid *fid, int flags,
 39                struct file **f);
 40 int venus_mkdir(struct super_block *sb, struct CodaFid *dirfid, 
 41                 const char *name, int length, 
 42                 struct CodaFid *newfid, struct coda_vattr *attrs);
 43 int venus_create(struct super_block *sb, struct CodaFid *dirfid, 
 44                  const char *name, int length, int excl, int mode,
 45                  struct CodaFid *newfid, struct coda_vattr *attrs) ;
 46 int venus_rmdir(struct super_block *sb, struct CodaFid *dirfid, 
 47                 const char *name, int length);
 48 int venus_remove(struct super_block *sb, struct CodaFid *dirfid, 
 49                  const char *name, int length);
 50 int venus_readlink(struct super_block *sb, struct CodaFid *fid, 
 51                    char *buffer, int *length);
 52 int venus_rename(struct super_block *, struct CodaFid *new_fid, 
 53                  struct CodaFid *old_fid, size_t old_length, 
 54                  size_t new_length, const char *old_name, 
 55                  const char *new_name);
 56 int venus_link(struct super_block *sb, struct CodaFid *fid, 
 57                   struct CodaFid *dirfid, const char *name, int len );
 58 int venus_symlink(struct super_block *sb, struct CodaFid *fid,
 59                   const char *name, int len, const char *symname, int symlen);
 60 int venus_access(struct super_block *sb, struct CodaFid *fid, int mask);
 61 int venus_pioctl(struct super_block *sb, struct CodaFid *fid,
 62                  unsigned int cmd, struct PioctlData *data);
 63 int coda_downcall(int opcode, union outputArgs *out, struct super_block *sb);
 64 int venus_fsync(struct super_block *sb, struct CodaFid *fid);
 65 int venus_statfs(struct dentry *dentry, struct kstatfs *sfs);
 66 
 67 /*
 68  * Statistics
 69  */
 70 
 71 extern struct venus_comm coda_comms[];
 72 #endif /* __KERNEL__ */
 73 
 74 /* messages between coda filesystem in kernel and Venus */
 75 struct upc_req {
 76         struct list_head    uc_chain;
 77         caddr_t             uc_data;
 78         u_short             uc_flags;
 79         u_short             uc_inSize;  /* Size is at most 5000 bytes */
 80         u_short             uc_outSize;
 81         u_short             uc_opcode;  /* copied from data to save lookup */
 82         int                 uc_unique;
 83         wait_queue_head_t   uc_sleep;   /* process' wait queue */
 84 };
 85 
 86 #define REQ_ASYNC  0x1
 87 #define REQ_READ   0x2
 88 #define REQ_WRITE  0x4
 89 #define REQ_ABORT  0x8
 90 
 91 #endif
 92 
  This page was automatically generated by the LXR engine.