*参照元 [#l5a07dca]
#backlinks

*説明 [#la39ed87]
-パス: [[linux-2.6.33/include/linux/binfmts.h]]

-FIXME: これは何?
--説明


**参考 [#o3f1b145]
ロード関数は下記のとおり。
-
--[[linux-2.6.33/load_binary()(alpha)]]
-
--[[linux-2.6.33/load_aout_binary()(x86)]]
-
--[[linux-2.6.33/load_aout_binary()]]
-
--[[linux-2.6.33/load_elf_binary()]]
-
--[[linux-2.6.33/load_elf_fdpic_binary()]]
-
--[[linux-2.6.33/load_em86()]]
-
--[[linux-2.6.33/load_flat_binary()]]
-
--[[linux-2.6.33/load_misc_binary()]]
-
--[[linux-2.6.33/load_script()]]
-
--[[linux-2.6.33/load_som_binary()]]

検索方法
 $ egrep -rn 'load_binary[      ]*=' *
 $ 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,


共有ライブラリのロード関数は下記のとおり。
-
--[[linux-2.6.33/load_aout_library()(x86)]]
-
--[[linux-2.6.33/load_aout_library()]]
-
--[[linux-2.6.33/load_elf_library()]]
-
--[[linux-2.6.33/load_som_library()]]

検索方法
 $ egrep -rn 'load_shlib[       ]*=' *
 $ 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,


コアダンプ関数は下記のとおり。
-
--[[linux-2.6.33/aout_core_dump()(x86)]]
-
--[[linux-2.6.33/aout_core_dump()]]
-
--[[linux-2.6.33/elf_core_dump()]]
-
--[[linux-2.6.33/elf_fdpic_core_dump()]]
-
--[[linux-2.6.33/flat_core_dump()]]
-
--[[linux-2.6.33/som_core_dump()]]

検索方法
 $ 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,


*実装 [#md3ab47c]
 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;
 };


*コメント [#g26bede6]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS