rdoff.texi 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. \input texinfo @c -*-texinfo-*-
  2. @c %**start of header
  3. @setfilename rdoff.info
  4. @settitle Relocatable Dynamic Object File Format (RDOFF)
  5. @afourpaper
  6. @c %**end of header
  7. @titlepage
  8. @title Relocatable Dynamic Object File Format (RDOFF)
  9. @author Yuri Zaporozhets @email{r_tty@@yahoo.co.uk}
  10. @author Julian Hall @email{jules@@dsf.org.uk}
  11. @end titlepage
  12. @ifinfo
  13. Copyright @copyright{} 2002-2015 Netwide Assembler Project.
  14. Written by Yuri Zaporozhets @email{r_tty@@yahoo.co.uk}
  15. Based on various sources and notes written by Julian Hall @email{jules@@dsf.org.uk}
  16. Distributed under GNU documentation license.
  17. @end ifinfo
  18. @ifnottex
  19. @node Top, Overview, (dir), (dir)
  20. @top RDOFF
  21. RDOFF is a Relocatable Dynamic Object File Format.
  22. @end ifnottex
  23. @menu
  24. * Overview:: Introduction.
  25. * Structure:: Structure of RDOFF file.
  26. * Utilities:: Description of RDOFF utilities.
  27. @end menu
  28. @node Overview
  29. @chapter Introduction
  30. RDOFF was designed initially to test the object-file production
  31. interface to NASM. It soon became apparent that it could be enhanced
  32. for use in serious applications due to its simplicity; code to load
  33. and execute an RDOFF object module is very simple. It also contains
  34. enhancements to allow it to be linked with a dynamic link library at
  35. either run- or load- time, depending on how complex you wish to make
  36. your loader.
  37. @node Structure
  38. @chapter Structure of RDOFF file
  39. RDOFF module consists of three parts:
  40. @itemize
  41. @item Master header
  42. @item Header (may be omited)
  43. @item Sections
  44. @end itemize
  45. @dfn{Master header} contains signature, version and size information.
  46. @dfn{Header} consists of zero or more @ref{Records, records}.
  47. @dfn{Sections} represent actual contents of the file. Each section is prepended
  48. by a section header.
  49. @node Records, , ,Structure
  50. @section Records that may appear in RDOFF header
  51. @menu
  52. * Relocation:: Relocation records.
  53. * Import:: Declaring external symbols.
  54. * Export:: Declaring public and exported symbols.
  55. * DLL:: Specifying a run-time library name.
  56. * BSS:: Reserving space in BSS section.
  57. * Segment relocation:: Complexity of relocation in segmented systems.
  58. * Far import:: External 'far' symbols.
  59. * Module name:: Specifying module name.
  60. * Common variable:: Declaring common variables.
  61. * Generic record:: Embedding general-purpose data into the header.
  62. @end menu
  63. @node Relocation
  64. @subsection Relocation records
  65. @node Import
  66. @subsection Declaring external and imported symbols
  67. @node Export
  68. @subsection Declaring public and exported symbols
  69. @node DLL
  70. @subsection Specifying a run-time library name
  71. @node BSS
  72. @subsection Reserving space in BSS section
  73. @node Segment relocation
  74. @subsection Complexity of relocation in segmented systems
  75. @node Far import
  76. @subsection External 'far' symbols.
  77. @node Module name
  78. @subsection Specifying module name.
  79. @node Common variable
  80. @subsection Declaring common variables.
  81. @node Generic record
  82. @subsection Embedding general-purpose data into the header.
  83. @node Utilities
  84. @chapter RDOFF utilities
  85. @menu
  86. * rdfdump:: Dump the contents of RDOFF file.
  87. * ldrdf:: RDOFF linker.
  88. * rdflib:: RDOFF librarian.
  89. * rdlar:: New RDOFF librarian/archiver.
  90. * rdx:: Load and execute RDOFF module.
  91. @end menu
  92. @node rdfdump
  93. @section @command{rdfdump} - dump the contents of RDOFF file
  94. @node ldrdf
  95. @section @command{ldrdf} - RDOFF linker
  96. @node rdflib
  97. @section @command{rdflib} - RDOFF librarian
  98. @node rdlar
  99. @section @command{rdlar} - new RDOFF librarian/archiver
  100. @node rdx
  101. @section @command{rdx} - load and execute RDOFF module
  102. @bye