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