OpenCores
URL https://opencores.org/ocsvn/c0or1k/c0or1k/trunk

Subversion Repositories c0or1k

[/] [c0or1k/] [trunk/] [config/] [cml/] [container_ruleset.template] - Rev 2

Compare with Previous | Blame | View Log

symbols
CONT%(cn)d_TYPE_LINUX           'Linux Container'
CONT%(cn)d_TYPE_BAREMETAL       'Baremetal Container'
CONT%(cn)d_TYPE_POSIX           'POSIX Container'
CONT%(cn)d_OPT_NAME             'Container Name'

CONTAINERS              'Number of containers'

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'

# FIXME: We dont need to pass PAGER_LMA and PAGER_VMA to config.h now
# as we are using them just to derive other symbols, in this file only
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 CONT%(cn)d_VIRT1_START
default CONT%(cn)d_PAGER_SHM_END        from CONT%(cn)d_VIRT1_END
default CONT%(cn)d_PAGER_TASK_START     from CONT%(cn)d_VIRT2_START
default CONT%(cn)d_PAGER_TASK_END       from CONT%(cn)d_VIRT2_END
default CONT%(cn)d_PAGER_UTCB_START     from CONT%(cn)d_VIRT3_START
default CONT%(cn)d_PAGER_UTCB_END       from CONT%(cn)d_VIRT3_END
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 (CONT%(cn)d_TYPE_POSIX==y ? 4 : 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

# 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 ((%(cn)d == 0 ? 0x100000 : (0x100000 + %(cn)d * 0x1000000)) + RAM_BASE_PLAT)
default CONT%(cn)d_PHYS0_END    from (CONT%(cn)d_PHYS0_START + 0xD00000)
default CONT%(cn)d_PHYS1_START  from CONT%(cn)d_PHYS0_END
default CONT%(cn)d_PHYS1_END    from (CONT%(cn)d_PHYS1_START + 0x100000)
default CONT%(cn)d_PHYS2_START  from CONT%(cn)d_PHYS1_END
default CONT%(cn)d_PHYS2_END    from (CONT%(cn)d_PHYS2_START + 0x100000)
default CONT%(cn)d_PHYS3_START  from CONT%(cn)d_PHYS2_END
default CONT%(cn)d_PHYS3_END    from (CONT%(cn)d_PHYS3_START + 0x100000)

default CONT%(cn)d_VIRT0_START  from (%(cn)d == 0 ? 0xa0000000 : (0xa0000000 + %(cn)d * 0x10000000))
default CONT%(cn)d_VIRT0_END    from (CONT%(cn)d_VIRT0_START + 0x10000000)
default CONT%(cn)d_VIRT1_START  from (%(cn)d == 0 ? 0x80000000 : (0x80000000 + %(cn)d * 0x8000000))
default CONT%(cn)d_VIRT1_END    from (CONT%(cn)d_VIRT1_START + 0x8000000)
default CONT%(cn)d_VIRT2_START  from (%(cn)d == 0 ? 0x40000000 : (0x40000000 + %(cn)d * 0x10000000))
default CONT%(cn)d_VIRT2_END    from (CONT%(cn)d_VIRT2_START + 0x10000000)
default CONT%(cn)d_VIRT3_START  from (%(cn)d == 0 ? 0xf8100000 : (0xf8100000 + %(cn)d * 0x100000))
default CONT%(cn)d_VIRT3_END    from (CONT%(cn)d_VIRT3_START + 0x100000)
default CONT%(cn)d_VIRT4_START  from (%(cn)d == 0 ? 0x10000000 : (0x10000000 + %(cn)d * 0x10000000))
default CONT%(cn)d_VIRT4_END    from (CONT%(cn)d_VIRT4_START + 0x10000000)
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_POSIX==y) ? "posix%(cn)d" :
((CONT%(cn)d_BAREMETAL_PROJ_HELLO_WORLD==y) ? "hello_world%(cn)d" :
((CONT%(cn)d_BAREMETAL_PROJ_THREADS_DEMO==y) ? "thread_demo%(cn)d" :
((CONT%(cn)d_BAREMETAL_PROJ_TEST_SUITE==y) ? "test_suite%(cn)d" :
((CONT%(cn)d_BAREMETAL_PROJ_UART_SERVICE==y) ? "uart_service%(cn)d" :
((CONT%(cn)d_BAREMETAL_PROJ_KMI_SERVICE==y) ? "kmi_service%(cn)d" :
((CONT%(cn)d_BAREMETAL_PROJ_TIMER_SERVICE==y) ? "timer_service%(cn)d" : "empty%(cn)d")))))))

when CONT%(cn)d_TYPE_LINUX==y suppress cont%(cn)d_default_pager_params
unless CONT%(cn)d_TYPE_POSIX==y suppress cont%(cn)d_posix_pager_params
unless CONT%(cn)d_TYPE_LINUX==y suppress cont%(cn)d_linux_pager_params
unless CONT%(cn)d_TYPE_BAREMETAL==y suppress cont%(cn)d_baremetal_params

# derive symbols, for cinfo.c, depending on the type of container selected
derive CONT%(cn)d_PAGER_LOAD_ADDR from (CONT%(cn)d_TYPE_LINUX==y) ? CONT%(cn)d_LINUX_PHYS_OFFSET : CONT%(cn)d_PAGER_LMA
derive CONT%(cn)d_PAGER_VIRT_ADDR from (CONT%(cn)d_TYPE_LINUX==y) ? CONT%(cn)d_LINUX_PAGE_OFFSET : CONT%(cn)d_PAGER_VMA
derive CONT%(cn)d_START_PC_ADDR from (CONT%(cn)d_TYPE_LINUX != y) ? CONT%(cn)d_PAGER_VMA : (CONT%(cn)d_LINUX_PAGE_OFFSET + CONT%(cn)d_LINUX_ZRELADDR - CONT%(cn)d_LINUX_PHYS_OFFSET)

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)'
cont%(cn)d_device_list  'Container %(cn)d Devices (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 Project'
CONT%(cn)d_BAREMETAL_PROJ_EMPTY         'Empty Project'
CONT%(cn)d_BAREMETAL_PROJ_HELLO_WORLD   'Hello World'
CONT%(cn)d_BAREMETAL_PROJ_THREADS_DEMO  'Thread Library Demo'
CONT%(cn)d_BAREMETAL_PROJ_TEST_SUITE    'Microkernel Tests'
CONT%(cn)d_BAREMETAL_PROJ_UART_SERVICE  'UART Service'
CONT%(cn)d_BAREMETAL_PROJ_TIMER_SERVICE 'Timer Service'
CONT%(cn)d_BAREMETAL_PROJ_KMI_SERVICE   'Keyboard Mouse Service'

choices cont%(cn)d_baremetal_params
        CONT%(cn)d_BAREMETAL_PROJ_EMPTY
        CONT%(cn)d_BAREMETAL_PROJ_HELLO_WORLD
        CONT%(cn)d_BAREMETAL_PROJ_THREADS_DEMO
        CONT%(cn)d_BAREMETAL_PROJ_TEST_SUITE
        CONT%(cn)d_BAREMETAL_PROJ_UART_SERVICE
        CONT%(cn)d_BAREMETAL_PROJ_TIMER_SERVICE
        CONT%(cn)d_BAREMETAL_PROJ_KMI_SERVICE
        default CONT%(cn)d_BAREMETAL_PROJ_EMPTY

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@

#
# Device menu and options per container
#
# FIXME: All this is to be moved to a per-platform description file.
#
symbols
cont%(cn)d_cap_device_uart1             'Container %(cn)d UART1 Menu'
cont%(cn)d_cap_device_uart2             'Container %(cn)d UART2 Menu'
cont%(cn)d_cap_device_uart3             'Container %(cn)d UART3 Menu'
cont%(cn)d_cap_device_timer1            'Container %(cn)d TIMER23 Menu'
cont%(cn)d_cap_device_keyboard0         'Container %(cn)d KEYBOARD0 Menu'
cont%(cn)d_cap_device_mouse0            'Container %(cn)d MOUSE0 Menu'
cont%(cn)d_cap_device_clcd0             'Container %(cn)d CLCD0 Menu'

CONT%(cn)d_CAP_DEVICE_UART1_USE         'Container %(cn)d UART1 Enable'
CONT%(cn)d_CAP_DEVICE_UART2_USE         'Container %(cn)d UART2 Enable'
CONT%(cn)d_CAP_DEVICE_UART3_USE         'Container %(cn)d UART3 Enable'
CONT%(cn)d_CAP_DEVICE_TIMER1_USE        'Container %(cn)d TIMER23 Enable'
CONT%(cn)d_CAP_DEVICE_KEYBOARD0_USE     'Container %(cn)d KEYBOARD0 Enable'
CONT%(cn)d_CAP_DEVICE_MOUSE0_USE        'Container %(cn)d MOUSE0 Enable'
CONT%(cn)d_CAP_DEVICE_CLCD0_USE         'Container %(cn)d CLCD0 Enable'

default CONT%(cn)d_CAP_DEVICE_UART1_USE         from n
default CONT%(cn)d_CAP_DEVICE_UART2_USE         from n
default CONT%(cn)d_CAP_DEVICE_UART3_USE         from n
default CONT%(cn)d_CAP_DEVICE_TIMER1_USE        from n
default CONT%(cn)d_CAP_DEVICE_KEYBOARD0_USE     from n
default CONT%(cn)d_CAP_DEVICE_MOUSE0_USE        from n
default CONT%(cn)d_CAP_DEVICE_CLCD0_USE         from n

menu cont%(cn)d_cap_device_uart1
        CONT%(cn)d_CAP_DEVICE_UART1_USE

menu cont%(cn)d_cap_device_uart2
        CONT%(cn)d_CAP_DEVICE_UART2_USE

menu cont%(cn)d_cap_device_uart3
        CONT%(cn)d_CAP_DEVICE_UART3_USE

menu cont%(cn)d_cap_device_timer1
        CONT%(cn)d_CAP_DEVICE_TIMER1_USE

menu cont%(cn)d_cap_device_keyboard0
        CONT%(cn)d_CAP_DEVICE_KEYBOARD0_USE

menu cont%(cn)d_cap_device_mouse0
        CONT%(cn)d_CAP_DEVICE_MOUSE0_USE

menu cont%(cn)d_cap_device_clcd0
        CONT%(cn)d_CAP_DEVICE_CLCD0_USE

menu cont%(cn)d_device_list
        cont%(cn)d_cap_device_uart1
        cont%(cn)d_cap_device_uart2
        cont%(cn)d_cap_device_uart3
        cont%(cn)d_cap_device_clcd0
        cont%(cn)d_cap_device_timer1
        cont%(cn)d_cap_device_keyboard0
        cont%(cn)d_cap_device_mouse0

#
# 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_IRQCTRL_USE                              'Enable this Capability'
CONT%(cn)d_CAP_IRQCTRL_TARGET_CURRENT_CONTAINER         'Capability Targets Current Container'
CONT%(cn)d_CAP_IRQCTRL_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_irqctrl          'Container %(cn)d IRQ 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_IRQCTRL_USE == n
        suppress CONT%(cn)d_CAP_IRQCTRL_TARGET_CURRENT_CONTAINER
                 CONT%(cn)d_CAP_IRQCTRL_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_IRQCTRL_TARGET_CURRENT_CONTAINER
            CONT%(cn)d_CAP_IRQCTRL_TARGET_CURRENT_PAGER_SPACE
            default CONT%(cn)d_CAP_IRQCTRL_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_IRQCTRL_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_irqctrl
        CONT%(cn)d_CAP_IRQCTRL_USE
        CONT%(cn)d_CAP_IRQCTRL_TARGET_CURRENT_CONTAINER
        CONT%(cn)d_CAP_IRQCTRL_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_irqctrl
        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_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
        cont%(cn)d_device_list

choices container%(cn)d_type
        CONT%(cn)d_TYPE_BAREMETAL
        CONT%(cn)d_TYPE_POSIX
        CONT%(cn)d_TYPE_LINUX
        default CONT%(cn)d_TYPE_BAREMETAL

menu cont%(cn)d_menu
        container%(cn)d_type
        container%(cn)d_options

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.