init_plugin.c 4.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /* arch_lc3b arch_x86 listfmt_nasm parser_gas parser_nasm preproc_nasm preproc_raw preproc_cpp preproc_gas dbgfmt_cv8 dbgfmt_dwarf2 dbgfmt_null dbgfmt_stabs objfmt_dbg objfmt_bin objfmt_elf objfmt_elf32 objfmt_elf64 objfmt_elfx32 objfmt_coff objfmt_win32 objfmt_win64 objfmt_macho objfmt_macho32 objfmt_macho64 objfmt_rdf objfmt_xdf
  2. rev 1
  3. */
  4. #include <libyasm.h>
  5. #include <libyasm/module.h>
  6. extern yasm_arch_module yasm_lc3b_LTX_arch;
  7. extern yasm_arch_module yasm_x86_LTX_arch;
  8. extern yasm_listfmt_module yasm_nasm_LTX_listfmt;
  9. extern yasm_parser_module yasm_gas_LTX_parser;
  10. extern yasm_parser_module yasm_nasm_LTX_parser;
  11. extern yasm_preproc_module yasm_nasm_LTX_preproc;
  12. extern yasm_preproc_module yasm_raw_LTX_preproc;
  13. extern yasm_preproc_module yasm_cpp_LTX_preproc;
  14. extern yasm_preproc_module yasm_gas_LTX_preproc;
  15. extern yasm_dbgfmt_module yasm_cv8_LTX_dbgfmt;
  16. extern yasm_dbgfmt_module yasm_dwarf2_LTX_dbgfmt;
  17. extern yasm_dbgfmt_module yasm_null_LTX_dbgfmt;
  18. extern yasm_dbgfmt_module yasm_stabs_LTX_dbgfmt;
  19. extern yasm_objfmt_module yasm_dbg_LTX_objfmt;
  20. extern yasm_objfmt_module yasm_bin_LTX_objfmt;
  21. extern yasm_objfmt_module yasm_elf_LTX_objfmt;
  22. extern yasm_objfmt_module yasm_elf32_LTX_objfmt;
  23. extern yasm_objfmt_module yasm_elf64_LTX_objfmt;
  24. extern yasm_objfmt_module yasm_elfx32_LTX_objfmt;
  25. extern yasm_objfmt_module yasm_coff_LTX_objfmt;
  26. extern yasm_objfmt_module yasm_win32_LTX_objfmt;
  27. extern yasm_objfmt_module yasm_win64_LTX_objfmt;
  28. extern yasm_objfmt_module yasm_macho_LTX_objfmt;
  29. extern yasm_objfmt_module yasm_macho32_LTX_objfmt;
  30. extern yasm_objfmt_module yasm_macho64_LTX_objfmt;
  31. extern yasm_objfmt_module yasm_rdf_LTX_objfmt;
  32. extern yasm_objfmt_module yasm_xdf_LTX_objfmt;
  33. void
  34. yasm_init_plugin(void)
  35. {
  36. yasm_register_module(YASM_MODULE_ARCH, "lc3b", &yasm_lc3b_LTX_arch);
  37. yasm_register_module(YASM_MODULE_ARCH, "x86", &yasm_x86_LTX_arch);
  38. yasm_register_module(YASM_MODULE_LISTFMT, "nasm", &yasm_nasm_LTX_listfmt);
  39. yasm_register_module(YASM_MODULE_PARSER, "gas", &yasm_gas_LTX_parser);
  40. yasm_register_module(YASM_MODULE_PARSER, "nasm", &yasm_nasm_LTX_parser);
  41. yasm_register_module(YASM_MODULE_PREPROC, "nasm", &yasm_nasm_LTX_preproc);
  42. yasm_register_module(YASM_MODULE_PREPROC, "raw", &yasm_raw_LTX_preproc);
  43. yasm_register_module(YASM_MODULE_PREPROC, "cpp", &yasm_cpp_LTX_preproc);
  44. yasm_register_module(YASM_MODULE_PREPROC, "gas", &yasm_gas_LTX_preproc);
  45. yasm_register_module(YASM_MODULE_DBGFMT, "cv8", &yasm_cv8_LTX_dbgfmt);
  46. yasm_register_module(YASM_MODULE_DBGFMT, "dwarf2", &yasm_dwarf2_LTX_dbgfmt);
  47. yasm_register_module(YASM_MODULE_DBGFMT, "null", &yasm_null_LTX_dbgfmt);
  48. yasm_register_module(YASM_MODULE_DBGFMT, "stabs", &yasm_stabs_LTX_dbgfmt);
  49. yasm_register_module(YASM_MODULE_OBJFMT, "dbg", &yasm_dbg_LTX_objfmt);
  50. yasm_register_module(YASM_MODULE_OBJFMT, "bin", &yasm_bin_LTX_objfmt);
  51. yasm_register_module(YASM_MODULE_OBJFMT, "elf", &yasm_elf_LTX_objfmt);
  52. yasm_register_module(YASM_MODULE_OBJFMT, "elf32", &yasm_elf32_LTX_objfmt);
  53. yasm_register_module(YASM_MODULE_OBJFMT, "elf64", &yasm_elf64_LTX_objfmt);
  54. yasm_register_module(YASM_MODULE_OBJFMT, "elfx32", &yasm_elfx32_LTX_objfmt);
  55. yasm_register_module(YASM_MODULE_OBJFMT, "coff", &yasm_coff_LTX_objfmt);
  56. yasm_register_module(YASM_MODULE_OBJFMT, "win32", &yasm_win32_LTX_objfmt);
  57. yasm_register_module(YASM_MODULE_OBJFMT, "win64", &yasm_win64_LTX_objfmt);
  58. yasm_register_module(YASM_MODULE_OBJFMT, "macho", &yasm_macho_LTX_objfmt);
  59. yasm_register_module(YASM_MODULE_OBJFMT, "macho32", &yasm_macho32_LTX_objfmt);
  60. yasm_register_module(YASM_MODULE_OBJFMT, "macho64", &yasm_macho64_LTX_objfmt);
  61. yasm_register_module(YASM_MODULE_OBJFMT, "rdf", &yasm_rdf_LTX_objfmt);
  62. yasm_register_module(YASM_MODULE_OBJFMT, "xdf", &yasm_xdf_LTX_objfmt);
  63. }
  64. void
  65. yasm_plugin_set_replace(const char* replace_params[], int size) {
  66. yasm_dwarf2_LTX_dbgfmt.replace_map = replace_params;
  67. yasm_dwarf2_LTX_dbgfmt.replace_map_size = size;
  68. yasm_elf_LTX_objfmt.replace_map = replace_params;
  69. yasm_elf_LTX_objfmt.replace_map_size = size;
  70. yasm_elf32_LTX_objfmt.replace_map = replace_params;
  71. yasm_elf32_LTX_objfmt.replace_map_size = size;
  72. yasm_elf64_LTX_objfmt.replace_map = replace_params;
  73. yasm_elf64_LTX_objfmt.replace_map_size = size;
  74. yasm_elfx32_LTX_objfmt.replace_map = replace_params;
  75. yasm_elfx32_LTX_objfmt.replace_map_size = size;
  76. yasm_macho_LTX_objfmt.replace_map = replace_params;
  77. yasm_macho_LTX_objfmt.replace_map_size = size;
  78. yasm_macho32_LTX_objfmt.replace_map = replace_params;
  79. yasm_macho32_LTX_objfmt.replace_map_size = size;
  80. yasm_macho64_LTX_objfmt.replace_map = replace_params;
  81. yasm_macho64_LTX_objfmt.replace_map_size = size;
  82. }