1987-03-09 19:15:41 +00:00
|
|
|
/*
|
|
|
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
|
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
|
|
*/
|
1994-06-24 11:31:16 +00:00
|
|
|
/* $Id$ */
|
1985-01-10 13:35:39 +00:00
|
|
|
|
2019-03-24 09:08:45 +00:00
|
|
|
#ifndef __SCAN_H_INCLUDED__
|
|
|
|
#define __SCAN_H_INCLUDED__
|
|
|
|
|
|
|
|
#include "arch.h"
|
|
|
|
|
1985-01-10 13:35:39 +00:00
|
|
|
/*
|
|
|
|
* 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)
|
1991-12-17 15:49:18 +00:00
|
|
|
#endif /* SYMDBUG */
|
2017-08-06 09:58:36 +00:00
|
|
|
|
|
|
|
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);
|
2018-11-12 03:51:17 +00:00
|
|
|
extern char* getemit(struct outhead* head, struct outsect* sects, int sectindex);
|
|
|
|
extern char* getblk(long totalsz, long* pblksz, int sectindex);
|
2017-08-06 09:58:36 +00:00
|
|
|
extern void endemit(char* emit);
|
2019-03-24 09:08:45 +00:00
|
|
|
/*
|
|
|
|
* 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__ */
|