参照元

説明

参考

ロード関数は下記のとおり。

検索方法

$ egrep -rn 'load_binary[ \t]*=' *
arch/alpha/kernel/binfmt_loader.c:44:   .load_binary    = load_binary,
arch/x86/ia32/ia32_aout.c:110:  .load_binary    = load_aout_binary,
fs/binfmt_aout.c:39:    .load_binary    = load_aout_binary,
fs/binfmt_elf.c:69:             .load_binary    = load_elf_binary,
fs/binfmt_elf_fdpic.c:84:       .load_binary    = load_elf_fdpic_binary,
fs/binfmt_em86.c:99:    .load_binary    = load_em86,
fs/binfmt_flat.c:94:    .load_binary    = load_flat_binary,
fs/binfmt_misc.c:712:   .load_binary = load_misc_binary,
fs/binfmt_script.c:103: .load_binary    = load_script,
fs/binfmt_som.c:57:     .load_binary    = load_som_binary,

共有ライブラリのロード関数は下記のとおり。

検索方法

$ egrep -rn 'load_shlib[ \t]*=' *
arch/x86/ia32/ia32_aout.c:111:  .load_shlib     = load_aout_library,
fs/binfmt_aout.c:40:    .load_shlib     = load_aout_library,
fs/binfmt_elf.c:70:             .load_shlib     = load_elf_library,
fs/binfmt_som.c:58:     .load_shlib     = load_som_library,

コアダンプ関数は下記のとおり。

検索方法

$ egrep -rn 'core_dump[ \t]*=' *
arch/x86/ia32/ia32_aout.c:113:  .core_dump      = aout_core_dump,
fs/binfmt_aout.c:41:    .core_dump      = aout_core_dump,
fs/binfmt_elf.c:71:             .core_dump      = elf_core_dump,
fs/binfmt_elf_fdpic.c:86:       .core_dump      = elf_fdpic_core_dump,
fs/binfmt_flat.c:95:    .core_dump      = flat_core_dump,
fs/binfmt_som.c:59:     .core_dump      = som_core_dump,

実装

struct linux_binfmt {
        struct list_head lh;
        struct module *module;
        int (*load_binary)(struct linux_binprm *, struct  pt_regs * regs);
        int (*load_shlib)(struct file *);
        int (*core_dump)(struct coredump_params *cprm);
        unsigned long min_coredump;     /* minimal dump size */
        int hasvdso;
};

コメント


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-09-13 (土) 08:26:42