| /* |
| * Copyright (c) 2016 Intel Corporation. |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #ifndef ZEPHYR_INCLUDE_FS_FS_INTERFACE_H_ |
| #define ZEPHYR_INCLUDE_FS_FS_INTERFACE_H_ |
| |
| #include <stdint.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #if defined(CONFIG_FILE_SYSTEM_MAX_FILE_NAME) && (CONFIG_FILE_SYSTEM_MAX_FILE_NAME - 0) > 0 |
| #define MAX_FILE_NAME CONFIG_FILE_SYSTEM_MAX_FILE_NAME |
| |
| #else /* CONFIG_FILE_SYSTEM_MAX_FILE_NAME */ |
| /* Select from enabled file systems */ |
| |
| #if defined(CONFIG_FAT_FILESYSTEM_ELM) |
| |
| #if defined(CONFIG_FS_FATFS_LFN) |
| #define MAX_FILE_NAME CONFIG_FS_FATFS_MAX_LFN |
| #else /* CONFIG_FS_FATFS_LFN */ |
| #define MAX_FILE_NAME 12 /* Uses 8.3 SFN */ |
| #endif /* CONFIG_FS_FATFS_LFN */ |
| |
| #endif |
| |
| #if !defined(MAX_FILE_NAME) && defined(CONFIG_FILE_SYSTEM_EXT2) |
| #define MAX_FILE_NAME 255 |
| #endif |
| |
| #if !defined(MAX_FILE_NAME) && defined(CONFIG_FILE_SYSTEM_LITTLEFS) |
| #define MAX_FILE_NAME 256 |
| #endif |
| |
| #if !defined(MAX_FILE_NAME) /* filesystem selection */ |
| /* Use standard 8.3 when no filesystem is explicitly selected */ |
| #define MAX_FILE_NAME 12 |
| #endif /* filesystem selection */ |
| |
| #endif /* CONFIG_FILE_SYSTEM_MAX_FILE_NAME */ |
| |
| |
| /* Type for fs_open flags */ |
| typedef uint8_t fs_mode_t; |
| |
| struct fs_mount_t; |
| |
| /** |
| * @addtogroup file_system_api |
| * @{ |
| */ |
| |
| /** |
| * @brief File object representing an open file |
| * |
| * The object needs to be initialized with fs_file_t_init(). |
| */ |
| struct fs_file_t { |
| /** Pointer to file object structure */ |
| void *filep; |
| /** Pointer to mount point structure */ |
| const struct fs_mount_t *mp; |
| /** Open/create flags */ |
| fs_mode_t flags; |
| }; |
| |
| /** |
| * @brief Directory object representing an open directory |
| * |
| * The object needs to be initialized with fs_dir_t_init(). |
| */ |
| struct fs_dir_t { |
| /** Pointer to directory object structure */ |
| void *dirp; |
| /** Pointer to mount point structure */ |
| const struct fs_mount_t *mp; |
| }; |
| |
| /** |
| * @} |
| */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* ZEPHYR_INCLUDE_FS_FS_INTERFACE_H_ */ |