BXE: min->MIN, plus an spatch
[akaros.git] / kern / include / vfs.h
index 5f67e79..fcfbef6 100644 (file)
@@ -347,8 +347,8 @@ struct pipe_inode_info
 /* Per-process structs */
 #define NR_OPEN_FILES_DEFAULT 32
 #define NR_FILE_DESC_DEFAULT 32
-/* keep this in sync with glibc's fd_setsize */
-#define NR_FILE_DESC_MAX 1024
+/* this is not in sync with glibc, sysdeps/ros/bits/typesizes.h */
+#define NR_FILE_DESC_MAX (512 * 1024)
 
 /* Bitmask for file descriptors, big for when we exceed the initial small.  We
  * could just use the fd_array to check for openness instead of the bitmask,
@@ -432,6 +432,9 @@ void init_sb(struct super_block *sb, struct vfsmount *vmnt,
              void *d_fs_info);
 
 /* Dentry Functions */
+struct dentry *get_dentry_with_ops(struct super_block *sb,
+                                   struct dentry *parent, char *name,
+                                   struct dentry_operations *d_op);
 struct dentry *get_dentry(struct super_block *sb, struct dentry *parent,
                           char *name);
 void dentry_release(struct kref *kref);
@@ -441,6 +444,7 @@ struct dentry *dcache_get(struct super_block *sb, struct dentry *what_i_want);
 void dcache_put(struct super_block *sb, struct dentry *key_val);
 struct dentry *dcache_remove(struct super_block *sb, struct dentry *key);
 void dcache_prune(struct super_block *sb, bool negative_only);
+int generic_dentry_hash(struct dentry *dentry, struct qstr *qstr);
 
 /* Inode Functions */
 struct inode *get_inode(struct dentry *dentry);
@@ -473,6 +477,8 @@ int do_file_chmod(struct file *file, int mode);
 int do_mkdir(char *path, int mode);
 int do_rmdir(char *path);
 int do_pipe(struct file **pipe_files, int flags);
+int do_rename(char *old_path, char *new_path);
+int do_truncate(struct inode *inode, off64_t len);
 struct file *dentry_open(struct dentry *dentry, int flags);
 void file_release(struct kref *kref);
 
@@ -480,7 +486,7 @@ void file_release(struct kref *kref);
 struct file *get_file_from_fd(struct files_struct *open_files, int fd);
 struct file *put_file_from_fd(struct files_struct *open_files, int file_desc);
 int insert_file(struct files_struct *open_files, struct file *file, int low_fd,
-                bool must);
+                bool must, bool cloexec);
 void close_all_files(struct files_struct *open_files, bool cloexec);
 void clone_files(struct files_struct *src, struct files_struct *dst);
 int do_chdir(struct fs_struct *fs_env, char *path);
@@ -494,7 +500,7 @@ 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 get_fd(struct files_struct *open_files, int low_fd, int cloexec);
 int claim_fd(struct files_struct *open_files, int file_desc);
 
 #endif /* ROS_KERN_VFS_H */