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