ack/util/led/archive.h

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__ */