agileRTOS (zrtos)  Version 0.8.0 (ghostbuster)
random.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_RANDOM_H
8 #define ZRTOS_VFS_MODULE_RANDOM_H
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 
14 #include <zrtos/cast.h>
15 #include <zrtos/vfs_plugin.h>
16 #include <zrtos/vfs_file.h>
17 
18 
20  zrtos_vfs_file_t *thiz
21 ){
23  thiz
24  ,(zrtos_vfs_offset_t)0xACE1
25  );
26 
27  return ZRTOS_ERROR__SUCCESS;
28 }
29 
31  zrtos_vfs_file_t *thiz
32  ,char *path
33  ,void *buf
34  ,size_t len
35  ,zrtos_vfs_offset_t offset
36  ,size_t *ret
37 ){
38  uint16_t lfsr = (uint16_t)zrtos_vfs_file__get_offset(thiz);
39  uint8_t *buffer = ZRTOS_CAST(uint8_t*,buf);
40 
41  *ret = len;
42 
43  while(len--){
44  lfsr ^= lfsr >> 7;
45  lfsr ^= lfsr << 9;
46  lfsr ^= lfsr >> 13;
47 
48  *buffer++ = (lfsr >> 4);
49  }
50 
52  thiz
53  ,(zrtos_vfs_offset_t)lfsr
54  );
55 
56  return ZRTOS_ERROR__SUCCESS;
57 }
58 
70 );
71 
72 
73 #ifdef __cplusplus
74 }
75 #endif
76 #endif
#define ZRTOS_CAST(type, value)
Definition: cast.h:18
zrtos_error_t zrtos_vfs_module_random__on_read(zrtos_vfs_file_t *thiz, char *path, void *buf, size_t len, zrtos_vfs_offset_t offset, size_t *ret)
Definition: random.h:30
#define ZRTOS_VFS_PLUGIN__3_ON_UMOUNT_DEFAULT()
Definition: vfs_plugin.h:199
size_t zrtos_vfs_offset_t
Definition: vfs_plugin.h:49
zrtos_vfs_offset_t zrtos_vfs_file__get_offset(zrtos_vfs_file_t *thiz)
Definition: vfs_file.h:207
#define ZRTOS_VFS_PLUGIN__9_ON_IOCTL_DEFAULT()
Definition: vfs_plugin.h:319
zrtos_error_t zrtos_vfs_module_random__on_open(zrtos_vfs_file_t *thiz)
Definition: random.h:19
#define ZRTOS_VFS_PLUGIN__5_ON_WRITE_DEFAULT()
Definition: vfs_plugin.h:238
#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_VFS_PLUGIN__4_ON_READ(callback)
Definition: vfs_plugin.h:215
Successful program execution status.
Definition: error.h:22
ZRTOS_VFS_PLUGIN__INIT(random, ZRTOS_VFS_PLUGIN__0_ON_OPEN(zrtos_vfs_module_random__on_open) 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_random__on_read) ZRTOS_VFS_PLUGIN__5_ON_WRITE_DEFAULT() 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())
void zrtos_vfs_file__set_offset(zrtos_vfs_file_t *thiz, zrtos_vfs_offset_t offset)
Definition: vfs_file.h:203
static uint8_t
Definition: mcp2515.h:159
zrtos_error_t
Definition: error.h:20
#define ZRTOS_VFS_PLUGIN__0_ON_OPEN(callback)
Definition: vfs_plugin.h:147
#define ZRTOS_VFS_PLUGIN__2_ON_MOUNT_DEFAULT()
Definition: vfs_plugin.h:182