[GIT PULL request] ELF rewrite part 2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi guys,

following Robby's suggestion, I have moved to github.

Please have a look at 
http://github.com/andr345/module-init-tools/commits/master/ 

(or git://github.com/andr345/module-init-tools.git)

This is the second set of patches in the ELF-rewrite, organized for easy
review.

This rewrite

- separates depmod from its ELF functions, (7 commits)
- renames moduleops to elfops (1 commit)
- gathers all previously refactored code in elfops. (1 commit)

The next set (still TODO) will move the remaining functions from
modprobe and modinfo, completing the ELF-rewrite.

Testing: passes tests/runtests.
Has not been tested on a live system, though that is probably of less
value (?)

The commit log in chronological order:

commit f95dc3e...

    util: introduce new string table object
    
    load_symbols() and calculate_deps() in moduleops call functions in
    depmod as a way of passing multiple symbols back to depmod.
    
    This adds a string table to replace those callbacks.

commit b17e586...

    depmod: rewrite load_symbols() to not use callback
    
    load_symbols() in moduleops no longer has to call add_symbol()
    in depmod. Data is now returned in a string table.

commit 2ddf799...

    depmod: separate symbol lookup and dependency calculation
    
    The new load_dep_syms() operation in moduleops returns a string table of
    symbols on which a module depends. calculate_deps() is moved to depmod.
    
    Remaining depmod callbacks in moduleops are removed.

commit 6fc062a...

    moduleops: add load_strings() operation
    
    load_string() treats the data in an ELF-file section as a collection
    of strings and builds a string table from those. It can be used to
    read .modinfo, __ksymtab_strings and similar sections.
    
    load_symbols() is updated to take advantage of the new function.

commit c724292...

    depmod: move tables from struct module into separate struct
    
    This is part of the work separating depmod and moduleops.

commit fd6cc9a...

    moduleops: Trivial code cleanups
    
    load_section():
    * Pass struct module rather than module->data and module->conv.
    
    load_dep_syms() and fetch_tables()
    * Assign local variable conv = module->conv when used in many places.
    
    fetch_tables():
    * Treat handle_register_symbols like the boolean it is.

commit 0d1c106...

    depmod: Introduce struct elf_file
    
    Remove the last remnants of struct module from moduleops*.[ch]

commit 4a8fb96...

    moduleops: rename to elfops and move to static lib

commit 9fc58e8...

    move ELF-related code into elfops
    
    Specifically
    
    depmod.h   => elfops.h:      struct module_tables and struct elf_file
    elfops.c   => elfops_core.c: X-macros (eg PERBIT)
    elf_core.c => elfops_core.c: get_section()
    util.[ch]  => elfops.[ch]:   elf_ident() and get_section()
    
    Additionally, elf_core.c is deleted, being replaced by elfops_core.c


--
To unsubscribe from this list: send the line "unsubscribe linux-modules" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux