uboot/include/fs.h
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2012, NVIDIA CORPORATION.  All rights reserved.
   3 *
   4 * SPDX-License-Identifier:     GPL-2.0
   5 */
   6#ifndef _FS_H
   7#define _FS_H
   8
   9#include <common.h>
  10
  11#define FS_TYPE_ANY     0
  12#define FS_TYPE_FAT     1
  13#define FS_TYPE_EXT     2
  14#define FS_TYPE_SANDBOX 3
  15#define FS_TYPE_UBIFS   4
  16
  17/*
  18 * Tell the fs layer which block device an partition to use for future
  19 * commands. This also internally identifies the filesystem that is present
  20 * within the partition. The identification process may be limited to a
  21 * specific filesystem type by passing FS_* in the fstype parameter.
  22 *
  23 * Returns 0 on success.
  24 * Returns non-zero if there is an error accessing the disk or partition, or
  25 * no known filesystem type could be recognized on it.
  26 */
  27int fs_set_blk_dev(const char *ifname, const char *dev_part_str, int fstype);
  28
  29/*
  30 * Print the list of files on the partition previously set by fs_set_blk_dev(),
  31 * in directory "dirname".
  32 *
  33 * Returns 0 on success. Returns non-zero on error.
  34 */
  35int fs_ls(const char *dirname);
  36
  37/*
  38 * Determine whether a file exists
  39 *
  40 * Returns 1 if the file exists, 0 if it doesn't exist.
  41 */
  42int fs_exists(const char *filename);
  43
  44/*
  45 * fs_size - Determine a file's size
  46 *
  47 * @filename: Name of the file
  48 * @size: Size of file
  49 * @return 0 if ok with valid *size, negative on error
  50 */
  51int fs_size(const char *filename, loff_t *size);
  52
  53/*
  54 * fs_read - Read file from the partition previously set by fs_set_blk_dev()
  55 * Note that not all filesystem types support either/both offset!=0 or len!=0.
  56 *
  57 * @filename: Name of file to read from
  58 * @addr: The address to read into
  59 * @offset: The offset in file to read from
  60 * @len: The number of bytes to read. Maybe 0 to read entire file
  61 * @actread: Returns the actual number of bytes read
  62 * @return 0 if ok with valid *actread, -1 on error conditions
  63 */
  64int fs_read(const char *filename, ulong addr, loff_t offset, loff_t len,
  65            loff_t *actread);
  66
  67/*
  68 * fs_write - Write file to the partition previously set by fs_set_blk_dev()
  69 * Note that not all filesystem types support offset!=0.
  70 *
  71 * @filename: Name of file to read from
  72 * @addr: The address to read into
  73 * @offset: The offset in file to read from. Maybe 0 to write to start of file
  74 * @len: The number of bytes to write
  75 * @actwrite: Returns the actual number of bytes written
  76 * @return 0 if ok with valid *actwrite, -1 on error conditions
  77 */
  78int fs_write(const char *filename, ulong addr, loff_t offset, loff_t len,
  79             loff_t *actwrite);
  80
  81/*
  82 * Common implementation for various filesystem commands, optionally limited
  83 * to a specific filesystem type via the fstype parameter.
  84 */
  85int do_size(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
  86                int fstype);
  87int do_load(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
  88                int fstype);
  89int do_ls(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
  90                int fstype);
  91int file_exists(const char *dev_type, const char *dev_part, const char *file,
  92                int fstype);
  93int do_save(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
  94                int fstype);
  95
  96/*
  97 * Determine the UUID of the specified filesystem and print it. Optionally it is
  98 * possible to store the UUID directly in env.
  99 */
 100int do_fs_uuid(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
 101                int fstype);
 102
 103/*
 104 * Determine the type of the specified filesystem and print it. Optionally it is
 105 * possible to store the type directly in env.
 106 */
 107int do_fs_type(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
 108
 109#endif /* _FS_H */
 110