Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
fs_interface.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2016 Intel Corporation.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12
13#ifndef ZEPHYR_INCLUDE_FS_FS_INTERFACE_H_
14#define ZEPHYR_INCLUDE_FS_FS_INTERFACE_H_
15
16#include <stdint.h>
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22#if defined(CONFIG_FILE_SYSTEM_MAX_FILE_NAME) && (CONFIG_FILE_SYSTEM_MAX_FILE_NAME - 0) > 0
23
24/* No in-tree file system supports name longer than 255 characters */
25#if (CONFIG_FILE_SYSTEM_LITTLEFS || CONFIG_FAT_FILESYSTEM_ELM || \
26 CONFIG_FILE_SYSTEM_EXT2) && (CONFIG_FILE_SYSTEM_MAX_FILE_NAME > 255)
27#error "Max allowed CONFIG_FILE_SYSTEM_MAX_FILE_NAME is 255 characters, when any in-tree FS enabled"
28#endif
29
30/* Enabled FAT driver, without LFN, restricts name length to 12 characters */
31#if defined(CONFIG_FAT_FILESYSTEM_ELM) && !(CONFIG_FS_FATFS_LFN) && \
32 (CONFIG_FILE_SYSTEM_MAX_FILE_NAME > 12)
33#error "CONFIG_FILE_SYSTEM_MAX_FILE_NAME can not be > 12 if FAT is enabled without LFN"
34#endif
35
36#define MAX_FILE_NAME CONFIG_FILE_SYSTEM_MAX_FILE_NAME
37
38#else
39/* Select from enabled file systems */
40
41#if defined(CONFIG_FAT_FILESYSTEM_ELM)
42
43#if defined(CONFIG_FS_FATFS_LFN)
44#define MAX_FILE_NAME CONFIG_FS_FATFS_MAX_LFN
45#else /* CONFIG_FS_FATFS_LFN */
46#define MAX_FILE_NAME 12 /* Uses 8.3 SFN */
47#endif /* CONFIG_FS_FATFS_LFN */
48
49#endif
50
51#if !defined(MAX_FILE_NAME) && defined(CONFIG_FILE_SYSTEM_EXT2)
52#define MAX_FILE_NAME 255
53#endif
54
55#if !defined(MAX_FILE_NAME) && defined(CONFIG_FILE_SYSTEM_LITTLEFS)
56#define MAX_FILE_NAME 255
57#endif
58
59#if !defined(MAX_FILE_NAME) && defined(CONFIG_FILE_SYSTEM_VIRTIOFS)
60#define MAX_FILE_NAME 255
61#endif
62
63#if !defined(MAX_FILE_NAME) && defined(CONFIG_FILE_SYSTEM_RPMSGFS)
64#define MAX_FILE_NAME 255
65#endif
66
67#if !defined(MAX_FILE_NAME) /* filesystem selection */
74#define MAX_FILE_NAME 12
75#endif /* filesystem selection */
76
77#endif /* CONFIG_FILE_SYSTEM_MAX_FILE_NAME */
78
79
82
83struct fs_mount_t;
84
89
95struct fs_file_t {
97 void *filep;
99 const struct fs_mount_t *mp;
102};
103
109struct fs_dir_t {
111 void *dirp;
113 const struct fs_mount_t *mp;
114};
115
119
120#ifdef __cplusplus
121}
122#endif
123
124#endif /* ZEPHYR_INCLUDE_FS_FS_INTERFACE_H_ */
uint8_t fs_mode_t
Type for fs_open() flags.
Definition fs_interface.h:81
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Directory object representing an open directory.
Definition fs_interface.h:109
const struct fs_mount_t * mp
Pointer to mount point structure.
Definition fs_interface.h:113
void * dirp
Pointer to directory object structure.
Definition fs_interface.h:111
File object representing an open file.
Definition fs_interface.h:95
fs_mode_t flags
Open/create flags.
Definition fs_interface.h:101
void * filep
Pointer to file object structure.
Definition fs_interface.h:97
const struct fs_mount_t * mp
Pointer to mount point structure.
Definition fs_interface.h:99
File system mount info structure.
Definition fs.h:106