Blame view
include/fs.h
5.41 KB
045fa1e11 fs: add filesyste... |
1 2 3 |
/* * Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved. * |
5b8031ccb Add more SPDX-Lic... |
4 |
* SPDX-License-Identifier: GPL-2.0 |
045fa1e11 fs: add filesyste... |
5 6 7 8 9 10 11 12 13 |
*/ #ifndef _FS_H #define _FS_H #include <common.h> #define FS_TYPE_ANY 0 #define FS_TYPE_FAT 1 #define FS_TYPE_EXT 2 |
92ccc96bf sandbox: Add host... |
14 |
#define FS_TYPE_SANDBOX 3 |
251cee0db ubifs: Add generi... |
15 |
#define FS_TYPE_UBIFS 4 |
0c936ee31 fs: btrfs: Add U-... |
16 |
#define FS_TYPE_BTRFS 5 |
045fa1e11 fs: add filesyste... |
17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
/* * Tell the fs layer which block device an partition to use for future * commands. This also internally identifies the filesystem that is present * within the partition. The identification process may be limited to a * specific filesystem type by passing FS_* in the fstype parameter. * * Returns 0 on success. * Returns non-zero if there is an error accessing the disk or partition, or * no known filesystem type could be recognized on it. */ int fs_set_blk_dev(const char *ifname, const char *dev_part_str, int fstype); /* |
4bbcc965f fs: add fs_readdir() |
31 32 33 34 35 36 37 38 39 40 41 |
* fs_set_blk_dev_with_part - Set current block device + partition * * Similar to fs_set_blk_dev(), but useful for cases where you already * know the blk_desc and part number. * * Returns 0 on success. * Returns non-zero if invalid partition or error accessing the disk. */ int fs_set_blk_dev_with_part(struct blk_desc *desc, int part); /* |
045fa1e11 fs: add filesyste... |
42 43 44 45 46 47 48 49 |
* Print the list of files on the partition previously set by fs_set_blk_dev(), * in directory "dirname". * * Returns 0 on success. Returns non-zero on error. */ int fs_ls(const char *dirname); /* |
6152916a9 fs: implement inf... |
50 51 52 53 54 55 56 |
* Determine whether a file exists * * Returns 1 if the file exists, 0 if it doesn't exist. */ int fs_exists(const char *filename); /* |
d455d8789 fs: API changes e... |
57 |
* fs_size - Determine a file's size |
cf6598193 fs: implement siz... |
58 |
* |
d455d8789 fs: API changes e... |
59 60 61 |
* @filename: Name of the file * @size: Size of file * @return 0 if ok with valid *size, negative on error |
cf6598193 fs: implement siz... |
62 |
*/ |
d455d8789 fs: API changes e... |
63 |
int fs_size(const char *filename, loff_t *size); |
cf6598193 fs: implement siz... |
64 65 |
/* |
d455d8789 fs: API changes e... |
66 67 |
* fs_read - Read file from the partition previously set by fs_set_blk_dev() * Note that not all filesystem types support either/both offset!=0 or len!=0. |
045fa1e11 fs: add filesyste... |
68 |
* |
d455d8789 fs: API changes e... |
69 70 71 72 73 74 |
* @filename: Name of file to read from * @addr: The address to read into * @offset: The offset in file to read from * @len: The number of bytes to read. Maybe 0 to read entire file * @actread: Returns the actual number of bytes read * @return 0 if ok with valid *actread, -1 on error conditions |
045fa1e11 fs: add filesyste... |
75 |
*/ |
d455d8789 fs: API changes e... |
76 77 |
int fs_read(const char *filename, ulong addr, loff_t offset, loff_t len, loff_t *actread); |
045fa1e11 fs: add filesyste... |
78 79 |
/* |
d455d8789 fs: API changes e... |
80 81 |
* fs_write - Write file to the partition previously set by fs_set_blk_dev() * Note that not all filesystem types support offset!=0. |
bd6fb31fa fs: fix generic s... |
82 |
* |
d455d8789 fs: API changes e... |
83 84 85 86 87 88 |
* @filename: Name of file to read from * @addr: The address to read into * @offset: The offset in file to read from. Maybe 0 to write to start of file * @len: The number of bytes to write * @actwrite: Returns the actual number of bytes written * @return 0 if ok with valid *actwrite, -1 on error conditions |
bd6fb31fa fs: fix generic s... |
89 |
*/ |
d455d8789 fs: API changes e... |
90 91 |
int fs_write(const char *filename, ulong addr, loff_t offset, loff_t len, loff_t *actwrite); |
bd6fb31fa fs: fix generic s... |
92 93 |
/* |
4bbcc965f fs: add fs_readdir() |
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 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
* Directory entry types, matches the subset of DT_x in posix readdir() * which apply to u-boot. */ #define FS_DT_DIR 4 /* directory */ #define FS_DT_REG 8 /* regular file */ #define FS_DT_LNK 10 /* symbolic link */ /* * A directory entry, returned by fs_readdir(). Returns information * about the file/directory at the current directory entry position. */ struct fs_dirent { unsigned type; /* one of FS_DT_x (not a mask) */ loff_t size; /* size in bytes */ char name[256]; }; /* Note: fs_dir_stream should be treated as opaque to the user of fs layer */ struct fs_dir_stream { /* private to fs. layer: */ struct blk_desc *desc; int part; }; /* * fs_opendir - Open a directory * * @filename: the path to directory to open * @return a pointer to the directory stream or NULL on error and errno * set appropriately */ struct fs_dir_stream *fs_opendir(const char *filename); /* * fs_readdir - Read the next directory entry in the directory stream. * * Works in an analogous way to posix readdir(). The previously returned * directory entry is no longer valid after calling fs_readdir() again. * After fs_closedir() is called, the returned directory entry is no * longer valid. * * @dirs: the directory stream * @return the next directory entry (only valid until next fs_readdir() or * fs_closedir() call, do not attempt to free()) or NULL if the end of * the directory is reached. */ struct fs_dirent *fs_readdir(struct fs_dir_stream *dirs); /* * fs_closedir - close a directory stream * * @dirs: the directory stream */ void fs_closedir(struct fs_dir_stream *dirs); /* |
045fa1e11 fs: add filesyste... |
150 151 152 |
* Common implementation for various filesystem commands, optionally limited * to a specific filesystem type via the fstype parameter. */ |
cf6598193 fs: implement siz... |
153 154 |
int do_size(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], int fstype); |
f9b55e228 fs: rename fsload... |
155 |
int do_load(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], |
b770e88a6 Fix number base h... |
156 |
int fstype); |
045fa1e11 fs: add filesyste... |
157 158 |
int do_ls(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], int fstype); |
6152916a9 fs: implement inf... |
159 160 |
int file_exists(const char *dev_type, const char *dev_part, const char *file, int fstype); |
a8f6ab522 fs: Add support f... |
161 |
int do_save(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], |
b770e88a6 Fix number base h... |
162 |
int fstype); |
045fa1e11 fs: add filesyste... |
163 |
|
59e890ef7 fs: make it possi... |
164 165 166 167 168 169 |
/* * Determine the UUID of the specified filesystem and print it. Optionally it is * possible to store the UUID directly in env. */ int do_fs_uuid(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], int fstype); |
1a1ad8e09 fs: Add command t... |
170 171 172 173 174 |
/* * Determine the type of the specified filesystem and print it. Optionally it is * possible to store the type directly in env. */ int do_fs_type(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); |
045fa1e11 fs: add filesyste... |
175 |
#endif /* _FS_H */ |