mirror of
https://github.com/seL4/seL4.git
synced 2026-03-27 10:29:57 +00:00
python: make Region parameter owner optional
Also ensure the description is created correctly. Signed-off-by: Axel Heider <axelheider@gmx.de>
This commit is contained in:
committed by
Gerwin Klein
parent
a16ec5ef7f
commit
f4e38b1e5b
@@ -59,7 +59,7 @@ class ARMConfig(Config):
|
||||
extra_reserved = set()
|
||||
|
||||
new = ret[0].align_base(self.get_kernel_phys_align())
|
||||
resv = Region(ret[0].base, new.base - ret[0].base, None)
|
||||
resv = Region(ret[0].base, new.base - ret[0].base)
|
||||
extra_reserved.add(resv)
|
||||
ret[0] = new
|
||||
|
||||
@@ -86,7 +86,7 @@ class RISCVConfig(Config):
|
||||
|
||||
physBase = ret[0].base
|
||||
|
||||
resv = Region(ret[0].base, self.get_bootloader_reserve(), None)
|
||||
resv = Region(ret[0].base, self.get_bootloader_reserve())
|
||||
extra_reserved.add(resv)
|
||||
ret[0].base += self.get_bootloader_reserve()
|
||||
ret[0].size -= self.get_bootloader_reserve()
|
||||
|
||||
@@ -13,7 +13,7 @@ import hardware.utils as utils
|
||||
class Region:
|
||||
''' Represents a region of memory. '''
|
||||
|
||||
def __init__(self, base: int, size: int, owner: 'WrappedNode'):
|
||||
def __init__(self, base: int, size: int, owner: 'WrappedNode' = None):
|
||||
self.base = base
|
||||
self.size = size
|
||||
self.owner = owner
|
||||
@@ -48,7 +48,7 @@ class Region:
|
||||
return hash((self.base, self.size))
|
||||
|
||||
@staticmethod
|
||||
def from_range(start, end, owner):
|
||||
def from_range(start, end, owner=None):
|
||||
''' create a region from a start/end rather than start/size '''
|
||||
if start > end:
|
||||
raise ValueError(
|
||||
|
||||
@@ -100,7 +100,7 @@ def get_addrspace_exclude(regions: List[Region], config: Config):
|
||||
# We can't create untypeds that exceed the addrspace_max, so we round down to the smallest
|
||||
# untyped size alignment so that the kernel will be able to turn the entire range into untypeds.
|
||||
as_max = utils.align_down(config.addrspace_max, config.get_smallest_kernel_object_alignment())
|
||||
ret.add(Region(0, as_max, None))
|
||||
ret.add(Region(0, as_max))
|
||||
|
||||
for reg in regions:
|
||||
if type(reg) == KernelRegionGroup:
|
||||
|
||||
@@ -39,7 +39,7 @@ class KernelRegionGroup:
|
||||
|
||||
def __init__(self, region: Region, kernel_name: str, page_bits: int, max_size: int, condition_macro: str = None, user_ok: bool = False):
|
||||
self.macro = condition_macro
|
||||
self.desc = region.owner.path
|
||||
self.desc = region.owner.path if region.owner else 'dynamically generated region'
|
||||
self.kernel_offset = -1
|
||||
self.page_bits = page_bits
|
||||
self.labels = {} # dict of label => offset within region.
|
||||
|
||||
Reference in New Issue
Block a user