LCOV - code coverage report
Current view: top level - zephyr/llext - fs_loader.h Coverage Total Hit
Test: new.info Lines: 100.0 % 4 4
Test Date: 2025-09-05 20:47:19

            Line data    Source code
       1            1 : /*
       2              :  * Copyright (c) 2024 BayLibre SAS
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : #ifndef ZEPHYR_LLEXT_FS_LOADER_H
       8              : #define ZEPHYR_LLEXT_FS_LOADER_H
       9              : 
      10              : #include <zephyr/llext/loader.h>
      11              : #include <zephyr/fs/fs.h>
      12              : 
      13              : #ifdef __cplusplus
      14              : extern "C" {
      15              : #endif
      16              : 
      17              : /**
      18              :  * @file
      19              :  * @brief LLEXT filesystem loader implementation.
      20              :  *
      21              :  * @addtogroup llext_loader_apis
      22              :  * @{
      23              :  */
      24              : 
      25              : /**
      26              :  * @brief Implementation of @ref llext_loader that reads from a filesystem.
      27              :  */
      28            1 : struct llext_fs_loader {
      29              :         /** Extension loader */
      30            1 :         struct llext_loader loader;
      31              : 
      32              :         /** @cond ignore */
      33              :         bool is_open;
      34              :         const char *name;
      35              :         struct fs_file_t file;
      36              :         /** @endcond */
      37              : };
      38              : 
      39              : /** @cond ignore */
      40              : int llext_fs_prepare(struct llext_loader *ldr);
      41              : int llext_fs_read(struct llext_loader *ldr, void *buf, size_t len);
      42              : int llext_fs_seek(struct llext_loader *ldr, size_t pos);
      43              : void llext_fs_finalize(struct llext_loader *ldr);
      44              : /** @endcond */
      45              : 
      46              : /**
      47              :  * @brief Initializer for an llext_fs_loader structure
      48              :  *
      49              :  * @param _filename Absolute path to the extension file.
      50              :  */
      51            1 : #define LLEXT_FS_LOADER(_filename)                                                                 \
      52              :         {                                                                                          \
      53              :                 .loader =                                                                          \
      54              :                         {                                                                          \
      55              :                                 .prepare = llext_fs_prepare,                                       \
      56              :                                 .read = llext_fs_read,                                             \
      57              :                                 .seek = llext_fs_seek,                                             \
      58              :                                 .peek = NULL,                                                      \
      59              :                                 .finalize = llext_fs_finalize,                                     \
      60              :                                 .storage = LLEXT_STORAGE_TEMPORARY,                                \
      61              :                         },                                                                         \
      62              :                 .is_open = false,                                                                  \
      63              :                 .name = (_filename),                                                               \
      64              :         }
      65              : 
      66              : /**
      67              :  * @}
      68              :  */
      69              : 
      70              : #ifdef __cplusplus
      71              : }
      72              : #endif
      73              : 
      74              : #endif /* ZEPHYR_LLEXT_FS_LOADER_H */
        

Generated by: LCOV version 2.0-1