PCI: properly read the BARs
[akaros.git] / kern / include / vfs.h
index 6df4f41..7d3967b 100644 (file)
@@ -49,6 +49,7 @@ struct file;
 struct file_operations;
 struct fs_type;
 struct vfsmount;
 struct file_operations;
 struct fs_type;
 struct vfsmount;
+struct pipe_inode_info;
 
 /* List def's we need */
 TAILQ_HEAD(sb_tailq, super_block);
 
 /* List def's we need */
 TAILQ_HEAD(sb_tailq, super_block);
@@ -333,6 +334,16 @@ struct vfsmount {
        struct namespace                        *mnt_namespace;
 };
 
        struct namespace                        *mnt_namespace;
 };
 
+struct pipe_inode_info
+{
+       char                                            *p_buf;
+       size_t                                          p_rd_off;
+       size_t                                          p_wr_off;
+       unsigned int                            p_nr_readers;
+       unsigned int                            p_nr_writers;
+       struct cond_var                         p_cv;
+};
+
 /* Per-process structs */
 #define NR_OPEN_FILES_DEFAULT 32
 #define NR_FILE_DESC_DEFAULT 32
 /* Per-process structs */
 #define NR_OPEN_FILES_DEFAULT 32
 #define NR_FILE_DESC_DEFAULT 32
@@ -369,6 +380,7 @@ struct file_desc {
 /* All open files for a process */
 struct files_struct {
        spinlock_t                                      lock;
 /* All open files for a process */
 struct files_struct {
        spinlock_t                                      lock;
+       bool                                            closed;
        int                                                     max_files;              /* max files ptd to by fd */
        int                                                     max_fdset;              /* max of the current fd_set */
        int                                                     next_fd;                /* next number available */
        int                                                     max_files;              /* max files ptd to by fd */
        int                                                     max_fdset;              /* max of the current fd_set */
        int                                                     next_fd;                /* next number available */
@@ -460,6 +472,7 @@ int do_access(char *path, int mode);
 int do_chmod(char *path, int mode);
 int do_mkdir(char *path, int mode);
 int do_rmdir(char *path);
 int do_chmod(char *path, int mode);
 int do_mkdir(char *path, int mode);
 int do_rmdir(char *path);
+int do_pipe(struct file **pipe_files, int flags);
 struct file *dentry_open(struct dentry *dentry, int flags);
 void file_release(struct kref *kref);
 
 struct file *dentry_open(struct dentry *dentry, int flags);
 void file_release(struct kref *kref);
 
@@ -473,8 +486,13 @@ int do_chdir(struct fs_struct *fs_env, char *path);
 char *do_getcwd(struct fs_struct *fs_env, char **kfree_this, size_t cwd_l);
 
 /* Debugging */
 char *do_getcwd(struct fs_struct *fs_env, char **kfree_this, size_t cwd_l);
 
 /* Debugging */
+void print_kstat(struct kstat *kstat);
 int ls_dash_r(char *path);
 extern struct inode_operations dummy_i_op;
 extern struct dentry_operations dummy_d_op;
 
 int ls_dash_r(char *path);
 extern struct inode_operations dummy_i_op;
 extern struct dentry_operations dummy_d_op;
 
+int put_fd(struct files_struct *open_files, int file_desc);
+int get_fd(struct files_struct *open_files, int low_fd);
+int claim_fd(struct files_struct *open_files, int file_desc);
+
 #endif /* ROS_KERN_VFS_H */
 #endif /* ROS_KERN_VFS_H */