コード例 #1
0
ファイル: kernel_nano_elf.py プロジェクト: BruceYi/okl4
    def __init__(self, elf, section):
        self.section = section
        self.elf = elf
        self.wordsize = elf.wordsize
        self.format_str = "%s%s" % \
                (elf.endianess, ["I", "Q"][elf.wordsize==64])

        self.tcb = arch_import(self.elf_machine_lookup, "nano_tcb", elf.machine)
        self.map = arch_import(self.elf_machine_lookup, "nano_mappings", elf.machine)
        self.mappings = self.map.Mappings()

        self.kpagetable_phys = get_symbol_value(self.elf, "kpagetable_phys")
        self.pgtable_size = 0

        self.num_threads = get_symbol_value(self.elf, "max_tcbs")
        self.tcb_base_addr = get_symbol_value(self.elf, "tcbs")
        self.tcb_size = 0
        self.spare_threads = 0
        self.thread_table = []

        self.prio_list = [[] for _ in range(self.MAX_PRIORITY+1)]
        self.priority_table_size = 0

        self.futex_hash_slots = get_symbol_value(self.elf, "futex_hash_slots")
        self.futex_hash = get_symbol_value(self.elf, "futex_hash")
        self.futex_pending_tags = get_symbol_value(self.elf,
                                                   "futex_pending_tags")
コード例 #2
0
ファイル: kernel_nano.py プロジェクト: BruceYi/okl4
 def __init__(self, elf, namespace, machine):
     self.kernel_data = ByteArray([])
     self.kobjects_ms = None
     self.namespace = namespace
     self.wordsize = elf.wordsize
     self.format_str = "%s%s" % \
             (elf.endianess, ["I", "Q"][elf.wordsize/8==64])
     self.machine_init(machine)
     self.tcb = arch_import(self.arch_lookup, "nano_tcb", self.cpu)
     self.map = arch_import(self.arch_lookup, "nano_mappings", self.cpu)
     self.patches = []
     self.segment_drops = ["elfweaver"]
     self.devices = []
コード例 #3
0
 def __init__(self, elf, namespace, machine):
     self.kernel_data = ByteArray([])
     self.kobjects_ms = None
     self.namespace = namespace
     self.wordsize = elf.wordsize
     self.format_str = "%s%s" % \
             (elf.endianess, ["I", "Q"][elf.wordsize/8==64])
     self.machine_init(machine)
     self.tcb = arch_import(self.arch_lookup, "nano_tcb", self.cpu)
     self.map = arch_import(self.arch_lookup, "nano_mappings", self.cpu)
     self.patches = []
     self.segment_drops = ["elfweaver"]
     self.devices = []