38 lines
1.1 KiB
C
38 lines
1.1 KiB
C
|
/*
|
||
|
* archive.h
|
||
|
*
|
||
|
* Created on: 2018-11-18
|
||
|
* Author: carl
|
||
|
*/
|
||
|
|
||
|
#ifndef __ARCHIVE_H_INCLUDED__
|
||
|
#define __ARCHIVE_H_INCLUDED__
|
||
|
|
||
|
/*
|
||
|
* Process archive with table of contents. The table of contents tells
|
||
|
* of symbols in which module they are defined. We scan the table for
|
||
|
* symbols that are known but not yet defined. Then we extract all necessary
|
||
|
* information from the corresponding module. This module may need symbols that
|
||
|
* were defined in modules located before this one in the archive, so we
|
||
|
* scan the table again. We perform these actions as long as new symbols
|
||
|
* are defined.
|
||
|
*/
|
||
|
void arch(void);
|
||
|
|
||
|
/*
|
||
|
* An archive member that will be loaded is remembered by storing its position
|
||
|
* in the archive into the table of positions.
|
||
|
*/
|
||
|
void notelib(long pos);
|
||
|
|
||
|
/*
|
||
|
* Process the archive in pass 2.
|
||
|
* We walk through the table of positions telling at what byte offset the
|
||
|
* archive header + module is located, until this position is ENDLIB, meaning
|
||
|
* that we've processed all needed modules in this archive. Each group of
|
||
|
* positions of an archive is terminated with ENDLIB.
|
||
|
*/
|
||
|
void arch2(void);
|
||
|
|
||
|
#endif /* __ARCHIVE_H_INCLUDED__ */
|