42 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
 | 
						|
 * See the copyright notice in the ACK home directory, in the file "Copyright".
 | 
						|
 */
 | 
						|
/* $Header$ */
 | 
						|
 | 
						|
#define ALLOEMIT	0			/* Section contents. */
 | 
						|
#define ALLORELO	(ALLOEMIT + MAXSECT)	/* Relocation table. */
 | 
						|
#define ALLOLOCL	(ALLORELO + 1)		/* Saved local names. */
 | 
						|
#define ALLOGLOB	(ALLOLOCL + 1)		/* Saved global names. */
 | 
						|
#define ALLOLCHR	(ALLOGLOB + 1)		/* Strings of local names. */
 | 
						|
#define ALLOGCHR	(ALLOLCHR + 1)		/* Strings of global names. */
 | 
						|
#ifdef SYMDEBUG
 | 
						|
#define ALLODBUG	(ALLOGCHR + 1)		/* Symbolic debugging info. */
 | 
						|
#else SYMDEBUG
 | 
						|
#define ALLODBUG	ALLOGCHR
 | 
						|
#endif SYMDEBUG
 | 
						|
#define ALLOSYMB	(ALLODBUG + 1)		/* Symbol table. */
 | 
						|
#define ALLOARCH	(ALLOSYMB + 1)		/* Archive positions. */
 | 
						|
#define ALLOMODL	(ALLOARCH + 1)		/* Modules. */
 | 
						|
#define ALLORANL	(ALLOMODL + 1)		/* Ranlib information. */
 | 
						|
#define NMEMS		(ALLORANL + 1)
 | 
						|
 | 
						|
#define BADOFF		((ind_t)-1)
 | 
						|
 | 
						|
typedef long		ind_t;
 | 
						|
 | 
						|
struct memory {
 | 
						|
	char	*mem_base;
 | 
						|
	ind_t	mem_full;
 | 
						|
	ind_t	mem_left;
 | 
						|
};
 | 
						|
extern struct memory	mems[];
 | 
						|
 | 
						|
#define address(piece,offset)	(mems[(piece)].mem_base+(offset))
 | 
						|
#define modulptr(offset)	(mems[ALLOMODL].mem_base+core_position+(offset))
 | 
						|
 | 
						|
#define int_align(sz)		(((sz)+(sizeof(int)-1))&~(sizeof(int)-1))
 | 
						|
 | 
						|
extern ind_t		core_position;
 | 
						|
extern ind_t		hard_alloc();
 | 
						|
extern ind_t		alloc();
 |