Пример #1
0
 def _check_version(self, name, addr, open_ver):
     # check version
     lib = Library(self.mem, addr)
     lib_ver = lib.version
     if lib_ver < open_ver:
         log_libmgr.warn("lib '%s' has too low version: %d < %d", name,
                         lib_ver, open_ver)
         return 0
     else:
         log_libmgr.info("lib '%s' version %d ok for open version %d", name,
                         lib_ver, open_ver)
         return addr
Пример #2
0
 def _check_version(self, name, addr, open_ver):
   # check version
   lib = Library(self.mem, addr)
   lib_ver = lib.version
   if lib_ver < open_ver:
     log_libmgr.warn("lib '%s' has too low version: %d < %d",
                     name, lib_ver, open_ver)
     return 0
   else:
     log_libmgr.info("lib '%s' version %d ok for open version %d",
                     name, lib_ver, open_ver)
     return addr
Пример #3
0
 def _expunge_list(self, node_list):
     left_libs = 0
     for node in node_list:
         lib_base = node.get_addr()
         # is it a vlib?
         if lib_base in self.addr_vlib:
             vlib = self.addr_vlib[lib_base]
             if not self.expunge_lib(vlib):
                 lib = vlib.get_library()
                 log_libmgr.warn("can't expunge: '%s' with open count %d",
                                 lib.name, lib.open_cnt)
                 left_libs += 1
     return left_libs
Пример #4
0
  def shutdown(self, run_sp=None):
    """cleanup libs

    try to expunge all libs and report still open ones
    """
    log_libmgr.info("+shutdown")
    aleft = self.alib_mgr.shutdown(run_sp)
    if aleft > 0:
      log_libmgr.warn("shutdown: can't expunge %d amiga libs/devs!", aleft)
    vleft = self.vlib_mgr.shutdown()
    if vleft > 0:
      log_libmgr.warn("shutdown: can't expunge %d vamos libs/devs!", vleft)
    left = vleft + aleft
    log_libmgr.info("-shutdwon: aleft=%d, vleft=%d", aleft, vleft)
    return left
Пример #5
0
    def shutdown(self, run_sp=None):
        """cleanup libs

    try to expunge all libs and report still open ones
    """
        log_libmgr.info("+shutdown")
        aleft = self.alib_mgr.shutdown(run_sp)
        if aleft > 0:
            log_libmgr.warn("shutdown: can't expunge %d amiga libs/devs!",
                            aleft)
        vleft = self.vlib_mgr.shutdown()
        if vleft > 0:
            log_libmgr.warn("shutdown: can't expunge %d vamos libs/devs!",
                            vleft)
        left = vleft + aleft
        log_libmgr.info("-shutdwon: aleft=%d, vleft=%d", aleft, vleft)
        return left
Пример #6
0
 def _load_common(self, lib_name, seglist_baddr, run_sp):
     # find resident in first hunk
     seglist = SegList(self.alloc, seglist_baddr)
     seg = seglist.get_segment()
     res = Resident.find(self.mem, seg.get_addr(), seg.get_size())
     # unload seglist if no resident was found
     if not res:
         log_libmgr.warn("%s: no resident found!", lib_name)
         self.segloader.unload_seglist(seglist_baddr)
         return 0, 0
     # init resident
     lib_base, _ = self.initres.init_resident(res.get_addr(),
                                              seglist.get_baddr(),
                                              run_sp=run_sp)
     # unload seglist on error
     if lib_base == 0:
         log_libmgr.warn("%s: init resident failed!", lib_name)
         self.segloader.unload_seglist(seglist_baddr)
         return 0, 0
     return lib_base, seglist_baddr