diff --git a/kernel/Kconfig b/kernel/Kconfig index 197ddb71f62c6e810e1d7699b0ad59908028240f..03fea0d91f00cfea3353ee03e28d9cb08fa1b628 100644 --- a/kernel/Kconfig +++ b/kernel/Kconfig @@ -67,51 +67,6 @@ config PAGE_TABLE_FINE_LOCK help This option will enable fine lock for page table. -######################### config options of container #################### -config KERNEL_CONTAINER - bool "Enable container Feature" - default n - depends on KERNEL_VM - -config PID_CONTAINER - bool "Enable pid container Feature" - default n - depends on KERNEL_CONTAINER - -config UTS_CONTAINER - bool "Enable uts container Feature" - default n - depends on KERNEL_CONTAINER - -config MNT_CONTAINER - bool "Enable mnt container Feature" - default n - depends on KERNEL_CONTAINER - -config CHROOT - bool "Enable chroot" - default n - depends on MNT_CONTAINER - -config IPC_CONTAINER - bool "Enable ipc container Feature" - default n - depends on KERNEL_CONTAINER - -config TIME_CONTAINER - bool "Enable time container" - default n - depends on KERNEL_CONTAINER - -config USER_CONTAINER - bool "Enable user container" - default n - depends on KERNEL_CONTAINER - -config NET_CONTAINER - bool "Enable net container" - default n - depends on KERNEL_CONTAINER ######################### config options of extended ##################### source "kernel/extended/Kconfig" diff --git a/kernel/base/BUILD.gn b/kernel/base/BUILD.gn index 45fdb56bd82ea810adc1bfccb4863e29a7c356c8..f3d9b457ff1ee3032d9026cb9094a1c212091a42 100644 --- a/kernel/base/BUILD.gn +++ b/kernel/base/BUILD.gn @@ -32,15 +32,6 @@ import("//kernel/liteos_a/liteos.gni") module_name = get_path_info(rebase_path("."), "name") kernel_module(module_name) { sources = [ - "container/los_container.c", - "container/los_credentials.c", - "container/los_ipc_container.c", - "container/los_mnt_container.c", - "container/los_net_container.c", - "container/los_pid_container.c", - "container/los_time_container.c", - "container/los_user_container.c", - "container/los_uts_container.c", "core/los_bitmap.c", "core/los_info.c", "core/los_process.c", diff --git a/kernel/base/Makefile b/kernel/base/Makefile index 262c37eac5ee73e87a7116caccc9b75f82cf7c16..73fa7ceb6bf78f4abf7ffc1adf9adb974c72998d 100644 --- a/kernel/base/Makefile +++ b/kernel/base/Makefile @@ -39,7 +39,6 @@ LOCAL_SRCS := $(wildcard ipc/*.c) $(wildcard core/*.c) $(wildcard mem/membox/*. $(wildcard mp/*.c) \ $(wildcard sched/*.c) \ $(wildcard vm/*.c) \ - $(wildcard container/*.c) LOCAL_FLAGS := $(LITEOS_CFLAGS_INTERWORK) -Wno-frame-address diff --git a/kernel/extended/BUILD.gn b/kernel/extended/BUILD.gn index 6bada0f1056ab64fc2753ed158574f2c19b8e67d..0a3223552dda3c45c66ba6b85fada98319f18ea2 100644 --- a/kernel/extended/BUILD.gn +++ b/kernel/extended/BUILD.gn @@ -32,6 +32,7 @@ import("//kernel/liteos_a/liteos.gni") group("extended") { deps = [ "blackbox", + "container", "cppsupport", "cpup", "dynload", @@ -52,6 +53,7 @@ group("extended") { config("public") { configs = [ "blackbox:public", + "container:public", "cpup:public", "dynload:public", "hidumper:public", diff --git a/kernel/extended/Kconfig b/kernel/extended/Kconfig index 45dababf29659bbccb0987e7284d594c862a4f08..d7d133ec6a6146fc0cd4135f806b83d78951fe63 100644 --- a/kernel/extended/Kconfig +++ b/kernel/extended/Kconfig @@ -113,6 +113,54 @@ config KERNEL_HOOK default n depends on KERNEL_EXTKERNEL && DEBUG_VERSION + +######################### config options of container #################### +config KERNEL_CONTAINER + bool "Enable container Feature" + default n + depends on KERNEL_VM + +config PID_CONTAINER + bool "Enable pid container Feature" + default n + depends on KERNEL_CONTAINER + +config UTS_CONTAINER + bool "Enable uts container Feature" + default n + depends on KERNEL_CONTAINER + +config MNT_CONTAINER + bool "Enable mnt container Feature" + default n + depends on KERNEL_CONTAINER + +config CHROOT + bool "Enable chroot" + default n + depends on MNT_CONTAINER + +config IPC_CONTAINER + bool "Enable ipc container Feature" + default n + depends on KERNEL_CONTAINER + +config TIME_CONTAINER + bool "Enable time container" + default n + depends on KERNEL_CONTAINER + +config USER_CONTAINER + bool "Enable user container" + default n + depends on KERNEL_CONTAINER + +config NET_CONTAINER + bool "Enable net container" + default n + depends on KERNEL_CONTAINER + + ######################### config options of trace ######################### source "kernel/extended/trace/Kconfig" diff --git a/kernel/extended/container/BUILD.gn b/kernel/extended/container/BUILD.gn new file mode 100644 index 0000000000000000000000000000000000000000..85bc8ea82845008a063c13c85ca6578ac1bcd547 --- /dev/null +++ b/kernel/extended/container/BUILD.gn @@ -0,0 +1,65 @@ +# Copyright (c) 2023-2023 Huawei Device Co., Ltd. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of +# conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, this list +# of conditions and the following disclaimer in the documentation and/or other materials +# provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors may be used +# to endorse or promote products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import("//kernel/liteos_a/liteos.gni") + +module_switch = defined(LOSCFG_KERNEL_CONTAINER) +module_name = get_path_info(rebase_path("."), "name") +kernel_module(module_name) { + sources = [ "los_container.c" ] + if (defined(LOSCFG_IPC_CONTAINER)) { + sources += [ "los_ipc_container.c" ] + } + if (defined(LOSCFG_MNT_CONTAINER)) { + sources += [ "los_mnt_container.c" ] + } + if (defined(LOSCFG_NET_CONTAINER)) { + sources += [ "los_net_container.c" ] + } + if (defined(LOSCFG_PID_CONTAINER)) { + sources += [ "los_pid_container.c" ] + } + if (defined(LOSCFG_TIME_CONTAINER)) { + sources += [ "los_time_container.c" ] + } + if (defined(LOSCFG_USER_CONTAINER)) { + sources += [ + "los_credentials.c", + "los_user_container.c", + ] + } + if (defined(LOSCFG_UTS_CONTAINER)) { + sources += [ "los_uts_container.c" ] + } + + public_configs = [ ":public" ] +} + +config("public") { + include_dirs = [ "." ] +} diff --git a/kernel/extended/container/Makefile b/kernel/extended/container/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..194ff8677b2088ecebdb5a8b56fe5b9e7f2cfa20 --- /dev/null +++ b/kernel/extended/container/Makefile @@ -0,0 +1,63 @@ +# Copyright (c) 2023-2023 Huawei Device Co., Ltd. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of +# conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, this list +# of conditions and the following disclaimer in the documentation and/or other materials +# provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors may be used +# to endorse or promote products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +include $(LITEOSTOPDIR)/config.mk + +MODULE_NAME := $(notdir $(shell pwd)) + +LOCAL_SRCS := $(wildcard *.c) + +ifneq ($(LOSCFG_IPC_CONTAINER), y) +LOCAL_SRCS += $(filter-out los_ipc_container.c, $(LOCAL_SRCS)) +endif + +ifneq ($(LOSCFG_MNT_CONTAINER), y) +LOCAL_SRCS += $(filter-out los_mnt_container.c, $(LOCAL_SRCS)) +endif + +ifneq ($(LOSCFG_NET_CONTAINER), y) +LOCAL_SRCS += $(filter-out los_net_container.c, $(LOCAL_SRCS)) +endif + +ifneq ($(LOSCFG_PID_CONTAINER), y) +LOCAL_SRCS += $(filter-out los_pid_container.c, $(LOCAL_SRCS)) +endif + +ifneq ($(LOSCFG_TIME_CONTAINER), y) +LOCAL_SRCS += $(filter-out los_time_container.c, $(LOCAL_SRCS)) +endif + +ifneq ($(LOSCFG_USER_CONTAINER), y) +LOCAL_SRCS += $(filter-out los_credentials.c los_user_container.c, $(LOCAL_SRCS)) +endif + +ifneq ($(LOSCFG_UTS_CONTAINER), y) +LOCAL_SRCS += $(filter-out los_uts_container.c, $(LOCAL_SRCS)) +endif + +include $(MODULE) \ No newline at end of file diff --git a/kernel/base/container/los_container.c b/kernel/extended/container/los_container.c similarity index 100% rename from kernel/base/container/los_container.c rename to kernel/extended/container/los_container.c diff --git a/kernel/base/container/los_credentials.c b/kernel/extended/container/los_credentials.c similarity index 100% rename from kernel/base/container/los_credentials.c rename to kernel/extended/container/los_credentials.c diff --git a/kernel/base/container/los_ipc_container.c b/kernel/extended/container/los_ipc_container.c similarity index 100% rename from kernel/base/container/los_ipc_container.c rename to kernel/extended/container/los_ipc_container.c diff --git a/kernel/base/container/los_mnt_container.c b/kernel/extended/container/los_mnt_container.c similarity index 100% rename from kernel/base/container/los_mnt_container.c rename to kernel/extended/container/los_mnt_container.c diff --git a/kernel/base/container/los_net_container.c b/kernel/extended/container/los_net_container.c similarity index 100% rename from kernel/base/container/los_net_container.c rename to kernel/extended/container/los_net_container.c diff --git a/kernel/base/container/los_pid_container.c b/kernel/extended/container/los_pid_container.c similarity index 100% rename from kernel/base/container/los_pid_container.c rename to kernel/extended/container/los_pid_container.c diff --git a/kernel/base/container/los_time_container.c b/kernel/extended/container/los_time_container.c similarity index 100% rename from kernel/base/container/los_time_container.c rename to kernel/extended/container/los_time_container.c diff --git a/kernel/base/container/los_user_container.c b/kernel/extended/container/los_user_container.c similarity index 100% rename from kernel/base/container/los_user_container.c rename to kernel/extended/container/los_user_container.c diff --git a/kernel/base/container/los_uts_container.c b/kernel/extended/container/los_uts_container.c similarity index 100% rename from kernel/base/container/los_uts_container.c rename to kernel/extended/container/los_uts_container.c diff --git a/testsuites/unittest/container/BUILD.gn b/testsuites/unittest/container/BUILD.gn index bc53409aeca4498467b743283603bfb90956dd32..2027399770c65fd61591a5e65f8437ccdb7f3732 100644 --- a/testsuites/unittest/container/BUILD.gn +++ b/testsuites/unittest/container/BUILD.gn @@ -26,9 +26,6 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import("//build/lite/config/test.gni") -import("//kernel/liteos_a/liteos.gni") -import("//kernel/liteos_a/testsuites/unittest/config.gni") import("./config.gni") config("container_config") { diff --git a/testsuites/unittest/container/config.gni b/testsuites/unittest/container/config.gni index 35c55da972b95d9994f49567e77861ac064ae379..9bfa4dd6d44bf2c43b8829e581b000b7b9f54277 100644 --- a/testsuites/unittest/container/config.gni +++ b/testsuites/unittest/container/config.gni @@ -26,6 +26,8 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +import("//build/lite/config/test.gni") +import("//kernel/liteos_a/liteos.gni") import("//kernel/liteos_a/testsuites/unittest/config.gni") common_include_dirs = [ diff --git a/testsuites/unittest/process/fs/BUILD.gn b/testsuites/unittest/process/fs/BUILD.gn index 02902a416f9e939cb6354b3cbcc6b47bb3ef3f09..2308401a1772b8f573e67182832f3112343332bb 100644 --- a/testsuites/unittest/process/fs/BUILD.gn +++ b/testsuites/unittest/process/fs/BUILD.gn @@ -26,9 +26,6 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import("//build/lite/config/test.gni") -import("//kernel/liteos_a/liteos.gni") -import("//kernel/liteos_a/testsuites/unittest/config.gni") import("./config.gni") if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) { diff --git a/testsuites/unittest/process/fs/config.gni b/testsuites/unittest/process/fs/config.gni index 54c0439087923918a3562d7bd529f512cbba9886..a12552a1698ce04e6bcdce57258e0c483150d574 100644 --- a/testsuites/unittest/process/fs/config.gni +++ b/testsuites/unittest/process/fs/config.gni @@ -27,6 +27,7 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import("//build/lite/config/test.gni") +import("//kernel/liteos_a/liteos.gni") import("//kernel/liteos_a/testsuites/unittest/config.gni") common_include_dirs = [ diff --git a/testsuites/unittest/process/plimits/BUILD.gn b/testsuites/unittest/process/plimits/BUILD.gn index aff7786a47067b72e7a977d0b5748d8b6f4b8110..cdcf7a29a90a7e4949f26bf85eda4bc3aa06262a 100644 --- a/testsuites/unittest/process/plimits/BUILD.gn +++ b/testsuites/unittest/process/plimits/BUILD.gn @@ -26,9 +26,6 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import("//build/lite/config/test.gni") -import("//kernel/liteos_a/liteos.gni") -import("//kernel/liteos_a/testsuites/unittest/config.gni") import("./config.gni") if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) { diff --git a/testsuites/unittest/process/plimits/config.gni b/testsuites/unittest/process/plimits/config.gni index cfb6d6367f9d14f8f0318d158cb919c02acc3fa0..bba4b0aa97e61641416337c555cd014fbdc08005 100644 --- a/testsuites/unittest/process/plimits/config.gni +++ b/testsuites/unittest/process/plimits/config.gni @@ -27,6 +27,7 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import("//build/lite/config/test.gni") +import("//kernel/liteos_a/liteos.gni") import("//kernel/liteos_a/testsuites/unittest/config.gni") common_include_dirs = [ @@ -92,7 +93,7 @@ process_plimits_sources_smoke = [ process_plimits_sources_full = [] # plimits module -if (LOSCFG_USER_TEST_PROCESS == true) { +if (LOSCFG_USER_TEST_PROCESS_PLIMITS == true) { common_include_dirs += process_plimits_include_dirs sources_entry += process_plimits_sources_entry sources_smoke += process_plimits_sources_smoke