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

            Line data    Source code
       1            0 : /*
       2              :  * Copyright (c) 2016 Intel Corporation.
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : #ifndef ZEPHYR_INCLUDE_FS_FS_INTERFACE_H_
       8              : #define ZEPHYR_INCLUDE_FS_FS_INTERFACE_H_
       9              : 
      10              : #include <stdint.h>
      11              : 
      12              : #ifdef __cplusplus
      13              : extern "C" {
      14              : #endif
      15              : 
      16              : #if defined(CONFIG_FILE_SYSTEM_MAX_FILE_NAME) && (CONFIG_FILE_SYSTEM_MAX_FILE_NAME - 0) > 0
      17              : 
      18              : /* No in-tree file system supports name longer than 255 characters */
      19              : #if (CONFIG_FILE_SYSTEM_LITTLEFS || CONFIG_FAT_FILESYSTEM_ELM ||        \
      20              :         CONFIG_FILE_SYSTEM_EXT2) && (CONFIG_FILE_SYSTEM_MAX_FILE_NAME > 255)
      21              : #error "Max allowed CONFIG_FILE_SYSTEM_MAX_FILE_NAME is 255 characters, when any in-tree FS enabled"
      22              : #endif
      23              : 
      24              : /* Enabled FAT driver, without LFN, restricts name length to 12 characters */
      25              : #if defined(CONFIG_FAT_FILESYSTEM_ELM) && !(CONFIG_FS_FATFS_LFN) && \
      26              :         (CONFIG_FILE_SYSTEM_MAX_FILE_NAME > 12)
      27              : #error "CONFIG_FILE_SYSTEM_MAX_FILE_NAME can not be > 12 if FAT is enabled without LFN"
      28              : #endif
      29              : 
      30              : #define MAX_FILE_NAME CONFIG_FILE_SYSTEM_MAX_FILE_NAME
      31              : 
      32              : #else
      33              : /* Select from enabled file systems */
      34              : 
      35              : #if defined(CONFIG_FAT_FILESYSTEM_ELM)
      36              : 
      37              : #if defined(CONFIG_FS_FATFS_LFN)
      38              : #define MAX_FILE_NAME CONFIG_FS_FATFS_MAX_LFN
      39              : #else /* CONFIG_FS_FATFS_LFN */
      40              : #define MAX_FILE_NAME 12 /* Uses 8.3 SFN */
      41              : #endif /* CONFIG_FS_FATFS_LFN */
      42              : 
      43              : #endif
      44              : 
      45              : #if !defined(MAX_FILE_NAME) && defined(CONFIG_FILE_SYSTEM_EXT2)
      46              : #define MAX_FILE_NAME 255
      47              : #endif
      48              : 
      49              : #if !defined(MAX_FILE_NAME) && defined(CONFIG_FILE_SYSTEM_LITTLEFS)
      50              : #define MAX_FILE_NAME 255
      51              : #endif
      52              : 
      53              : #if !defined(MAX_FILE_NAME) && defined(CONFIG_FILE_SYSTEM_VIRTIOFS)
      54              : #define MAX_FILE_NAME 255
      55              : #endif
      56              : 
      57              : #if !defined(MAX_FILE_NAME) /* filesystem selection */
      58              : /* Use standard 8.3 when no filesystem is explicitly selected */
      59            0 : #define MAX_FILE_NAME 12
      60              : #endif /* filesystem selection */
      61              : 
      62              : #endif /* CONFIG_FILE_SYSTEM_MAX_FILE_NAME */
      63              : 
      64              : 
      65              : /* Type for fs_open flags */
      66            0 : typedef uint8_t fs_mode_t;
      67              : 
      68              : struct fs_mount_t;
      69              : 
      70              : /**
      71              :  * @addtogroup file_system_api
      72              :  * @{
      73              :  */
      74              : 
      75              : /**
      76              :  * @brief File object representing an open file
      77              :  *
      78              :  * The object needs to be initialized with fs_file_t_init().
      79              :  */
      80            1 : struct fs_file_t {
      81              :         /** Pointer to file object structure */
      82            1 :         void *filep;
      83              :         /** Pointer to mount point structure */
      84            1 :         const struct fs_mount_t *mp;
      85              :         /** Open/create flags */
      86            1 :         fs_mode_t flags;
      87              : };
      88              : 
      89              : /**
      90              :  * @brief Directory object representing an open directory
      91              :  *
      92              :  * The object needs to be initialized with fs_dir_t_init().
      93              :  */
      94            1 : struct fs_dir_t {
      95              :         /** Pointer to directory object structure */
      96            1 :         void *dirp;
      97              :         /** Pointer to mount point structure */
      98            1 :         const struct fs_mount_t *mp;
      99              : };
     100              : 
     101              : /**
     102              :  * @}
     103              :  */
     104              : 
     105              : #ifdef __cplusplus
     106              : }
     107              : #endif
     108              : 
     109              : #endif /* ZEPHYR_INCLUDE_FS_FS_INTERFACE_H_ */
        

Generated by: LCOV version 2.0-1