103 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef LIBM2_H
 | 
						|
#define LIBM2_H
 | 
						|
 | 
						|
#include <stdint.h>
 | 
						|
 | 
						|
struct array_descr
 | 
						|
{
 | 
						|
	int lbound;
 | 
						|
	int n_elts_min_one;
 | 
						|
	unsigned size;
 | 
						|
};
 | 
						|
 | 
						|
struct int_range_descr
 | 
						|
{
 | 
						|
	int low, high;
 | 
						|
};
 | 
						|
 | 
						|
struct uint_range_descr
 | 
						|
{
 | 
						|
	unsigned int low, high;
 | 
						|
};
 | 
						|
 | 
						|
struct long_range_descr
 | 
						|
{
 | 
						|
	long low, high;
 | 
						|
};
 | 
						|
 | 
						|
struct ulong_range_descr
 | 
						|
{
 | 
						|
	unsigned long low, high;
 | 
						|
};
 | 
						|
 | 
						|
struct stack_descr
 | 
						|
{
 | 
						|
	char* addr;
 | 
						|
	int low;
 | 
						|
	unsigned int highminlow;
 | 
						|
	unsigned int size;
 | 
						|
};
 | 
						|
 | 
						|
struct proc
 | 
						|
{
 | 
						|
	unsigned size; /* size of saved stackframe(s) */
 | 
						|
	int (*proc)(void); /* address of coroutine procedure */
 | 
						|
	char* brk; /* stack break of this coroutine */
 | 
						|
};
 | 
						|
 | 
						|
extern void (*handler)(int);
 | 
						|
extern char** argv;
 | 
						|
extern int argc;
 | 
						|
extern char* MainLB;
 | 
						|
 | 
						|
extern double absd(double i);
 | 
						|
extern int CallAtEnd(void (*p)(void));
 | 
						|
extern int absi(int i);
 | 
						|
extern int dvi(int j, int i);
 | 
						|
extern int rmi(int j, int i);
 | 
						|
extern int sigtrp(int trapno, int signo);
 | 
						|
extern int stackprio(unsigned n);
 | 
						|
extern int topsave(void* brkpos, struct proc* proc);
 | 
						|
extern long absl(long i);
 | 
						|
extern long dvil(long j, long i);
 | 
						|
extern long rmil(long j, long i);
 | 
						|
extern size_t new_stackptr(struct stack_descr* pdscr, int a);
 | 
						|
extern unsigned int topsize(void* brkpos);
 | 
						|
extern void SIG(void (*)(int));
 | 
						|
extern void StringAssign(int dstsiz, int srcsiz, register char* dstaddr, register char* srcaddr);
 | 
						|
extern void TRP(int trapno);
 | 
						|
extern void _Arguments_(void);
 | 
						|
extern void _SYSTEM__NEWPROCESS(int (*p)(void), struct proc* a, unsigned n, struct proc** p1);
 | 
						|
extern void _SYSTEM__TRANSFER(struct proc** a, struct proc** b);
 | 
						|
extern void _cleanup(void);
 | 
						|
extern void adduchk(unsigned a, unsigned b);
 | 
						|
extern void blockmove(size_t siz, char* dst, char* src);
 | 
						|
extern void cap(unsigned u);
 | 
						|
extern void catch (int trapno);
 | 
						|
extern void copy_array(char* pp, int a);
 | 
						|
extern void halt(void);
 | 
						|
extern void init(void);
 | 
						|
extern void killbss(void);
 | 
						|
extern void load(size_t siz, register char* addr, int p);
 | 
						|
extern void muluchk(unsigned a, unsigned b);
 | 
						|
extern void rcka(struct array_descr* descr, int indx);
 | 
						|
extern void rcki(struct int_range_descr* descr, int val);
 | 
						|
extern void rckil(struct long_range_descr* descr, long val);
 | 
						|
extern void rcku(struct uint_range_descr* descr, unsigned val);
 | 
						|
extern void rckul(struct ulong_range_descr* descr, unsigned long val);
 | 
						|
extern void store(size_t siz, register char* addr, int p);
 | 
						|
extern void subuchk(unsigned a, unsigned b);
 | 
						|
extern void topload(struct proc* proc);
 | 
						|
extern void unstackprio(unsigned n);
 | 
						|
 | 
						|
/* PROCEDURE Argv(argnum: CARDINAL; VAR argument: ARRAY OF CHAR): CARDINAL; */
 | 
						|
extern unsigned _Arguments__Argv(int n, char* argument, int l, unsigned int u, int s);
 | 
						|
 | 
						|
/* PROCEDURE GetEnv(name: ARRAY OF CHAR; VAR value: ARRAY OF CHAR): CARDINAL; */
 | 
						|
extern unsigned _Arguments__GetEnv(
 | 
						|
    char* name, int nn, unsigned int nu, int ns, char* value, int l, unsigned int u, int s);
 | 
						|
 | 
						|
/* PROCEDURE Message(str: ARRAY OF CHAR); */
 | 
						|
extern void _Traps__Message(char* str, int nn, unsigned int nu, int ns);
 | 
						|
 | 
						|
#endif
 |