agileRTOS (zrtos)  Version 0.8.0 (ghostbuster)
sram.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2024 ykat UG (haftungsbeschraenkt) - All Rights Reserved
3  *
4  * Permission for non-commercial use is hereby granted,
5  * free of charge, without warranty of any kind.
6  */
7 #ifndef ZRTOS_VFS_MODULE_SRAM_H
8 #define ZRTOS_VFS_MODULE_SRAM_H
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 
14 #include <zrtos/vfs_module.h>
15 
16 
18  void *start_addr;
19  void *end_addr;
21 
23  zrtos_vfs_file_t *thiz
24  ,char *path
25  ,void *buf
26  ,size_t len
27  ,zrtos_vfs_offset_t offset
28  ,size_t *out
29  ,bool is_write_op
30 ){
35  thiz
36  )
37  );
38  size_t start_offset = (size_t)offset;
39  uint8_t *data_ptr = ZRTOS_CAST(uint8_t *,buf);
40 
41  if(offset > ZRTOS_TYPES__SIZE_MAX){
42  ret = ZRTOS_ERROR__INVAL;
43  goto L_OUT;
44  }
45 
47  mod->start_addr
48  ,mod->end_addr
49  ,start_offset
50  ,&len
51  )){
52  uint8_t *start_ptr = ZRTOS_CAST(
53  uint8_t*
55  mod->start_addr
56  ,start_offset
57  )
58  );
59 
60  *out = len;
61 
62  if(is_write_op){
63  ZRTOS_TYPES__SWAP(data_ptr,start_ptr);
64  }
65 
66  zrtos_mem__cpy(data_ptr,start_ptr,len);
67 
69  }
70 
71 L_OUT:
72  return ret;
73 }
74 
75 
77  zrtos_vfs_file_t *thiz
78  ,char *path
79  ,void *buf
80  ,size_t len
81  ,zrtos_vfs_offset_t offset
82  ,size_t *out
83 ){
85  thiz
86  ,path
87  ,buf
88  ,len
89  ,offset
90  ,out
91  ,false
92  );
93 }
94 
96  zrtos_vfs_file_t *thiz
97  ,char *path
98  ,void *buf
99  ,size_t len
100  ,zrtos_vfs_offset_t offset
101  ,size_t *out
102 ){
104  thiz
105  ,path
106  ,buf
107  ,len
108  ,offset
109  ,out
110  ,true
111  );
112 }
113 
125 );
126 
127 
128 #ifdef __cplusplus
129 }
130 #endif
131 #endif
#define ZRTOS_CAST(type, value)
Definition: cast.h:18
#define ZRTOS_VFS_PLUGIN__3_ON_UMOUNT_DEFAULT()
Definition: vfs_plugin.h:199
zrtos_error_t zrtos_vfs_module_sram__on_read(zrtos_vfs_file_t *thiz, char *path, void *buf, size_t len, zrtos_vfs_offset_t offset, size_t *out)
Definition: sram.h:76
size_t zrtos_vfs_offset_t
Definition: vfs_plugin.h:49
#define ZRTOS_VFS_PLUGIN__0_ON_OPEN_DEFAULT()
Definition: vfs_plugin.h:148
#define ZRTOS_TYPES__SWAP(a, b)
Definition: types.h:149
#define ZRTOS_VFS_PLUGIN__9_ON_IOCTL_DEFAULT()
Definition: vfs_plugin.h:319
struct _zrtos_vfs_module_sram_inode_t zrtos_vfs_module_sram_inode_t
#define ZRTOS_VFS_PLUGIN__7_ON_CAN_WRITE_DEFAULT()
Definition: vfs_plugin.h:277
#define ZRTOS_VFS_PLUGIN__8_ON_SEEK_DEFAULT()
Definition: vfs_plugin.h:294
#define ZRTOS_VFS_PLUGIN__1_ON_CLOSE_DEFAULT()
Definition: vfs_plugin.h:165
#define ZRTOS_VFS_PLUGIN__6_ON_CAN_READ_DEFAULT()
Definition: vfs_plugin.h:260
#define ZRTOS_TYPES__SIZE_MAX
Definition: types.h:170
#define ZRTOS_VFS_PLUGIN__4_ON_READ(callback)
Definition: vfs_plugin.h:215
#define ZRTOS_VFS_PLUGIN__5_ON_WRITE(callback)
Definition: vfs_plugin.h:237
uint16_t size_t
Definition: types.h:22
void * zrtos_vfs_file__get_inode_data(zrtos_vfs_file_t *thiz)
Definition: vfs_file.h:191
void zrtos_mem__cpy(void *dest, void *src, size_t length)
Definition: mem.h:105
void * zrtos_types__ptr_add(void *ptr, size_t byte_len)
Definition: types.h:35
Successful program execution status.
Definition: error.h:22
Bad address.
Definition: error.h:38
Invalid argument.
Definition: error.h:46
zrtos_error_t zrtos_vfs_module_sram__on_write(zrtos_vfs_file_t *thiz, char *path, void *buf, size_t len, zrtos_vfs_offset_t offset, size_t *out)
Definition: sram.h:95
bool zrtos_types__ptr_is_valid_address_range(void *first_address, void *last_address, size_t offset, size_t *length)
Definition: types.h:100
zrtos_error_t zrtos_vfs_module_sram__rw(zrtos_vfs_file_t *thiz, char *path, void *buf, size_t len, zrtos_vfs_offset_t offset, size_t *out, bool is_write_op)
Definition: sram.h:22
ZRTOS_VFS_PLUGIN__INIT(sram, ZRTOS_VFS_PLUGIN__0_ON_OPEN_DEFAULT() ZRTOS_VFS_PLUGIN__1_ON_CLOSE_DEFAULT() ZRTOS_VFS_PLUGIN__2_ON_MOUNT_DEFAULT() ZRTOS_VFS_PLUGIN__3_ON_UMOUNT_DEFAULT() ZRTOS_VFS_PLUGIN__4_ON_READ(zrtos_vfs_module_sram__on_read) ZRTOS_VFS_PLUGIN__5_ON_WRITE(zrtos_vfs_module_sram__on_write) ZRTOS_VFS_PLUGIN__6_ON_CAN_READ_DEFAULT() ZRTOS_VFS_PLUGIN__7_ON_CAN_WRITE_DEFAULT() ZRTOS_VFS_PLUGIN__8_ON_SEEK_DEFAULT() ZRTOS_VFS_PLUGIN__9_ON_IOCTL_DEFAULT())
static uint8_t
Definition: mcp2515.h:159
zrtos_error_t
Definition: error.h:20
#define ZRTOS_VFS_PLUGIN__2_ON_MOUNT_DEFAULT()
Definition: vfs_plugin.h:182