summaryrefslogtreecommitdiff
path: root/Build/source/utils/xml2pmx/xml2pmx-src/obx.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/xml2pmx/xml2pmx-src/obx.h')
-rw-r--r--Build/source/utils/xml2pmx/xml2pmx-src/obx.h361
1 files changed, 0 insertions, 361 deletions
diff --git a/Build/source/utils/xml2pmx/xml2pmx-src/obx.h b/Build/source/utils/xml2pmx/xml2pmx-src/obx.h
deleted file mode 100644
index 7af9058f495..00000000000
--- a/Build/source/utils/xml2pmx/xml2pmx-src/obx.h
+++ /dev/null
@@ -1,361 +0,0 @@
-/*
- * obx.h
- *
- * This file is part of the Oxford Oberon-2 compiler
- * Copyright (c) 2006--2016 J. M. Spivey
- * All rights reserved
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _OBX_H
-#define _OBX_H 1
-
-#ifdef TRACE
-#define DEBUG 1
-#endif
-
-#include "config.h"
-#include <stdio.h>
-#include "obcommon.h"
-
-#define SLIMIT 256 /* Min stack space space left (bytes) */
-
-typedef union value value;
-
-typedef value *primitive(value *sp);
-
-typedef uint32_t word;
-typedef uintptr_t ptrtype;
-
-union value {
- int i;
- float f;
- word a;
-};
-
-#define valptr(v) ptrcast(value, (v).a)
-#define pointer(v) ptrcast(void, (v).a)
-
-#ifdef SEGMEM
-
-#define SEGBITS 20
-#define SEGMENT (1 << SEGBITS)
-#define SEGMASK ((1 << SEGBITS)-1)
-#define NSEGMENTS 4096
-
-#define stkaddr(p) (stack_vbase + ((uchar *) (p) - stack))
-#define dsegaddr(p) (data_vbase + ((uchar *) (p) - dmem))
-#define ptrcast(t, a) ((t *) physmap(a))
-
-extern void *segmap[];
-EXTERN word stack_vbase, data_vbase;
-
-#define physmap(a) \
- ((void *) ((char *) segmap[(a) >> SEGBITS] + ((a) & SEGMASK)))
-
-/*
-static inline void *physmap(unsigned a) {
- return (char *) segmap[a >> SEGBITS] + (a & SEGMASK);
-}
-*/
-
-#else
-
-#define pun_memory(p) ((word) (ptrtype) (p))
-#define stkaddr(p) pun_memory(p)
-#define dsegaddr(p) pun_memory(p)
-#define ptrcast(t, a) ((t *) (ptrtype) (a))
-
-#endif
-
-#define codeaddr(p) ((p) - imem)
-#define codeptr(v) (imem + (v))
-
-typedef struct _proc *proc;
-typedef struct _module *module;
-typedef struct _arc *arc;
-
-#ifdef PROFILE
-typedef uint64_t counter;
-#endif
-
-struct _proc {
- const char *p_name; /* Procedure name */
- word p_addr; /* Address of descriptor in data space */
-#ifdef PROFILE
- int p_index; /* Position in listing */
- unsigned p_calls; /* Call count */
- unsigned p_rec; /* Call count for recursion */
- counter p_self; /* Tick count for self */
- counter p_child; /* Tick count for children */
- arc p_parents; /* List of callers */
- arc p_children; /* List of procs we call */
-#endif
-};
-
-struct _module {
- char *m_name; /* Layout must match proc */
- word m_addr;
- int m_length;
-#ifdef PROFILE
- int m_nlines;
- unsigned *m_lcount;
-#endif
-};
-
-
-/* Global variables */
-EXTERN uchar *imem, *dmem; /* Instruction and data memory arrays */
-EXTERN uchar *stack; /* Program stack */
-EXTERN int code_size; /* Size of program code */
-EXTERN int stack_size; /* Size of main stack */
-EXTERN char *libpath; /* Path to dynamic library */
-EXTERN value *entry; /* Program entry point */
-EXTERN value *gcmap; /* Global pointer map */
-EXTERN word interpreter, dyntrap;
-#ifdef USE_FFI
-EXTERN word dynstub;
-#endif
-
-#define interpreted(p) ((p)[CP_PRIM].a == interpreter)
-
-#ifndef M64X32
-#define primcall(p, sp) ((primitive *) p[CP_PRIM].a)(sp)
-#else
-#ifdef JIT
-#define primcall(p, sp) (ptrcast(primitive, p[CP_PRIM].a))(sp)
-#else
-#define primcall(p, sp) (*ptrcast(primitive *, p[CP_PRIM].a))(sp)
-#endif
-#endif
-
-#define get1(p) ((int) ((signed char) (p)[0]))
-#define get2(p) ((int) ((short) (((p)[1]<<8) + (p)[0])))
-
-EXTERN int nmods, nprocs, nsyms;
-EXTERN module *modtab;
-EXTERN proc *proctab;
-
-extern struct primdef {
- char *p_name;
- primitive *p_prim;
-} primtab[];
-
-EXTERN int level; /* Recursion level in bytecode interp. */
-#ifdef OBXDEB
-EXTERN value *prim_bp; /* Base pointer during primitive call */
-#endif
-
-EXTERN int dflag;
-EXTERN mybool gflag;
-#ifdef PROFILE
-EXTERN mybool lflag;
-#endif
-#ifdef TRACE
-EXTERN int qflag;
-#endif
-#ifdef OBXDEB
-EXTERN char *debug_socket;
-#endif
-
-
-/* profile.c */
-#ifdef PROFILE
-void prof_enter(word p, counter ticks, int why);
-void prof_exit(word p, counter ticks);
-void prof_init(void);
-void prof_reset(proc p);
-void profile(FILE *fp);
-
-#define PROF_CALL 1
-#define PROF_TAIL 2
-#define PROF_PRIM 3
-#endif
-
-/* interp.c */
-primitive interp, dltrap, dlstub;
-
-/* xmain.c */
-EXTERN int saved_argc;
-EXTERN char **saved_argv;
-
-void xmain_exit(int status);
-void error_exit(int status);
-
-/* support.c */
-int ob_div(int a, int b);
-int ob_mod(int a, int b);
-
-void int_div(value *sp);
-void int_mod(value *sp);
-
-void long_add(value *sp);
-void long_sub(value *sp);
-void long_mul(value *sp);
-void long_div(value *sp);
-void long_mod(value *sp);
-void long_neg(value *sp);
-void long_cmp(value *sp);
-void long_flo(value *sp);
-void long_ext(value *sp);
-void long_zcheck(value *sp);
-
-void flo_add(value *sp);
-void flo_sub(value *sp);
-void flo_mul(value *sp);
-void flo_div(value *sp);
-void flo_neg(value *sp);
-void flo_float(value *sp);
-void flo_fix(value *sp);
-void flo_cmpl(value *sp);
-void flo_cmpg(value *sp);
-void flo_trunc(value *sp);
-void dbl_add(value *sp);
-void dbl_sub(value *sp);
-void dbl_mul(value *sp);
-void dbl_div(value *sp);
-void dbl_neg(value *sp);
-void dbl_float(value *sp);
-void dbl_fix(value *sp);
-void dbl_cmpl(value *sp);
-void dbl_cmpg(value *sp);
-void dbl_widen(value *sp);
-void flo_zcheck(value *sp);
-void dbl_zcheck(value *sp);
-
-word wrap_prim(primitive *prim);
-
-/* load_file -- load a file of object code */
-void load_file(FILE *bfp);
-void load_image(void);
-
-void make_module(char *name, word addr, int chsum, int nlines);
-void make_proc(char *name, word addr);
-void make_symbol(const char *kind, char *name, word addr);
-void fix_sizes(int dseg);
-
-void panic(const char *, ...);
-void obcopy(char *dst, int dlen, const char *src, int slen, value *bp);
-
-void error_stop(const char *msg, int val, int line, value *bp, uchar *pc);
-void runtime_error(int num, int line, value *bp, uchar *pc);
-void rterror(int num, int line, value *bp);
-void stkoflo(value *bp);
-#define liberror(msg) error_stop(msg, 0, 0, bp, NULL)
-
-proc find_symbol(word p, proc *table, int nelem);
-#define find_proc(cp) find_symbol(cp, proctab, nprocs)
-#define find_module(cp) ((module) find_symbol(cp, (proc *) modtab, nmods))
-
-#ifdef TRACE
-char *fmt_inst(uchar *pc);
-void dump(void);
-const char *prim_name(value *p);
-#endif
-
-#ifdef UNALIGNED_MEM
-#define get_double(v) (* (double *) (v))
-#define put_double(v, x) (* (double *) (v) = (x))
-#define get_long(v) (* (longint *) (v))
-#define put_long(v, x) (* (longint *) (v) = (x))
-#else
-double get_double(value *v);
-void put_double(value *v, double x);
-longint get_long(value *v);
-void put_long(value *v, longint w);
-#endif
-
-double flo_conv(int);
-double flo_convq(longint);
-
-
-/* gc.c */
-
-/* scratch_alloc -- allocate memory that will not be freed */
-void *scratch_alloc(unsigned bytes);
-
-#ifdef USE_BOEHM
-/* scratch_alloc_atomic -- allocate memory that will not contain pointers */
-void *scratch_alloc_atomic(unsigned bytes);
-#else
-#define scratch_alloc_atomic(bytes) scratch_alloc(bytes)
-#endif
-
-#ifdef SEGMEM
-
-word virtual_alloc(unsigned bytes);
-word map_segment(void *base, unsigned length);
-#define virtual_alloc_atomic(bytes) virtual_alloc(bytes)
-
-#else
-
-#define virtual_alloc(bytes) pun_memory(scratch_alloc(bytes))
-#define virtual_alloc_atomic(bytes) pun_memory(scratch_alloc_atomic(bytes))
-
-#endif
-
-/* gc_alloc -- allocate an object on the managed heap */
-word gc_alloc(unsigned size, value *sp);
-
-/* gc_collect -- run the garbage collector */
-value *gc_collect(value *sp);
-
-/* gc_heap_size -- return size of heap */
-int gc_heap_size(void);
-
-extern mybool gcflag;
-void gc_init(void);
-void gc_dump(void);
-
-/* debug.c */
-#ifdef OBXDEB
-extern mybool one_shot;
-extern mybool intflag;
-
-void debug_init(void);
-void debug_message(char *fmt, ...);
-void debug_break(value *cp, value *bp, uchar *pc, char *fmt, ...);
-#endif
-
-/* jit.c */
-#ifdef JIT
-void jit_compile(value *cp);
-value *jit_trap(value *cp);
-#endif
-
-#ifdef __cplusplus
-#define PRIMDEF extern "C"
-#else
-#define PRIMDEF
-#endif
-
-#ifdef NEED_FPINIT
-/* On x86, each primitive re-initialises the FP unit, so that values
- left behind in registers by the caller do not cause stack overflow. */
-#define FPINIT asm ("fninit")
-#else
-#define FPINIT
-#endif
-
-#endif