Files
codezero/config/cml/container_ruleset.template
2009-11-20 00:50:57 +05:30

665 lines
28 KiB
Plaintext

symbols
CONT%(cn)d_TYPE_LINUX 'Linux Container'
CONT%(cn)d_TYPE_BAREMETAL 'Barebones Container'
CONT%(cn)d_TYPE_POSIX 'POSIX Container'
CONT%(cn)d_TYPE_CUSTOM 'Add New Customized Container'
CONT%(cn)d_OPT_NAME 'Container Name'
CONT%(cn)d_SOURCE_PATH 'Container Source Path'
CONT%(cn)d_PHYSMEM_REGIONS 'Container %(cn)d Number of Physical Regions'
CONT%(cn)d_PHYS0_START 'Container %(cn)d Physical Region 0 Start Address'
CONT%(cn)d_PHYS0_END 'Container %(cn)d Physical Region 0 End Address'
CONT%(cn)d_PHYS1_START 'Container %(cn)d Physical Region 1 Start Address'
CONT%(cn)d_PHYS1_END 'Container %(cn)d Physical Region 1 End Address'
CONT%(cn)d_PHYS2_START 'Container %(cn)d Physical Region 2 Start Address'
CONT%(cn)d_PHYS2_END 'Container %(cn)d Physical Region 2 End Address'
CONT%(cn)d_PHYS3_START 'Container %(cn)d Physical Region 3 Start Address'
CONT%(cn)d_PHYS3_END 'Container %(cn)d Physical Region 3 End Address'
symbols
CONT%(cn)d_VIRTMEM_REGIONS 'Container %(cn)d Number of Virtual Regions'
CONT%(cn)d_VIRT0_START 'Container %(cn)d Virtual Region 0 Start Address'
CONT%(cn)d_VIRT0_END 'Container %(cn)d Virtual Region 0 End Address'
CONT%(cn)d_VIRT1_START 'Container %(cn)d Virtual Region 1 Start Address'
CONT%(cn)d_VIRT1_END 'Container %(cn)d Virtual Region 1 End Address'
CONT%(cn)d_VIRT2_START 'Container %(cn)d Virtual Region 2 Start Address'
CONT%(cn)d_VIRT2_END 'Container %(cn)d Virtual Region 2 End Address'
CONT%(cn)d_VIRT3_START 'Container %(cn)d Virtual Region 3 Start Address'
CONT%(cn)d_VIRT3_END 'Container %(cn)d Virtual Region 3 End Address'
CONT%(cn)d_VIRT4_START 'Container %(cn)d Virtual Region 4 Start Address'
CONT%(cn)d_VIRT4_END 'Container %(cn)d Virtual Region 4 End Address'
CONT%(cn)d_VIRT5_START 'Container %(cn)d Virtual Region 5 Start Address'
CONT%(cn)d_VIRT5_END 'Container %(cn)d Virtual Region 5 End Address'
CONT%(cn)d_PAGER_LMA 'Container %(cn)d Pager LMA'
CONT%(cn)d_PAGER_VMA 'Container %(cn)d Pager VMA'
CONT%(cn)d_PAGER_SHM_START 'Container %(cn)d Shared Mappings Region Start'
CONT%(cn)d_PAGER_SHM_END 'Container %(cn)d Shared Mappings Region End'
CONT%(cn)d_PAGER_TASK_START 'Container %(cn)d Task Address Space Region Start'
CONT%(cn)d_PAGER_TASK_END 'Container %(cn)d Task Address Space Region End'
CONT%(cn)d_PAGER_UTCB_START 'Container %(cn)d UTCB Mappings Region Start'
CONT%(cn)d_PAGER_UTCB_END 'Container %(cn)d UTCB Mappings Region End'
CONT%(cn)d_LINUX_ZRELADDR 'Container %(cn)d Linux ZRELADDR parameter'
CONT%(cn)d_LINUX_PAGE_OFFSET 'Container %(cn)d Linux PAGE_OFFSET Parameter'
CONT%(cn)d_LINUX_PHYS_OFFSET 'Container %(cn)d Linux PHYS_OFFSET Parameter'
CONT%(cn)d_LINUX_ROOTFS_ADDRESS 'Container %(cn)d Linux ROOTFS Address'
default CONT%(cn)d_PAGER_LMA from CONT%(cn)d_PHYS0_START
default CONT%(cn)d_PAGER_VMA from CONT%(cn)d_VIRT0_START
default CONT%(cn)d_PAGER_SHM_START from 0x40000000
default CONT%(cn)d_PAGER_SHM_END from 0x50000000
default CONT%(cn)d_PAGER_TASK_START from 0x30000000
default CONT%(cn)d_PAGER_TASK_END from 0x40000000
default CONT%(cn)d_PAGER_UTCB_START from 0xf8100000
default CONT%(cn)d_PAGER_UTCB_END from 0xf8200000
default CONT%(cn)d_LINUX_ZRELADDR from (CONT%(cn)d_LINUX_PHYS_OFFSET + 0x8000)
default CONT%(cn)d_LINUX_PAGE_OFFSET from CONT%(cn)d_VIRT0_START
default CONT%(cn)d_LINUX_PHYS_OFFSET from CONT%(cn)d_PHYS0_START
default CONT%(cn)d_LINUX_ROOTFS_ADDRESS from (CONT%(cn)d_LINUX_PHYS_OFFSET + 0x500000)
default CONT%(cn)d_VIRTMEM_REGIONS from 1
default CONT%(cn)d_PHYSMEM_REGIONS from 1
# Define limits on virtual and physical memory regions of a _single_ container 0. Too much code!
when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress CONT%(cn)d_VIRT1_START CONT%(cn)d_VIRT1_END
when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress CONT%(cn)d_VIRT2_START CONT%(cn)d_VIRT2_END
when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress CONT%(cn)d_VIRT3_START CONT%(cn)d_VIRT3_END
when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress CONT%(cn)d_VIRT4_START CONT%(cn)d_VIRT4_END
when CONT%(cn)d_VIRTMEM_REGIONS < 2 suppress CONT%(cn)d_VIRT5_START CONT%(cn)d_VIRT5_END
when CONT%(cn)d_VIRTMEM_REGIONS < 3 suppress CONT%(cn)d_VIRT2_START CONT%(cn)d_VIRT2_END
when CONT%(cn)d_VIRTMEM_REGIONS < 3 suppress CONT%(cn)d_VIRT3_START CONT%(cn)d_VIRT3_END
when CONT%(cn)d_VIRTMEM_REGIONS < 3 suppress CONT%(cn)d_VIRT4_START CONT%(cn)d_VIRT4_END
when CONT%(cn)d_VIRTMEM_REGIONS < 3 suppress CONT%(cn)d_VIRT5_START CONT%(cn)d_VIRT5_END
when CONT%(cn)d_VIRTMEM_REGIONS < 4 suppress CONT%(cn)d_VIRT3_START CONT%(cn)d_VIRT3_END
when CONT%(cn)d_VIRTMEM_REGIONS < 4 suppress CONT%(cn)d_VIRT4_START CONT%(cn)d_VIRT4_END
when CONT%(cn)d_VIRTMEM_REGIONS < 4 suppress CONT%(cn)d_VIRT5_START CONT%(cn)d_VIRT5_END
when CONT%(cn)d_VIRTMEM_REGIONS < 5 suppress CONT%(cn)d_VIRT4_START CONT%(cn)d_VIRT4_END
when CONT%(cn)d_VIRTMEM_REGIONS < 5 suppress CONT%(cn)d_VIRT5_START CONT%(cn)d_VIRT5_END
when CONT%(cn)d_VIRTMEM_REGIONS < 6 suppress CONT%(cn)d_VIRT5_START CONT%(cn)d_VIRT5_END
when CONT%(cn)d_PHYSMEM_REGIONS < 2 suppress CONT%(cn)d_PHYS1_START CONT%(cn)d_PHYS1_END
when CONT%(cn)d_PHYSMEM_REGIONS < 2 suppress CONT%(cn)d_PHYS2_START CONT%(cn)d_PHYS2_END
when CONT%(cn)d_PHYSMEM_REGIONS < 2 suppress CONT%(cn)d_PHYS3_START CONT%(cn)d_PHYS3_END
when CONT%(cn)d_PHYSMEM_REGIONS < 3 suppress CONT%(cn)d_PHYS2_START CONT%(cn)d_PHYS2_END
when CONT%(cn)d_PHYSMEM_REGIONS < 3 suppress CONT%(cn)d_PHYS3_START CONT%(cn)d_PHYS3_END
when CONT%(cn)d_PHYSMEM_REGIONS < 4 suppress CONT%(cn)d_PHYS3_START CONT%(cn)d_PHYS3_END
### Sanity check for memory regions ###
require CONT%(cn)d_PHYS0_START < CONT%(cn)d_PHYS0_END
require CONT%(cn)d_PHYS1_START < CONT%(cn)d_PHYS1_END
require CONT%(cn)d_PHYS2_START < CONT%(cn)d_PHYS2_END
require CONT%(cn)d_PHYS3_START < CONT%(cn)d_PHYS3_END
require CONT%(cn)d_VIRT0_START < CONT%(cn)d_VIRT0_END
require CONT%(cn)d_VIRT1_START < CONT%(cn)d_VIRT1_END
require CONT%(cn)d_VIRT2_START < CONT%(cn)d_VIRT2_END
require CONT%(cn)d_VIRT3_START < CONT%(cn)d_VIRT3_END
require CONT%(cn)d_VIRT4_START < CONT%(cn)d_VIRT4_END
require CONT%(cn)d_VIRT5_START < CONT%(cn)d_VIRT5_END
# We assume kernel uses 0x0 - 0x40000 physical RAM.
# Physical Regions for containers should start after kernel.
require CONT%(cn)d_PHYS0_START >= 0x40000
require CONT%(cn)d_PHYS1_START >= 0x40000
require CONT%(cn)d_PHYS2_START >= 0x40000
require CONT%(cn)d_PHYS3_START >= 0x40000
# TODO: We can add check for end address of physical region to be
# less than RAM SIZE, need to find out RAM SIZE?
# Rules for Linux kernel parameters
require CONT%(cn)d_LINUX_ZRELADDR > CONT%(cn)d_LINUX_PHYS_OFFSET + 0x8000
# TODO: Do we want to check if PAGER_LMA/VMA lies in allocated memory regions
default CONT%(cn)d_PHYS0_START from 0x40000
default CONT%(cn)d_PHYS0_END from 0x1000000
default CONT%(cn)d_PHYS1_START from 0x1000000
default CONT%(cn)d_PHYS1_END from 0x1100000
default CONT%(cn)d_PHYS2_START from 0x1100000
default CONT%(cn)d_PHYS2_END from 0x1200000
default CONT%(cn)d_PHYS3_START from 0x1200000
default CONT%(cn)d_PHYS3_END from 0x1300000
default CONT%(cn)d_VIRT0_START from 0x90000000
default CONT%(cn)d_VIRT0_END from 0xa0000000
default CONT%(cn)d_VIRT1_START from 0x40000000
default CONT%(cn)d_VIRT1_END from 0x50000000
default CONT%(cn)d_VIRT2_START from 0x30000000
default CONT%(cn)d_VIRT2_END from 0x40000000
default CONT%(cn)d_VIRT3_START from 0xf8100000
default CONT%(cn)d_VIRT3_END from 0xf8200000
default CONT%(cn)d_VIRT4_START from 0xd0000000
default CONT%(cn)d_VIRT4_END from 0xe0000000
default CONT%(cn)d_VIRT5_START from 0xe0000000
default CONT%(cn)d_VIRT5_END from 0xf0000000
default CONT%(cn)d_OPT_NAME from (CONT%(cn)d_TYPE_LINUX==y) ? "linux%(cn)d" : ((CONT%(cn)d_TYPE_BAREMETAL==y) ? "baremetal%(cn)d" : ((CONT%(cn)d_TYPE_CUSTOM==y) ? "custom%(cn)d" :"posix%(cn)d"))
default CONT%(cn)d_SOURCE_PATH from "conts/timer"
when CONT%(cn)d_TYPE_LINUX==y suppress cont%(cn)d_default_pager_params cont%(cn)d_posix_pager_params
when CONT%(cn)d_TYPE_BAREMETAL==y suppress cont%(cn)d_linux_pager_params cont%(cn)d_posix_pager_params
when CONT%(cn)d_TYPE_POSIX==y suppress cont%(cn)d_linux_pager_params
when CONT%(cn)d_TYPE_CUSTOM==y suppress cont%(cn)d_linux_pager_params cont%(cn)d_posix_pager_params
unless CONT%(cn)d_TYPE_BAREMETAL==y suppress cont%(cn)d_baremetal_params
unless CONT%(cn)d_TYPE_CUSTOM==y suppress CONT%(cn)d_SOURCE_PATH
symbols
cont%(cn)d_menu 'Container %(cn)d Parameters'
cont%(cn)d_physmem_list 'Container %(cn)d Physical Memory Regions (Capabilities)'
cont%(cn)d_virtmem_list 'Container %(cn)d Virtual Memory Regions (Capabilities)'
container%(cn)d_type 'Container %(cn)d Type'
container%(cn)d_options 'Container %(cn)d Options'
cont%(cn)d_linux_pager_params 'Container %(cn)d Linux Pager Parameters'
cont%(cn)d_default_pager_params 'Container %(cn)d Default Pager Parameters'
cont%(cn)d_posix_pager_params 'Container %(cn)d POSIX Pager Parameters'
cont%(cn)d_baremetal_params 'Baremetal Applications List'
CONT%(cn)d_BAREMETAL_APP0 'Empty Application'
CONT%(cn)d_BAREMETAL_APP1 'Hello World'
CONT%(cn)d_BAREMETAL_APP2 'Thread Library Demo'
CONT%(cn)d_BAREMETAL_APP3 'Test Application'
choices cont%(cn)d_baremetal_params
CONT%(cn)d_BAREMETAL_APP0
CONT%(cn)d_BAREMETAL_APP1
CONT%(cn)d_BAREMETAL_APP2
CONT%(cn)d_BAREMETAL_APP3
default CONT%(cn)d_BAREMETAL_APP0
menu cont%(cn)d_default_pager_params
CONT%(cn)d_PAGER_LMA@
CONT%(cn)d_PAGER_VMA@
menu cont%(cn)d_posix_pager_params
CONT%(cn)d_PAGER_SHM_START@
CONT%(cn)d_PAGER_SHM_END@
CONT%(cn)d_PAGER_TASK_START@
CONT%(cn)d_PAGER_TASK_END@
CONT%(cn)d_PAGER_UTCB_START@
CONT%(cn)d_PAGER_UTCB_END@
menu cont%(cn)d_linux_pager_params
CONT%(cn)d_LINUX_PHYS_OFFSET@
CONT%(cn)d_LINUX_ZRELADDR@
CONT%(cn)d_LINUX_ROOTFS_ADDRESS@
CONT%(cn)d_LINUX_PAGE_OFFSET@
menu cont%(cn)d_virtmem_list
CONT%(cn)d_VIRTMEM_REGIONS%
CONT%(cn)d_VIRT0_START@
CONT%(cn)d_VIRT0_END@
CONT%(cn)d_VIRT1_START@
CONT%(cn)d_VIRT1_END@
CONT%(cn)d_VIRT2_START@
CONT%(cn)d_VIRT2_END@
CONT%(cn)d_VIRT3_START@
CONT%(cn)d_VIRT3_END@
CONT%(cn)d_VIRT4_START@
CONT%(cn)d_VIRT4_END@
CONT%(cn)d_VIRT5_START@
CONT%(cn)d_VIRT5_END@
menu cont%(cn)d_physmem_list
CONT%(cn)d_PHYSMEM_REGIONS%
CONT%(cn)d_PHYS0_START@
CONT%(cn)d_PHYS0_END@
CONT%(cn)d_PHYS1_START@
CONT%(cn)d_PHYS1_END@
CONT%(cn)d_PHYS2_START@
CONT%(cn)d_PHYS2_END@
CONT%(cn)d_PHYS3_START@
CONT%(cn)d_PHYS3_END@
#
# Settings for Custom Capabilities
#
choices cont%(cn)d_cap_custom0_type
CONT%(cn)d_CAP_CUSTOM0_IPC_TYPE
CONT%(cn)d_CAP_CUSTOM0_TCTRL_TYPE
CONT%(cn)d_CAP_CUSTOM0_EXREGS_TYPE
CONT%(cn)d_CAP_CUSTOM0_CAPCTRL_TYPE
default CONT%(cn)d_CAP_CUSTOM0_IPC_TYPE
choices cont%(cn)d_cap_custom1_type
CONT%(cn)d_CAP_CUSTOM1_IPC_TYPE
CONT%(cn)d_CAP_CUSTOM1_TCTRL_TYPE
CONT%(cn)d_CAP_CUSTOM1_EXREGS_TYPE
CONT%(cn)d_CAP_CUSTOM1_CAPCTRL_TYPE
default CONT%(cn)d_CAP_CUSTOM1_IPC_TYPE
choices cont%(cn)d_cap_custom2_type
CONT%(cn)d_CAP_CUSTOM2_IPC_TYPE
CONT%(cn)d_CAP_CUSTOM2_TCTRL_TYPE
CONT%(cn)d_CAP_CUSTOM2_EXREGS_TYPE
CONT%(cn)d_CAP_CUSTOM2_CAPCTRL_TYPE
default CONT%(cn)d_CAP_CUSTOM2_IPC_TYPE
choices cont%(cn)d_cap_custom3_type
CONT%(cn)d_CAP_CUSTOM3_IPC_TYPE
CONT%(cn)d_CAP_CUSTOM3_TCTRL_TYPE
CONT%(cn)d_CAP_CUSTOM3_EXREGS_TYPE
CONT%(cn)d_CAP_CUSTOM3_CAPCTRL_TYPE
default CONT%(cn)d_CAP_CUSTOM3_IPC_TYPE
default CONT%(cn)d_CAP_CUSTOM0_USE from n
default CONT%(cn)d_CAP_CUSTOM1_USE from n
default CONT%(cn)d_CAP_CUSTOM2_USE from n
default CONT%(cn)d_CAP_CUSTOM3_USE from n
menu cont%(cn)d_cap_custom0
CONT%(cn)d_CAP_CUSTOM0_USE
cont%(cn)d_cap_custom0_type
CONT%(cn)d_CAP_CUSTOM0_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CUSTOM0_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_CUSTOM0_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM0_TARGET_ANOTHER_PAGER
CONT%(cn)d_CAP_CUSTOM0_TARGET%
menu cont%(cn)d_cap_custom1
CONT%(cn)d_CAP_CUSTOM1_USE
cont%(cn)d_cap_custom1_type
CONT%(cn)d_CAP_CUSTOM1_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CUSTOM1_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_CUSTOM1_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM1_TARGET_ANOTHER_PAGER
CONT%(cn)d_CAP_CUSTOM1_TARGET%
menu cont%(cn)d_cap_custom2
CONT%(cn)d_CAP_CUSTOM2_USE
cont%(cn)d_cap_custom2_type
CONT%(cn)d_CAP_CUSTOM2_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CUSTOM2_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_CUSTOM2_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM2_TARGET_ANOTHER_PAGER
CONT%(cn)d_CAP_CUSTOM2_TARGET%
menu cont%(cn)d_cap_custom3
CONT%(cn)d_CAP_CUSTOM3_USE
cont%(cn)d_cap_custom3_type
CONT%(cn)d_CAP_CUSTOM3_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CUSTOM3_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_CUSTOM3_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM3_TARGET_ANOTHER_PAGER
CONT%(cn)d_CAP_CUSTOM3_TARGET%
choicegroup CONT%(cn)d_CAP_CUSTOM0_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CUSTOM0_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM0_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_CUSTOM0_TARGET_ANOTHER_PAGER
default CONT%(cn)d_CAP_CUSTOM0_TARGET_CURRENT_CONTAINER from y
choicegroup CONT%(cn)d_CAP_CUSTOM1_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CUSTOM1_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM1_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_CUSTOM1_TARGET_ANOTHER_PAGER
default CONT%(cn)d_CAP_CUSTOM1_TARGET_CURRENT_CONTAINER from y
choicegroup CONT%(cn)d_CAP_CUSTOM2_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CUSTOM2_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM2_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_CUSTOM2_TARGET_ANOTHER_PAGER
default CONT%(cn)d_CAP_CUSTOM2_TARGET_CURRENT_CONTAINER from y
choicegroup CONT%(cn)d_CAP_CUSTOM3_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CUSTOM3_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM3_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_CUSTOM3_TARGET_ANOTHER_PAGER
default CONT%(cn)d_CAP_CUSTOM3_TARGET_CURRENT_CONTAINER from y
when CONT%(cn)d_CAP_CUSTOM0_USE == n
suppress cont%(cn)d_cap_custom0_type
CONT%(cn)d_CAP_CUSTOM0_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CUSTOM0_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_CUSTOM0_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM0_TARGET_ANOTHER_PAGER
CONT%(cn)d_CAP_CUSTOM0_TARGET
when CONT%(cn)d_CAP_CUSTOM1_USE == n
suppress cont%(cn)d_cap_custom1_type
CONT%(cn)d_CAP_CUSTOM1_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CUSTOM1_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_CUSTOM1_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM1_TARGET_ANOTHER_PAGER
CONT%(cn)d_CAP_CUSTOM1_TARGET
when CONT%(cn)d_CAP_CUSTOM2_USE == n
suppress cont%(cn)d_cap_custom2_type
CONT%(cn)d_CAP_CUSTOM2_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CUSTOM2_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_CUSTOM2_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM2_TARGET_ANOTHER_PAGER
CONT%(cn)d_CAP_CUSTOM2_TARGET
when CONT%(cn)d_CAP_CUSTOM3_USE == n
suppress cont%(cn)d_cap_custom3_type
CONT%(cn)d_CAP_CUSTOM3_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CUSTOM3_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_CUSTOM3_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM3_TARGET_ANOTHER_PAGER
CONT%(cn)d_CAP_CUSTOM3_TARGET
when CONT%(cn)d_CAP_CUSTOM0_IPC_TYPE == n
suppress CONT%(cn)d_CAP_CUSTOM0_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM0_TARGET_ANOTHER_PAGER
CONT%(cn)d_CAP_CUSTOM0_TARGET
when CONT%(cn)d_CAP_CUSTOM0_TARGET_CURRENT_CONTAINER or
CONT%(cn)d_CAP_CUSTOM0_TARGET_CURRENT_PAGER_SPACE
suppress CONT%(cn)d_CAP_CUSTOM0_TARGET
when CONT%(cn)d_CAP_CUSTOM1_IPC_TYPE == n
suppress CONT%(cn)d_CAP_CUSTOM1_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM1_TARGET_ANOTHER_PAGER
CONT%(cn)d_CAP_CUSTOM1_TARGET
when CONT%(cn)d_CAP_CUSTOM1_TARGET_CURRENT_CONTAINER or
CONT%(cn)d_CAP_CUSTOM1_TARGET_CURRENT_PAGER_SPACE
suppress CONT%(cn)d_CAP_CUSTOM1_TARGET
when CONT%(cn)d_CAP_CUSTOM2_IPC_TYPE == n
suppress CONT%(cn)d_CAP_CUSTOM2_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM2_TARGET_ANOTHER_PAGER
CONT%(cn)d_CAP_CUSTOM2_TARGET
when CONT%(cn)d_CAP_CUSTOM2_TARGET_CURRENT_CONTAINER or
CONT%(cn)d_CAP_CUSTOM2_TARGET_CURRENT_PAGER_SPACE
suppress CONT%(cn)d_CAP_CUSTOM2_TARGET
when CONT%(cn)d_CAP_CUSTOM3_IPC_TYPE == n
suppress CONT%(cn)d_CAP_CUSTOM3_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_CUSTOM3_TARGET_ANOTHER_PAGER
CONT%(cn)d_CAP_CUSTOM3_TARGET
when CONT%(cn)d_CAP_CUSTOM3_TARGET_CURRENT_CONTAINER or
CONT%(cn)d_CAP_CUSTOM3_TARGET_CURRENT_PAGER_SPACE
suppress CONT%(cn)d_CAP_CUSTOM3_TARGET
default CONT%(cn)d_CAP_CUSTOM0_TARGET from 0
default CONT%(cn)d_CAP_CUSTOM1_TARGET from 0
default CONT%(cn)d_CAP_CUSTOM2_TARGET from 0
default CONT%(cn)d_CAP_CUSTOM3_TARGET from 0
# Symbols for Custom Capabilities
symbols
CONT%(cn)d_CAP_CUSTOM0_USE 'Enable this Capability'
cont%(cn)d_cap_custom0_type 'Capability Operation Type'
CONT%(cn)d_CAP_CUSTOM0_IPC_TYPE 'IPC Capability'
CONT%(cn)d_CAP_CUSTOM0_TCTRL_TYPE 'Thread Control Capability'
CONT%(cn)d_CAP_CUSTOM0_EXREGS_TYPE 'Exchange Registers Capability'
CONT%(cn)d_CAP_CUSTOM0_CAPCTRL_TYPE 'Capability Control Capability'
CONT%(cn)d_CAP_CUSTOM0_TARGET_CURRENT_CONTAINER 'Capability Targets Current Container'
CONT%(cn)d_CAP_CUSTOM0_TARGET_CURRENT_PAGER_SPACE 'Capability Targets Current Pager`s Space'
CONT%(cn)d_CAP_CUSTOM0_TARGET_ANOTHER_CONTAINER 'Capability Targets Another Container'
CONT%(cn)d_CAP_CUSTOM0_TARGET_ANOTHER_PAGER 'Capability Targets Another Container`s Pager'
CONT%(cn)d_CAP_CUSTOM0_TARGET 'Enter Container ID'
CONT%(cn)d_CAP_CUSTOM1_USE 'Enable this Capability'
cont%(cn)d_cap_custom1_type 'Capability Operation Type'
CONT%(cn)d_CAP_CUSTOM1_IPC_TYPE 'IPC Capability'
CONT%(cn)d_CAP_CUSTOM1_TCTRL_TYPE 'Thread Control Capability'
CONT%(cn)d_CAP_CUSTOM1_EXREGS_TYPE 'Exchange Registers Capability'
CONT%(cn)d_CAP_CUSTOM1_CAPCTRL_TYPE 'Capability Control Capability'
CONT%(cn)d_CAP_CUSTOM1_TARGET_CURRENT_CONTAINER 'Capability Targets Current Container'
CONT%(cn)d_CAP_CUSTOM1_TARGET_CURRENT_PAGER_SPACE 'Capability Targets Current Pager`s Space'
CONT%(cn)d_CAP_CUSTOM1_TARGET_ANOTHER_CONTAINER 'Capability Targets Another Container'
CONT%(cn)d_CAP_CUSTOM1_TARGET_ANOTHER_PAGER 'Capability Targets Another Container`s Pager'
CONT%(cn)d_CAP_CUSTOM1_TARGET 'Enter Container ID'
CONT%(cn)d_CAP_CUSTOM2_USE 'Enable this Capability'
cont%(cn)d_cap_custom2_type 'Capability Operation Type'
CONT%(cn)d_CAP_CUSTOM2_IPC_TYPE 'IPC Capability'
CONT%(cn)d_CAP_CUSTOM2_TCTRL_TYPE 'Thread Control Capability'
CONT%(cn)d_CAP_CUSTOM2_EXREGS_TYPE 'Exchange Registers Capability'
CONT%(cn)d_CAP_CUSTOM2_CAPCTRL_TYPE 'Capability Control Capability'
CONT%(cn)d_CAP_CUSTOM2_TARGET_CURRENT_CONTAINER 'Capability Targets Current Container'
CONT%(cn)d_CAP_CUSTOM2_TARGET_CURRENT_PAGER_SPACE 'Capability Targets Current Pager`s Space'
CONT%(cn)d_CAP_CUSTOM2_TARGET_ANOTHER_CONTAINER 'Capability Targets Another Container'
CONT%(cn)d_CAP_CUSTOM2_TARGET_ANOTHER_PAGER 'Capability Targets Another Container`s Pager'
CONT%(cn)d_CAP_CUSTOM2_TARGET 'Enter Container ID'
CONT%(cn)d_CAP_CUSTOM3_USE 'Enable this Capability'
cont%(cn)d_cap_custom3_type 'Capability Operation Type'
CONT%(cn)d_CAP_CUSTOM3_IPC_TYPE 'IPC Capability'
CONT%(cn)d_CAP_CUSTOM3_TCTRL_TYPE 'Thread Control Capability'
CONT%(cn)d_CAP_CUSTOM3_EXREGS_TYPE 'Exchange Registers Capability'
CONT%(cn)d_CAP_CUSTOM3_CAPCTRL_TYPE 'Capability Control Capability'
CONT%(cn)d_CAP_CUSTOM3_TARGET_CURRENT_CONTAINER 'Capability Targets Current Container'
CONT%(cn)d_CAP_CUSTOM3_TARGET_CURRENT_PAGER_SPACE 'Capability Targets Current Pager`s Space'
CONT%(cn)d_CAP_CUSTOM3_TARGET_ANOTHER_CONTAINER 'Capability Targets Another Container'
CONT%(cn)d_CAP_CUSTOM3_TARGET_ANOTHER_PAGER 'Capability Targets Another Container`s Pager'
CONT%(cn)d_CAP_CUSTOM3_TARGET 'Enter Container ID'
# Symbols for Generic Capabilities
symbols
CONT%(cn)d_CAP_TCTRL_USE 'Enable this Capability'
CONT%(cn)d_CAP_TCTRL_TARGET_CURRENT_CONTAINER 'Capability Targets Current Container'
CONT%(cn)d_CAP_TCTRL_TARGET_CURRENT_PAGER_SPACE 'Capability Targets Current Pager`s Space'
CONT%(cn)d_CAP_EXREGS_USE 'Enable this Capability'
CONT%(cn)d_CAP_EXREGS_TARGET_CURRENT_CONTAINER 'Capability Targets Current Container'
CONT%(cn)d_CAP_EXREGS_TARGET_CURRENT_PAGER_SPACE 'Capability Targets Current Pager`s Space'
CONT%(cn)d_CAP_IPC_USE 'Enable this Capability'
CONT%(cn)d_CAP_IPC_TARGET_CURRENT_CONTAINER 'Capability Targets Current Container'
CONT%(cn)d_CAP_IPC_TARGET_CURRENT_PAGER_SPACE 'Capability Targets Current Pager`s Space'
CONT%(cn)d_CAP_IPC_TARGET_ANOTHER_CONTAINER 'Capability Targets Another Container'
CONT%(cn)d_CAP_IPC_TARGET_ANOTHER_PAGER 'Capability Targets Another Container`s Pager'
CONT%(cn)d_CAP_IPC_TARGET 'Enter Container ID'
CONT%(cn)d_CAP_CAPCTRL_USE 'Enable this Capability'
CONT%(cn)d_CAP_CAPCTRL_TARGET_CURRENT_CONTAINER 'Capability Targets Current Container'
CONT%(cn)d_CAP_CAPCTRL_TARGET_CURRENT_PAGER_SPACE 'Capability Targets Current Pager`s Space'
CONT%(cn)d_CAP_UMUTEX_USE 'Enable this Capability'
CONT%(cn)d_CAP_UMUTEX_TARGET_CURRENT_CONTAINER 'Capability Targets Current Container'
CONT%(cn)d_CAP_UMUTEX_TARGET_CURRENT_PAGER_SPACE 'Capability Targets Current Pager`s Space'
symbols
CONT%(cn)d_CAP_THREADPOOL_SIZE 'Number of Threads'
CONT%(cn)d_CAP_SPACEPOOL_SIZE 'Number of Address Spaces'
CONT%(cn)d_CAP_MAPPOOL_SIZE 'Number of PMD Mappings (E.g. Middle-level Page Tables)'
CONT%(cn)d_CAP_MUTEXPOOL_SIZE 'Number of Userspace Mutexes'
CONT%(cn)d_CAP_CAPPOOL_SIZE 'Number of Capabilities (Created at run-time via Split, Replicate)'
CONT%(cn)d_CAP_THREADPOOL_USE 'Enable this Capability'
CONT%(cn)d_CAP_SPACEPOOL_USE 'Enable this Capability'
CONT%(cn)d_CAP_MAPPOOL_USE 'Enable this Capability'
CONT%(cn)d_CAP_MUTEXPOOL_USE 'Enable this Capability'
CONT%(cn)d_CAP_CAPPOOL_USE 'Enable this Capability'
cont%(cn)d_cap_threadpool 'Container %(cn)d Thread Pool Capability'
cont%(cn)d_cap_spacepool 'Container %(cn)d Space Pool Capability'
cont%(cn)d_cap_mutexpool 'Container %(cn)d Mutex Pool Capability'
cont%(cn)d_cap_mappool 'Container %(cn)d Map Pool Capability'
cont%(cn)d_cap_cappool 'Container %(cn)d Capability Pool Capability'
cont%(cn)d_cap_tctrl 'Container %(cn)d Thread Control Capability'
cont%(cn)d_cap_exregs 'Container %(cn)d Exchange Registers Capability'
cont%(cn)d_cap_ipc 'Container %(cn)d IPC Capability'
cont%(cn)d_cap_capctrl 'Container %(cn)d Capability Control Capability'
cont%(cn)d_cap_umutex 'Container %(cn)d Userspace Mutex Control Capability'
cont%(cn)d_cap_custom0 'Container %(cn)d Custom Capability 0 Parameters'
cont%(cn)d_cap_custom1 'Container %(cn)d Custom Capability 1 Parameters'
cont%(cn)d_cap_custom2 'Container %(cn)d Custom Capability 2 Parameters'
cont%(cn)d_cap_custom3 'Container %(cn)d Custom Capability 3 Parameters'
cont%(cn)d_capability_list 'Container %(cn)d Capability List'
default CONT%(cn)d_CAP_THREADPOOL_SIZE from 64
default CONT%(cn)d_CAP_SPACEPOOL_SIZE from 64
default CONT%(cn)d_CAP_MAPPOOL_SIZE from 800
default CONT%(cn)d_CAP_MUTEXPOOL_SIZE from 100
default CONT%(cn)d_CAP_CAPPOOL_SIZE from 32
default CONT%(cn)d_CAP_THREADPOOL_USE from y
default CONT%(cn)d_CAP_SPACEPOOL_USE from y
default CONT%(cn)d_CAP_MAPPOOL_USE from y
default CONT%(cn)d_CAP_MUTEXPOOL_USE from y
default CONT%(cn)d_CAP_CAPPOOL_USE from y
# Use Rules for Generic Capabilities
when CONT%(cn)d_CAP_THREADPOOL_USE == n
suppress CONT%(cn)d_CAP_THREADPOOL_SIZE
when CONT%(cn)d_CAP_SPACEPOOL_USE == n
suppress CONT%(cn)d_CAP_SPACEPOOL_SIZE
when CONT%(cn)d_CAP_MAPPOOL_USE == n
suppress CONT%(cn)d_CAP_MAPPOOL_SIZE
when CONT%(cn)d_CAP_MUTEXPOOL_USE == n
suppress CONT%(cn)d_CAP_MUTEXPOOL_SIZE
when CONT%(cn)d_CAP_CAPPOOL_USE == n
suppress CONT%(cn)d_CAP_CAPPOOL_SIZE
when CONT%(cn)d_CAP_IPC_USE == n
suppress CONT%(cn)d_CAP_IPC_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_IPC_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_IPC_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_IPC_TARGET_ANOTHER_PAGER
when CONT%(cn)d_CAP_EXREGS_USE == n
suppress CONT%(cn)d_CAP_EXREGS_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_EXREGS_TARGET_CURRENT_PAGER_SPACE
when CONT%(cn)d_CAP_TCTRL_USE == n
suppress CONT%(cn)d_CAP_TCTRL_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_TCTRL_TARGET_CURRENT_PAGER_SPACE
when CONT%(cn)d_CAP_CAPCTRL_USE == n
suppress CONT%(cn)d_CAP_CAPCTRL_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CAPCTRL_TARGET_CURRENT_PAGER_SPACE
when CONT%(cn)d_CAP_UMUTEX_USE == n
suppress CONT%(cn)d_CAP_UMUTEX_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_UMUTEX_TARGET_CURRENT_PAGER_SPACE
when CONT%(cn)d_CAP_IPC_TARGET_CURRENT_CONTAINER or
CONT%(cn)d_CAP_IPC_TARGET_CURRENT_PAGER_SPACE
suppress CONT%(cn)d_CAP_IPC_TARGET
choicegroup CONT%(cn)d_CAP_IPC_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_IPC_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_IPC_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_IPC_TARGET_ANOTHER_PAGER
default CONT%(cn)d_CAP_IPC_TARGET_CURRENT_CONTAINER from y
choicegroup CONT%(cn)d_CAP_EXREGS_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_EXREGS_TARGET_CURRENT_PAGER_SPACE
default CONT%(cn)d_CAP_EXREGS_TARGET_CURRENT_CONTAINER from y
choicegroup CONT%(cn)d_CAP_TCTRL_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_TCTRL_TARGET_CURRENT_PAGER_SPACE
default CONT%(cn)d_CAP_TCTRL_TARGET_CURRENT_CONTAINER from y
choicegroup CONT%(cn)d_CAP_CAPCTRL_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CAPCTRL_TARGET_CURRENT_PAGER_SPACE
default CONT%(cn)d_CAP_CAPCTRL_TARGET_CURRENT_CONTAINER from y
choicegroup CONT%(cn)d_CAP_UMUTEX_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_UMUTEX_TARGET_CURRENT_PAGER_SPACE
default CONT%(cn)d_CAP_UMUTEX_TARGET_CURRENT_CONTAINER from y
default CONT%(cn)d_CAP_TCTRL_USE from y
default CONT%(cn)d_CAP_EXREGS_USE from y
default CONT%(cn)d_CAP_IPC_USE from y
default CONT%(cn)d_CAP_CAPCTRL_USE from y
default CONT%(cn)d_CAP_UMUTEX_USE from y
default CONT%(cn)d_CAP_IPC_TARGET from 0
# Capability Menus
menu cont%(cn)d_cap_tctrl
CONT%(cn)d_CAP_TCTRL_USE
CONT%(cn)d_CAP_TCTRL_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_TCTRL_TARGET_CURRENT_PAGER_SPACE
menu cont%(cn)d_cap_exregs
CONT%(cn)d_CAP_EXREGS_USE
CONT%(cn)d_CAP_EXREGS_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_EXREGS_TARGET_CURRENT_PAGER_SPACE
menu cont%(cn)d_cap_capctrl
CONT%(cn)d_CAP_CAPCTRL_USE
CONT%(cn)d_CAP_CAPCTRL_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_CAPCTRL_TARGET_CURRENT_PAGER_SPACE
menu cont%(cn)d_cap_umutex
CONT%(cn)d_CAP_UMUTEX_USE
CONT%(cn)d_CAP_UMUTEX_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_UMUTEX_TARGET_CURRENT_PAGER_SPACE
menu cont%(cn)d_cap_ipc
CONT%(cn)d_CAP_IPC_USE
CONT%(cn)d_CAP_IPC_TARGET_CURRENT_CONTAINER
CONT%(cn)d_CAP_IPC_TARGET_CURRENT_PAGER_SPACE
CONT%(cn)d_CAP_IPC_TARGET_ANOTHER_CONTAINER
CONT%(cn)d_CAP_IPC_TARGET_ANOTHER_PAGER
CONT%(cn)d_CAP_IPC_TARGET%
menu cont%(cn)d_cap_threadpool
CONT%(cn)d_CAP_THREADPOOL_USE
CONT%(cn)d_CAP_THREADPOOL_SIZE%
menu cont%(cn)d_cap_spacepool
CONT%(cn)d_CAP_SPACEPOOL_USE
CONT%(cn)d_CAP_SPACEPOOL_SIZE%
menu cont%(cn)d_cap_mappool
CONT%(cn)d_CAP_MAPPOOL_USE
CONT%(cn)d_CAP_MAPPOOL_SIZE%
menu cont%(cn)d_cap_mutexpool
CONT%(cn)d_CAP_MUTEXPOOL_USE
CONT%(cn)d_CAP_MUTEXPOOL_SIZE%
menu cont%(cn)d_cap_cappool
CONT%(cn)d_CAP_CAPPOOL_USE
CONT%(cn)d_CAP_CAPPOOL_SIZE%
menu cont%(cn)d_capability_list
cont%(cn)d_cap_threadpool
cont%(cn)d_cap_spacepool
cont%(cn)d_cap_mutexpool
cont%(cn)d_cap_mappool
cont%(cn)d_cap_cappool
cont%(cn)d_cap_tctrl
cont%(cn)d_cap_exregs
cont%(cn)d_cap_ipc
cont%(cn)d_cap_capctrl
cont%(cn)d_cap_umutex
cont%(cn)d_cap_custom0
cont%(cn)d_cap_custom1
cont%(cn)d_cap_custom2
cont%(cn)d_cap_custom3
menu container%(cn)d_options
CONT%(cn)d_OPT_NAME$
CONT%(cn)d_SOURCE_PATH$
cont%(cn)d_baremetal_params
cont%(cn)d_linux_pager_params
cont%(cn)d_default_pager_params
cont%(cn)d_posix_pager_params
cont%(cn)d_physmem_list
cont%(cn)d_virtmem_list
cont%(cn)d_capability_list
choices container%(cn)d_type
CONT%(cn)d_TYPE_BAREMETAL
CONT%(cn)d_TYPE_POSIX
CONT%(cn)d_TYPE_CUSTOM
CONT%(cn)d_TYPE_LINUX
default CONT%(cn)d_TYPE_BAREMETAL
menu cont%(cn)d_menu
container%(cn)d_type
container%(cn)d_options