/*
* Kernel file descriptor
*/
-typedef struct cfs_kern_file {
+struct file {
int f_flags;
vnode_t f_vp;
vfs_context_t f_ctxt;
-} cfs_file_t;
-
-#else
-
-typedef struct file cfs_file_t;
-
+};
#endif
-int kern_file_size(cfs_file_t *fp, off_t *size);
-#define cfs_filp_size(fp) \
+int kern_file_size(struct file *fp, off_t *size);
+#define filp_size(fp) \
({ \
off_t __size; \
kern_file_size((fp), &__size); \
__size; \
})
-#define cfs_filp_poff(fp) (NULL)
-
-cfs_file_t *kern_file_open(const char *name, int flags, int mode, int *err);
-int kern_file_close(cfs_file_t *fp);
-int kern_file_read(cfs_file_t *fp, void *buf, size_t nbytes, off_t *pos);
-int kern_file_write(cfs_file_t *fp, void *buf, size_t nbytes, off_t *pos);
-int kern_file_sync(cfs_file_t *fp);
-
-#define cfs_filp_open(n, f, m, e) kern_file_open(n, f, m, e)
-#define cfs_filp_close(f) kern_file_close(f)
-#define cfs_filp_read(f, b, n, p) kern_file_read(f, b, n, p)
-#define cfs_filp_write(f, b, n, p) kern_file_write(f, b, n, p)
-#define cfs_filp_fsync(f) kern_file_sync(f)
-
-int ref_file(cfs_file_t *fp);
-int rele_file(cfs_file_t *fp);
-int file_count(cfs_file_t *fp);
-#define cfs_get_file(f) ref_file(f)
-#define cfs_put_file(f) rele_file(f)
-#define cfs_file_count(f) file_count(f)
-
-#define CFS_INT_LIMIT(x) (~((x)1 << (sizeof(x)*8 - 1)))
-#define CFS_OFFSET_MAX CFS_INT_LIMIT(loff_t)
-
-typedef struct flock cfs_flock_t;
-#define cfs_flock_type(fl) ((fl)->l_type)
-#define cfs_flock_set_type(fl, type) do { (fl)->l_type = (type); } while(0)
-#define cfs_flock_pid(fl) ((fl)->l_pid)
-#define cfs_flock_set_pid(fl, pid) do { (fl)->l_pid = (pid); } while(0)
-#define cfs_flock_start(fl) ((fl)->l_start)
-#define cfs_flock_set_start(fl, start) do { (fl)->l_start = (start); } while(0)
-
-static inline loff_t cfs_flock_end(cfs_flock_t *fl)
+#define filp_poff(fp) (NULL)
+
+struct file *kern_file_open(const char *name, int flags, int mode);
+int kern_file_close(struct file *fp);
+int kern_file_read(struct file *fp, void *buf, size_t nbytes, off_t *pos);
+int kern_file_write(struct file *fp, void *buf, size_t nbytes, off_t *pos);
+int kern_file_sync(struct file *fp);
+
+#define filp_open(n, f, m) kern_file_open(n, f, m)
+#define filp_close(f, i) kern_file_close(f)
+#define filp_read(f, b, n, p) kern_file_read(f, b, n, p)
+#define filp_write(f, b, n, p) kern_file_write(f, b, n, p)
+#define filp_fsync(f) kern_file_sync(f)
+
+int ref_file(struct file *fp);
+int rele_file(struct file *fp);
+int file_count(struct file *fp);
+#define get_file(f) ref_file(f)
+#define fput(f) rele_file(f)
+
+#define INT_LIMIT(x) (~((x)1 << (sizeof(x)*8 - 1)))
+#define OFFSET_MAX INT_LIMIT(loff_t)
+
+#define file_lock flock
+#define flock_type(fl) ((fl)->l_type)
+#define flock_set_type(fl, type) do { (fl)->l_type = (type); } while (0)
+#define flock_pid(fl) ((fl)->l_pid)
+#define flock_set_pid(fl, pid) do { (fl)->l_pid = (pid); } while (0)
+#define flock_start(fl) ((fl)->l_start)
+#define flock_set_start(fl, st) do { (fl)->l_start = (st); } while (0)
+
+static inline loff_t flock_end(struct file_lock *fl)
{
- return (fl->l_len == 0 ? CFS_OFFSET_MAX: (fl->l_start + fl->l_len));
+ return (fl->l_len == 0 ? OFFSET_MAX : (fl->l_start + fl->l_len));
}
-static inline void cfs_flock_set_end(cfs_flock_t *fl, loff_t end)
+static inline void flock_set_end(struct file_lock *fl, loff_t end)
{
- if (end == CFS_OFFSET_MAX)
- fl->l_len = 0;
- else
- fl->l_len = end - fl->l_start;
+ if (end == OFFSET_MAX)
+ fl->l_len = 0;
+ else
+ fl->l_len = end - fl->l_start;
}
#define ATTR_MODE 0x0001
{
return acl;
}
-
-#else /* !__KERNEL__ */
-
-typedef struct file cfs_file_t;
-
#endif /* END __KERNEL__ */
-typedef struct {
+struct dentry {
void *d;
-} cfs_dentry_t;
+};
#ifndef O_SYNC
#define O_SYNC 0