-
Notifications
You must be signed in to change notification settings - Fork 19
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fs: Import EROFS from Huawei P10 HarmonyOS 2.0 kernel opensource
* Tarball file: VTR-AL00_02_HarmonyOS_opensource.tar.gz * Corresponding software version: 2021-11-17 Change-Id: I4814be3f9f183dd431d93892532f6d29f14fc896
- Loading branch information
1 parent
c28f059
commit 2476e38
Showing
26 changed files
with
8,192 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,158 @@ | ||
# SPDX-License-Identifier: GPL-2.0 | ||
|
||
config EROFS_FS | ||
tristate "EROFS filesystem support" | ||
depends on BLOCK | ||
help | ||
EROFS(Enhanced Read-Only File System) is a lightweight | ||
read-only file system with modern designs (eg. page-sized | ||
blocks, inline xattrs/data, etc.) for scenarios which need | ||
high-performance read-only requirements, eg. firmwares in | ||
mobile phone or LIVECDs. | ||
|
||
It also provides VLE compression support, focusing on | ||
random read improvements, keeping relatively lower | ||
compression ratios, which is useful for high-performance | ||
devices with limited memory and ROM space. | ||
|
||
If unsure, say N. | ||
|
||
config EROFS_FS_DEBUG | ||
bool "EROFS debugging feature" | ||
depends on EROFS_FS | ||
help | ||
Print EROFS debugging messages and enable more BUG_ONs | ||
which check the filesystem consistency aggressively. | ||
|
||
For daily use, say N. | ||
|
||
config EROFS_FS_XATTR | ||
bool "EROFS extended attributes" | ||
depends on EROFS_FS | ||
default y | ||
help | ||
Extended attributes are name:value pairs associated with inodes by | ||
the kernel or by users (see the attr(5) manual page, or visit | ||
<http://acl.bestbits.at/> for details). | ||
|
||
If unsure, say N. | ||
|
||
config EROFS_FS_POSIX_ACL | ||
bool "EROFS Access Control Lists" | ||
depends on EROFS_FS_XATTR | ||
select FS_POSIX_ACL | ||
default y | ||
help | ||
Posix Access Control Lists (ACLs) support permissions for users and | ||
groups beyond the owner/group/world scheme. | ||
|
||
To learn more about Access Control Lists, visit the POSIX ACLs for | ||
Linux website <http://acl.bestbits.at/>. | ||
|
||
If you don't know what Access Control Lists are, say N. | ||
|
||
config EROFS_FS_SECURITY | ||
bool "EROFS Security Labels" | ||
depends on EROFS_FS_XATTR | ||
help | ||
Security labels provide an access control facility to support Linux | ||
Security Models (LSMs) accepted by AppArmor, SELinux, Smack and TOMOYO | ||
Linux. This option enables an extended attribute handler for file | ||
security labels in the erofs filesystem, so that it requires enabling | ||
the extended attribute support in advance. | ||
|
||
If you are not using a security module, say N. | ||
|
||
config EROFS_FS_USE_VM_MAP_RAM | ||
bool "EROFS VM_MAP_RAM Support" | ||
depends on EROFS_FS | ||
help | ||
use vm_map_ram/vm_unmap_ram instead of vmap/vunmap. | ||
|
||
If you don't know what these are, say N. | ||
|
||
config EROFS_FAULT_INJECTION | ||
bool "EROFS fault injection facility" | ||
depends on EROFS_FS | ||
help | ||
Test EROFS to inject faults such as ENOMEM, EIO, and so on. | ||
If unsure, say N. | ||
|
||
config EROFS_FS_IO_MAX_RETRIES | ||
int "EROFS IO Maximum Retries" | ||
depends on EROFS_FS | ||
default "5" | ||
help | ||
Maximum retry count of IO Errors. | ||
|
||
If unsure, leave the default value (5 retries, 6 IOs at most). | ||
|
||
config EROFS_FS_ZIP | ||
bool "EROFS Data Compresssion Support" | ||
depends on EROFS_FS | ||
help | ||
Currently we support VLE Compression only. | ||
Play at your own risk. | ||
|
||
If you don't want to use compression feature, say N. | ||
|
||
config EROFS_FS_CLUSTER_PAGE_LIMIT | ||
int "EROFS Cluster Pages Hard Limit" | ||
depends on EROFS_FS_ZIP | ||
range 1 256 | ||
default "1" | ||
help | ||
Indicates VLE compressed pages hard limit of a | ||
compressed cluster. | ||
|
||
For example, if files of a image are compressed | ||
into 8k-unit, the hard limit should not be less | ||
than 2. Otherwise, the image cannot be mounted | ||
correctly on this kernel. | ||
|
||
choice | ||
prompt "EROFS VLE Data Decompression mode" | ||
depends on EROFS_FS_ZIP | ||
default EROFS_FS_ZIP_CACHE_BIPOLAR | ||
help | ||
EROFS supports three options for VLE decompression. | ||
"In-place Decompression Only" consumes the minimum memory | ||
with lowest random read. | ||
|
||
"Bipolar Cached Decompression" consumes the maximum memory | ||
with highest random read. | ||
|
||
If unsure, select "Bipolar Cached Decompression" | ||
|
||
config EROFS_FS_ZIP_NO_CACHE | ||
bool "In-place Decompression Only" | ||
help | ||
Read compressed data into page cache and do in-place | ||
decompression directly. | ||
|
||
config EROFS_FS_ZIP_CACHE_UNIPOLAR | ||
bool "Unipolar Cached Decompression" | ||
help | ||
For each request, it caches the last compressed page | ||
for further reading. | ||
It still decompresses in place for the rest compressed pages. | ||
|
||
config EROFS_FS_ZIP_CACHE_BIPOLAR | ||
bool "Bipolar Cached Decompression" | ||
help | ||
For each request, it caches the both end compressed pages | ||
for further reading. | ||
It still decompresses in place for the rest compressed pages. | ||
|
||
Recommended for performance priority. | ||
|
||
endchoice | ||
|
||
config EROFS_FS_HUAWEI_EXTENSION | ||
bool "EROFS HUAWEI Extension" | ||
depends on EROFS_FS && EROFS_FS_ZIP | ||
help | ||
Targeted optimizations for HUAWEI Mobile phone. | ||
|
||
If unsure, say N. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# SPDX-License-Identifier: GPL-2.0 | ||
|
||
EROFS_VERSION = "0.5.180822.0" | ||
|
||
ccflags-y += -Wall -DEROFS_VERSION=\"$(EROFS_VERSION)\" | ||
|
||
obj-$(CONFIG_EROFS_FS) += erofs.o | ||
# staging requirement: to be self-contained in its own directory | ||
ccflags-y += -I$(src)/include | ||
erofs-objs := super.o inode.o data.o namei.o dir.o utils.o | ||
erofs-$(CONFIG_EROFS_FS_XATTR) += xattr.o | ||
erofs-$(CONFIG_EROFS_FS_ZIP) += unzip_vle.o unzip_vle_lz4.o | ||
|
||
# lz4 algorithm related stuffs | ||
erofs-$(CONFIG_EROFS_FS_ZIP) += unzip_lz4.o | ||
erofs-$(CONFIG_ARM64) += $(addprefix lz4armv8/, \ | ||
lz4armv8.o \ | ||
lz4accel.o \ | ||
) | ||
CFLAGS_unzip_lz4.o += -O3 | ||
|
Oops, something went wrong.