nasm/rdoff/doc/rdoff.texi
Yuri Zaporogets e0c059ab4e outrdf2.c now uses the same definitions of RDOFF2 format that RDOFF utils.
Export/import/common label size is increased from 33 to 64. Fixed the bug
that caused wrong behavior of rdfgetheaderrec() if label length was 32.
Changed error codes from numeric values to symbolic constants.
Moved some routines from rdfdump.c to rdoff.c. They will be utilized also
by rdfdisasm, which is being developed.
2004-09-15 06:54:34 +00:00

138 lines
3.4 KiB
Plaintext

\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 Zaporogets @email{yuriz@@ukr.net}
@author Julian Hall @email{jules@@dsf.org.uk}
@end titlepage
@ifinfo
Copyright @copyright{} 2002-2004 Netwide Assembler Project.
Written by Yuri Zaporogets @email{yuriz@@users.sf.net}
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