patch-2.1.132 linux/include/linux/coda_psdev.h
Next file: linux/include/linux/fb.h
Previous file: linux/include/linux/coda_linux.h
Back to the patch index
Back to the overall index
- Lines: 119
- Date:
Mon Dec 21 14:23:28 1998
- Orig file:
v2.1.131/linux/include/linux/coda_psdev.h
- Orig date:
Thu Jul 16 18:09:29 1998
diff -u --recursive --new-file v2.1.131/linux/include/linux/coda_psdev.h linux/include/linux/coda_psdev.h
@@ -4,16 +4,8 @@
#define CODA_PSDEV_MAJOR 67
#define MAX_CODADEVS 5 /* how many do we allow */
-extern struct vcomm psdev_vcomm[];
-
-/* queue stuff; the rest is static to psdev.c */
-struct queue {
- struct queue *forw, *back;
-};
-void coda_q_insert(struct queue *el, struct queue *q);
-void coda_q_remove(struct queue *q);
-
-
+extern struct venus_comm coda_upc_comm;
+extern struct coda_sb_info coda_super_info;
#define CODA_SUPER_MAGIC 0x73757245
struct coda_sb_info
@@ -21,31 +13,23 @@
struct inode * sbi_psdev; /* /dev/cfs? Venus/kernel device */
struct inode * sbi_ctlcp; /* control magic file */
int sbi_refct;
- struct vcomm * sbi_vcomm;
+ struct venus_comm * sbi_vcomm;
struct inode * sbi_root;
+ struct super_block *sbi_sb;
struct list_head sbi_cchead;
struct list_head sbi_volroothead;
};
-/* communication pending/processing queues queues */
-struct vcomm {
+/* communication pending/processing queues */
+struct venus_comm {
u_long vc_seq;
struct wait_queue *vc_waitq; /* Venus wait queue */
- struct queue vc_pending;
- struct queue vc_processing;
- struct super_block *vc_sb;
+ struct list_head vc_pending;
+ struct list_head vc_processing;
int vc_inuse;
+ pid_t vc_pid; /* Venus pid */
};
-static inline int vcomm_open(struct vcomm *vcp)
-{
- return ((vcp)->vc_pending.forw != NULL);
-}
-
-static inline void mark_vcomm_closed(struct vcomm *vcp)
-{
- (vcp)->vc_pending.forw = NULL;
-}
static inline struct coda_sb_info *coda_sbp(struct super_block *sb)
{
@@ -67,7 +51,8 @@
int venus_lookup(struct super_block *sb, struct ViceFid *fid,
const char *name, int length, int *type,
struct ViceFid *resfid);
-int venus_release(struct super_block *sb, struct ViceFid *fid, int flags);
+int venus_release(struct super_block *sb, struct ViceFid *fid, int flags,
+ struct coda_cred *);
int venus_open(struct super_block *sb, struct ViceFid *fid,
int flags, ino_t *ino, dev_t *dev);
int venus_mkdir(struct super_block *sb, struct ViceFid *dirfid,
@@ -100,18 +85,22 @@
/* messages between coda filesystem in kernel and Venus */
extern int coda_hard;
extern unsigned long coda_timeout;
-struct vmsg {
- struct queue vm_chain;
- caddr_t vm_data;
- u_short vm_flags;
- u_short vm_inSize; /* Size is at most 5000 bytes */
- u_short vm_outSize;
- u_short vm_opcode; /* copied from data to save lookup */
- int vm_unique;
- struct wait_queue *vm_sleep; /* process' wait queue */
- unsigned long vm_posttime;
+struct upc_req {
+ struct list_head uc_chain;
+ caddr_t uc_data;
+ u_short uc_flags;
+ u_short uc_inSize; /* Size is at most 5000 bytes */
+ u_short uc_outSize;
+ u_short uc_opcode; /* copied from data to save lookup */
+ int uc_unique;
+ struct wait_queue *uc_sleep; /* process' wait queue */
+ unsigned long uc_posttime;
};
+#define REQ_ASYNC 0x1
+#define REQ_READ 0x2
+#define REQ_WRITE 0x4
+
/*
* Statistics
@@ -119,7 +108,7 @@
struct coda_upcallstats {
int ncalls; /* client requests */
int nbadcalls; /* upcall failures */
- int reqs[CFS_NCALLS]; /* count of each request */
+ int reqs[CODA_NCALLS]; /* count of each request */
} ;
extern struct coda_upcallstats coda_callstats;
@@ -127,7 +116,7 @@
static inline void clstats(int opcode)
{
coda_callstats.ncalls++;
- if ( (0 <= opcode) && (opcode <= CFS_NCALLS) )
+ if ( (0 <= opcode) && (opcode <= CODA_NCALLS) )
coda_callstats.reqs[opcode]++;
else
printk("clstats called with bad opcode %d\n", opcode);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov