Blame view

include/fs.h 3.43 KB
045fa1e11   Stephen Warren   fs: add filesyste...
1
2
3
  /*
   * Copyright (c) 2012, NVIDIA CORPORATION.  All rights reserved.
   *
5b8031ccb   Tom Rini   Add more SPDX-Lic...
4
   * SPDX-License-Identifier:	GPL-2.0
045fa1e11   Stephen Warren   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   Simon Glass   sandbox: Add host...
14
  #define FS_TYPE_SANDBOX	3
251cee0db   Hans de Goede   ubifs: Add generi...
15
  #define FS_TYPE_UBIFS	4
045fa1e11   Stephen Warren   fs: add filesyste...
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
  
  /*
   * 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);
  
  /*
   * 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   Stephen Warren   fs: implement inf...
38
39
40
41
42
43
44
   * Determine whether a file exists
   *
   * Returns 1 if the file exists, 0 if it doesn't exist.
   */
  int fs_exists(const char *filename);
  
  /*
d455d8789   Suriyan Ramasami   fs: API changes e...
45
   * fs_size - Determine a file's size
cf6598193   Stephen Warren   fs: implement siz...
46
   *
d455d8789   Suriyan Ramasami   fs: API changes e...
47
48
49
   * @filename: Name of the file
   * @size: Size of file
   * @return 0 if ok with valid *size, negative on error
cf6598193   Stephen Warren   fs: implement siz...
50
   */
d455d8789   Suriyan Ramasami   fs: API changes e...
51
  int fs_size(const char *filename, loff_t *size);
cf6598193   Stephen Warren   fs: implement siz...
52
53
  
  /*
d455d8789   Suriyan Ramasami   fs: API changes e...
54
55
   * 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   Stephen Warren   fs: add filesyste...
56
   *
d455d8789   Suriyan Ramasami   fs: API changes e...
57
58
59
60
61
62
   * @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   Stephen Warren   fs: add filesyste...
63
   */
d455d8789   Suriyan Ramasami   fs: API changes e...
64
65
  int fs_read(const char *filename, ulong addr, loff_t offset, loff_t len,
  	    loff_t *actread);
045fa1e11   Stephen Warren   fs: add filesyste...
66
67
  
  /*
d455d8789   Suriyan Ramasami   fs: API changes e...
68
69
   * fs_write - Write file to the partition previously set by fs_set_blk_dev()
   * Note that not all filesystem types support offset!=0.
bd6fb31fa   Stephen Warren   fs: fix generic s...
70
   *
d455d8789   Suriyan Ramasami   fs: API changes e...
71
72
73
74
75
76
   * @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   Stephen Warren   fs: fix generic s...
77
   */
d455d8789   Suriyan Ramasami   fs: API changes e...
78
79
  int fs_write(const char *filename, ulong addr, loff_t offset, loff_t len,
  	     loff_t *actwrite);
bd6fb31fa   Stephen Warren   fs: fix generic s...
80
81
  
  /*
045fa1e11   Stephen Warren   fs: add filesyste...
82
83
84
   * Common implementation for various filesystem commands, optionally limited
   * to a specific filesystem type via the fstype parameter.
   */
cf6598193   Stephen Warren   fs: implement siz...
85
86
  int do_size(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
  		int fstype);
f9b55e228   Stephen Warren   fs: rename fsload...
87
  int do_load(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
b770e88a6   Wolfgang Denk   Fix number base h...
88
  		int fstype);
045fa1e11   Stephen Warren   fs: add filesyste...
89
90
  int do_ls(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
  		int fstype);
6152916a9   Stephen Warren   fs: implement inf...
91
92
  int file_exists(const char *dev_type, const char *dev_part, const char *file,
  		int fstype);
a8f6ab522   Simon Glass   fs: Add support f...
93
  int do_save(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
b770e88a6   Wolfgang Denk   Fix number base h...
94
  		int fstype);
045fa1e11   Stephen Warren   fs: add filesyste...
95

59e890ef7   Christian Gmeiner   fs: make it possi...
96
97
98
99
100
101
  /*
   * 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   Sjoerd Simons   fs: Add command t...
102
103
104
105
106
  /*
   * 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   Stephen Warren   fs: add filesyste...
107
  #endif /* _FS_H */