Commit Graph

49 Commits

Author SHA1 Message Date
Adam Wulkiewicz
fe708cdf31 [MOS-670] Change clang-format AlwaysBreakTemplateDeclarations to Yes
Add --all and --fix-all options to style-check-hook
2022-08-26 15:22:39 +02:00
Lucjan Bryndza
b83605d227 [EGD-7573] Add support for reliance edge fs
Added support for reliance edge file system.
The initial port is done.
The whole effort is still WIP.
Left a note in readme file what should be done next.
2021-12-14 09:44:34 +01:00
Lucjan Bryndza
607b4299d4 [EGD-7883] Close all opened files when umount
Force closing all opened files when unmount
filesystem is called.

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2021-11-12 11:21:18 +01:00
Piotr Tański
1d2f5cf7a4 [EGD-7754] Dates bumped in disclaimers
Dates bumped from 2020 to 2021.
2021-10-11 19:08:26 +02:00
Lucjan Bryndza
ca75ebe449 [EGD-7587] Change user partition to ext4 fs
Add support for the EXT4 filesystem using LWEXT4
Add minor VFS fixes
Add unittest for the EXT4 partitions
Reformat partition for use EXT4 filesystem

[EGD-7587] Initial cmake of the ext4

[EGD-7587] Block driver for the ext4

Initial version of the block driver for the ext4 device

[EGD-7587] Initial version of the EXT4 fs support

Initial version of the ext4 filesystem support

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>

[EGD-7587] Mount unmount initial unit tests

Mount and unmount initial unit tests

[EGD-7587] Unit tests and fixes for ext4

Unit tests and fixes for the ext4 partition

[EGD-7587[ adjust flags

Adjust ext configuration flags

[EGD-7587] Change to generate ext4 image

Change image generation script to generate ext4 image

[EGD-7584] Change cache memory settings

Change cache memory settings

[EGD-7587] Change create image flags

Change create image flags

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>

[EGD-7587] Git change lwext4 to the mudita version

Change LWEXT4 to mudita version

[EGD-7587] Modify ext4 implementation

Modify ext4 implementation according to the new lwext4
mudita branch. Some issues were fixed in this branch

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>

[EGD-7587] Add to VFS rmdir syscall

Add to VFS missing rmdir for compliance POSIX std

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2021-10-07 14:39:28 +02:00
Marcin Smoczyński
f16a18d935 [BH-860] Decouple charger driver from system
Remove system dependency from charger driver implementation. Remove
circular, lambda driven dependency between charger and brownout
detector. Remove event manager dependency in driver as well.
Encapsulate some of charger logic in introduced battery controller.

Extract path configuration to the separate target to decouple charger
from vfs middleware.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-09-20 12:19:48 +02:00
Wojtek Rzepecki
4562a0379b [BH-769] Add vfs configuration for pltaforms
Add platform dependent configuration of vfs
partitions

revert of layout config
2021-08-24 18:11:21 +02:00
Marcin Smoczyński
9267e2d871 [EGD-7161] Remove image name reference in vfs
Add ability to change an image name in the vfs code by decoupling vfs
from a so-called board code.

Introduce platforms as a hardware and os abstraction layer for product
code.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-07-21 12:53:47 +02:00
DariuszSabala
6eeb1d7570 [BH-628] Cleaned up module-vfs cmake
Cleaned up pattern of sharing source files among libraries
using cached lists, ultimately leading to silent linkage
failures. Symbols build repeatedly in different libraries
was linked depending on which library was passed in linker
command arguments first, so for example in same cases
cellular bsp files compiled in module-vfs was linked instead
of those from module-bsp leading to failure of cellular work
despite no explicite build failure.
2021-07-14 15:42:14 +02:00
Lucjan Bryndza
2f3e24c7d5 [EGD-6835] Add inotify mechanism in the VFS
Add file monitoring event mechanism to the
VFS subsystem. Now it will be possible to
monitoring file changes in the reistered
path

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2021-06-01 13:06:38 +02:00
Lucjan Bryndza
89c263c03b [EGD-6518] Change optional methods for the DM
Change numer of minimal optional methods required by the
block device in the disk manager

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2021-05-12 15:34:20 +02:00
Maciej Gibowicz
fa61bb38cd [EGD-5661] Add power management for filesystem
Add peripheral control (USDHC and PLL2 clocks)
for file system support.
This will save energy and extend battery life.
2021-04-22 14:05:57 +02:00
Lucjan Bryndza
0089b9097f [EGD-6597] Add PM control for all disc in DM
This patch add API for send power control message
for all disc registered in the disc manager. It is needed
for power management for suspend resume all discs.

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2021-04-22 09:05:55 +02:00
Lucjan Bryndza
124b6cb6c1 [EGD-6558] Add automount mechanism of the mfgconf
Add optional mounting nfgconf partition on the EEPROM with
the LFS filesystem for the manufacturing data.

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2021-04-19 12:15:20 +02:00
Lucjan Bryndza
b04b66e8e0 [EGD-6522] Add EEPROM emulation in the emulator
Add possibility to emulate eeprom in the linux emulator
2021-04-16 12:29:56 +02:00
Lucjan Bryndza
8818b30d1e [EGD-6075] Add support for emmc system partitions
Add support for EMMC hardware partitions to the
disk manager
Hardware system partitions are visible as <device_name>sys<num>
Disk user partitions are visible as <device_name>part<num>

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2021-04-15 09:19:56 +02:00
Lucjan Bryndza
2a17ec9254 [EGD-6075] Fix partition name typo
Fix partition name typo in the disk manager
2021-04-15 09:19:56 +02:00
Artur Śleszyński
33d652c1a1 [EGD-6156] Create crash dumps
Integrate the CrashCatcher library in order to store phone state after
a fault occurs. The dumps are stored in the CrashCatcher hex format and
can be debugged using the CrashDebug stub built for x86_64 via the
'debug_crash_dump.sh' script.
2021-04-02 14:58:42 +02:00
Lucjan Bryndza
7bcc1c9bd4 [EGD-6013] Fix no copy syscall
Due to lack of some filesystem syscalls std::filesystem::copy
functions family doesn't work. This path add missing syscalls
in the FS layer.
2021-03-10 19:05:07 +01:00
Roman Kubiak
2a29e27996 [EGD-5757] Fix backup API
Fix backup endpoint to work with new paths and FS api
The flow is based on the design in confluence.
2021-02-25 16:04:04 +01:00
Tomek Sobkowiak
40d68bb7b5 [EGD-4495] Check partitions during registering new disk image
Check partitions validity when registering disk.
Add unittest and test disk image generation.
2021-02-17 17:08:18 +01:00
Lucjan Bryndza
af960b6fac [EGD-5146] Add read LFS block size from part
Add littlefs block size from partition bootable offset
2021-02-17 17:07:00 +01:00
Lucjan Bryndza
adc3d34aed [EGD-5334] Fix phone crash when MTP access
Fix phone crash when accessing file when new filesystem is used
2021-02-17 17:06:59 +01:00
Hubert Chrzaniuk
5400c1861e [EGD-5014] Add eMMC block device API
Add PureOS wrapper for eMMC driver with support
for basic block device operations.
2021-02-17 17:05:32 +01:00
Lucjan Bryndza
79a6264b7c [EGD-5020] Add autodetect filesystem
Add support for autodetect filesystem in the fs core
2021-02-17 17:05:32 +01:00
Lucjan Bryndza
8545fa3bb3 [EGD-4498] Add unit test for remount RO
Add unit test for remount filesystem in ro mode
Some minor fixes
2021-02-17 17:05:32 +01:00
Lucjan Bryndza
537629013b [EGD-4498] Add support RO filesystem in the vfscore
Add support readonly filesystem mount flag
Add support for mount / remount
2021-02-17 17:05:31 +01:00
Lucjan Bryndza
1c0c20e69c [EGD-4498] Add user functions for mount
Add user functions and methods for mount and unmount
capable with linux filesystem.
2021-02-17 17:05:31 +01:00
Lucjan Bryndza
9dea864c4a [EGD-5153] Fix disk manager sector_count
Currently when partition handle is passed to the disk manager
it returns total disk sector count instead of partitions sector count
2021-02-17 17:02:15 +01:00
Lucjan Bryndza
dde4bef8a5 [EGD-5075] Add new vfs core to new lib syscalls
Add new vfs core support to the new lib filesystem syscalls,
so currently new platform is switched to the new fs
2021-02-17 17:02:15 +01:00
Lucjan Bryndza
32de9ec671 [EGD-5102] Fix compile on rt1051 platform
It is initial commmit which fix compilation after
vfs. global object removal. It still need implementation
newlib syscalls.
2021-02-17 17:02:15 +01:00
Lucjan Bryndza
6c4c4e8aef [EGD-5098] Fix and remove old vfs class
Fix and remove global vfs object remove all old data
included in the vfs.hpp class
2021-02-17 16:06:33 +01:00
Lucjan Bryndza
52ca291b30 [EGD-5097] Fix minor issues with littlefs fuse
Fix minor issues with littlefs implementation
2021-02-17 16:06:33 +01:00
Lucjan Bryndza
3780b4844c [EGD-5074] Add native fscore for emulator
This is a first commit when the emulator uses
the new filesystem core.

libiosyscall library read environment variable

IOSYSCALS_REDIRECT_TO_IMAGE

When  IOSYSCALS_REDIRECT_TO_IMAGE=1 all syscalls
are redirected to the image. If env is not defined
or set to 0 only paths are translated and redirected
to the native linux syscalls

[EGD-5074] Remove free rtox library

Remove unneeded fat library from the freertos

[EGD-5074] Fix freertos mutex as unique

Add freertos mutex in the unique_ptr for avoid inclusion of the
freertos.h

[EGD-5074] Remove frertos-fat submodule

Remove uneeded fat freertos submodule

[EGD-5074] Add handle types in the vfs_subsystem

Add handle types in the vfs subsystem

[EGD-5074] Add submodule for hashmap

Add submodule for hashmap

[EGD-5074] Add support for dirent

Add support for dirent for new filesystem

[EGD-5074] Fix mutex class

Remove mutex in header

[EGD-5074] Remove old vfs from file indexer

File indexer should be fixed for use new vfs

[EGD-5074] Fix unit test vfs

Remove unit tests vfs for clas

[EGD-5074] Add Posix implementation with new fs

Add posix implementation with new fs core

[EGD-5074] Fix stdio syscalls

Fix all stdio syscalls

[EGD-5074] Fix iosyscalls scan family

Fix iosyscalls scan family

[EGD-5074] Fix native API

Fix native api

Work in progress some minor fixes

[EGD-5074] Fix lib stdio

Fix lib stdio

[EGD-5074] fix lseek return value in fat driver

Fix lseek return value in the fat driver

[EGD-5074]  Unit test fix

Unittest fixes

[EGD-5074] Emulator syscalls

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2021-01-04 16:04:33 +01:00
Jakub Pyszczak
7a942e2b92 [EGD-5070] Change new filesystem in module bt
Due to vfs deprecation there is need to
remove all vfs calls from code.
This PR covers module bluetooth.

[EGD-5070] Review changes.

[EGD-5070] Change new filesystem in module bt

Due to vfs deprecation there is need to
remove all vfs calls from code.
This PR covers module bluetooth
2020-12-23 12:54:57 +01:00
Lucjan Bryndza
b5474f4b6a [EGD-5018] Add umount all filesystem
Add umount all mounted filesystem. This function
can be used in the cleanup vfs core stage
2020-12-23 09:38:31 +01:00
Lucjan Bryndza
a7484bf9c1 [EGD-4754] Add automount default filesystems
Default automount and parse partitions according to
their configurations using new vfs core. Currently
old (without lfs) and new (with lfs) part schemes are supported
2020-12-22 19:17:16 +01:00
Lucjan Bryndza
f56609aa3b [EGD-4502] Fix and remove old vfs boot
Remove old vfs bootconfig from the vfs which
will be removed in the later commit
2020-12-22 09:26:30 +01:00
Jakub Pyszczak
879213397d [EGD-4757] Add unit test for new filesystem
Due to vfs deprecation new filesystem needs
unit tests to verify it's behaviour.This PR
covers core filesystem operations.
2020-12-22 09:05:23 +01:00
Lucjan Bryndza
26b791702c [EGD-4758] Add unit tests for littlefs
Some tests passed but it needs some work...
2020-12-17 18:20:13 +01:00
Lucjan Bryndza
135594d330 [EGD-4758] Add Littlefs file operations
All littlefs file operations seams to be completed
2020-12-17 18:20:13 +01:00
Lucjan Bryndza
55ab66e55a [EGD-4499] Create drivers for the VFS (#1128)
* GId modules updated

* Remove module

* Gitmodules update

* [EGD-4499] Global module VFS

* [EGD-4499] vfat driver in progress + fsfat

* [EGD-4499] fffat glue to our implementation.

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>

* [EGD-4498] Glue logic between ff_fat and disk mgr.

* [EGD-4499] Mount and unmount fat_fs.

* [EGD-4499] Filesystem mount seams to be working

* [EGD-4499] Missing umount volume removal

* [EGD-4499] Code review vol 1

* [EGD-4499] Missing erase element from map

* [EGD-4499] Missing mount umount

* [EGD-4261] Mount and unmount tests

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>

* [EGD-4499] Initial filesystem implementation

Iterate over directories are not completed yet

* [EGD-4261] unit test fix

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>

* [EGD-4499] Stat vfs for RT1051

* [EGD-4499] Small fix in the seek

* [EGD-4499] Directory handle fix

* [EGD4499] Completed ffat implementation

It is already completed vfat driver for vfs core
but it is not tested yet.

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>

* [EGD4499] Code review part #1

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>

* [EGD4499] Remove double dynamic allocation of mount point

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>

* [EGD4499] Partition out of range fix

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>

* [EGD-4499] Handle leak fix

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>

* [EGD-4499] VFS vfat completed.

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>

* [EGD-4499] File descriptors from 3 according to POSIX std

0,1,2 fds are reserved for stdin,stdout,stderr

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2020-12-07 14:18:03 +01:00
Roman Kubiak
0900f22c2c [EGD-4382] vfs fixups (#1126)
* initial value for boot config
* run boot config methods after vfs has been marked as initialized
* type-os
* in case .boot.json is broken, re-write it with defaults
2020-12-02 11:36:13 +01:00
Lucjan Bryndza
8be15b96e4 [EGD-4498] Virtual Filesystem Core Framework (#1074)
* [EGD-4498] Registering and unregistering VFS

* [EGD-4498] Mount structures added

* [EGD-4498] Mount filesystem completed

* [EGD-4498] Mount / unmount / and find mount impl

* [EGD-4498] Per thread directory TLS

* [EGD-4489] Absolute paths implementation

* [EGD-4498] Git ignore vim

* [EGD-4498] VFS core functions without cwd

* [EGD-4498] Other syscalls

* [EGD-4498] Code review fixes

* [EGD-4498] Code review #2

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>

* [EGD-4498] Code review small fixes vol #3

Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2020-12-02 09:47:17 +01:00
Lucjan Bryndza
43b9c45724 [EGD-4512] Prevent vfs crash before init (#1091)
Currently calling any method from class vfs
causes aplication crash when methods are called before
vfs.Init() call. This commit prevent to crash end return failure
instead. The fix is related to any any vfs methods and methods called
through the standard syscall.
It is only the hotfix and it will be removed when new VFS subsystem
will be ready.

Co-authored-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2020-11-26 13:29:36 +01:00
Lucjan Bryndza
9cbebacd78 [EGD-4262] Disk manager (#1025)
* [EGD-4262] Disk manager API draft

* [EGD-4262] New filesystem master user class

* [EGD-4262] Directory fops

* [EGD-4262] Initial version of disk manager API

* [EGD-4261] Registering and finding block devices.

* [EGD-4262] Disk manager without partition parser

* [EGD-4262] Partition parser intial ver.

* [EGD-4262] Disk read driver for Linux

* [EGD-4262] Disk manager unittests.

This unittests should be improved. Currrently it checks
only minimum functionality. Boundary tests should be added
in the next stage.

Co-authored-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2020-11-24 12:02:39 +01:00
Roman Kubiak
5ce2f3d329 Revert "[EGD-4344] vfs-utils refactor (#1010)" (#1027)
This reverts commit e6ca468d2c.
2020-11-17 12:27:25 +01:00
Roman Kubiak
e6ca468d2c [EGD-4344] vfs-utils refactor (#1010)
* [EGD-4344] removed vfs-utils.cpp and moved all the functions
to utils or eventStore

* [EGD-4344] removed vfs-utils.cpp and moved all the functions
to utils or eventStore

* [EGD-4344] moved methods to utils::filesystem

* Update module-utils/Utils.cpp

Co-authored-by: Piotr Tanski <piotr.tanski@mudita.com>

* Update module-utils/Utils.cpp

Co-authored-by: Piotr Tanski <piotr.tanski@mudita.com>

* Update module-utils/Utils.cpp

Co-authored-by: Piotr Tanski <piotr.tanski@mudita.com>

* [EGD-4344] test fixes, linux fixes, GUI fixes

* [EGD-4344] rebase fixes

* [EGD-4344] bugfixes for rt1051 and mutex support in EventStore

Co-authored-by: Piotr Tanski <piotr.tanski@mudita.com>
2020-11-16 15:36:52 +01:00
Lucjan Bryndza
707b31ac3e [EGD-4264] directory reordering (#1001)
* [EGD-4264] VFS directory reordering

Currently VFS uses flat directory structure
for disc manager I need more sofisticated directory layout

* [EGD-4264] Remove redundant -Wno

* [EGD-4261] New purefs API

* [EGD-4264] Unittest fixes

* [EGD-4264] Directory relativity

* [EGD-4264] Relative path fixes

* [EGD-4264] Fix RT1051 compile errors

Co-authored-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2020-11-16 12:11:24 +01:00