Transactional power-failsafe filesystem for microcontrollers
REDCONF_BUFFER_ALIGNMENT
.REDCONF_BUFFER_WRITE_GATHER_SIZE_KB
. For the open source release, this new macro must have a value of 0U
.REDCONF_BLOCK_SIZE % (REDCONF_NAME_MAX + 4) != 0
Fixed several bugs which affected the client-server configuration (libredfs.a). The unified configuration (libredfs_unified.a) was unaffected by these issues. The bugs were:
MNT_FORCE
flag, it would fail to close its open handles if another client had the volume mounted, which could lead to spurious EMFILE
or EBUSY
errors later on. Note that this bug could not manifest, due to the prior bug preventing multiple client mounts.Added support for SafeRTOS in the commercial kit. SafeRTOS is a safety-critical real-time operating system from WITTENSTEIN high integrity systems. See the "SafeRTOS Integration" chapter of the Developer's Guide for further details on SafeRTOS support.
-RED_ENOTSUPP
.MNT_RDONLY
and MNT_NOTRIM
flags, used with the mount()
system call.MNT_FORCE
flag in the unmount()
system call, which has the effect of forcing an unmount even if there are open handles.mount()
when Reliance Edge is already mounted now fails and sets errno to EBUSY
; whereas previously it did nothing and returned success. The new behavior is consistent with the behavior of the native file systems.mount()
or unmount()
is passed a mount point with extraneous trailing path separators, they now fail and set errno to EINVAL
. This fixes a bug where using trailing path separators would seem to succeed, but the VFS would fail to update the mount point array correctly, which could cause problems for subsequent operations.REDCONF_API_POSIX_FSTRIM
macro has been added to redconf.h to specify whether red_fstrim() should be included. Existing redconf.h files must be updated by opening and saving them with the updated Configuration Utility.REDSTATUS
value, instead of returning void
.RED_TRANSACT_SYNC
automatic transaction flag and requisite configuration option in the Reliance Edge Configuration Utility.RED_TRANSACT_SYNC
automatic transaction flag.EINVAL
error is now returned by mount()
if the Reliance Edge mount point does not start with "//". Because of how INTEGRITY parses paths, the "//" has always been required; and while this was documented, it was not enforced in the code, which could lead to subtle errors.red_errno
to RED_EINVAL
rather than the appropriate errno value.host/Makefile
for the bbb-app-unified and bbb-app-clientserv example projects.release
function pointer in the F_DRIVER
structure is allowed to be NULL
, but the old code was calling that function unconditionally, without first ensuring it was non-NULL
. The updated code will only call release
when it is non-NULL
.{ 512U, 65536U, false, 1024U, 0U, "VOL0:" }
{ 512U, 65536U, 0U, false, 1024U, 0U, "VOL0:" }
make
command. The formatter and image builder are built, and the checker
and image copier are also built in the commercial kit.redfuse
. It is a
File System in User Space (FUSE) implementation, allowing a Reliance Edge
volume to be mounted directly on Linux for easy access. It is built from
the host project folder using the command make redfuse
.