LCOV - code coverage report
Current view: top level - zephyr/fs - fs_sys.h Coverage Total Hit
Test: new.info Lines: 95.2 % 21 20
Test Date: 2025-09-05 22:20:39

            Line data    Source code
       1            0 : /*
       2              :  * Copyright (c) 2020 Nordic Semiconductor ASA
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : #ifndef ZEPHYR_INCLUDE_FS_FS_SYS_H_
       8              : #define ZEPHYR_INCLUDE_FS_FS_SYS_H_
       9              : 
      10              : #ifdef __cplusplus
      11              : extern "C" {
      12              : #endif
      13              : 
      14              : /**
      15              :  * @ingroup file_system_api
      16              :  * @{
      17              :  */
      18              : 
      19              : /**
      20              :  * @brief File System interface structure
      21              :  */
      22            1 : struct fs_file_system_t {
      23              :         /**
      24              :          * @name File operations
      25              :          * @{
      26              :          */
      27              :         /**
      28              :          * Opens or creates a file, depending on flags given.
      29              :          *
      30              :          * @param filp File to open/create.
      31              :          * @param fs_path Path to the file.
      32              :          * @param flags Flags for opening/creating the file.
      33              :          * @return 0 on success, negative errno code on fail.
      34              :          */
      35            1 :         int (*open)(struct fs_file_t *filp, const char *fs_path,
      36              :                     fs_mode_t flags);
      37              :         /**
      38              :          * Reads nbytes number of bytes.
      39              :          *
      40              :          * @param filp File to read from.
      41              :          * @param dest Destination buffer.
      42              :          * @param nbytes Number of bytes to read.
      43              :          * @return Number of bytes read on success, negative errno code on fail.
      44              :          */
      45            1 :         ssize_t (*read)(struct fs_file_t *filp, void *dest, size_t nbytes);
      46              :         /**
      47              :          * Writes nbytes number of bytes.
      48              :          *
      49              :          * @param filp File to write to.
      50              :          * @param src Source buffer.
      51              :          * @param nbytes Number of bytes to write.
      52              :          * @return Number of bytes written on success, negative errno code on fail.
      53              :          */
      54            1 :         ssize_t (*write)(struct fs_file_t *filp,
      55              :                                         const void *src, size_t nbytes);
      56              :         /**
      57              :          * Moves the file position to a new location in the file.
      58              :          *
      59              :          * @param filp File to move.
      60              :          * @param off Relative offset from the position specified by whence.
      61              :          * @param whence Position in the file. Possible values: SEEK_CUR, SEEK_SET, SEEK_END.
      62              :          * @return New position in the file or negative errno code on fail.
      63              :          */
      64            1 :         int (*lseek)(struct fs_file_t *filp, off_t off, int whence);
      65              :         /**
      66              :          * Retrieves the current position in the file.
      67              :          *
      68              :          * @param filp File to get the current position from.
      69              :          * @return Current position in the file or negative errno code on fail.
      70              :          */
      71            1 :         off_t (*tell)(struct fs_file_t *filp);
      72              :         /**
      73              :          * Truncates/expands the file to the new length.
      74              :          *
      75              :          * @param filp File to truncate/expand.
      76              :          * @param length New length of the file.
      77              :          * @return 0 on success, negative errno code on fail.
      78              :          */
      79            1 :         int (*truncate)(struct fs_file_t *filp, off_t length);
      80              :         /**
      81              :          * Flushes the cache of an open file.
      82              :          *
      83              :          * @param filp File to flush.
      84              :          * @return 0 on success, negative errno code on fail.
      85              :          */
      86            1 :         int (*sync)(struct fs_file_t *filp);
      87              :         /**
      88              :          * Flushes the associated stream and closes the file.
      89              :          *
      90              :          * @param filp File to close.
      91              :          * @return 0 on success, negative errno code on fail.
      92              :          */
      93            1 :         int (*close)(struct fs_file_t *filp);
      94              :         /** @} */
      95              : 
      96              :         /**
      97              :          * @name Directory operations
      98              :          * @{
      99              :          */
     100              :         /**
     101              :          * Opens an existing directory specified by the path.
     102              :          *
     103              :          * @param dirp Directory to open.
     104              :          * @param fs_path Path to the directory.
     105              :          * @return 0 on success, negative errno code on fail.
     106              :          */
     107            1 :         int (*opendir)(struct fs_dir_t *dirp, const char *fs_path);
     108              :         /**
     109              :          * Reads directory entries of an open directory.
     110              :          *
     111              :          * @param dirp Directory to read from.
     112              :          * @param entry Next directory entry in the dirp directory.
     113              :          * @return 0 on success, negative errno code on fail.
     114              :          */
     115            1 :         int (*readdir)(struct fs_dir_t *dirp, struct fs_dirent *entry);
     116              :         /**
     117              :          * Closes an open directory.
     118              :          *
     119              :          * @param dirp Directory to close.
     120              :          * @return 0 on success, negative errno code on fail.
     121              :          */
     122            1 :         int (*closedir)(struct fs_dir_t *dirp);
     123              :         /** @} */
     124              : 
     125              :         /**
     126              :          * @name File system level operations
     127              :          * @{
     128              :          */
     129              :         /**
     130              :          * Mounts a file system.
     131              :          *
     132              :          * @param mountp Mount point.
     133              :          * @return 0 on success, negative errno code on fail.
     134              :          */
     135            1 :         int (*mount)(struct fs_mount_t *mountp);
     136              :         /**
     137              :          * Unmounts a file system.
     138              :          *
     139              :          * @param mountp Mount point.
     140              :          * @return 0 on success, negative errno code on fail.
     141              :          */
     142            1 :         int (*unmount)(struct fs_mount_t *mountp);
     143              :         /**
     144              :          * Deletes the specified file or directory.
     145              :          *
     146              :          * @param mountp Mount point.
     147              :          * @param name Path to the file or directory to delete.
     148              :          * @return 0 on success, negative errno code on fail.
     149              :          */
     150            1 :         int (*unlink)(struct fs_mount_t *mountp, const char *name);
     151              :         /**
     152              :          * Renames a file or directory.
     153              :          *
     154              :          * @param mountp Mount point.
     155              :          * @param from Path to the file or directory to rename.
     156              :          * @param to New name of the file or directory.
     157              :          * @return 0 on success, negative errno code on fail.
     158              :          */
     159            1 :         int (*rename)(struct fs_mount_t *mountp, const char *from,
     160              :                                         const char *to);
     161              :         /**
     162              :          * Creates a new directory using specified path.
     163              :          *
     164              :          * @param mountp Mount point.
     165              :          * @param name Path to the directory to create.
     166              :          * @return 0 on success, negative errno code on fail.
     167              :          */
     168            1 :         int (*mkdir)(struct fs_mount_t *mountp, const char *name);
     169              :         /**
     170              :          * Checks the status of a file or directory specified by the path.
     171              :          *
     172              :          * @param mountp Mount point.
     173              :          * @param path Path to the file or directory.
     174              :          * @param entry Directory entry.
     175              :          * @return 0 on success, negative errno code on fail.
     176              :          */
     177            1 :         int (*stat)(struct fs_mount_t *mountp, const char *path,
     178              :                                         struct fs_dirent *entry);
     179              :         /**
     180              :          * Returns the total and available space on the file system volume.
     181              :          *
     182              :          * @param mountp Mount point.
     183              :          * @param path Path to the file or directory.
     184              :          * @param stat File system statistics.
     185              :          * @return 0 on success, negative errno code on fail.
     186              :          */
     187            1 :         int (*statvfs)(struct fs_mount_t *mountp, const char *path,
     188              :                                         struct fs_statvfs *stat);
     189              : #if defined(CONFIG_FILE_SYSTEM_MKFS) || defined(__DOXYGEN__)
     190              :         /**
     191              :          * Formats a device to specified file system type.
     192              :          * Available only if @kconfig{CONFIG_FILE_SYSTEM_MKFS} is enabled.
     193              :          *
     194              :          * @param dev_id Device identifier.
     195              :          * @param cfg File system configuration.
     196              :          * @param flags Formatting flags.
     197              :          * @return 0 on success, negative errno code on fail.
     198              :          *
     199              :          * @note This operation destroys existing data on the target device.
     200              :          */
     201            1 :         int (*mkfs)(uintptr_t dev_id, void *cfg, int flags);
     202              : #endif
     203              :         /** @} */
     204              : };
     205              : 
     206              : /**
     207              :  * @}
     208              :  */
     209              : 
     210              : #ifdef __cplusplus
     211              : }
     212              : #endif
     213              : 
     214              : #endif /* ZEPHYR_INCLUDE_FS_FS_SYS_H_ */
        

Generated by: LCOV version 2.0-1