Adding option for customized containers

This commit is contained in:
Amit Mahajan
2009-11-20 00:50:57 +05:30
parent e2c2f1f2b1
commit 2b63cff800
11 changed files with 328 additions and 4 deletions

View File

@@ -2,7 +2,9 @@ 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'
@@ -138,12 +140,16 @@ 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" : "posix%(cn)d")
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'
@@ -637,6 +643,7 @@ menu cont%(cn)d_capability_list
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
@@ -648,7 +655,8 @@ menu container%(cn)d_options
choices container%(cn)d_type
CONT%(cn)d_TYPE_BAREMETAL
CONT%(cn)d_TYPE_POSIX
CONT%(cn)d_TYPE_LINUX
CONT%(cn)d_TYPE_CUSTOM
CONT%(cn)d_TYPE_LINUX
default CONT%(cn)d_TYPE_BAREMETAL
menu cont%(cn)d_menu

View File

@@ -12,6 +12,7 @@ class Container:
self.name = None
self.type = None
self.id = id
self.src_path = None
self.baremetal_id = 0
self.pager_lma = 0
self.pager_vma = 0
@@ -131,7 +132,10 @@ class configuration:
# TODO: Carry this over to Container() as static method???
def get_container_parameter(self, id, param, val):
if param[:len("PAGER_LMA")] == "PAGER_LMA":
if param[:len("SOURCE_PATH")] == "SOURCE_PATH":
parts = val.split("\"", 3)
self.containers[id].src_path = parts[1]
elif param[:len("PAGER_LMA")] == "PAGER_LMA":
self.containers[id].pager_lma = int(val, 0)
elif param[:len("PAGER_VMA")] == "PAGER_VMA":
self.containers[id].pager_vma = int(val, 0)
@@ -188,6 +192,8 @@ class configuration:
self.containers[id].type = "posix"
elif param2 == "BAREMETAL":
self.containers[id].type = "baremetal"
elif param2 == "CUSTOM":
self.containers[id].type = "custom"
# Extract parameters for containers
def get_container_parameters(self, name, val):
matchobj = re.match(r"(CONFIG_CONT){1}([0-9]){1}(\w+)", name)