/* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". */ /* $Id$ */ #ifndef __SCAN_H_INCLUDED__ #define __SCAN_H_INCLUDED__ #include "arch.h" /* * Offsets of the pieces of the input module in core. */ #define IND_HEAD ((ind_t)0) #define IND_SECT(x) (IND_HEAD + sizeof(struct outhead)) #define IND_NAME(x) (IND_SECT(x) + (x).oh_nsect * sizeof(struct outsect)) #define IND_CHAR(x) (IND_NAME(x) + (x).oh_nname * sizeof(struct outname)) #ifdef SYMDBUG #define OFF_DBUG(x) (OFF_CHAR(x) + (x).oh_nchar) #endif /* SYMDBUG */ extern void seek(long pos); extern void closefile(char* filename); extern void get_archive_header(struct ar_hdr* archive_header); extern void get_modul(void); extern void skip_modul(struct outhead* head); extern void startrelo(struct outhead* head); extern struct outrelo* nextrelo(void); extern char* getemit(struct outhead* head, struct outsect* sects, int sectindex); extern char* getblk(long totalsz, long* pblksz, int sectindex); extern void endemit(char* emit); /* * Open the file with name `filename' (if necessary) and examine the first * few bytes to see if it's a plain file or an archive. * In case of a plain file, the file pointer is repositioned after the * examination. Otherwise it is at the beginning of the table of contents. */ int getfile(char* filename); #endif /* __SCAN_H_INCLUDED__ */