Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | /* SPDX-License-Identifier: GPL-2.0 */ /* * Filesystem definitions * * Minimal version for U-Boot ext4l - based on Linux 6.18 */ #ifndef _LINUX_FS_H #define _LINUX_FS_H #include <linux/types.h> #include <linux/list.h> #include <linux/mutex.h> /* Forward declarations */ struct inode; struct super_block; struct buffer_head; struct address_space_operations; /* errseq_t - error sequence type */ typedef u32 errseq_t; /* fmode_t - file mode type */ typedef unsigned int fmode_t; /* File mode flags */ #define FMODE_READ ((__force fmode_t)(1 << 0)) #define FMODE_WRITE ((__force fmode_t)(1 << 1)) #define FMODE_LSEEK ((__force fmode_t)(1 << 2)) #define FMODE_NOWAIT ((__force fmode_t)(1 << 20)) #define FMODE_CAN_ODIRECT ((__force fmode_t)(1 << 21)) #define FMODE_CAN_ATOMIC_WRITE ((__force fmode_t)(1 << 22)) /* Seek constants */ #ifndef SEEK_HOLE #define SEEK_HOLE 4 #define SEEK_DATA 3 #endif /* vfsmount - mount point */ struct vfsmount { struct dentry *mnt_root; }; /* path - pathname components */ struct path { struct vfsmount *mnt; struct dentry *dentry; }; /* Buffer operations are in buffer_head.h */ /* address_space - extended for inode.c */ struct address_space { struct inode *host; errseq_t wb_err; unsigned long nrpages; unsigned long writeback_index; struct list_head i_private_list; const struct address_space_operations *a_ops; }; /* block_device - minimal stub */ struct block_device { struct address_space *bd_mapping; void *bd_disk; struct super_block *bd_super; dev_t bd_dev; }; /* errseq functions - stubs */ static inline int errseq_check(errseq_t *eseq, errseq_t since) { return 0; } static inline int errseq_check_and_advance(errseq_t *eseq, errseq_t *since) { return 0; } /* File readahead state - stub */ struct file_ra_state { unsigned long start; unsigned int size; unsigned int async_size; unsigned int ra_pages; unsigned int mmap_miss; long long prev_pos; }; /* file - minimal stub */ struct file { fmode_t f_mode; struct inode *f_inode; unsigned int f_flags; struct address_space *f_mapping; void *private_data; struct file_ra_state f_ra; struct path f_path; }; /* Get inode from file */ static inline struct inode *file_inode(struct file *f) { return f->f_inode; } /* iattr - inode attributes for setattr */ struct iattr { unsigned int ia_valid; umode_t ia_mode; uid_t ia_uid; gid_t ia_gid; loff_t ia_size; }; /* writeback_control - defined in linux/compat.h */ /* fsnotify - stub */ #define fsnotify_change(d, m) do { } while (0) /* inode_init_once - stub */ static inline void inode_init_once(struct inode *inode) { } /* S_ISDIR, etc. - already in linux/stat.h */ #include <linux/stat.h> #endif /* _LINUX_FS_H */ |