From 5a2aceb681fabdc8494594a61ce7d873189d3e95 Mon Sep 17 00:00:00 2001 From: Norayr Chilingarian Date: Mon, 9 Feb 2015 19:53:12 +0400 Subject: [PATCH] finished removing unnecessary architecture files -- noch Former-commit-id: aaa2ee2288cdaa0c7d4653e5f5d4cc4fcd49e0df --- makefile | 33 +- makefile.linux.gcc.x86 | 36 +- makefile.linux.gcc.x86_64 | 33 +- src/lib/system/linux/clang/armv6j/SYSTEM.c0 | 205 -------- src/lib/system/linux/clang/armv6j/SYSTEM.h | 215 --------- src/lib/system/linux/clang/armv6j/Unix.Mod | 441 ------------------ .../linux/clang/armv7a_hardfp/SYSTEM.c0 | 205 -------- .../system/linux/clang/armv7a_hardfp/SYSTEM.h | 215 --------- .../system/linux/clang/armv7a_hardfp/Unix.Mod | 441 ------------------ src/lib/system/linux/gcc/armv6j/SYSTEM.c0 | 205 -------- src/lib/system/linux/gcc/armv6j/SYSTEM.h | 215 --------- src/lib/system/linux/gcc/armv6j/Unix.Mod | 441 ------------------ .../system/linux/gcc/armv7a_hardfp/SYSTEM.c0 | 205 -------- .../system/linux/gcc/armv7a_hardfp/SYSTEM.h | 215 --------- .../system/linux/gcc/armv7a_hardfp/Unix.Mod | 441 ------------------ voc.REMOVED.git-id | 2 +- vocstatic.linux.clang.x86_64.REMOVED.git-id | 2 +- vocstatic.linux.gcc.x86_64.REMOVED.git-id | 2 +- 18 files changed, 53 insertions(+), 3499 deletions(-) delete mode 100644 src/lib/system/linux/clang/armv6j/SYSTEM.c0 delete mode 100644 src/lib/system/linux/clang/armv6j/SYSTEM.h delete mode 100644 src/lib/system/linux/clang/armv6j/Unix.Mod delete mode 100644 src/lib/system/linux/clang/armv7a_hardfp/SYSTEM.c0 delete mode 100644 src/lib/system/linux/clang/armv7a_hardfp/SYSTEM.h delete mode 100644 src/lib/system/linux/clang/armv7a_hardfp/Unix.Mod delete mode 100644 src/lib/system/linux/gcc/armv6j/SYSTEM.c0 delete mode 100644 src/lib/system/linux/gcc/armv6j/SYSTEM.h delete mode 100644 src/lib/system/linux/gcc/armv6j/Unix.Mod delete mode 100644 src/lib/system/linux/gcc/armv7a_hardfp/SYSTEM.c0 delete mode 100644 src/lib/system/linux/gcc/armv7a_hardfp/SYSTEM.h delete mode 100644 src/lib/system/linux/gcc/armv7a_hardfp/Unix.Mod diff --git a/makefile b/makefile index 52aa32a1..68c343ba 100644 --- a/makefile +++ b/makefile @@ -75,24 +75,24 @@ stage2: stage3: $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPSF Args.Mod Console.Mod Unix.Mod + $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod - $(VOCSTATIC0) -sPSF prf.Mod - $(VOCSTATIC0) -sPSF Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod - $(VOCSTATIC0) -sxPSF Files0.Mod - $(VOCSTATIC0) -sPSF Reals.Mod Texts0.Mod - $(VOCSTATIC0) -sPSF vt100.Mod + $(VOCSTATIC0) -sPFS prf.Mod + $(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod + $(VOCSTATIC0) -sxPFS Files0.Mod + $(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod + $(VOCSTATIC0) -sPFS vt100.Mod # build the compiler stage4: - $(VOCSTATIC0) -sPSF errors.Mod - $(VOCSTATIC0) -sPSF extTools.Mod - $(VOCSTATIC0) -sPSF OPM.cmdln.Mod - $(VOCSTATIC0) -sxPSF OPS.Mod - $(VOCSTATIC0) -sPSF OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod - $(VOCSTATIC0) -smPSF voc.Mod - $(VOCSTATIC0) -smPSF BrowserCmd.Mod - $(VOCSTATIC0) -smPSF OCatCmd.Mod + $(VOCSTATIC0) -sPFS errors.Mod + $(VOCSTATIC0) -sPFS extTools.Mod + $(VOCSTATIC0) -sPFS OPM.cmdln.Mod + $(VOCSTATIC0) -sxPFS OPS.Mod + $(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod + $(VOCSTATIC0) -smPS voc.Mod + $(VOCSTATIC0) -smPS BrowserCmd.Mod + $(VOCSTATIC0) -smPS OCatCmd.Mod #this is to build the compiler from C sources. #this is a way to create a bootstrap binary. @@ -124,7 +124,7 @@ stage6: $(VOCSTATIC) -sPF Strings.Mod $(VOCSTATIC) -sPF Sets.Mod $(VOCSTATIC) -sPF Sets0.Mod - $(VOCSTATIC) -sPF Oberon.Mod + $(VOCSTATIC) -sPF Oberon.Mod #ooc libs $(VOCSTATIC) -sPF oocAscii.Mod @@ -248,9 +248,8 @@ stage6: $(VOCSTATIC) -sPF ethGZWriters.Mod $(VOCSTATIC) -sPF ethUnicode.Mod - # build remaining tools -# $(VOCSTATIC0) -sPS compatIn.Mod +# $(VOCSTATIC0) -sPFS compatIn.Mod # $(VOCSTATIC0) -smPS vmake.Mod # $(CC) compatIn.c # $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o Texts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o diff --git a/makefile.linux.gcc.x86 b/makefile.linux.gcc.x86 index 3a777031..9e0c8e8b 100644 --- a/makefile.linux.gcc.x86 +++ b/makefile.linux.gcc.x86 @@ -75,24 +75,24 @@ stage2: stage3: $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPSF Args.Mod Console.Mod Unix.Mod + $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod - $(VOCSTATIC0) -sPSF prf.Mod - $(VOCSTATIC0) -sPSF Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod - $(VOCSTATIC0) -sxPSF Files0.Mod - $(VOCSTATIC0) -sPSF Reals.Mod Texts0.Mod - $(VOCSTATIC0) -sPSF vt100.Mod + $(VOCSTATIC0) -sPFS prf.Mod + $(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod + $(VOCSTATIC0) -sxPFS Files0.Mod + $(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod + $(VOCSTATIC0) -sPFS vt100.Mod # build the compiler stage4: - $(VOCSTATIC0) -sPSF errors.Mod - $(VOCSTATIC0) -sPSF extTools.Mod - $(VOCSTATIC0) -sPSF OPM.cmdln.Mod - $(VOCSTATIC0) -sxPSF OPS.Mod - $(VOCSTATIC0) -sPSF OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod - $(VOCSTATIC0) -smPSF voc.Mod - $(VOCSTATIC0) -smPSF BrowserCmd.Mod - $(VOCSTATIC0) -smPSF OCatCmd.Mod + $(VOCSTATIC0) -sPFS errors.Mod + $(VOCSTATIC0) -sPFS extTools.Mod + $(VOCSTATIC0) -sPFS OPM.cmdln.Mod + $(VOCSTATIC0) -sxPFS OPS.Mod + $(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod + $(VOCSTATIC0) -smPS voc.Mod + $(VOCSTATIC0) -smPS BrowserCmd.Mod + $(VOCSTATIC0) -smPS OCatCmd.Mod #this is to build the compiler from C sources. #this is a way to create a bootstrap binary. @@ -124,7 +124,7 @@ stage6: $(VOCSTATIC) -sPF Strings.Mod $(VOCSTATIC) -sPF Sets.Mod $(VOCSTATIC) -sPF Sets0.Mod - $(VOCSTATIC) -sPF Oberon.Mod + $(VOCSTATIC) -sPF Oberon.Mod #ooc libs $(VOCSTATIC) -sPF oocAscii.Mod @@ -137,7 +137,7 @@ stage6: $(VOCSTATIC) -sPF oocIntStr.Mod $(VOCSTATIC) -sPF oocSysClock.Mod $(VOCSTATIC) -sPF oocTime.Mod -# $(VOCSTATIC) -sPF oocLongStrings.Mod +# $(VOCSTATIC) -s oocLongStrings.Mod # $(CC) oocLongStrings.c # $(VOCSTATIC) -s oocMsg.Mod # $(CC) oocMsg.c @@ -221,7 +221,7 @@ stage6: $(VOCSTATIC) -sPF ulmConclusions.Mod $(VOCSTATIC) -sPF ulmRandomGenerators.Mod $(VOCSTATIC) -sPF ulmTCrypt.Mod - $(VOCSTATIC) -sPF ulmIntOperations.Mod + $(VOCSTATIC) -sPF ulmIntOperations.Mod #pow32 libs $(VOCSTATIC) -sPF powStrings.Mod @@ -249,7 +249,7 @@ stage6: $(VOCSTATIC) -sPF ethUnicode.Mod # build remaining tools -# $(VOCSTATIC0) -sPS compatIn.Mod +# $(VOCSTATIC0) -sPFS compatIn.Mod # $(VOCSTATIC0) -smPS vmake.Mod # $(CC) compatIn.c # $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o Texts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o diff --git a/makefile.linux.gcc.x86_64 b/makefile.linux.gcc.x86_64 index 52aa32a1..68c343ba 100644 --- a/makefile.linux.gcc.x86_64 +++ b/makefile.linux.gcc.x86_64 @@ -75,24 +75,24 @@ stage2: stage3: $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPSF Args.Mod Console.Mod Unix.Mod + $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod - $(VOCSTATIC0) -sPSF prf.Mod - $(VOCSTATIC0) -sPSF Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod - $(VOCSTATIC0) -sxPSF Files0.Mod - $(VOCSTATIC0) -sPSF Reals.Mod Texts0.Mod - $(VOCSTATIC0) -sPSF vt100.Mod + $(VOCSTATIC0) -sPFS prf.Mod + $(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod + $(VOCSTATIC0) -sxPFS Files0.Mod + $(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod + $(VOCSTATIC0) -sPFS vt100.Mod # build the compiler stage4: - $(VOCSTATIC0) -sPSF errors.Mod - $(VOCSTATIC0) -sPSF extTools.Mod - $(VOCSTATIC0) -sPSF OPM.cmdln.Mod - $(VOCSTATIC0) -sxPSF OPS.Mod - $(VOCSTATIC0) -sPSF OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod - $(VOCSTATIC0) -smPSF voc.Mod - $(VOCSTATIC0) -smPSF BrowserCmd.Mod - $(VOCSTATIC0) -smPSF OCatCmd.Mod + $(VOCSTATIC0) -sPFS errors.Mod + $(VOCSTATIC0) -sPFS extTools.Mod + $(VOCSTATIC0) -sPFS OPM.cmdln.Mod + $(VOCSTATIC0) -sxPFS OPS.Mod + $(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod + $(VOCSTATIC0) -smPS voc.Mod + $(VOCSTATIC0) -smPS BrowserCmd.Mod + $(VOCSTATIC0) -smPS OCatCmd.Mod #this is to build the compiler from C sources. #this is a way to create a bootstrap binary. @@ -124,7 +124,7 @@ stage6: $(VOCSTATIC) -sPF Strings.Mod $(VOCSTATIC) -sPF Sets.Mod $(VOCSTATIC) -sPF Sets0.Mod - $(VOCSTATIC) -sPF Oberon.Mod + $(VOCSTATIC) -sPF Oberon.Mod #ooc libs $(VOCSTATIC) -sPF oocAscii.Mod @@ -248,9 +248,8 @@ stage6: $(VOCSTATIC) -sPF ethGZWriters.Mod $(VOCSTATIC) -sPF ethUnicode.Mod - # build remaining tools -# $(VOCSTATIC0) -sPS compatIn.Mod +# $(VOCSTATIC0) -sPFS compatIn.Mod # $(VOCSTATIC0) -smPS vmake.Mod # $(CC) compatIn.c # $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o Texts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o diff --git a/src/lib/system/linux/clang/armv6j/SYSTEM.c0 b/src/lib/system/linux/clang/armv6j/SYSTEM.c0 deleted file mode 100644 index a5599acc..00000000 --- a/src/lib/system/linux/clang/armv6j/SYSTEM.c0 +++ /dev/null @@ -1,205 +0,0 @@ -/* -* The body prefix file of the Ofront runtime system, Version 1.0 -* -* Copyright (c) Software Templ, 1994, 1995 -* -* Module SYSTEM is subject to change any time without prior notification. -* Software Templ disclaims all warranties with regard to module SYSTEM, -* in particular shall Software Templ not be liable for any damage resulting -* from inappropriate use or modification of module SYSTEM. -* -* Version 1.1 jt, 24.11.95 fixes for correct pointer arithmetic on Cray computers -* jt 31.1.2007 ANSI prototypes for malloc and exit in order to avoid cc warnings -* -*/ - -#include "SYSTEM.h" -#ifdef __STDC__ -#include "stdarg.h" -#else -#include "varargs.h" -#endif - -extern void *malloc(unsigned int size); -extern void exit(int status); - -void (*SYSTEM_Halt)(); -LONGINT SYSTEM_halt; /* x in HALT(x) */ -LONGINT SYSTEM_assert; /* x in ASSERT(cond, x) */ -LONGINT SYSTEM_argc; -LONGINT SYSTEM_argv; -LONGINT SYSTEM_lock; -BOOLEAN SYSTEM_interrupted; -static LONGINT SYSTEM_mainfrm; /* adr of main proc stack frame, used for stack collection */ - -#define Lock SYSTEM_lock++ -#define Unlock SYSTEM_lock--; if (SYSTEM_interrupted && (SYSTEM_lock == 0)) __HALT(-9) - - -static void SYSTEM_InitHeap(); -void *SYSTEM__init(); - -void SYSTEM_INIT(argc, argvadr) - int argc; long argvadr; -{ - SYSTEM_mainfrm = argvadr; - SYSTEM_argc = argc; - SYSTEM_argv = *(long*)argvadr; - SYSTEM_InitHeap(); - SYSTEM_halt = -128; - SYSTEM__init(); -} - -void SYSTEM_FINI() -{ - SYSTEM_FINALL(); -} - -long SYSTEM_XCHK(i, ub) long i, ub; {return __X(i, ub);} -long SYSTEM_RCHK(i, ub) long i, ub; {return __R(i, ub);} -long SYSTEM_ASH(i, n) long i, n; {return __ASH(i, n);} -long SYSTEM_ABS(i) long i; {return __ABS(i);} -double SYSTEM_ABSD(i) double i; {return __ABS(i);} - -void SYSTEM_INHERIT(t, t0) - long *t, *t0; -{ - t -= __TPROC0OFF; - t0 -= __TPROC0OFF; - while (*t0 != __EOM) {*t = *t0; t--; t0--;} -} - -void SYSTEM_ENUMP(adr, n, P) - long *adr; - long n; - void (*P)(); -{ - while (n > 0) {P(*adr); adr++; n--;} -} - -void SYSTEM_ENUMR(adr, typ, size, n, P) - char *adr; - long *typ, size, n; - void (*P)(); -{ - long *t, off; - typ++; - while (n > 0) { - t = typ; - off = *t; - while (off >= 0) {P(*(long*)(adr+off)); t++; off = *t;} - adr += size; n--; - } -} - -long SYSTEM_DIV(x, y) - unsigned long x, y; -{ if ((long) x >= 0) return (x / y); - else return -((y - 1 - x) / y); -} - -long SYSTEM_MOD(x, y) - unsigned long x, y; -{ unsigned long m; - if ((long) x >= 0) return (x % y); - else { m = (-x) % y; - if (m != 0) return (y - m); else return 0; - } -} - -long SYSTEM_ENTIER(x) - double x; -{ - long y; - if (x >= 0) - return (long)x; - else { - y = (long)x; - if (y <= x) return y; else return y - 1; - } -} - -void SYSTEM_HALT(n) - int n; -{ - SYSTEM_halt = n; - if (SYSTEM_Halt!=0) SYSTEM_Halt(n); - exit(n); -} - -#ifdef __STDC__ -SYSTEM_PTR SYSTEM_NEWARR(long *typ, long elemsz, int elemalgn, int nofdim, int nofdyn, ...) -#else -SYSTEM_PTR SYSTEM_NEWARR(typ, elemsz, elemalgn, nofdim, nofdyn, va_alist) - long *typ, elemsz; - int elemalgn, nofdim, nofdyn; - va_dcl -#endif -{ - long nofelems, size, dataoff, n, nptr, *x, *p, nofptrs, i, *ptab, off; - va_list ap; -#ifdef __STDC__ - va_start(ap, nofdyn); -#else - va_start(ap); -#endif - nofelems = 1; - while (nofdim > 0) { - nofelems = nofelems * va_arg(ap, long); nofdim--; - if (nofelems <= 0) __HALT(-20); - } - va_end(ap); - dataoff = nofdyn * sizeof(long); - if (elemalgn > sizeof(long)) { - n = dataoff % elemalgn; - if (n != 0) dataoff += elemalgn - n; - } - size = dataoff + nofelems * elemsz; - Lock; - if (typ == NIL) { - /* element typ does not contain pointers */ - x = SYSTEM_NEWBLK(size); - } - else if (typ == POINTER__typ) { - /* element type is a pointer */ - x = SYSTEM_NEWBLK(size + nofelems * sizeof(long)); - p = (long*)x[-1]; - p[-nofelems] = *p; /* build new type desc in situ: 1. copy block size; 2. setup ptr tab; 3. set sentinel; 4. patch tag */ - p -= nofelems - 1; n = 1; /* n =1 for skipping the size field */ - while (n <= nofelems) {*p = n*sizeof(long); p++; n++;} - *p = - (nofelems + 1) * sizeof(long); /* sentinel */ - x[-1] -= nofelems * sizeof(long); - } - else { - /* element type is a record that contains pointers */ - ptab = typ + 1; nofptrs = 0; - while (ptab[nofptrs] >= 0) {nofptrs++;} /* number of pointers per element */ - nptr = nofelems * nofptrs; /* total number of pointers */ - x = SYSTEM_NEWBLK(size + nptr * sizeof(long)); - p = (long*)x[- 1]; - p[-nptr] = *p; /* build new type desc in situ; 1. copy block size; 2. setup ptr tab; 3. set sentinel; 4. patch tag */ - p -= nptr - 1; n = 0; off = dataoff; - while (n < nofelems) {i = 0; - while (i < nofptrs) {*p = off + ptab[i]; p++; i++;} - off += elemsz; n++; - } - *p = - (nptr + 1) * sizeof(long); /* sentinel */ - x[-1] -= nptr * sizeof(long); - } - if (nofdyn != 0) { - /* setup len vector for index checks */ -#ifdef __STDC__ - va_start(ap, nofdyn); -#else - va_start(ap); -#endif - p = x; - while (nofdyn > 0) {*p = va_arg(ap, long); p++, nofdyn--;} - va_end(ap); - } - Unlock; - return x; -} - -/* ----------- end of SYSTEM.co ------------- */ - diff --git a/src/lib/system/linux/clang/armv6j/SYSTEM.h b/src/lib/system/linux/clang/armv6j/SYSTEM.h deleted file mode 100644 index 0c7b19af..00000000 --- a/src/lib/system/linux/clang/armv6j/SYSTEM.h +++ /dev/null @@ -1,215 +0,0 @@ -#ifndef SYSTEM__h -#define SYSTEM__h - -/* - -the Ofront runtime system interface and macros library -copyright (c) Josef Templ, 1995, 1996 - -gcc for Linux version (same as SPARC/Solaris2) -uses double # as concatenation operator - -*/ - -#include - -//extern void *memcpy(void *dest, const void *src, long n); -extern void *memcpy(void *dest, const void *src, size_t n); -extern void *malloc(unsigned int size); -extern void exit(int status); - -#define export -#define import extern - -/* constants */ -#define __MAXEXT 16 -#define NIL 0L -#define POINTER__typ (long*)1L /* not NIL and not a valid type */ - -/* basic types */ -typedef char BOOLEAN; -typedef unsigned char CHAR; -typedef signed char SHORTINT; -typedef short int INTEGER; -typedef long LONGINT; -typedef float REAL; -typedef double LONGREAL; -typedef unsigned long SET; -typedef void *SYSTEM_PTR; -typedef unsigned char SYSTEM_BYTE; - -/* runtime system routines */ -extern long SYSTEM_DIV(); -extern long SYSTEM_MOD(); -extern long SYSTEM_ENTIER(); -extern long SYSTEM_ASH(); -extern long SYSTEM_ABS(); -extern long SYSTEM_XCHK(); -extern long SYSTEM_RCHK(); -extern double SYSTEM_ABSD(); -extern SYSTEM_PTR SYSTEM_NEWREC(); -extern SYSTEM_PTR SYSTEM_NEWBLK(); -#ifdef __STDC__ -extern SYSTEM_PTR SYSTEM_NEWARR(long*, long, int, int, int, ...); -#else -extern SYSTEM_PTR SYSTEM_NEWARR(); -#endif -extern SYSTEM_PTR SYSTEM_REGMOD(); -extern void SYSTEM_INCREF(); -extern void SYSTEM_REGCMD(); -extern void SYSTEM_REGTYP(); -extern void SYSTEM_REGFIN(); -extern void SYSTEM_FINALL(); -extern void SYSTEM_INIT(); -extern void SYSTEM_FINI(); -extern void SYSTEM_HALT(); -extern void SYSTEM_INHERIT(); -extern void SYSTEM_ENUMP(); -extern void SYSTEM_ENUMR(); - -/* module registry */ -#define __DEFMOD static void *m; if(m!=0)return m -#define __REGMOD(name, enum) if(m==0)m=SYSTEM_REGMOD((CHAR*)name,enum); else return m -#define __ENDMOD return m -#define __INIT(argc, argv) static void *m; SYSTEM_INIT(argc, (long)&argv); -#define __REGMAIN(name, enum) m=SYSTEM_REGMOD(name,enum) -#define __FINI SYSTEM_FINI(); return 0 -#define __IMPORT(name) SYSTEM_INCREF(name##__init()) -#define __REGCMD(name, cmd) SYSTEM_REGCMD(m, name, cmd) - -/* SYSTEM ops */ -#define __SYSNEW(p, len) p=SYSTEM_NEWBLK((long)(len)) -#define __VAL(t, x) (*(t*)&(x)) -#define __GET(a, x, t) x= *(t*)(a) -#define __PUT(a, x, t) *(t*)(a)=x -#define __LSHL(x, n, t) ((t)((unsigned)(x)<<(n))) -#define __LSHR(x, n, t) ((t)((unsigned)(x)>>(n))) -#define __LSH(x, n, t) ((n)>=0? __LSHL(x, n, t): __LSHR(x, -(n), t)) -#define __ROTL(x, n, t) ((t)((unsigned)(x)<<(n)|(unsigned)(x)>>(8*sizeof(t)-(n)))) -#define __ROTR(x, n, t) ((t)((unsigned)(x)>>(n)|(unsigned)(x)<<(8*sizeof(t)-(n)))) -#define __ROT(x, n, t) ((n)>=0? __ROTL(x, n, t): __ROTR(x, -(n), t)) -#define __BIT(x, n) (*(unsigned long*)(x)>>(n)&1) -#define __MOVE(s, d, n) memcpy((char*)(d),(char*)(s),n) - -/* std procs and operator mappings */ -#define __SHORT(x, y) ((int)((unsigned long)(x)+(y)<(y)+(y)?(x):(__HALT(-8),0))) -#define __SHORTF(x, y) ((int)(__RF((x)+(y),(y)+(y))-(y))) -#define __CHR(x) ((CHAR)__R(x, 256)) -#define __CHRF(x) ((CHAR)__RF(x, 256)) -#define __DIV(x, y) ((x)>=0?(x)/(y):-(((y)-1-(x))/(y))) -#define __DIVF(x, y) SYSTEM_DIV((long)(x),(long)(y)) -#define __MOD(x, y) ((x)>=0?(x)%(y):__MODF(x,y)) -#define __MODF(x, y) SYSTEM_MOD((long)(x),(long)(y)) -#define __NEW(p, t) p=SYSTEM_NEWREC((long)t##__typ) -#define __NEWARR SYSTEM_NEWARR -#define __HALT(x) SYSTEM_HALT(x) -#define __ASSERT(cond, x) if (!(cond)) {SYSTEM_assert = x; SYSTEM_HALT(-1);} -#define __ENTIER(x) SYSTEM_ENTIER(x) -#define __ABS(x) (((x)<0)?-(x):(x)) -#define __ABSF(x) SYSTEM_ABS((long)(x)) -#define __ABSFD(x) SYSTEM_ABSD((double)(x)) -#define __CAP(ch) ((CHAR)((ch)&0x5f)) -#define __ODD(x) ((x)&1) -#define __IN(x, s) (((s)>>(x))&1) -#define __SETOF(x) ((SET)1<<(x)) -#define __SETRNG(l, h) ((~(SET)0<<(l))&~(SET)0>>(8*sizeof(SET)-1-(h))) -#define __MASK(x, m) ((x)&~(m)) -#define __COPY(s, d, n) {char*_a=(void*)s,*_b=(void*)d;long _i=0,_t=n-1;while(_i<_t&&((_b[_i]=_a[_i])!=0)){_i++;};_b[_i]=0;} -static int __STRCMP(x, y) - CHAR *x, *y; -{long i = 0; CHAR ch1, ch2; - do {ch1 = x[i]; ch2 = y[i]; i++; - if (!ch1) return -(int)ch2; - } while (ch1==ch2); - return (int)ch1 - (int)ch2; -} -#define __ASH(x, n) ((n)>=0?__ASHL(x,n):__ASHR(x,-(n))) -#define __ASHL(x, n) ((long)(x)<<(n)) -#define __ASHR(x, n) ((long)(x)>>(n)) -#define __ASHF(x, n) SYSTEM_ASH((long)(x), (long)(n)) -#define __DUP(x, l, t) x=(void*)memcpy(alloca(l*sizeof(t)),x,l*sizeof(t)) -#define __DUPARR(v, t) v=(void*)memcpy(v##__copy,v,sizeof(t)) -#define __DEL(x) /* DUP with alloca frees storage automatically */ -#define __IS(tag, typ, level) (*(tag-(__BASEOFF-level))==(long)typ##__typ) -#define __TYPEOF(p) (*(((long**)(p))-1)) -#define __ISP(p, typ, level) __IS(__TYPEOF(p),typ,level) - -/* runtime checks */ -#define __X(i, ub) (((unsigned)(long)(i)<(unsigned long)(ub))?i:(__HALT(-2),0)) -#define __XF(i, ub) SYSTEM_XCHK((long)(i), (long)(ub)) -#define __RETCHK __retchk: __HALT(-3) -#define __CASECHK __HALT(-4) -#define __GUARDP(p, typ, level) ((typ*)(__ISP(p,typ,level)?p:(__HALT(-5),p))) -#define __GUARDR(r, typ, level) (*((typ*)(__IS(r##__typ,typ,level)?r:(__HALT(-5),r)))) -#define __GUARDA(p, typ, level) ((struct typ*)(__IS(__TYPEOF(p),typ,level)?p:(__HALT(-5),p))) -#define __GUARDEQR(p, dyntyp, typ) if(dyntyp!=typ##__typ) __HALT(-6);*(p) -#define __GUARDEQP(p, typ) if(__TYPEOF(p)!=typ##__typ)__HALT(-6);*(p) -#define __WITHCHK __HALT(-7) -#define __R(i, ub) (((unsigned)(long)(i)<(unsigned long)(ub))?i:(__HALT(-8),0)) -#define __RF(i, ub) SYSTEM_RCHK((long)(i),(long)(ub)) - -/* record type descriptors */ -#define __TDESC(t, m, n) \ - static struct t##__desc {\ - long tproc[m]; \ - long tag, next, level, module; \ - char name[24]; \ - long *base[__MAXEXT]; \ - char *rsrvd; \ - long blksz, ptr[n+1]; \ - } t##__desc - -#define __BASEOFF (__MAXEXT+1) -#define __TPROC0OFF (__BASEOFF+24/sizeof(long)+5) -#define __EOM 1 -#define __TDFLDS(name, size) {__EOM}, 1, 0, 0, 0, name, {0}, 0, size -#define __ENUMP(adr, n, P) SYSTEM_ENUMP(adr, (long)(n), P) -#define __ENUMR(adr, typ, size, n, P) SYSTEM_ENUMR(adr, typ, (long)(size), (long)(n), P) - -#define __INITYP(t, t0, level) \ - t##__typ= &t##__desc.blksz; \ - memcpy(t##__desc.base, t0##__typ - __BASEOFF, level*sizeof(long)); \ - t##__desc.base[level]=t##__typ; \ - t##__desc.module=(long)m; \ - if(t##__desc.blksz!=sizeof(struct t)) __HALT(-15); \ - t##__desc.blksz=(t##__desc.blksz+5*sizeof(long)-1)/(4*sizeof(long))*(4*sizeof(long)); \ - SYSTEM_REGTYP(m, (long)&t##__desc.next); \ - SYSTEM_INHERIT(t##__typ, t0##__typ) - -/* Oberon-2 type bound procedures support */ -#define __INITBP(t, proc, num) *(t##__typ-(__TPROC0OFF+num))=(long)proc -#define __SEND(typ, num, funtyp, parlist) ((funtyp)(*(typ-(__TPROC0OFF+num))))parlist - -/* runtime system variables */ -extern LONGINT SYSTEM_argc; -extern LONGINT SYSTEM_argv; -extern void (*SYSTEM_Halt)(); -extern LONGINT SYSTEM_halt; -extern LONGINT SYSTEM_assert; -extern SYSTEM_PTR SYSTEM_modules; -extern LONGINT SYSTEM_heapsize; -extern LONGINT SYSTEM_allocated; -extern LONGINT SYSTEM_lock; -extern SHORTINT SYSTEM_gclock; -extern BOOLEAN SYSTEM_interrupted; - -/* ANSI prototypes; not used so far -static int __STRCMP(CHAR *x, CHAR *y); -void SYSTEM_INIT(int argc, long argvadr); -void SYSTEM_FINI(void); -long SYSTEM_XCHK(long i, long ub); -long SYSTEM_RCHK(long i, long ub); -long SYSTEM_ASH(long i, long n); -long SYSTEM_ABS(long i); -double SYSTEM_ABSD(double i); -void SYSTEM_INHERIT(long *t, long *t0); -void SYSTEM_ENUMP(long *adr, long n, void (*P)(void*)); -void SYSTEM_ENUMR(char *adr, long *typ, long size, long n, void (*P)(void*)); -long SYSTEM_DIV(unsigned long x, unsigned long y); -long SYSTEM_MOD(unsigned long x, unsigned long y); -long SYSTEM_ENTIER(double x); -void SYSTEM_HALT(int n); -*/ - -#endif - diff --git a/src/lib/system/linux/clang/armv6j/Unix.Mod b/src/lib/system/linux/clang/armv6j/Unix.Mod deleted file mode 100644 index e2a25ec5..00000000 --- a/src/lib/system/linux/clang/armv6j/Unix.Mod +++ /dev/null @@ -1,441 +0,0 @@ -MODULE Unix; (* Josef Templ, 5.3.90 Linux system calls *) -(* system procedure added by noch *) -(* Module Unix provides a system call interface to Linux. - Naming conventions: - Procedure and Type-names always start with a capital letter. - error numbers as defined in Unix - other constants start with lower case letters *) - -IMPORT SYSTEM; - -CONST - -(* various important constants *) - - stdin* = 0; stdout* =1; stderr* = 2; - - LOCKEX* = 2; LOCKUN* = 8; (* /usr/include/file.h *) - AFINET* = 2; (* /usr/include/sys/socket.h *) - PFINET* = AFINET; (* /usr/include/linux/socket.h *) - SOCKSTREAM* = 1; (* /usr/include/linux/socket.h *) - FIONREAD* = 541BH; (* in /usr/include/asm/termios.h *) - SETFL* = 4; (* set file descriptor flags; in asm/fcntl.h *) - TCP* = 0; - -(* flag sets, cf. /usr/include/asm/fcntl.h *) - rdonly* = {}; wronly* = {0}; rdwr* = {1}; creat* = {6}; excl* = {7}; trunc* = {9}; append* = {10}; ndelay = {11}; - -(* error numbers *) - - EPERM* = 1; (* Not owner *) - ENOENT* = 2; (* No such file or directory *) - ESRCH* = 3; (* No such process *) - EINTR* = 4; (* Interrupted system call *) - EIO* = 5; (* I/O error *) - ENXIO* = 6; (* No such device or address *) - E2BIG* = 7; (* Arg list too long *) - ENOEXEC* = 8; (* Exec format error *) - EBADF* = 9; (* Bad file number *) - ECHILD* = 10; (* No children *) - EAGAIN* = 11; (* No more processes *) - ENOMEM* = 12; (* Not enough core *) - EACCES* = 13; (* Permission denied *) - EFAULT* = 14; (* Bad address *) - ENOTBLK* = 15; (* Block device required *) - EBUSY* = 16; (* Mount device busy *) - EEXIST* = 17; (* File exists *) - EXDEV* = 18; (* Cross-device link *) - ENODEV* = 19; (* No such device *) - ENOTDIR* = 20; (* Not a directory*) - EISDIR* = 21; (* Is a directory *) - EINVAL* = 22; (* Invalid argument *) - ENFILE* = 23; (* File table overflow *) - EMFILE* = 24; (* Too many open files *) - ENOTTY* = 25; (* Not a typewriter *) - ETXTBSY* = 26; (* Text file busy *) - EFBIG* = 27; (* File too large *) - ENOSPC* = 28; (* No space left on device *) - ESPIPE* = 29; (* Illegal seek *) - EROFS* = 30; (* Read-only file system *) - EMLINK* = 31; (* Too many links *) - EPIPE* = 32; (* Broken pipe *) - EDOM* = 33; (* Argument too large *) - ERANGE* = 34; (* Result too large *) - EDEADLK* = 35; (* Resource deadlock would occur *) - ENAMETOOLONG* = 36; (* File name too long *) - ENOLCK* = 37; (* No record locks available *) - ENOSYS* = 38; (* Function not implemented *) - ENOTEMPTY* = 39; (* Directory not empty *) - ELOOP* = 40; (* Too many symbolic links encountered *) - EWOULDBLOCK* = EAGAIN; (* Operation would block *) - ENOMSG* = 42; (* No message of desired type *) - EIDRM* = 43; (* Identifier removed *) - ECHRNG* = 44; (* Channel number out of range *) - EL2NSYNC* = 45; (* Level 2 not synchronized *) - EL3HLT* = 46; (* Level 3 halted *) - EL3RST* = 47; (* Level 3 reset *) - ELNRNG* = 48; (* Link number out of range *) - EUNATCH* = 49; (* Protocol driver not attached *) - ENOCSI* = 50; (* No CSI structure available *) - EL2HLT* = 51; (* Level 2 halted *) - EBADE* = 52; (* Invalid exchange *) - EBADR* = 53; (* Invalid request descriptor *) - EXFULL* = 54; (* Exchange full *) - ENOANO* = 55; (* No anode *) - EBADRQC* = 56; (* Invalid request code *) - EBADSLT* = 57; (* Invalid slot *) - EDEADLOCK* = 58; (* File locking deadlock error *) - EBFONT* = 59; (* Bad font file format *) - ENOSTR* = 60; (* Device not a stream *) - ENODATA* = 61; (* No data available *) - ETIME* = 62; (* Timer expired *) - ENOSR* = 63; (* Out of streams resources *) - ENONET* = 64; (* Machine is not on the network *) - ENOPKG* = 65; (* Package not installed *) - EREMOTE* = 66; (* Object is remote *) - ENOLINK* = 67; (* Link has been severed *) - EADV* = 68; (* Advertise error *) - ESRMNT* = 69; (* Srmount error *) - ECOMM* = 70; (* Communication error on send *) - EPROTO* = 71; (* Protocol error *) - EMULTIHOP* = 72; (* Multihop attempted *) - EDOTDOT* = 73; (* RFS specific error *) - EBADMSG* = 74; (* Not a data message *) - EOVERFLOW* = 75; (* Value too large for defined data type *) - ENOTUNIQ* = 76; (* Name not unique on network *) - EBADFD* = 77; (* File descriptor in bad state *) - EREMCHG* = 78; (* Remote address changed *) - ELIBACC* = 79; (* Can not access a needed shared library *) - ELIBBAD* = 80; (* Accessing a corrupted shared library *) - ELIBSCN* = 81; (* .lib section in a.out corrupted *) - ELIBMAX* = 82; (* Attempting to link in too many shared libraries *) - ELIBEXEC* = 83; (* Cannot exec a shared library directly *) - EILSEQ* = 84; (* Illegal byte sequence *) - ERESTART* = 85; (* Interrupted system call should be restarted *) - ESTRPIPE* = 86; (* Streams pipe error *) - EUSERS* = 87; (* Too many users *) - ENOTSOCK* = 88; (* Socket operation on non-socket *) - EDESTADDRREQ* = 89; (* Destination address required *) - EMSGSIZE* = 90; (* Message too long *) - EPROTOTYPE* = 91; (* Protocol wrong type for socket *) - ENOPROTOOPT* = 92; (* Protocol not available *) - EPROTONOSUPPORT* = 93; (* Protocol not supported *) - ESOCKTNOSUPPORT* = 94; (* Socket type not supported *) - EOPNOTSUPP* = 95; (* Operation not supported on transport endpoint *) - EPFNOSUPPORT* = 96; (* Protocol family not supported *) - EAFNOSUPPORT* = 97; (* Address family not supported by protocol *) - EADDRINUSE* = 98; (* Address already in use *) - EADDRNOTAVAIL* = 99; (* Cannot assign requested address *) - ENETDOWN* = 100; (* Network is down *) - ENETUNREACH* = 101; (* Network is unreachable *) - ENETRESET* = 102; (* Network dropped connection because of reset *) - ECONNABORTED* = 103; (* Software caused connection abort *) - ECONNRESET* = 104; (* Connection reset by peer *) - ENOBUFS* = 105; (* No buffer space available *) - EISCONN* = 106; (* Transport endpoint is already connected *) - ENOTCONN* = 107; (* Transport endpoint is not connected *) - ESHUTDOWN* = 108; (* Cannot send after transport endpoint shutdown *) - ETOOMANYREFS* = 109; (* Too many references: cannot splice *) - ETIMEDOUT* = 110; (* Connection timed out *) - ECONNREFUSED* = 111; (* Connection refused *) - EHOSTDOWN* = 112; (* Host is down *) - EHOSTUNREACH* = 113; (* No route to host *) - EALREADY* = 114; (* Operation already in progress *) - EINPROGRESS* = 115; (* Operation now in progress *) - ESTALE* = 116; (* Stale NFS file handle *) - EUCLEAN* = 117; (* Structure needs cleaning *) - ENOTNAM* = 118; (* Not a XENIX named type file *) - ENAVAIL* = 119; (* No XENIX semaphores available *) - EISNAM* = 120; (* Is a named type file *) - EREMOTEIO* = 121; (* Remote I/O error *) - EDQUOT* = 122; (* Quota exceeded *) - - -TYPE - JmpBuf* = RECORD - bx*, si*, di*, bp*, sp*, pc*: LONGINT; - maskWasSaved*, savedMask*: LONGINT; - END ; - - Status* = RECORD (* struct stat *) - dev*, devX*: LONGINT; (* 64 bit in Linux 2.2 *) - pad1: INTEGER; - ino*, mode*, nlink*, uid*, gid*: LONGINT; - rdev*, rdevX*: LONGINT; (* 64 bit in Linux 2.2 *) - pad2: INTEGER; - size*, blksize*, blocks*, atime*, unused1*, mtime*, unused2*, ctime*, - unused3*, unused4*, unused5*: LONGINT; - END ; - - Timeval* = RECORD - sec*, usec*: LONGINT - END ; - - Timezone* = RECORD - minuteswest*, dsttime*: LONGINT - END ; - - Itimerval* = RECORD - interval*, value*: Timeval - END ; - - FdSet* = ARRAY 8 OF SET; - - SigCtxPtr* = POINTER TO SigContext; - SigContext* = RECORD - END ; - - SignalHandler* = PROCEDURE (sig, code: LONGINT; scp: SigCtxPtr); - - Dirent* = RECORD - ino, off: LONGINT; - reclen: INTEGER; - name: ARRAY 256 OF CHAR; - END ; - - Rusage* = RECORD - utime*, stime*: Timeval; - maxrss*, ixrss*, idrss*, isrss*, - minflt*, majflt*, nswap*, inblock*, - oublock*, msgsnd*, msgrcv*, nsignals*, - nvcsw*, nivcsw*: LONGINT - END ; - - Iovec* = RECORD - base*, len*: LONGINT - END ; - - SocketPair* = ARRAY 2 OF LONGINT; - - Pollfd* = RECORD - fd*: LONGINT; - events*, revents*: INTEGER - END ; - - Sockaddr* = RECORD - family*: INTEGER; - port*: INTEGER; - internetAddr*: LONGINT; - pad*: ARRAY 8 OF CHAR; - END ; - - HostEntry* = POINTER [1] TO Hostent; - Hostent* = RECORD - name*, aliases*: LONGINT; - addrtype*, length*: LONGINT; - addrlist*: LONGINT; (*POINTER TO POINTER TO LONGINT, network byte order*) - END; - - Name* = ARRAY OF CHAR; - - PROCEDURE -includeStat() - "#include "; - - PROCEDURE -includeErrno() - "#include "; - - (* for read(), write() and sleep() *) - PROCEDURE -includeUnistd() - "#include "; - - (* for system() *) -(* commented, doesn't compile on 32bit GNU/Linux platforms - PROCEDURE -includeStdlib() - "#include "; -*) - (* for nanosleep() *) - PROCEDURE -includeTime() - "#include "; - - (* for select() *) - PROCEDURE -includeSelect() - "#include "; - - PROCEDURE -err(): LONGINT - "errno"; - - PROCEDURE errno*(): LONGINT; - BEGIN - RETURN err() - END errno; - - PROCEDURE -Exit*(n: LONGINT) - "exit(n)"; - - PROCEDURE -Fork*(): LONGINT - "fork()"; - - PROCEDURE -Wait*(VAR status: LONGINT): LONGINT - "wait(status)"; - - PROCEDURE -Select*(width: LONGINT; VAR readfds, writefds, exceptfds: FdSet; VAR timeout: Timeval): LONGINT - "select(width, readfds, writefds, exceptfds, timeout)"; - - PROCEDURE -Gettimeofday* (VAR tv: Timeval; VAR tz: Timezone) : LONGINT - "gettimeofday(tv, tz)"; - - PROCEDURE -Read* (fd, buf, nbyte: LONGINT): LONGINT - "read(fd, buf, nbyte)"; - - PROCEDURE -ReadBlk* (fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE): LONGINT - "read(fd, buf, buf__len)"; - - PROCEDURE -Write* (fd, buf, nbyte: LONGINT): LONGINT - "write(fd, buf, nbyte)"; - - PROCEDURE -WriteBlk* (fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE): LONGINT - "write(fd, buf, buf__len)"; - - PROCEDURE -Dup*(fd: LONGINT): LONGINT - "dup(fd)"; - - PROCEDURE -Dup2*(fd1, fd2: LONGINT): LONGINT - "dup(fd1, fd2)"; - - PROCEDURE -Pipe*(fds : LONGINT): LONGINT - "pipe(fds)"; - - PROCEDURE -Getpid*(): LONGINT - "getpid()"; - - PROCEDURE -Getuid*(): LONGINT - "getuid()"; - - PROCEDURE -Geteuid*(): LONGINT - "geteuid()"; - - PROCEDURE -Getgid*(): LONGINT - "getgid()"; - - PROCEDURE -Getegid*(): LONGINT - "getegid()"; - - PROCEDURE -Unlink*(name: Name): LONGINT - "unlink(name)"; - - PROCEDURE -Open*(name: Name; flag, mode: SET): LONGINT - "open(name, flag, mode)"; - - PROCEDURE -Close*(fd: LONGINT): LONGINT - "close(fd)"; - - PROCEDURE -stat(name: Name; VAR statbuf: Status): LONGINT - "stat((const char*)name, (struct stat*)statbuf)"; - - PROCEDURE Stat*(name: Name; VAR statbuf: Status): LONGINT; - VAR res: LONGINT; - BEGIN - res := stat(name, statbuf); - (* make the first 4 bytes as unique as possible (used in module Files for caching!) *) - INC(statbuf.dev, statbuf.devX); - INC(statbuf.rdev, statbuf.rdevX); - RETURN res; - END Stat; - - PROCEDURE -fstat(fd: LONGINT; VAR statbuf: Status): LONGINT - "fstat(fd, (struct stat*)statbuf)"; - - PROCEDURE Fstat*(fd: LONGINT; VAR statbuf: Status): LONGINT; - VAR res: LONGINT; - BEGIN - res := fstat(fd, statbuf); - (* make the first 4 bytes as unique as possible (used in module Files for caching!) *) - INC(statbuf.dev, statbuf.devX); - INC(statbuf.rdev, statbuf.rdevX); - RETURN res; - END Fstat; - - PROCEDURE -Fchmod*(fd, mode: LONGINT): LONGINT - "fchmod(fd, mode)"; - - PROCEDURE -Chmod*(path: Name; mode: LONGINT): LONGINT - "chmod(path, mode)"; - - PROCEDURE -Lseek*(fd, offset, origin: LONGINT): LONGINT - "lseek(fd, offset, origin)"; - - PROCEDURE -Fsync*(fd: LONGINT): LONGINT - "fsync(fd)"; - - PROCEDURE -Fcntl*(fd, cmd, arg: LONGINT ): LONGINT - "fcntl(fd, cmd, arg)"; - - PROCEDURE -Flock*(fd, operation: LONGINT): LONGINT - "flock(fd, operation)"; - - PROCEDURE -Ftruncate*(fd, length: LONGINT): LONGINT - "ftruncate(fd, length)"; - - PROCEDURE -Readblk*(fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE; len: LONGINT): LONGINT - "read(fd, buf, len)"; - - PROCEDURE -Rename*(old, new: Name): LONGINT - "rename(old, new)"; - - PROCEDURE -Chdir*(path: Name): LONGINT - "chdir(path)"; - - PROCEDURE -Ioctl*(fd, request, arg: LONGINT): LONGINT - "ioctl(fd, request, arg)"; - - PROCEDURE -Kill*(pid, sig: LONGINT): LONGINT - "kill(pid, sig)"; - - PROCEDURE -Sigsetmask*(mask: LONGINT): LONGINT - "sigsetmask(mask)"; - - PROCEDURE -Sleep*(ms : LONGINT): LONGINT - "sleep(ms)"; - - PROCEDURE -Nanosleep*(VAR req : Timeval; VAR rem : Timeval): LONGINT - "nanosleep(req, rem)"; - - (* TCP/IP networking *) - - PROCEDURE -Gethostbyname*(name: Name): HostEntry - "(Unix_HostEntry)gethostbyname(name)"; - - PROCEDURE -Gethostname*(VAR name: Name): LONGINT - "gethostname(name, name__len)"; - - PROCEDURE -Socket*(af, type, protocol: LONGINT): LONGINT - "socket(af, type, protocol)"; - - PROCEDURE -Connect*(socket: LONGINT; name: Sockaddr; namelen: LONGINT): LONGINT - "connect(socket, &(name), namelen)"; - - PROCEDURE -Getsockname*(socket: LONGINT; VAR name: Sockaddr; VAR namelen: LONGINT): LONGINT - "getsockname(socket, name, namelen)"; - - PROCEDURE -Bind*(socket: LONGINT; name: Sockaddr; namelen: LONGINT): LONGINT - "bind(socket, &(name), namelen)"; - - PROCEDURE -Listen*(socket, backlog: LONGINT): LONGINT - "listen(socket, backlog)"; - - PROCEDURE -Accept*(socket: LONGINT; VAR addr: Sockaddr; VAR addrlen: LONGINT): LONGINT - "accept(socket, addr, addrlen)"; - - PROCEDURE -Recv*(socket, bufadr, buflen, flags: LONGINT): LONGINT - "recv(socket, bufadr, buflen, flags)"; - - PROCEDURE -Send*(socket, bufadr, buflen, flags: LONGINT): LONGINT - "send(socket, bufadr, buflen, flags)"; - - PROCEDURE -sys(str: ARRAY OF CHAR): INTEGER (* need this to call external tools like gcc or gas; noch *) - "system(str)"; - - PROCEDURE system*(cmd : ARRAY OF CHAR); - VAR r : INTEGER; - BEGIN - r := sys(cmd); - END system; - - PROCEDURE System*(cmd : ARRAY OF CHAR): INTEGER; - VAR r : INTEGER; - BEGIN - r := sys(cmd); - RETURN r - END System; - -END Unix. diff --git a/src/lib/system/linux/clang/armv7a_hardfp/SYSTEM.c0 b/src/lib/system/linux/clang/armv7a_hardfp/SYSTEM.c0 deleted file mode 100644 index a5599acc..00000000 --- a/src/lib/system/linux/clang/armv7a_hardfp/SYSTEM.c0 +++ /dev/null @@ -1,205 +0,0 @@ -/* -* The body prefix file of the Ofront runtime system, Version 1.0 -* -* Copyright (c) Software Templ, 1994, 1995 -* -* Module SYSTEM is subject to change any time without prior notification. -* Software Templ disclaims all warranties with regard to module SYSTEM, -* in particular shall Software Templ not be liable for any damage resulting -* from inappropriate use or modification of module SYSTEM. -* -* Version 1.1 jt, 24.11.95 fixes for correct pointer arithmetic on Cray computers -* jt 31.1.2007 ANSI prototypes for malloc and exit in order to avoid cc warnings -* -*/ - -#include "SYSTEM.h" -#ifdef __STDC__ -#include "stdarg.h" -#else -#include "varargs.h" -#endif - -extern void *malloc(unsigned int size); -extern void exit(int status); - -void (*SYSTEM_Halt)(); -LONGINT SYSTEM_halt; /* x in HALT(x) */ -LONGINT SYSTEM_assert; /* x in ASSERT(cond, x) */ -LONGINT SYSTEM_argc; -LONGINT SYSTEM_argv; -LONGINT SYSTEM_lock; -BOOLEAN SYSTEM_interrupted; -static LONGINT SYSTEM_mainfrm; /* adr of main proc stack frame, used for stack collection */ - -#define Lock SYSTEM_lock++ -#define Unlock SYSTEM_lock--; if (SYSTEM_interrupted && (SYSTEM_lock == 0)) __HALT(-9) - - -static void SYSTEM_InitHeap(); -void *SYSTEM__init(); - -void SYSTEM_INIT(argc, argvadr) - int argc; long argvadr; -{ - SYSTEM_mainfrm = argvadr; - SYSTEM_argc = argc; - SYSTEM_argv = *(long*)argvadr; - SYSTEM_InitHeap(); - SYSTEM_halt = -128; - SYSTEM__init(); -} - -void SYSTEM_FINI() -{ - SYSTEM_FINALL(); -} - -long SYSTEM_XCHK(i, ub) long i, ub; {return __X(i, ub);} -long SYSTEM_RCHK(i, ub) long i, ub; {return __R(i, ub);} -long SYSTEM_ASH(i, n) long i, n; {return __ASH(i, n);} -long SYSTEM_ABS(i) long i; {return __ABS(i);} -double SYSTEM_ABSD(i) double i; {return __ABS(i);} - -void SYSTEM_INHERIT(t, t0) - long *t, *t0; -{ - t -= __TPROC0OFF; - t0 -= __TPROC0OFF; - while (*t0 != __EOM) {*t = *t0; t--; t0--;} -} - -void SYSTEM_ENUMP(adr, n, P) - long *adr; - long n; - void (*P)(); -{ - while (n > 0) {P(*adr); adr++; n--;} -} - -void SYSTEM_ENUMR(adr, typ, size, n, P) - char *adr; - long *typ, size, n; - void (*P)(); -{ - long *t, off; - typ++; - while (n > 0) { - t = typ; - off = *t; - while (off >= 0) {P(*(long*)(adr+off)); t++; off = *t;} - adr += size; n--; - } -} - -long SYSTEM_DIV(x, y) - unsigned long x, y; -{ if ((long) x >= 0) return (x / y); - else return -((y - 1 - x) / y); -} - -long SYSTEM_MOD(x, y) - unsigned long x, y; -{ unsigned long m; - if ((long) x >= 0) return (x % y); - else { m = (-x) % y; - if (m != 0) return (y - m); else return 0; - } -} - -long SYSTEM_ENTIER(x) - double x; -{ - long y; - if (x >= 0) - return (long)x; - else { - y = (long)x; - if (y <= x) return y; else return y - 1; - } -} - -void SYSTEM_HALT(n) - int n; -{ - SYSTEM_halt = n; - if (SYSTEM_Halt!=0) SYSTEM_Halt(n); - exit(n); -} - -#ifdef __STDC__ -SYSTEM_PTR SYSTEM_NEWARR(long *typ, long elemsz, int elemalgn, int nofdim, int nofdyn, ...) -#else -SYSTEM_PTR SYSTEM_NEWARR(typ, elemsz, elemalgn, nofdim, nofdyn, va_alist) - long *typ, elemsz; - int elemalgn, nofdim, nofdyn; - va_dcl -#endif -{ - long nofelems, size, dataoff, n, nptr, *x, *p, nofptrs, i, *ptab, off; - va_list ap; -#ifdef __STDC__ - va_start(ap, nofdyn); -#else - va_start(ap); -#endif - nofelems = 1; - while (nofdim > 0) { - nofelems = nofelems * va_arg(ap, long); nofdim--; - if (nofelems <= 0) __HALT(-20); - } - va_end(ap); - dataoff = nofdyn * sizeof(long); - if (elemalgn > sizeof(long)) { - n = dataoff % elemalgn; - if (n != 0) dataoff += elemalgn - n; - } - size = dataoff + nofelems * elemsz; - Lock; - if (typ == NIL) { - /* element typ does not contain pointers */ - x = SYSTEM_NEWBLK(size); - } - else if (typ == POINTER__typ) { - /* element type is a pointer */ - x = SYSTEM_NEWBLK(size + nofelems * sizeof(long)); - p = (long*)x[-1]; - p[-nofelems] = *p; /* build new type desc in situ: 1. copy block size; 2. setup ptr tab; 3. set sentinel; 4. patch tag */ - p -= nofelems - 1; n = 1; /* n =1 for skipping the size field */ - while (n <= nofelems) {*p = n*sizeof(long); p++; n++;} - *p = - (nofelems + 1) * sizeof(long); /* sentinel */ - x[-1] -= nofelems * sizeof(long); - } - else { - /* element type is a record that contains pointers */ - ptab = typ + 1; nofptrs = 0; - while (ptab[nofptrs] >= 0) {nofptrs++;} /* number of pointers per element */ - nptr = nofelems * nofptrs; /* total number of pointers */ - x = SYSTEM_NEWBLK(size + nptr * sizeof(long)); - p = (long*)x[- 1]; - p[-nptr] = *p; /* build new type desc in situ; 1. copy block size; 2. setup ptr tab; 3. set sentinel; 4. patch tag */ - p -= nptr - 1; n = 0; off = dataoff; - while (n < nofelems) {i = 0; - while (i < nofptrs) {*p = off + ptab[i]; p++; i++;} - off += elemsz; n++; - } - *p = - (nptr + 1) * sizeof(long); /* sentinel */ - x[-1] -= nptr * sizeof(long); - } - if (nofdyn != 0) { - /* setup len vector for index checks */ -#ifdef __STDC__ - va_start(ap, nofdyn); -#else - va_start(ap); -#endif - p = x; - while (nofdyn > 0) {*p = va_arg(ap, long); p++, nofdyn--;} - va_end(ap); - } - Unlock; - return x; -} - -/* ----------- end of SYSTEM.co ------------- */ - diff --git a/src/lib/system/linux/clang/armv7a_hardfp/SYSTEM.h b/src/lib/system/linux/clang/armv7a_hardfp/SYSTEM.h deleted file mode 100644 index 0c7b19af..00000000 --- a/src/lib/system/linux/clang/armv7a_hardfp/SYSTEM.h +++ /dev/null @@ -1,215 +0,0 @@ -#ifndef SYSTEM__h -#define SYSTEM__h - -/* - -the Ofront runtime system interface and macros library -copyright (c) Josef Templ, 1995, 1996 - -gcc for Linux version (same as SPARC/Solaris2) -uses double # as concatenation operator - -*/ - -#include - -//extern void *memcpy(void *dest, const void *src, long n); -extern void *memcpy(void *dest, const void *src, size_t n); -extern void *malloc(unsigned int size); -extern void exit(int status); - -#define export -#define import extern - -/* constants */ -#define __MAXEXT 16 -#define NIL 0L -#define POINTER__typ (long*)1L /* not NIL and not a valid type */ - -/* basic types */ -typedef char BOOLEAN; -typedef unsigned char CHAR; -typedef signed char SHORTINT; -typedef short int INTEGER; -typedef long LONGINT; -typedef float REAL; -typedef double LONGREAL; -typedef unsigned long SET; -typedef void *SYSTEM_PTR; -typedef unsigned char SYSTEM_BYTE; - -/* runtime system routines */ -extern long SYSTEM_DIV(); -extern long SYSTEM_MOD(); -extern long SYSTEM_ENTIER(); -extern long SYSTEM_ASH(); -extern long SYSTEM_ABS(); -extern long SYSTEM_XCHK(); -extern long SYSTEM_RCHK(); -extern double SYSTEM_ABSD(); -extern SYSTEM_PTR SYSTEM_NEWREC(); -extern SYSTEM_PTR SYSTEM_NEWBLK(); -#ifdef __STDC__ -extern SYSTEM_PTR SYSTEM_NEWARR(long*, long, int, int, int, ...); -#else -extern SYSTEM_PTR SYSTEM_NEWARR(); -#endif -extern SYSTEM_PTR SYSTEM_REGMOD(); -extern void SYSTEM_INCREF(); -extern void SYSTEM_REGCMD(); -extern void SYSTEM_REGTYP(); -extern void SYSTEM_REGFIN(); -extern void SYSTEM_FINALL(); -extern void SYSTEM_INIT(); -extern void SYSTEM_FINI(); -extern void SYSTEM_HALT(); -extern void SYSTEM_INHERIT(); -extern void SYSTEM_ENUMP(); -extern void SYSTEM_ENUMR(); - -/* module registry */ -#define __DEFMOD static void *m; if(m!=0)return m -#define __REGMOD(name, enum) if(m==0)m=SYSTEM_REGMOD((CHAR*)name,enum); else return m -#define __ENDMOD return m -#define __INIT(argc, argv) static void *m; SYSTEM_INIT(argc, (long)&argv); -#define __REGMAIN(name, enum) m=SYSTEM_REGMOD(name,enum) -#define __FINI SYSTEM_FINI(); return 0 -#define __IMPORT(name) SYSTEM_INCREF(name##__init()) -#define __REGCMD(name, cmd) SYSTEM_REGCMD(m, name, cmd) - -/* SYSTEM ops */ -#define __SYSNEW(p, len) p=SYSTEM_NEWBLK((long)(len)) -#define __VAL(t, x) (*(t*)&(x)) -#define __GET(a, x, t) x= *(t*)(a) -#define __PUT(a, x, t) *(t*)(a)=x -#define __LSHL(x, n, t) ((t)((unsigned)(x)<<(n))) -#define __LSHR(x, n, t) ((t)((unsigned)(x)>>(n))) -#define __LSH(x, n, t) ((n)>=0? __LSHL(x, n, t): __LSHR(x, -(n), t)) -#define __ROTL(x, n, t) ((t)((unsigned)(x)<<(n)|(unsigned)(x)>>(8*sizeof(t)-(n)))) -#define __ROTR(x, n, t) ((t)((unsigned)(x)>>(n)|(unsigned)(x)<<(8*sizeof(t)-(n)))) -#define __ROT(x, n, t) ((n)>=0? __ROTL(x, n, t): __ROTR(x, -(n), t)) -#define __BIT(x, n) (*(unsigned long*)(x)>>(n)&1) -#define __MOVE(s, d, n) memcpy((char*)(d),(char*)(s),n) - -/* std procs and operator mappings */ -#define __SHORT(x, y) ((int)((unsigned long)(x)+(y)<(y)+(y)?(x):(__HALT(-8),0))) -#define __SHORTF(x, y) ((int)(__RF((x)+(y),(y)+(y))-(y))) -#define __CHR(x) ((CHAR)__R(x, 256)) -#define __CHRF(x) ((CHAR)__RF(x, 256)) -#define __DIV(x, y) ((x)>=0?(x)/(y):-(((y)-1-(x))/(y))) -#define __DIVF(x, y) SYSTEM_DIV((long)(x),(long)(y)) -#define __MOD(x, y) ((x)>=0?(x)%(y):__MODF(x,y)) -#define __MODF(x, y) SYSTEM_MOD((long)(x),(long)(y)) -#define __NEW(p, t) p=SYSTEM_NEWREC((long)t##__typ) -#define __NEWARR SYSTEM_NEWARR -#define __HALT(x) SYSTEM_HALT(x) -#define __ASSERT(cond, x) if (!(cond)) {SYSTEM_assert = x; SYSTEM_HALT(-1);} -#define __ENTIER(x) SYSTEM_ENTIER(x) -#define __ABS(x) (((x)<0)?-(x):(x)) -#define __ABSF(x) SYSTEM_ABS((long)(x)) -#define __ABSFD(x) SYSTEM_ABSD((double)(x)) -#define __CAP(ch) ((CHAR)((ch)&0x5f)) -#define __ODD(x) ((x)&1) -#define __IN(x, s) (((s)>>(x))&1) -#define __SETOF(x) ((SET)1<<(x)) -#define __SETRNG(l, h) ((~(SET)0<<(l))&~(SET)0>>(8*sizeof(SET)-1-(h))) -#define __MASK(x, m) ((x)&~(m)) -#define __COPY(s, d, n) {char*_a=(void*)s,*_b=(void*)d;long _i=0,_t=n-1;while(_i<_t&&((_b[_i]=_a[_i])!=0)){_i++;};_b[_i]=0;} -static int __STRCMP(x, y) - CHAR *x, *y; -{long i = 0; CHAR ch1, ch2; - do {ch1 = x[i]; ch2 = y[i]; i++; - if (!ch1) return -(int)ch2; - } while (ch1==ch2); - return (int)ch1 - (int)ch2; -} -#define __ASH(x, n) ((n)>=0?__ASHL(x,n):__ASHR(x,-(n))) -#define __ASHL(x, n) ((long)(x)<<(n)) -#define __ASHR(x, n) ((long)(x)>>(n)) -#define __ASHF(x, n) SYSTEM_ASH((long)(x), (long)(n)) -#define __DUP(x, l, t) x=(void*)memcpy(alloca(l*sizeof(t)),x,l*sizeof(t)) -#define __DUPARR(v, t) v=(void*)memcpy(v##__copy,v,sizeof(t)) -#define __DEL(x) /* DUP with alloca frees storage automatically */ -#define __IS(tag, typ, level) (*(tag-(__BASEOFF-level))==(long)typ##__typ) -#define __TYPEOF(p) (*(((long**)(p))-1)) -#define __ISP(p, typ, level) __IS(__TYPEOF(p),typ,level) - -/* runtime checks */ -#define __X(i, ub) (((unsigned)(long)(i)<(unsigned long)(ub))?i:(__HALT(-2),0)) -#define __XF(i, ub) SYSTEM_XCHK((long)(i), (long)(ub)) -#define __RETCHK __retchk: __HALT(-3) -#define __CASECHK __HALT(-4) -#define __GUARDP(p, typ, level) ((typ*)(__ISP(p,typ,level)?p:(__HALT(-5),p))) -#define __GUARDR(r, typ, level) (*((typ*)(__IS(r##__typ,typ,level)?r:(__HALT(-5),r)))) -#define __GUARDA(p, typ, level) ((struct typ*)(__IS(__TYPEOF(p),typ,level)?p:(__HALT(-5),p))) -#define __GUARDEQR(p, dyntyp, typ) if(dyntyp!=typ##__typ) __HALT(-6);*(p) -#define __GUARDEQP(p, typ) if(__TYPEOF(p)!=typ##__typ)__HALT(-6);*(p) -#define __WITHCHK __HALT(-7) -#define __R(i, ub) (((unsigned)(long)(i)<(unsigned long)(ub))?i:(__HALT(-8),0)) -#define __RF(i, ub) SYSTEM_RCHK((long)(i),(long)(ub)) - -/* record type descriptors */ -#define __TDESC(t, m, n) \ - static struct t##__desc {\ - long tproc[m]; \ - long tag, next, level, module; \ - char name[24]; \ - long *base[__MAXEXT]; \ - char *rsrvd; \ - long blksz, ptr[n+1]; \ - } t##__desc - -#define __BASEOFF (__MAXEXT+1) -#define __TPROC0OFF (__BASEOFF+24/sizeof(long)+5) -#define __EOM 1 -#define __TDFLDS(name, size) {__EOM}, 1, 0, 0, 0, name, {0}, 0, size -#define __ENUMP(adr, n, P) SYSTEM_ENUMP(adr, (long)(n), P) -#define __ENUMR(adr, typ, size, n, P) SYSTEM_ENUMR(adr, typ, (long)(size), (long)(n), P) - -#define __INITYP(t, t0, level) \ - t##__typ= &t##__desc.blksz; \ - memcpy(t##__desc.base, t0##__typ - __BASEOFF, level*sizeof(long)); \ - t##__desc.base[level]=t##__typ; \ - t##__desc.module=(long)m; \ - if(t##__desc.blksz!=sizeof(struct t)) __HALT(-15); \ - t##__desc.blksz=(t##__desc.blksz+5*sizeof(long)-1)/(4*sizeof(long))*(4*sizeof(long)); \ - SYSTEM_REGTYP(m, (long)&t##__desc.next); \ - SYSTEM_INHERIT(t##__typ, t0##__typ) - -/* Oberon-2 type bound procedures support */ -#define __INITBP(t, proc, num) *(t##__typ-(__TPROC0OFF+num))=(long)proc -#define __SEND(typ, num, funtyp, parlist) ((funtyp)(*(typ-(__TPROC0OFF+num))))parlist - -/* runtime system variables */ -extern LONGINT SYSTEM_argc; -extern LONGINT SYSTEM_argv; -extern void (*SYSTEM_Halt)(); -extern LONGINT SYSTEM_halt; -extern LONGINT SYSTEM_assert; -extern SYSTEM_PTR SYSTEM_modules; -extern LONGINT SYSTEM_heapsize; -extern LONGINT SYSTEM_allocated; -extern LONGINT SYSTEM_lock; -extern SHORTINT SYSTEM_gclock; -extern BOOLEAN SYSTEM_interrupted; - -/* ANSI prototypes; not used so far -static int __STRCMP(CHAR *x, CHAR *y); -void SYSTEM_INIT(int argc, long argvadr); -void SYSTEM_FINI(void); -long SYSTEM_XCHK(long i, long ub); -long SYSTEM_RCHK(long i, long ub); -long SYSTEM_ASH(long i, long n); -long SYSTEM_ABS(long i); -double SYSTEM_ABSD(double i); -void SYSTEM_INHERIT(long *t, long *t0); -void SYSTEM_ENUMP(long *adr, long n, void (*P)(void*)); -void SYSTEM_ENUMR(char *adr, long *typ, long size, long n, void (*P)(void*)); -long SYSTEM_DIV(unsigned long x, unsigned long y); -long SYSTEM_MOD(unsigned long x, unsigned long y); -long SYSTEM_ENTIER(double x); -void SYSTEM_HALT(int n); -*/ - -#endif - diff --git a/src/lib/system/linux/clang/armv7a_hardfp/Unix.Mod b/src/lib/system/linux/clang/armv7a_hardfp/Unix.Mod deleted file mode 100644 index e2a25ec5..00000000 --- a/src/lib/system/linux/clang/armv7a_hardfp/Unix.Mod +++ /dev/null @@ -1,441 +0,0 @@ -MODULE Unix; (* Josef Templ, 5.3.90 Linux system calls *) -(* system procedure added by noch *) -(* Module Unix provides a system call interface to Linux. - Naming conventions: - Procedure and Type-names always start with a capital letter. - error numbers as defined in Unix - other constants start with lower case letters *) - -IMPORT SYSTEM; - -CONST - -(* various important constants *) - - stdin* = 0; stdout* =1; stderr* = 2; - - LOCKEX* = 2; LOCKUN* = 8; (* /usr/include/file.h *) - AFINET* = 2; (* /usr/include/sys/socket.h *) - PFINET* = AFINET; (* /usr/include/linux/socket.h *) - SOCKSTREAM* = 1; (* /usr/include/linux/socket.h *) - FIONREAD* = 541BH; (* in /usr/include/asm/termios.h *) - SETFL* = 4; (* set file descriptor flags; in asm/fcntl.h *) - TCP* = 0; - -(* flag sets, cf. /usr/include/asm/fcntl.h *) - rdonly* = {}; wronly* = {0}; rdwr* = {1}; creat* = {6}; excl* = {7}; trunc* = {9}; append* = {10}; ndelay = {11}; - -(* error numbers *) - - EPERM* = 1; (* Not owner *) - ENOENT* = 2; (* No such file or directory *) - ESRCH* = 3; (* No such process *) - EINTR* = 4; (* Interrupted system call *) - EIO* = 5; (* I/O error *) - ENXIO* = 6; (* No such device or address *) - E2BIG* = 7; (* Arg list too long *) - ENOEXEC* = 8; (* Exec format error *) - EBADF* = 9; (* Bad file number *) - ECHILD* = 10; (* No children *) - EAGAIN* = 11; (* No more processes *) - ENOMEM* = 12; (* Not enough core *) - EACCES* = 13; (* Permission denied *) - EFAULT* = 14; (* Bad address *) - ENOTBLK* = 15; (* Block device required *) - EBUSY* = 16; (* Mount device busy *) - EEXIST* = 17; (* File exists *) - EXDEV* = 18; (* Cross-device link *) - ENODEV* = 19; (* No such device *) - ENOTDIR* = 20; (* Not a directory*) - EISDIR* = 21; (* Is a directory *) - EINVAL* = 22; (* Invalid argument *) - ENFILE* = 23; (* File table overflow *) - EMFILE* = 24; (* Too many open files *) - ENOTTY* = 25; (* Not a typewriter *) - ETXTBSY* = 26; (* Text file busy *) - EFBIG* = 27; (* File too large *) - ENOSPC* = 28; (* No space left on device *) - ESPIPE* = 29; (* Illegal seek *) - EROFS* = 30; (* Read-only file system *) - EMLINK* = 31; (* Too many links *) - EPIPE* = 32; (* Broken pipe *) - EDOM* = 33; (* Argument too large *) - ERANGE* = 34; (* Result too large *) - EDEADLK* = 35; (* Resource deadlock would occur *) - ENAMETOOLONG* = 36; (* File name too long *) - ENOLCK* = 37; (* No record locks available *) - ENOSYS* = 38; (* Function not implemented *) - ENOTEMPTY* = 39; (* Directory not empty *) - ELOOP* = 40; (* Too many symbolic links encountered *) - EWOULDBLOCK* = EAGAIN; (* Operation would block *) - ENOMSG* = 42; (* No message of desired type *) - EIDRM* = 43; (* Identifier removed *) - ECHRNG* = 44; (* Channel number out of range *) - EL2NSYNC* = 45; (* Level 2 not synchronized *) - EL3HLT* = 46; (* Level 3 halted *) - EL3RST* = 47; (* Level 3 reset *) - ELNRNG* = 48; (* Link number out of range *) - EUNATCH* = 49; (* Protocol driver not attached *) - ENOCSI* = 50; (* No CSI structure available *) - EL2HLT* = 51; (* Level 2 halted *) - EBADE* = 52; (* Invalid exchange *) - EBADR* = 53; (* Invalid request descriptor *) - EXFULL* = 54; (* Exchange full *) - ENOANO* = 55; (* No anode *) - EBADRQC* = 56; (* Invalid request code *) - EBADSLT* = 57; (* Invalid slot *) - EDEADLOCK* = 58; (* File locking deadlock error *) - EBFONT* = 59; (* Bad font file format *) - ENOSTR* = 60; (* Device not a stream *) - ENODATA* = 61; (* No data available *) - ETIME* = 62; (* Timer expired *) - ENOSR* = 63; (* Out of streams resources *) - ENONET* = 64; (* Machine is not on the network *) - ENOPKG* = 65; (* Package not installed *) - EREMOTE* = 66; (* Object is remote *) - ENOLINK* = 67; (* Link has been severed *) - EADV* = 68; (* Advertise error *) - ESRMNT* = 69; (* Srmount error *) - ECOMM* = 70; (* Communication error on send *) - EPROTO* = 71; (* Protocol error *) - EMULTIHOP* = 72; (* Multihop attempted *) - EDOTDOT* = 73; (* RFS specific error *) - EBADMSG* = 74; (* Not a data message *) - EOVERFLOW* = 75; (* Value too large for defined data type *) - ENOTUNIQ* = 76; (* Name not unique on network *) - EBADFD* = 77; (* File descriptor in bad state *) - EREMCHG* = 78; (* Remote address changed *) - ELIBACC* = 79; (* Can not access a needed shared library *) - ELIBBAD* = 80; (* Accessing a corrupted shared library *) - ELIBSCN* = 81; (* .lib section in a.out corrupted *) - ELIBMAX* = 82; (* Attempting to link in too many shared libraries *) - ELIBEXEC* = 83; (* Cannot exec a shared library directly *) - EILSEQ* = 84; (* Illegal byte sequence *) - ERESTART* = 85; (* Interrupted system call should be restarted *) - ESTRPIPE* = 86; (* Streams pipe error *) - EUSERS* = 87; (* Too many users *) - ENOTSOCK* = 88; (* Socket operation on non-socket *) - EDESTADDRREQ* = 89; (* Destination address required *) - EMSGSIZE* = 90; (* Message too long *) - EPROTOTYPE* = 91; (* Protocol wrong type for socket *) - ENOPROTOOPT* = 92; (* Protocol not available *) - EPROTONOSUPPORT* = 93; (* Protocol not supported *) - ESOCKTNOSUPPORT* = 94; (* Socket type not supported *) - EOPNOTSUPP* = 95; (* Operation not supported on transport endpoint *) - EPFNOSUPPORT* = 96; (* Protocol family not supported *) - EAFNOSUPPORT* = 97; (* Address family not supported by protocol *) - EADDRINUSE* = 98; (* Address already in use *) - EADDRNOTAVAIL* = 99; (* Cannot assign requested address *) - ENETDOWN* = 100; (* Network is down *) - ENETUNREACH* = 101; (* Network is unreachable *) - ENETRESET* = 102; (* Network dropped connection because of reset *) - ECONNABORTED* = 103; (* Software caused connection abort *) - ECONNRESET* = 104; (* Connection reset by peer *) - ENOBUFS* = 105; (* No buffer space available *) - EISCONN* = 106; (* Transport endpoint is already connected *) - ENOTCONN* = 107; (* Transport endpoint is not connected *) - ESHUTDOWN* = 108; (* Cannot send after transport endpoint shutdown *) - ETOOMANYREFS* = 109; (* Too many references: cannot splice *) - ETIMEDOUT* = 110; (* Connection timed out *) - ECONNREFUSED* = 111; (* Connection refused *) - EHOSTDOWN* = 112; (* Host is down *) - EHOSTUNREACH* = 113; (* No route to host *) - EALREADY* = 114; (* Operation already in progress *) - EINPROGRESS* = 115; (* Operation now in progress *) - ESTALE* = 116; (* Stale NFS file handle *) - EUCLEAN* = 117; (* Structure needs cleaning *) - ENOTNAM* = 118; (* Not a XENIX named type file *) - ENAVAIL* = 119; (* No XENIX semaphores available *) - EISNAM* = 120; (* Is a named type file *) - EREMOTEIO* = 121; (* Remote I/O error *) - EDQUOT* = 122; (* Quota exceeded *) - - -TYPE - JmpBuf* = RECORD - bx*, si*, di*, bp*, sp*, pc*: LONGINT; - maskWasSaved*, savedMask*: LONGINT; - END ; - - Status* = RECORD (* struct stat *) - dev*, devX*: LONGINT; (* 64 bit in Linux 2.2 *) - pad1: INTEGER; - ino*, mode*, nlink*, uid*, gid*: LONGINT; - rdev*, rdevX*: LONGINT; (* 64 bit in Linux 2.2 *) - pad2: INTEGER; - size*, blksize*, blocks*, atime*, unused1*, mtime*, unused2*, ctime*, - unused3*, unused4*, unused5*: LONGINT; - END ; - - Timeval* = RECORD - sec*, usec*: LONGINT - END ; - - Timezone* = RECORD - minuteswest*, dsttime*: LONGINT - END ; - - Itimerval* = RECORD - interval*, value*: Timeval - END ; - - FdSet* = ARRAY 8 OF SET; - - SigCtxPtr* = POINTER TO SigContext; - SigContext* = RECORD - END ; - - SignalHandler* = PROCEDURE (sig, code: LONGINT; scp: SigCtxPtr); - - Dirent* = RECORD - ino, off: LONGINT; - reclen: INTEGER; - name: ARRAY 256 OF CHAR; - END ; - - Rusage* = RECORD - utime*, stime*: Timeval; - maxrss*, ixrss*, idrss*, isrss*, - minflt*, majflt*, nswap*, inblock*, - oublock*, msgsnd*, msgrcv*, nsignals*, - nvcsw*, nivcsw*: LONGINT - END ; - - Iovec* = RECORD - base*, len*: LONGINT - END ; - - SocketPair* = ARRAY 2 OF LONGINT; - - Pollfd* = RECORD - fd*: LONGINT; - events*, revents*: INTEGER - END ; - - Sockaddr* = RECORD - family*: INTEGER; - port*: INTEGER; - internetAddr*: LONGINT; - pad*: ARRAY 8 OF CHAR; - END ; - - HostEntry* = POINTER [1] TO Hostent; - Hostent* = RECORD - name*, aliases*: LONGINT; - addrtype*, length*: LONGINT; - addrlist*: LONGINT; (*POINTER TO POINTER TO LONGINT, network byte order*) - END; - - Name* = ARRAY OF CHAR; - - PROCEDURE -includeStat() - "#include "; - - PROCEDURE -includeErrno() - "#include "; - - (* for read(), write() and sleep() *) - PROCEDURE -includeUnistd() - "#include "; - - (* for system() *) -(* commented, doesn't compile on 32bit GNU/Linux platforms - PROCEDURE -includeStdlib() - "#include "; -*) - (* for nanosleep() *) - PROCEDURE -includeTime() - "#include "; - - (* for select() *) - PROCEDURE -includeSelect() - "#include "; - - PROCEDURE -err(): LONGINT - "errno"; - - PROCEDURE errno*(): LONGINT; - BEGIN - RETURN err() - END errno; - - PROCEDURE -Exit*(n: LONGINT) - "exit(n)"; - - PROCEDURE -Fork*(): LONGINT - "fork()"; - - PROCEDURE -Wait*(VAR status: LONGINT): LONGINT - "wait(status)"; - - PROCEDURE -Select*(width: LONGINT; VAR readfds, writefds, exceptfds: FdSet; VAR timeout: Timeval): LONGINT - "select(width, readfds, writefds, exceptfds, timeout)"; - - PROCEDURE -Gettimeofday* (VAR tv: Timeval; VAR tz: Timezone) : LONGINT - "gettimeofday(tv, tz)"; - - PROCEDURE -Read* (fd, buf, nbyte: LONGINT): LONGINT - "read(fd, buf, nbyte)"; - - PROCEDURE -ReadBlk* (fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE): LONGINT - "read(fd, buf, buf__len)"; - - PROCEDURE -Write* (fd, buf, nbyte: LONGINT): LONGINT - "write(fd, buf, nbyte)"; - - PROCEDURE -WriteBlk* (fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE): LONGINT - "write(fd, buf, buf__len)"; - - PROCEDURE -Dup*(fd: LONGINT): LONGINT - "dup(fd)"; - - PROCEDURE -Dup2*(fd1, fd2: LONGINT): LONGINT - "dup(fd1, fd2)"; - - PROCEDURE -Pipe*(fds : LONGINT): LONGINT - "pipe(fds)"; - - PROCEDURE -Getpid*(): LONGINT - "getpid()"; - - PROCEDURE -Getuid*(): LONGINT - "getuid()"; - - PROCEDURE -Geteuid*(): LONGINT - "geteuid()"; - - PROCEDURE -Getgid*(): LONGINT - "getgid()"; - - PROCEDURE -Getegid*(): LONGINT - "getegid()"; - - PROCEDURE -Unlink*(name: Name): LONGINT - "unlink(name)"; - - PROCEDURE -Open*(name: Name; flag, mode: SET): LONGINT - "open(name, flag, mode)"; - - PROCEDURE -Close*(fd: LONGINT): LONGINT - "close(fd)"; - - PROCEDURE -stat(name: Name; VAR statbuf: Status): LONGINT - "stat((const char*)name, (struct stat*)statbuf)"; - - PROCEDURE Stat*(name: Name; VAR statbuf: Status): LONGINT; - VAR res: LONGINT; - BEGIN - res := stat(name, statbuf); - (* make the first 4 bytes as unique as possible (used in module Files for caching!) *) - INC(statbuf.dev, statbuf.devX); - INC(statbuf.rdev, statbuf.rdevX); - RETURN res; - END Stat; - - PROCEDURE -fstat(fd: LONGINT; VAR statbuf: Status): LONGINT - "fstat(fd, (struct stat*)statbuf)"; - - PROCEDURE Fstat*(fd: LONGINT; VAR statbuf: Status): LONGINT; - VAR res: LONGINT; - BEGIN - res := fstat(fd, statbuf); - (* make the first 4 bytes as unique as possible (used in module Files for caching!) *) - INC(statbuf.dev, statbuf.devX); - INC(statbuf.rdev, statbuf.rdevX); - RETURN res; - END Fstat; - - PROCEDURE -Fchmod*(fd, mode: LONGINT): LONGINT - "fchmod(fd, mode)"; - - PROCEDURE -Chmod*(path: Name; mode: LONGINT): LONGINT - "chmod(path, mode)"; - - PROCEDURE -Lseek*(fd, offset, origin: LONGINT): LONGINT - "lseek(fd, offset, origin)"; - - PROCEDURE -Fsync*(fd: LONGINT): LONGINT - "fsync(fd)"; - - PROCEDURE -Fcntl*(fd, cmd, arg: LONGINT ): LONGINT - "fcntl(fd, cmd, arg)"; - - PROCEDURE -Flock*(fd, operation: LONGINT): LONGINT - "flock(fd, operation)"; - - PROCEDURE -Ftruncate*(fd, length: LONGINT): LONGINT - "ftruncate(fd, length)"; - - PROCEDURE -Readblk*(fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE; len: LONGINT): LONGINT - "read(fd, buf, len)"; - - PROCEDURE -Rename*(old, new: Name): LONGINT - "rename(old, new)"; - - PROCEDURE -Chdir*(path: Name): LONGINT - "chdir(path)"; - - PROCEDURE -Ioctl*(fd, request, arg: LONGINT): LONGINT - "ioctl(fd, request, arg)"; - - PROCEDURE -Kill*(pid, sig: LONGINT): LONGINT - "kill(pid, sig)"; - - PROCEDURE -Sigsetmask*(mask: LONGINT): LONGINT - "sigsetmask(mask)"; - - PROCEDURE -Sleep*(ms : LONGINT): LONGINT - "sleep(ms)"; - - PROCEDURE -Nanosleep*(VAR req : Timeval; VAR rem : Timeval): LONGINT - "nanosleep(req, rem)"; - - (* TCP/IP networking *) - - PROCEDURE -Gethostbyname*(name: Name): HostEntry - "(Unix_HostEntry)gethostbyname(name)"; - - PROCEDURE -Gethostname*(VAR name: Name): LONGINT - "gethostname(name, name__len)"; - - PROCEDURE -Socket*(af, type, protocol: LONGINT): LONGINT - "socket(af, type, protocol)"; - - PROCEDURE -Connect*(socket: LONGINT; name: Sockaddr; namelen: LONGINT): LONGINT - "connect(socket, &(name), namelen)"; - - PROCEDURE -Getsockname*(socket: LONGINT; VAR name: Sockaddr; VAR namelen: LONGINT): LONGINT - "getsockname(socket, name, namelen)"; - - PROCEDURE -Bind*(socket: LONGINT; name: Sockaddr; namelen: LONGINT): LONGINT - "bind(socket, &(name), namelen)"; - - PROCEDURE -Listen*(socket, backlog: LONGINT): LONGINT - "listen(socket, backlog)"; - - PROCEDURE -Accept*(socket: LONGINT; VAR addr: Sockaddr; VAR addrlen: LONGINT): LONGINT - "accept(socket, addr, addrlen)"; - - PROCEDURE -Recv*(socket, bufadr, buflen, flags: LONGINT): LONGINT - "recv(socket, bufadr, buflen, flags)"; - - PROCEDURE -Send*(socket, bufadr, buflen, flags: LONGINT): LONGINT - "send(socket, bufadr, buflen, flags)"; - - PROCEDURE -sys(str: ARRAY OF CHAR): INTEGER (* need this to call external tools like gcc or gas; noch *) - "system(str)"; - - PROCEDURE system*(cmd : ARRAY OF CHAR); - VAR r : INTEGER; - BEGIN - r := sys(cmd); - END system; - - PROCEDURE System*(cmd : ARRAY OF CHAR): INTEGER; - VAR r : INTEGER; - BEGIN - r := sys(cmd); - RETURN r - END System; - -END Unix. diff --git a/src/lib/system/linux/gcc/armv6j/SYSTEM.c0 b/src/lib/system/linux/gcc/armv6j/SYSTEM.c0 deleted file mode 100644 index 580449aa..00000000 --- a/src/lib/system/linux/gcc/armv6j/SYSTEM.c0 +++ /dev/null @@ -1,205 +0,0 @@ -/* -* The body prefix file of the Ofront runtime system, Version 1.0 -* -* Copyright (c) Software Templ, 1994, 1995 -* -* Module SYSTEM is subject to change any time without prior notification. -* Software Templ disclaims all warranties with regard to module SYSTEM, -* in particular shall Software Templ not be liable for any damage resulting -* from inappropriate use or modification of module SYSTEM. -* -* Version 1.1 jt, 24.11.95 fixes for correct pointer arithmetic on Cray computers -* jt 31.1.2007 ANSI prototypes for malloc and exit in order to avoid cc warnings -* -*/ - -#include "SYSTEM.h" -#ifdef __STDC__ -#include "stdarg.h" -#else -#include "varargs.h" -#endif - -extern void *malloc(long size); -extern void exit(int status); - -void (*SYSTEM_Halt)(); -LONGINT SYSTEM_halt; /* x in HALT(x) */ -LONGINT SYSTEM_assert; /* x in ASSERT(cond, x) */ -LONGINT SYSTEM_argc; -LONGINT SYSTEM_argv; -LONGINT SYSTEM_lock; -BOOLEAN SYSTEM_interrupted; -static LONGINT SYSTEM_mainfrm; /* adr of main proc stack frame, used for stack collection */ - -#define Lock SYSTEM_lock++ -#define Unlock SYSTEM_lock--; if (SYSTEM_interrupted && (SYSTEM_lock == 0)) __HALT(-9) - - -static void SYSTEM_InitHeap(); -void *SYSTEM__init(); - -void SYSTEM_INIT(argc, argvadr) - int argc; long argvadr; -{ - SYSTEM_mainfrm = argvadr; - SYSTEM_argc = argc; - SYSTEM_argv = *(long*)argvadr; - SYSTEM_InitHeap(); - SYSTEM_halt = -128; - SYSTEM__init(); -} - -void SYSTEM_FINI() -{ - SYSTEM_FINALL(); -} - -long SYSTEM_XCHK(i, ub) long i, ub; {return __X(i, ub);} -long SYSTEM_RCHK(i, ub) long i, ub; {return __R(i, ub);} -long SYSTEM_ASH(i, n) long i, n; {return __ASH(i, n);} -long SYSTEM_ABS(i) long i; {return __ABS(i);} -double SYSTEM_ABSD(i) double i; {return __ABS(i);} - -void SYSTEM_INHERIT(t, t0) - long *t, *t0; -{ - t -= __TPROC0OFF; - t0 -= __TPROC0OFF; - while (*t0 != __EOM) {*t = *t0; t--; t0--;} -} - -void SYSTEM_ENUMP(adr, n, P) - long *adr; - long n; - void (*P)(); -{ - while (n > 0) {P(*adr); adr++; n--;} -} - -void SYSTEM_ENUMR(adr, typ, size, n, P) - char *adr; - long *typ, size, n; - void (*P)(); -{ - long *t, off; - typ++; - while (n > 0) { - t = typ; - off = *t; - while (off >= 0) {P(*(long*)(adr+off)); t++; off = *t;} - adr += size; n--; - } -} - -long SYSTEM_DIV(x, y) - unsigned long x, y; -{ if ((long) x >= 0) return (x / y); - else return -((y - 1 - x) / y); -} - -long SYSTEM_MOD(x, y) - unsigned long x, y; -{ unsigned long m; - if ((long) x >= 0) return (x % y); - else { m = (-x) % y; - if (m != 0) return (y - m); else return 0; - } -} - -long SYSTEM_ENTIER(x) - double x; -{ - long y; - if (x >= 0) - return (long)x; - else { - y = (long)x; - if (y <= x) return y; else return y - 1; - } -} - -void SYSTEM_HALT(n) - int n; -{ - SYSTEM_halt = n; - if (SYSTEM_Halt!=0) SYSTEM_Halt(n); - exit(n); -} - -#ifdef __STDC__ -SYSTEM_PTR SYSTEM_NEWARR(long *typ, long elemsz, int elemalgn, int nofdim, int nofdyn, ...) -#else -SYSTEM_PTR SYSTEM_NEWARR(typ, elemsz, elemalgn, nofdim, nofdyn, va_alist) - long *typ, elemsz; - int elemalgn, nofdim, nofdyn; - va_dcl -#endif -{ - long nofelems, size, dataoff, n, nptr, *x, *p, nofptrs, i, *ptab, off; - va_list ap; -#ifdef __STDC__ - va_start(ap, nofdyn); -#else - va_start(ap); -#endif - nofelems = 1; - while (nofdim > 0) { - nofelems = nofelems * va_arg(ap, long); nofdim--; - if (nofelems <= 0) __HALT(-20); - } - va_end(ap); - dataoff = nofdyn * sizeof(long); - if (elemalgn > sizeof(long)) { - n = dataoff % elemalgn; - if (n != 0) dataoff += elemalgn - n; - } - size = dataoff + nofelems * elemsz; - Lock; - if (typ == NIL) { - /* element typ does not contain pointers */ - x = SYSTEM_NEWBLK(size); - } - else if (typ == POINTER__typ) { - /* element type is a pointer */ - x = SYSTEM_NEWBLK(size + nofelems * sizeof(long)); - p = (long*)x[-1]; - p[-nofelems] = *p; /* build new type desc in situ: 1. copy block size; 2. setup ptr tab; 3. set sentinel; 4. patch tag */ - p -= nofelems - 1; n = 1; /* n =1 for skipping the size field */ - while (n <= nofelems) {*p = n*sizeof(long); p++; n++;} - *p = - (nofelems + 1) * sizeof(long); /* sentinel */ - x[-1] -= nofelems * sizeof(long); - } - else { - /* element type is a record that contains pointers */ - ptab = typ + 1; nofptrs = 0; - while (ptab[nofptrs] >= 0) {nofptrs++;} /* number of pointers per element */ - nptr = nofelems * nofptrs; /* total number of pointers */ - x = SYSTEM_NEWBLK(size + nptr * sizeof(long)); - p = (long*)x[- 1]; - p[-nptr] = *p; /* build new type desc in situ; 1. copy block size; 2. setup ptr tab; 3. set sentinel; 4. patch tag */ - p -= nptr - 1; n = 0; off = dataoff; - while (n < nofelems) {i = 0; - while (i < nofptrs) {*p = off + ptab[i]; p++; i++;} - off += elemsz; n++; - } - *p = - (nptr + 1) * sizeof(long); /* sentinel */ - x[-1] -= nptr * sizeof(long); - } - if (nofdyn != 0) { - /* setup len vector for index checks */ -#ifdef __STDC__ - va_start(ap, nofdyn); -#else - va_start(ap); -#endif - p = x; - while (nofdyn > 0) {*p = va_arg(ap, long); p++, nofdyn--;} - va_end(ap); - } - Unlock; - return x; -} - -/* ----------- end of SYSTEM.co ------------- */ - diff --git a/src/lib/system/linux/gcc/armv6j/SYSTEM.h b/src/lib/system/linux/gcc/armv6j/SYSTEM.h deleted file mode 100644 index 719a6d18..00000000 --- a/src/lib/system/linux/gcc/armv6j/SYSTEM.h +++ /dev/null @@ -1,215 +0,0 @@ -#ifndef SYSTEM__h -#define SYSTEM__h - -/* - -the Ofront runtime system interface and macros library -copyright (c) Josef Templ, 1995, 1996 - -gcc for Linux version (same as SPARC/Solaris2) -uses double # as concatenation operator - -*/ - -#include - -//extern void *memcpy(void *dest, const void *src, long n); -extern void *memcpy(void *dest, const void *src, size_t n); -extern void *malloc(long size); -extern void exit(int status); - -#define export -#define import extern - -/* constants */ -#define __MAXEXT 16 -#define NIL 0L -#define POINTER__typ (long*)1L /* not NIL and not a valid type */ - -/* basic types */ -typedef char BOOLEAN; -typedef unsigned char CHAR; -typedef signed char SHORTINT; -typedef short int INTEGER; -typedef long LONGINT; -typedef float REAL; -typedef double LONGREAL; -typedef unsigned long SET; -typedef void *SYSTEM_PTR; -typedef unsigned char SYSTEM_BYTE; - -/* runtime system routines */ -extern long SYSTEM_DIV(); -extern long SYSTEM_MOD(); -extern long SYSTEM_ENTIER(); -extern long SYSTEM_ASH(); -extern long SYSTEM_ABS(); -extern long SYSTEM_XCHK(); -extern long SYSTEM_RCHK(); -extern double SYSTEM_ABSD(); -extern SYSTEM_PTR SYSTEM_NEWREC(); -extern SYSTEM_PTR SYSTEM_NEWBLK(); -#ifdef __STDC__ -extern SYSTEM_PTR SYSTEM_NEWARR(long*, long, int, int, int, ...); -#else -extern SYSTEM_PTR SYSTEM_NEWARR(); -#endif -extern SYSTEM_PTR SYSTEM_REGMOD(); -extern void SYSTEM_INCREF(); -extern void SYSTEM_REGCMD(); -extern void SYSTEM_REGTYP(); -extern void SYSTEM_REGFIN(); -extern void SYSTEM_FINALL(); -extern void SYSTEM_INIT(); -extern void SYSTEM_FINI(); -extern void SYSTEM_HALT(); -extern void SYSTEM_INHERIT(); -extern void SYSTEM_ENUMP(); -extern void SYSTEM_ENUMR(); - -/* module registry */ -#define __DEFMOD static void *m; if(m!=0)return m -#define __REGMOD(name, enum) if(m==0)m=SYSTEM_REGMOD((CHAR*)name,enum); else return m -#define __ENDMOD return m -#define __INIT(argc, argv) static void *m; SYSTEM_INIT(argc, (long)&argv); -#define __REGMAIN(name, enum) m=SYSTEM_REGMOD(name,enum) -#define __FINI SYSTEM_FINI(); return 0 -#define __IMPORT(name) SYSTEM_INCREF(name##__init()) -#define __REGCMD(name, cmd) SYSTEM_REGCMD(m, name, cmd) - -/* SYSTEM ops */ -#define __SYSNEW(p, len) p=SYSTEM_NEWBLK((long)(len)) -#define __VAL(t, x) (*(t*)&(x)) -#define __GET(a, x, t) x= *(t*)(a) -#define __PUT(a, x, t) *(t*)(a)=x -#define __LSHL(x, n, t) ((t)((unsigned)(x)<<(n))) -#define __LSHR(x, n, t) ((t)((unsigned)(x)>>(n))) -#define __LSH(x, n, t) ((n)>=0? __LSHL(x, n, t): __LSHR(x, -(n), t)) -#define __ROTL(x, n, t) ((t)((unsigned)(x)<<(n)|(unsigned)(x)>>(8*sizeof(t)-(n)))) -#define __ROTR(x, n, t) ((t)((unsigned)(x)>>(n)|(unsigned)(x)<<(8*sizeof(t)-(n)))) -#define __ROT(x, n, t) ((n)>=0? __ROTL(x, n, t): __ROTR(x, -(n), t)) -#define __BIT(x, n) (*(unsigned long*)(x)>>(n)&1) -#define __MOVE(s, d, n) memcpy((char*)(d),(char*)(s),n) - -/* std procs and operator mappings */ -#define __SHORT(x, y) ((int)((unsigned long)(x)+(y)<(y)+(y)?(x):(__HALT(-8),0))) -#define __SHORTF(x, y) ((int)(__RF((x)+(y),(y)+(y))-(y))) -#define __CHR(x) ((CHAR)__R(x, 256)) -#define __CHRF(x) ((CHAR)__RF(x, 256)) -#define __DIV(x, y) ((x)>=0?(x)/(y):-(((y)-1-(x))/(y))) -#define __DIVF(x, y) SYSTEM_DIV((long)(x),(long)(y)) -#define __MOD(x, y) ((x)>=0?(x)%(y):__MODF(x,y)) -#define __MODF(x, y) SYSTEM_MOD((long)(x),(long)(y)) -#define __NEW(p, t) p=SYSTEM_NEWREC((long)t##__typ) -#define __NEWARR SYSTEM_NEWARR -#define __HALT(x) SYSTEM_HALT(x) -#define __ASSERT(cond, x) if (!(cond)) {SYSTEM_assert = x; SYSTEM_HALT(-1);} -#define __ENTIER(x) SYSTEM_ENTIER(x) -#define __ABS(x) (((x)<0)?-(x):(x)) -#define __ABSF(x) SYSTEM_ABS((long)(x)) -#define __ABSFD(x) SYSTEM_ABSD((double)(x)) -#define __CAP(ch) ((CHAR)((ch)&0x5f)) -#define __ODD(x) ((x)&1) -#define __IN(x, s) (((s)>>(x))&1) -#define __SETOF(x) ((SET)1<<(x)) -#define __SETRNG(l, h) ((~(SET)0<<(l))&~(SET)0>>(8*sizeof(SET)-1-(h))) -#define __MASK(x, m) ((x)&~(m)) -#define __COPY(s, d, n) {char*_a=(void*)s,*_b=(void*)d;long _i=0,_t=n-1;while(_i<_t&&((_b[_i]=_a[_i])!=0)){_i++;};_b[_i]=0;} -static int __STRCMP(x, y) - CHAR *x, *y; -{long i = 0; CHAR ch1, ch2; - do {ch1 = x[i]; ch2 = y[i]; i++; - if (!ch1) return -(int)ch2; - } while (ch1==ch2); - return (int)ch1 - (int)ch2; -} -#define __ASH(x, n) ((n)>=0?__ASHL(x,n):__ASHR(x,-(n))) -#define __ASHL(x, n) ((long)(x)<<(n)) -#define __ASHR(x, n) ((long)(x)>>(n)) -#define __ASHF(x, n) SYSTEM_ASH((long)(x), (long)(n)) -#define __DUP(x, l, t) x=(void*)memcpy(alloca(l*sizeof(t)),x,l*sizeof(t)) -#define __DUPARR(v, t) v=(void*)memcpy(v##__copy,v,sizeof(t)) -#define __DEL(x) /* DUP with alloca frees storage automatically */ -#define __IS(tag, typ, level) (*(tag-(__BASEOFF-level))==(long)typ##__typ) -#define __TYPEOF(p) (*(((long**)(p))-1)) -#define __ISP(p, typ, level) __IS(__TYPEOF(p),typ,level) - -/* runtime checks */ -#define __X(i, ub) (((unsigned)(long)(i)<(unsigned long)(ub))?i:(__HALT(-2),0)) -#define __XF(i, ub) SYSTEM_XCHK((long)(i), (long)(ub)) -#define __RETCHK __retchk: __HALT(-3) -#define __CASECHK __HALT(-4) -#define __GUARDP(p, typ, level) ((typ*)(__ISP(p,typ,level)?p:(__HALT(-5),p))) -#define __GUARDR(r, typ, level) (*((typ*)(__IS(r##__typ,typ,level)?r:(__HALT(-5),r)))) -#define __GUARDA(p, typ, level) ((struct typ*)(__IS(__TYPEOF(p),typ,level)?p:(__HALT(-5),p))) -#define __GUARDEQR(p, dyntyp, typ) if(dyntyp!=typ##__typ) __HALT(-6);*(p) -#define __GUARDEQP(p, typ) if(__TYPEOF(p)!=typ##__typ)__HALT(-6);*(p) -#define __WITHCHK __HALT(-7) -#define __R(i, ub) (((unsigned)(long)(i)<(unsigned long)(ub))?i:(__HALT(-8),0)) -#define __RF(i, ub) SYSTEM_RCHK((long)(i),(long)(ub)) - -/* record type descriptors */ -#define __TDESC(t, m, n) \ - static struct t##__desc {\ - long tproc[m]; \ - long tag, next, level, module; \ - char name[24]; \ - long *base[__MAXEXT]; \ - char *rsrvd; \ - long blksz, ptr[n+1]; \ - } t##__desc - -#define __BASEOFF (__MAXEXT+1) -#define __TPROC0OFF (__BASEOFF+24/sizeof(long)+5) -#define __EOM 1 -#define __TDFLDS(name, size) {__EOM}, 1, 0, 0, 0, name, {0}, 0, size -#define __ENUMP(adr, n, P) SYSTEM_ENUMP(adr, (long)(n), P) -#define __ENUMR(adr, typ, size, n, P) SYSTEM_ENUMR(adr, typ, (long)(size), (long)(n), P) - -#define __INITYP(t, t0, level) \ - t##__typ= &t##__desc.blksz; \ - memcpy(t##__desc.base, t0##__typ - __BASEOFF, level*sizeof(long)); \ - t##__desc.base[level]=t##__typ; \ - t##__desc.module=(long)m; \ - if(t##__desc.blksz!=sizeof(struct t)) __HALT(-15); \ - t##__desc.blksz=(t##__desc.blksz+5*sizeof(long)-1)/(4*sizeof(long))*(4*sizeof(long)); \ - SYSTEM_REGTYP(m, (long)&t##__desc.next); \ - SYSTEM_INHERIT(t##__typ, t0##__typ) - -/* Oberon-2 type bound procedures support */ -#define __INITBP(t, proc, num) *(t##__typ-(__TPROC0OFF+num))=(long)proc -#define __SEND(typ, num, funtyp, parlist) ((funtyp)(*(typ-(__TPROC0OFF+num))))parlist - -/* runtime system variables */ -extern LONGINT SYSTEM_argc; -extern LONGINT SYSTEM_argv; -extern void (*SYSTEM_Halt)(); -extern LONGINT SYSTEM_halt; -extern LONGINT SYSTEM_assert; -extern SYSTEM_PTR SYSTEM_modules; -extern LONGINT SYSTEM_heapsize; -extern LONGINT SYSTEM_allocated; -extern LONGINT SYSTEM_lock; -extern SHORTINT SYSTEM_gclock; -extern BOOLEAN SYSTEM_interrupted; - -/* ANSI prototypes; not used so far -static int __STRCMP(CHAR *x, CHAR *y); -void SYSTEM_INIT(int argc, long argvadr); -void SYSTEM_FINI(void); -long SYSTEM_XCHK(long i, long ub); -long SYSTEM_RCHK(long i, long ub); -long SYSTEM_ASH(long i, long n); -long SYSTEM_ABS(long i); -double SYSTEM_ABSD(double i); -void SYSTEM_INHERIT(long *t, long *t0); -void SYSTEM_ENUMP(long *adr, long n, void (*P)(void*)); -void SYSTEM_ENUMR(char *adr, long *typ, long size, long n, void (*P)(void*)); -long SYSTEM_DIV(unsigned long x, unsigned long y); -long SYSTEM_MOD(unsigned long x, unsigned long y); -long SYSTEM_ENTIER(double x); -void SYSTEM_HALT(int n); -*/ - -#endif - diff --git a/src/lib/system/linux/gcc/armv6j/Unix.Mod b/src/lib/system/linux/gcc/armv6j/Unix.Mod deleted file mode 100644 index e2a25ec5..00000000 --- a/src/lib/system/linux/gcc/armv6j/Unix.Mod +++ /dev/null @@ -1,441 +0,0 @@ -MODULE Unix; (* Josef Templ, 5.3.90 Linux system calls *) -(* system procedure added by noch *) -(* Module Unix provides a system call interface to Linux. - Naming conventions: - Procedure and Type-names always start with a capital letter. - error numbers as defined in Unix - other constants start with lower case letters *) - -IMPORT SYSTEM; - -CONST - -(* various important constants *) - - stdin* = 0; stdout* =1; stderr* = 2; - - LOCKEX* = 2; LOCKUN* = 8; (* /usr/include/file.h *) - AFINET* = 2; (* /usr/include/sys/socket.h *) - PFINET* = AFINET; (* /usr/include/linux/socket.h *) - SOCKSTREAM* = 1; (* /usr/include/linux/socket.h *) - FIONREAD* = 541BH; (* in /usr/include/asm/termios.h *) - SETFL* = 4; (* set file descriptor flags; in asm/fcntl.h *) - TCP* = 0; - -(* flag sets, cf. /usr/include/asm/fcntl.h *) - rdonly* = {}; wronly* = {0}; rdwr* = {1}; creat* = {6}; excl* = {7}; trunc* = {9}; append* = {10}; ndelay = {11}; - -(* error numbers *) - - EPERM* = 1; (* Not owner *) - ENOENT* = 2; (* No such file or directory *) - ESRCH* = 3; (* No such process *) - EINTR* = 4; (* Interrupted system call *) - EIO* = 5; (* I/O error *) - ENXIO* = 6; (* No such device or address *) - E2BIG* = 7; (* Arg list too long *) - ENOEXEC* = 8; (* Exec format error *) - EBADF* = 9; (* Bad file number *) - ECHILD* = 10; (* No children *) - EAGAIN* = 11; (* No more processes *) - ENOMEM* = 12; (* Not enough core *) - EACCES* = 13; (* Permission denied *) - EFAULT* = 14; (* Bad address *) - ENOTBLK* = 15; (* Block device required *) - EBUSY* = 16; (* Mount device busy *) - EEXIST* = 17; (* File exists *) - EXDEV* = 18; (* Cross-device link *) - ENODEV* = 19; (* No such device *) - ENOTDIR* = 20; (* Not a directory*) - EISDIR* = 21; (* Is a directory *) - EINVAL* = 22; (* Invalid argument *) - ENFILE* = 23; (* File table overflow *) - EMFILE* = 24; (* Too many open files *) - ENOTTY* = 25; (* Not a typewriter *) - ETXTBSY* = 26; (* Text file busy *) - EFBIG* = 27; (* File too large *) - ENOSPC* = 28; (* No space left on device *) - ESPIPE* = 29; (* Illegal seek *) - EROFS* = 30; (* Read-only file system *) - EMLINK* = 31; (* Too many links *) - EPIPE* = 32; (* Broken pipe *) - EDOM* = 33; (* Argument too large *) - ERANGE* = 34; (* Result too large *) - EDEADLK* = 35; (* Resource deadlock would occur *) - ENAMETOOLONG* = 36; (* File name too long *) - ENOLCK* = 37; (* No record locks available *) - ENOSYS* = 38; (* Function not implemented *) - ENOTEMPTY* = 39; (* Directory not empty *) - ELOOP* = 40; (* Too many symbolic links encountered *) - EWOULDBLOCK* = EAGAIN; (* Operation would block *) - ENOMSG* = 42; (* No message of desired type *) - EIDRM* = 43; (* Identifier removed *) - ECHRNG* = 44; (* Channel number out of range *) - EL2NSYNC* = 45; (* Level 2 not synchronized *) - EL3HLT* = 46; (* Level 3 halted *) - EL3RST* = 47; (* Level 3 reset *) - ELNRNG* = 48; (* Link number out of range *) - EUNATCH* = 49; (* Protocol driver not attached *) - ENOCSI* = 50; (* No CSI structure available *) - EL2HLT* = 51; (* Level 2 halted *) - EBADE* = 52; (* Invalid exchange *) - EBADR* = 53; (* Invalid request descriptor *) - EXFULL* = 54; (* Exchange full *) - ENOANO* = 55; (* No anode *) - EBADRQC* = 56; (* Invalid request code *) - EBADSLT* = 57; (* Invalid slot *) - EDEADLOCK* = 58; (* File locking deadlock error *) - EBFONT* = 59; (* Bad font file format *) - ENOSTR* = 60; (* Device not a stream *) - ENODATA* = 61; (* No data available *) - ETIME* = 62; (* Timer expired *) - ENOSR* = 63; (* Out of streams resources *) - ENONET* = 64; (* Machine is not on the network *) - ENOPKG* = 65; (* Package not installed *) - EREMOTE* = 66; (* Object is remote *) - ENOLINK* = 67; (* Link has been severed *) - EADV* = 68; (* Advertise error *) - ESRMNT* = 69; (* Srmount error *) - ECOMM* = 70; (* Communication error on send *) - EPROTO* = 71; (* Protocol error *) - EMULTIHOP* = 72; (* Multihop attempted *) - EDOTDOT* = 73; (* RFS specific error *) - EBADMSG* = 74; (* Not a data message *) - EOVERFLOW* = 75; (* Value too large for defined data type *) - ENOTUNIQ* = 76; (* Name not unique on network *) - EBADFD* = 77; (* File descriptor in bad state *) - EREMCHG* = 78; (* Remote address changed *) - ELIBACC* = 79; (* Can not access a needed shared library *) - ELIBBAD* = 80; (* Accessing a corrupted shared library *) - ELIBSCN* = 81; (* .lib section in a.out corrupted *) - ELIBMAX* = 82; (* Attempting to link in too many shared libraries *) - ELIBEXEC* = 83; (* Cannot exec a shared library directly *) - EILSEQ* = 84; (* Illegal byte sequence *) - ERESTART* = 85; (* Interrupted system call should be restarted *) - ESTRPIPE* = 86; (* Streams pipe error *) - EUSERS* = 87; (* Too many users *) - ENOTSOCK* = 88; (* Socket operation on non-socket *) - EDESTADDRREQ* = 89; (* Destination address required *) - EMSGSIZE* = 90; (* Message too long *) - EPROTOTYPE* = 91; (* Protocol wrong type for socket *) - ENOPROTOOPT* = 92; (* Protocol not available *) - EPROTONOSUPPORT* = 93; (* Protocol not supported *) - ESOCKTNOSUPPORT* = 94; (* Socket type not supported *) - EOPNOTSUPP* = 95; (* Operation not supported on transport endpoint *) - EPFNOSUPPORT* = 96; (* Protocol family not supported *) - EAFNOSUPPORT* = 97; (* Address family not supported by protocol *) - EADDRINUSE* = 98; (* Address already in use *) - EADDRNOTAVAIL* = 99; (* Cannot assign requested address *) - ENETDOWN* = 100; (* Network is down *) - ENETUNREACH* = 101; (* Network is unreachable *) - ENETRESET* = 102; (* Network dropped connection because of reset *) - ECONNABORTED* = 103; (* Software caused connection abort *) - ECONNRESET* = 104; (* Connection reset by peer *) - ENOBUFS* = 105; (* No buffer space available *) - EISCONN* = 106; (* Transport endpoint is already connected *) - ENOTCONN* = 107; (* Transport endpoint is not connected *) - ESHUTDOWN* = 108; (* Cannot send after transport endpoint shutdown *) - ETOOMANYREFS* = 109; (* Too many references: cannot splice *) - ETIMEDOUT* = 110; (* Connection timed out *) - ECONNREFUSED* = 111; (* Connection refused *) - EHOSTDOWN* = 112; (* Host is down *) - EHOSTUNREACH* = 113; (* No route to host *) - EALREADY* = 114; (* Operation already in progress *) - EINPROGRESS* = 115; (* Operation now in progress *) - ESTALE* = 116; (* Stale NFS file handle *) - EUCLEAN* = 117; (* Structure needs cleaning *) - ENOTNAM* = 118; (* Not a XENIX named type file *) - ENAVAIL* = 119; (* No XENIX semaphores available *) - EISNAM* = 120; (* Is a named type file *) - EREMOTEIO* = 121; (* Remote I/O error *) - EDQUOT* = 122; (* Quota exceeded *) - - -TYPE - JmpBuf* = RECORD - bx*, si*, di*, bp*, sp*, pc*: LONGINT; - maskWasSaved*, savedMask*: LONGINT; - END ; - - Status* = RECORD (* struct stat *) - dev*, devX*: LONGINT; (* 64 bit in Linux 2.2 *) - pad1: INTEGER; - ino*, mode*, nlink*, uid*, gid*: LONGINT; - rdev*, rdevX*: LONGINT; (* 64 bit in Linux 2.2 *) - pad2: INTEGER; - size*, blksize*, blocks*, atime*, unused1*, mtime*, unused2*, ctime*, - unused3*, unused4*, unused5*: LONGINT; - END ; - - Timeval* = RECORD - sec*, usec*: LONGINT - END ; - - Timezone* = RECORD - minuteswest*, dsttime*: LONGINT - END ; - - Itimerval* = RECORD - interval*, value*: Timeval - END ; - - FdSet* = ARRAY 8 OF SET; - - SigCtxPtr* = POINTER TO SigContext; - SigContext* = RECORD - END ; - - SignalHandler* = PROCEDURE (sig, code: LONGINT; scp: SigCtxPtr); - - Dirent* = RECORD - ino, off: LONGINT; - reclen: INTEGER; - name: ARRAY 256 OF CHAR; - END ; - - Rusage* = RECORD - utime*, stime*: Timeval; - maxrss*, ixrss*, idrss*, isrss*, - minflt*, majflt*, nswap*, inblock*, - oublock*, msgsnd*, msgrcv*, nsignals*, - nvcsw*, nivcsw*: LONGINT - END ; - - Iovec* = RECORD - base*, len*: LONGINT - END ; - - SocketPair* = ARRAY 2 OF LONGINT; - - Pollfd* = RECORD - fd*: LONGINT; - events*, revents*: INTEGER - END ; - - Sockaddr* = RECORD - family*: INTEGER; - port*: INTEGER; - internetAddr*: LONGINT; - pad*: ARRAY 8 OF CHAR; - END ; - - HostEntry* = POINTER [1] TO Hostent; - Hostent* = RECORD - name*, aliases*: LONGINT; - addrtype*, length*: LONGINT; - addrlist*: LONGINT; (*POINTER TO POINTER TO LONGINT, network byte order*) - END; - - Name* = ARRAY OF CHAR; - - PROCEDURE -includeStat() - "#include "; - - PROCEDURE -includeErrno() - "#include "; - - (* for read(), write() and sleep() *) - PROCEDURE -includeUnistd() - "#include "; - - (* for system() *) -(* commented, doesn't compile on 32bit GNU/Linux platforms - PROCEDURE -includeStdlib() - "#include "; -*) - (* for nanosleep() *) - PROCEDURE -includeTime() - "#include "; - - (* for select() *) - PROCEDURE -includeSelect() - "#include "; - - PROCEDURE -err(): LONGINT - "errno"; - - PROCEDURE errno*(): LONGINT; - BEGIN - RETURN err() - END errno; - - PROCEDURE -Exit*(n: LONGINT) - "exit(n)"; - - PROCEDURE -Fork*(): LONGINT - "fork()"; - - PROCEDURE -Wait*(VAR status: LONGINT): LONGINT - "wait(status)"; - - PROCEDURE -Select*(width: LONGINT; VAR readfds, writefds, exceptfds: FdSet; VAR timeout: Timeval): LONGINT - "select(width, readfds, writefds, exceptfds, timeout)"; - - PROCEDURE -Gettimeofday* (VAR tv: Timeval; VAR tz: Timezone) : LONGINT - "gettimeofday(tv, tz)"; - - PROCEDURE -Read* (fd, buf, nbyte: LONGINT): LONGINT - "read(fd, buf, nbyte)"; - - PROCEDURE -ReadBlk* (fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE): LONGINT - "read(fd, buf, buf__len)"; - - PROCEDURE -Write* (fd, buf, nbyte: LONGINT): LONGINT - "write(fd, buf, nbyte)"; - - PROCEDURE -WriteBlk* (fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE): LONGINT - "write(fd, buf, buf__len)"; - - PROCEDURE -Dup*(fd: LONGINT): LONGINT - "dup(fd)"; - - PROCEDURE -Dup2*(fd1, fd2: LONGINT): LONGINT - "dup(fd1, fd2)"; - - PROCEDURE -Pipe*(fds : LONGINT): LONGINT - "pipe(fds)"; - - PROCEDURE -Getpid*(): LONGINT - "getpid()"; - - PROCEDURE -Getuid*(): LONGINT - "getuid()"; - - PROCEDURE -Geteuid*(): LONGINT - "geteuid()"; - - PROCEDURE -Getgid*(): LONGINT - "getgid()"; - - PROCEDURE -Getegid*(): LONGINT - "getegid()"; - - PROCEDURE -Unlink*(name: Name): LONGINT - "unlink(name)"; - - PROCEDURE -Open*(name: Name; flag, mode: SET): LONGINT - "open(name, flag, mode)"; - - PROCEDURE -Close*(fd: LONGINT): LONGINT - "close(fd)"; - - PROCEDURE -stat(name: Name; VAR statbuf: Status): LONGINT - "stat((const char*)name, (struct stat*)statbuf)"; - - PROCEDURE Stat*(name: Name; VAR statbuf: Status): LONGINT; - VAR res: LONGINT; - BEGIN - res := stat(name, statbuf); - (* make the first 4 bytes as unique as possible (used in module Files for caching!) *) - INC(statbuf.dev, statbuf.devX); - INC(statbuf.rdev, statbuf.rdevX); - RETURN res; - END Stat; - - PROCEDURE -fstat(fd: LONGINT; VAR statbuf: Status): LONGINT - "fstat(fd, (struct stat*)statbuf)"; - - PROCEDURE Fstat*(fd: LONGINT; VAR statbuf: Status): LONGINT; - VAR res: LONGINT; - BEGIN - res := fstat(fd, statbuf); - (* make the first 4 bytes as unique as possible (used in module Files for caching!) *) - INC(statbuf.dev, statbuf.devX); - INC(statbuf.rdev, statbuf.rdevX); - RETURN res; - END Fstat; - - PROCEDURE -Fchmod*(fd, mode: LONGINT): LONGINT - "fchmod(fd, mode)"; - - PROCEDURE -Chmod*(path: Name; mode: LONGINT): LONGINT - "chmod(path, mode)"; - - PROCEDURE -Lseek*(fd, offset, origin: LONGINT): LONGINT - "lseek(fd, offset, origin)"; - - PROCEDURE -Fsync*(fd: LONGINT): LONGINT - "fsync(fd)"; - - PROCEDURE -Fcntl*(fd, cmd, arg: LONGINT ): LONGINT - "fcntl(fd, cmd, arg)"; - - PROCEDURE -Flock*(fd, operation: LONGINT): LONGINT - "flock(fd, operation)"; - - PROCEDURE -Ftruncate*(fd, length: LONGINT): LONGINT - "ftruncate(fd, length)"; - - PROCEDURE -Readblk*(fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE; len: LONGINT): LONGINT - "read(fd, buf, len)"; - - PROCEDURE -Rename*(old, new: Name): LONGINT - "rename(old, new)"; - - PROCEDURE -Chdir*(path: Name): LONGINT - "chdir(path)"; - - PROCEDURE -Ioctl*(fd, request, arg: LONGINT): LONGINT - "ioctl(fd, request, arg)"; - - PROCEDURE -Kill*(pid, sig: LONGINT): LONGINT - "kill(pid, sig)"; - - PROCEDURE -Sigsetmask*(mask: LONGINT): LONGINT - "sigsetmask(mask)"; - - PROCEDURE -Sleep*(ms : LONGINT): LONGINT - "sleep(ms)"; - - PROCEDURE -Nanosleep*(VAR req : Timeval; VAR rem : Timeval): LONGINT - "nanosleep(req, rem)"; - - (* TCP/IP networking *) - - PROCEDURE -Gethostbyname*(name: Name): HostEntry - "(Unix_HostEntry)gethostbyname(name)"; - - PROCEDURE -Gethostname*(VAR name: Name): LONGINT - "gethostname(name, name__len)"; - - PROCEDURE -Socket*(af, type, protocol: LONGINT): LONGINT - "socket(af, type, protocol)"; - - PROCEDURE -Connect*(socket: LONGINT; name: Sockaddr; namelen: LONGINT): LONGINT - "connect(socket, &(name), namelen)"; - - PROCEDURE -Getsockname*(socket: LONGINT; VAR name: Sockaddr; VAR namelen: LONGINT): LONGINT - "getsockname(socket, name, namelen)"; - - PROCEDURE -Bind*(socket: LONGINT; name: Sockaddr; namelen: LONGINT): LONGINT - "bind(socket, &(name), namelen)"; - - PROCEDURE -Listen*(socket, backlog: LONGINT): LONGINT - "listen(socket, backlog)"; - - PROCEDURE -Accept*(socket: LONGINT; VAR addr: Sockaddr; VAR addrlen: LONGINT): LONGINT - "accept(socket, addr, addrlen)"; - - PROCEDURE -Recv*(socket, bufadr, buflen, flags: LONGINT): LONGINT - "recv(socket, bufadr, buflen, flags)"; - - PROCEDURE -Send*(socket, bufadr, buflen, flags: LONGINT): LONGINT - "send(socket, bufadr, buflen, flags)"; - - PROCEDURE -sys(str: ARRAY OF CHAR): INTEGER (* need this to call external tools like gcc or gas; noch *) - "system(str)"; - - PROCEDURE system*(cmd : ARRAY OF CHAR); - VAR r : INTEGER; - BEGIN - r := sys(cmd); - END system; - - PROCEDURE System*(cmd : ARRAY OF CHAR): INTEGER; - VAR r : INTEGER; - BEGIN - r := sys(cmd); - RETURN r - END System; - -END Unix. diff --git a/src/lib/system/linux/gcc/armv7a_hardfp/SYSTEM.c0 b/src/lib/system/linux/gcc/armv7a_hardfp/SYSTEM.c0 deleted file mode 100644 index 580449aa..00000000 --- a/src/lib/system/linux/gcc/armv7a_hardfp/SYSTEM.c0 +++ /dev/null @@ -1,205 +0,0 @@ -/* -* The body prefix file of the Ofront runtime system, Version 1.0 -* -* Copyright (c) Software Templ, 1994, 1995 -* -* Module SYSTEM is subject to change any time without prior notification. -* Software Templ disclaims all warranties with regard to module SYSTEM, -* in particular shall Software Templ not be liable for any damage resulting -* from inappropriate use or modification of module SYSTEM. -* -* Version 1.1 jt, 24.11.95 fixes for correct pointer arithmetic on Cray computers -* jt 31.1.2007 ANSI prototypes for malloc and exit in order to avoid cc warnings -* -*/ - -#include "SYSTEM.h" -#ifdef __STDC__ -#include "stdarg.h" -#else -#include "varargs.h" -#endif - -extern void *malloc(long size); -extern void exit(int status); - -void (*SYSTEM_Halt)(); -LONGINT SYSTEM_halt; /* x in HALT(x) */ -LONGINT SYSTEM_assert; /* x in ASSERT(cond, x) */ -LONGINT SYSTEM_argc; -LONGINT SYSTEM_argv; -LONGINT SYSTEM_lock; -BOOLEAN SYSTEM_interrupted; -static LONGINT SYSTEM_mainfrm; /* adr of main proc stack frame, used for stack collection */ - -#define Lock SYSTEM_lock++ -#define Unlock SYSTEM_lock--; if (SYSTEM_interrupted && (SYSTEM_lock == 0)) __HALT(-9) - - -static void SYSTEM_InitHeap(); -void *SYSTEM__init(); - -void SYSTEM_INIT(argc, argvadr) - int argc; long argvadr; -{ - SYSTEM_mainfrm = argvadr; - SYSTEM_argc = argc; - SYSTEM_argv = *(long*)argvadr; - SYSTEM_InitHeap(); - SYSTEM_halt = -128; - SYSTEM__init(); -} - -void SYSTEM_FINI() -{ - SYSTEM_FINALL(); -} - -long SYSTEM_XCHK(i, ub) long i, ub; {return __X(i, ub);} -long SYSTEM_RCHK(i, ub) long i, ub; {return __R(i, ub);} -long SYSTEM_ASH(i, n) long i, n; {return __ASH(i, n);} -long SYSTEM_ABS(i) long i; {return __ABS(i);} -double SYSTEM_ABSD(i) double i; {return __ABS(i);} - -void SYSTEM_INHERIT(t, t0) - long *t, *t0; -{ - t -= __TPROC0OFF; - t0 -= __TPROC0OFF; - while (*t0 != __EOM) {*t = *t0; t--; t0--;} -} - -void SYSTEM_ENUMP(adr, n, P) - long *adr; - long n; - void (*P)(); -{ - while (n > 0) {P(*adr); adr++; n--;} -} - -void SYSTEM_ENUMR(adr, typ, size, n, P) - char *adr; - long *typ, size, n; - void (*P)(); -{ - long *t, off; - typ++; - while (n > 0) { - t = typ; - off = *t; - while (off >= 0) {P(*(long*)(adr+off)); t++; off = *t;} - adr += size; n--; - } -} - -long SYSTEM_DIV(x, y) - unsigned long x, y; -{ if ((long) x >= 0) return (x / y); - else return -((y - 1 - x) / y); -} - -long SYSTEM_MOD(x, y) - unsigned long x, y; -{ unsigned long m; - if ((long) x >= 0) return (x % y); - else { m = (-x) % y; - if (m != 0) return (y - m); else return 0; - } -} - -long SYSTEM_ENTIER(x) - double x; -{ - long y; - if (x >= 0) - return (long)x; - else { - y = (long)x; - if (y <= x) return y; else return y - 1; - } -} - -void SYSTEM_HALT(n) - int n; -{ - SYSTEM_halt = n; - if (SYSTEM_Halt!=0) SYSTEM_Halt(n); - exit(n); -} - -#ifdef __STDC__ -SYSTEM_PTR SYSTEM_NEWARR(long *typ, long elemsz, int elemalgn, int nofdim, int nofdyn, ...) -#else -SYSTEM_PTR SYSTEM_NEWARR(typ, elemsz, elemalgn, nofdim, nofdyn, va_alist) - long *typ, elemsz; - int elemalgn, nofdim, nofdyn; - va_dcl -#endif -{ - long nofelems, size, dataoff, n, nptr, *x, *p, nofptrs, i, *ptab, off; - va_list ap; -#ifdef __STDC__ - va_start(ap, nofdyn); -#else - va_start(ap); -#endif - nofelems = 1; - while (nofdim > 0) { - nofelems = nofelems * va_arg(ap, long); nofdim--; - if (nofelems <= 0) __HALT(-20); - } - va_end(ap); - dataoff = nofdyn * sizeof(long); - if (elemalgn > sizeof(long)) { - n = dataoff % elemalgn; - if (n != 0) dataoff += elemalgn - n; - } - size = dataoff + nofelems * elemsz; - Lock; - if (typ == NIL) { - /* element typ does not contain pointers */ - x = SYSTEM_NEWBLK(size); - } - else if (typ == POINTER__typ) { - /* element type is a pointer */ - x = SYSTEM_NEWBLK(size + nofelems * sizeof(long)); - p = (long*)x[-1]; - p[-nofelems] = *p; /* build new type desc in situ: 1. copy block size; 2. setup ptr tab; 3. set sentinel; 4. patch tag */ - p -= nofelems - 1; n = 1; /* n =1 for skipping the size field */ - while (n <= nofelems) {*p = n*sizeof(long); p++; n++;} - *p = - (nofelems + 1) * sizeof(long); /* sentinel */ - x[-1] -= nofelems * sizeof(long); - } - else { - /* element type is a record that contains pointers */ - ptab = typ + 1; nofptrs = 0; - while (ptab[nofptrs] >= 0) {nofptrs++;} /* number of pointers per element */ - nptr = nofelems * nofptrs; /* total number of pointers */ - x = SYSTEM_NEWBLK(size + nptr * sizeof(long)); - p = (long*)x[- 1]; - p[-nptr] = *p; /* build new type desc in situ; 1. copy block size; 2. setup ptr tab; 3. set sentinel; 4. patch tag */ - p -= nptr - 1; n = 0; off = dataoff; - while (n < nofelems) {i = 0; - while (i < nofptrs) {*p = off + ptab[i]; p++; i++;} - off += elemsz; n++; - } - *p = - (nptr + 1) * sizeof(long); /* sentinel */ - x[-1] -= nptr * sizeof(long); - } - if (nofdyn != 0) { - /* setup len vector for index checks */ -#ifdef __STDC__ - va_start(ap, nofdyn); -#else - va_start(ap); -#endif - p = x; - while (nofdyn > 0) {*p = va_arg(ap, long); p++, nofdyn--;} - va_end(ap); - } - Unlock; - return x; -} - -/* ----------- end of SYSTEM.co ------------- */ - diff --git a/src/lib/system/linux/gcc/armv7a_hardfp/SYSTEM.h b/src/lib/system/linux/gcc/armv7a_hardfp/SYSTEM.h deleted file mode 100644 index 719a6d18..00000000 --- a/src/lib/system/linux/gcc/armv7a_hardfp/SYSTEM.h +++ /dev/null @@ -1,215 +0,0 @@ -#ifndef SYSTEM__h -#define SYSTEM__h - -/* - -the Ofront runtime system interface and macros library -copyright (c) Josef Templ, 1995, 1996 - -gcc for Linux version (same as SPARC/Solaris2) -uses double # as concatenation operator - -*/ - -#include - -//extern void *memcpy(void *dest, const void *src, long n); -extern void *memcpy(void *dest, const void *src, size_t n); -extern void *malloc(long size); -extern void exit(int status); - -#define export -#define import extern - -/* constants */ -#define __MAXEXT 16 -#define NIL 0L -#define POINTER__typ (long*)1L /* not NIL and not a valid type */ - -/* basic types */ -typedef char BOOLEAN; -typedef unsigned char CHAR; -typedef signed char SHORTINT; -typedef short int INTEGER; -typedef long LONGINT; -typedef float REAL; -typedef double LONGREAL; -typedef unsigned long SET; -typedef void *SYSTEM_PTR; -typedef unsigned char SYSTEM_BYTE; - -/* runtime system routines */ -extern long SYSTEM_DIV(); -extern long SYSTEM_MOD(); -extern long SYSTEM_ENTIER(); -extern long SYSTEM_ASH(); -extern long SYSTEM_ABS(); -extern long SYSTEM_XCHK(); -extern long SYSTEM_RCHK(); -extern double SYSTEM_ABSD(); -extern SYSTEM_PTR SYSTEM_NEWREC(); -extern SYSTEM_PTR SYSTEM_NEWBLK(); -#ifdef __STDC__ -extern SYSTEM_PTR SYSTEM_NEWARR(long*, long, int, int, int, ...); -#else -extern SYSTEM_PTR SYSTEM_NEWARR(); -#endif -extern SYSTEM_PTR SYSTEM_REGMOD(); -extern void SYSTEM_INCREF(); -extern void SYSTEM_REGCMD(); -extern void SYSTEM_REGTYP(); -extern void SYSTEM_REGFIN(); -extern void SYSTEM_FINALL(); -extern void SYSTEM_INIT(); -extern void SYSTEM_FINI(); -extern void SYSTEM_HALT(); -extern void SYSTEM_INHERIT(); -extern void SYSTEM_ENUMP(); -extern void SYSTEM_ENUMR(); - -/* module registry */ -#define __DEFMOD static void *m; if(m!=0)return m -#define __REGMOD(name, enum) if(m==0)m=SYSTEM_REGMOD((CHAR*)name,enum); else return m -#define __ENDMOD return m -#define __INIT(argc, argv) static void *m; SYSTEM_INIT(argc, (long)&argv); -#define __REGMAIN(name, enum) m=SYSTEM_REGMOD(name,enum) -#define __FINI SYSTEM_FINI(); return 0 -#define __IMPORT(name) SYSTEM_INCREF(name##__init()) -#define __REGCMD(name, cmd) SYSTEM_REGCMD(m, name, cmd) - -/* SYSTEM ops */ -#define __SYSNEW(p, len) p=SYSTEM_NEWBLK((long)(len)) -#define __VAL(t, x) (*(t*)&(x)) -#define __GET(a, x, t) x= *(t*)(a) -#define __PUT(a, x, t) *(t*)(a)=x -#define __LSHL(x, n, t) ((t)((unsigned)(x)<<(n))) -#define __LSHR(x, n, t) ((t)((unsigned)(x)>>(n))) -#define __LSH(x, n, t) ((n)>=0? __LSHL(x, n, t): __LSHR(x, -(n), t)) -#define __ROTL(x, n, t) ((t)((unsigned)(x)<<(n)|(unsigned)(x)>>(8*sizeof(t)-(n)))) -#define __ROTR(x, n, t) ((t)((unsigned)(x)>>(n)|(unsigned)(x)<<(8*sizeof(t)-(n)))) -#define __ROT(x, n, t) ((n)>=0? __ROTL(x, n, t): __ROTR(x, -(n), t)) -#define __BIT(x, n) (*(unsigned long*)(x)>>(n)&1) -#define __MOVE(s, d, n) memcpy((char*)(d),(char*)(s),n) - -/* std procs and operator mappings */ -#define __SHORT(x, y) ((int)((unsigned long)(x)+(y)<(y)+(y)?(x):(__HALT(-8),0))) -#define __SHORTF(x, y) ((int)(__RF((x)+(y),(y)+(y))-(y))) -#define __CHR(x) ((CHAR)__R(x, 256)) -#define __CHRF(x) ((CHAR)__RF(x, 256)) -#define __DIV(x, y) ((x)>=0?(x)/(y):-(((y)-1-(x))/(y))) -#define __DIVF(x, y) SYSTEM_DIV((long)(x),(long)(y)) -#define __MOD(x, y) ((x)>=0?(x)%(y):__MODF(x,y)) -#define __MODF(x, y) SYSTEM_MOD((long)(x),(long)(y)) -#define __NEW(p, t) p=SYSTEM_NEWREC((long)t##__typ) -#define __NEWARR SYSTEM_NEWARR -#define __HALT(x) SYSTEM_HALT(x) -#define __ASSERT(cond, x) if (!(cond)) {SYSTEM_assert = x; SYSTEM_HALT(-1);} -#define __ENTIER(x) SYSTEM_ENTIER(x) -#define __ABS(x) (((x)<0)?-(x):(x)) -#define __ABSF(x) SYSTEM_ABS((long)(x)) -#define __ABSFD(x) SYSTEM_ABSD((double)(x)) -#define __CAP(ch) ((CHAR)((ch)&0x5f)) -#define __ODD(x) ((x)&1) -#define __IN(x, s) (((s)>>(x))&1) -#define __SETOF(x) ((SET)1<<(x)) -#define __SETRNG(l, h) ((~(SET)0<<(l))&~(SET)0>>(8*sizeof(SET)-1-(h))) -#define __MASK(x, m) ((x)&~(m)) -#define __COPY(s, d, n) {char*_a=(void*)s,*_b=(void*)d;long _i=0,_t=n-1;while(_i<_t&&((_b[_i]=_a[_i])!=0)){_i++;};_b[_i]=0;} -static int __STRCMP(x, y) - CHAR *x, *y; -{long i = 0; CHAR ch1, ch2; - do {ch1 = x[i]; ch2 = y[i]; i++; - if (!ch1) return -(int)ch2; - } while (ch1==ch2); - return (int)ch1 - (int)ch2; -} -#define __ASH(x, n) ((n)>=0?__ASHL(x,n):__ASHR(x,-(n))) -#define __ASHL(x, n) ((long)(x)<<(n)) -#define __ASHR(x, n) ((long)(x)>>(n)) -#define __ASHF(x, n) SYSTEM_ASH((long)(x), (long)(n)) -#define __DUP(x, l, t) x=(void*)memcpy(alloca(l*sizeof(t)),x,l*sizeof(t)) -#define __DUPARR(v, t) v=(void*)memcpy(v##__copy,v,sizeof(t)) -#define __DEL(x) /* DUP with alloca frees storage automatically */ -#define __IS(tag, typ, level) (*(tag-(__BASEOFF-level))==(long)typ##__typ) -#define __TYPEOF(p) (*(((long**)(p))-1)) -#define __ISP(p, typ, level) __IS(__TYPEOF(p),typ,level) - -/* runtime checks */ -#define __X(i, ub) (((unsigned)(long)(i)<(unsigned long)(ub))?i:(__HALT(-2),0)) -#define __XF(i, ub) SYSTEM_XCHK((long)(i), (long)(ub)) -#define __RETCHK __retchk: __HALT(-3) -#define __CASECHK __HALT(-4) -#define __GUARDP(p, typ, level) ((typ*)(__ISP(p,typ,level)?p:(__HALT(-5),p))) -#define __GUARDR(r, typ, level) (*((typ*)(__IS(r##__typ,typ,level)?r:(__HALT(-5),r)))) -#define __GUARDA(p, typ, level) ((struct typ*)(__IS(__TYPEOF(p),typ,level)?p:(__HALT(-5),p))) -#define __GUARDEQR(p, dyntyp, typ) if(dyntyp!=typ##__typ) __HALT(-6);*(p) -#define __GUARDEQP(p, typ) if(__TYPEOF(p)!=typ##__typ)__HALT(-6);*(p) -#define __WITHCHK __HALT(-7) -#define __R(i, ub) (((unsigned)(long)(i)<(unsigned long)(ub))?i:(__HALT(-8),0)) -#define __RF(i, ub) SYSTEM_RCHK((long)(i),(long)(ub)) - -/* record type descriptors */ -#define __TDESC(t, m, n) \ - static struct t##__desc {\ - long tproc[m]; \ - long tag, next, level, module; \ - char name[24]; \ - long *base[__MAXEXT]; \ - char *rsrvd; \ - long blksz, ptr[n+1]; \ - } t##__desc - -#define __BASEOFF (__MAXEXT+1) -#define __TPROC0OFF (__BASEOFF+24/sizeof(long)+5) -#define __EOM 1 -#define __TDFLDS(name, size) {__EOM}, 1, 0, 0, 0, name, {0}, 0, size -#define __ENUMP(adr, n, P) SYSTEM_ENUMP(adr, (long)(n), P) -#define __ENUMR(adr, typ, size, n, P) SYSTEM_ENUMR(adr, typ, (long)(size), (long)(n), P) - -#define __INITYP(t, t0, level) \ - t##__typ= &t##__desc.blksz; \ - memcpy(t##__desc.base, t0##__typ - __BASEOFF, level*sizeof(long)); \ - t##__desc.base[level]=t##__typ; \ - t##__desc.module=(long)m; \ - if(t##__desc.blksz!=sizeof(struct t)) __HALT(-15); \ - t##__desc.blksz=(t##__desc.blksz+5*sizeof(long)-1)/(4*sizeof(long))*(4*sizeof(long)); \ - SYSTEM_REGTYP(m, (long)&t##__desc.next); \ - SYSTEM_INHERIT(t##__typ, t0##__typ) - -/* Oberon-2 type bound procedures support */ -#define __INITBP(t, proc, num) *(t##__typ-(__TPROC0OFF+num))=(long)proc -#define __SEND(typ, num, funtyp, parlist) ((funtyp)(*(typ-(__TPROC0OFF+num))))parlist - -/* runtime system variables */ -extern LONGINT SYSTEM_argc; -extern LONGINT SYSTEM_argv; -extern void (*SYSTEM_Halt)(); -extern LONGINT SYSTEM_halt; -extern LONGINT SYSTEM_assert; -extern SYSTEM_PTR SYSTEM_modules; -extern LONGINT SYSTEM_heapsize; -extern LONGINT SYSTEM_allocated; -extern LONGINT SYSTEM_lock; -extern SHORTINT SYSTEM_gclock; -extern BOOLEAN SYSTEM_interrupted; - -/* ANSI prototypes; not used so far -static int __STRCMP(CHAR *x, CHAR *y); -void SYSTEM_INIT(int argc, long argvadr); -void SYSTEM_FINI(void); -long SYSTEM_XCHK(long i, long ub); -long SYSTEM_RCHK(long i, long ub); -long SYSTEM_ASH(long i, long n); -long SYSTEM_ABS(long i); -double SYSTEM_ABSD(double i); -void SYSTEM_INHERIT(long *t, long *t0); -void SYSTEM_ENUMP(long *adr, long n, void (*P)(void*)); -void SYSTEM_ENUMR(char *adr, long *typ, long size, long n, void (*P)(void*)); -long SYSTEM_DIV(unsigned long x, unsigned long y); -long SYSTEM_MOD(unsigned long x, unsigned long y); -long SYSTEM_ENTIER(double x); -void SYSTEM_HALT(int n); -*/ - -#endif - diff --git a/src/lib/system/linux/gcc/armv7a_hardfp/Unix.Mod b/src/lib/system/linux/gcc/armv7a_hardfp/Unix.Mod deleted file mode 100644 index e2a25ec5..00000000 --- a/src/lib/system/linux/gcc/armv7a_hardfp/Unix.Mod +++ /dev/null @@ -1,441 +0,0 @@ -MODULE Unix; (* Josef Templ, 5.3.90 Linux system calls *) -(* system procedure added by noch *) -(* Module Unix provides a system call interface to Linux. - Naming conventions: - Procedure and Type-names always start with a capital letter. - error numbers as defined in Unix - other constants start with lower case letters *) - -IMPORT SYSTEM; - -CONST - -(* various important constants *) - - stdin* = 0; stdout* =1; stderr* = 2; - - LOCKEX* = 2; LOCKUN* = 8; (* /usr/include/file.h *) - AFINET* = 2; (* /usr/include/sys/socket.h *) - PFINET* = AFINET; (* /usr/include/linux/socket.h *) - SOCKSTREAM* = 1; (* /usr/include/linux/socket.h *) - FIONREAD* = 541BH; (* in /usr/include/asm/termios.h *) - SETFL* = 4; (* set file descriptor flags; in asm/fcntl.h *) - TCP* = 0; - -(* flag sets, cf. /usr/include/asm/fcntl.h *) - rdonly* = {}; wronly* = {0}; rdwr* = {1}; creat* = {6}; excl* = {7}; trunc* = {9}; append* = {10}; ndelay = {11}; - -(* error numbers *) - - EPERM* = 1; (* Not owner *) - ENOENT* = 2; (* No such file or directory *) - ESRCH* = 3; (* No such process *) - EINTR* = 4; (* Interrupted system call *) - EIO* = 5; (* I/O error *) - ENXIO* = 6; (* No such device or address *) - E2BIG* = 7; (* Arg list too long *) - ENOEXEC* = 8; (* Exec format error *) - EBADF* = 9; (* Bad file number *) - ECHILD* = 10; (* No children *) - EAGAIN* = 11; (* No more processes *) - ENOMEM* = 12; (* Not enough core *) - EACCES* = 13; (* Permission denied *) - EFAULT* = 14; (* Bad address *) - ENOTBLK* = 15; (* Block device required *) - EBUSY* = 16; (* Mount device busy *) - EEXIST* = 17; (* File exists *) - EXDEV* = 18; (* Cross-device link *) - ENODEV* = 19; (* No such device *) - ENOTDIR* = 20; (* Not a directory*) - EISDIR* = 21; (* Is a directory *) - EINVAL* = 22; (* Invalid argument *) - ENFILE* = 23; (* File table overflow *) - EMFILE* = 24; (* Too many open files *) - ENOTTY* = 25; (* Not a typewriter *) - ETXTBSY* = 26; (* Text file busy *) - EFBIG* = 27; (* File too large *) - ENOSPC* = 28; (* No space left on device *) - ESPIPE* = 29; (* Illegal seek *) - EROFS* = 30; (* Read-only file system *) - EMLINK* = 31; (* Too many links *) - EPIPE* = 32; (* Broken pipe *) - EDOM* = 33; (* Argument too large *) - ERANGE* = 34; (* Result too large *) - EDEADLK* = 35; (* Resource deadlock would occur *) - ENAMETOOLONG* = 36; (* File name too long *) - ENOLCK* = 37; (* No record locks available *) - ENOSYS* = 38; (* Function not implemented *) - ENOTEMPTY* = 39; (* Directory not empty *) - ELOOP* = 40; (* Too many symbolic links encountered *) - EWOULDBLOCK* = EAGAIN; (* Operation would block *) - ENOMSG* = 42; (* No message of desired type *) - EIDRM* = 43; (* Identifier removed *) - ECHRNG* = 44; (* Channel number out of range *) - EL2NSYNC* = 45; (* Level 2 not synchronized *) - EL3HLT* = 46; (* Level 3 halted *) - EL3RST* = 47; (* Level 3 reset *) - ELNRNG* = 48; (* Link number out of range *) - EUNATCH* = 49; (* Protocol driver not attached *) - ENOCSI* = 50; (* No CSI structure available *) - EL2HLT* = 51; (* Level 2 halted *) - EBADE* = 52; (* Invalid exchange *) - EBADR* = 53; (* Invalid request descriptor *) - EXFULL* = 54; (* Exchange full *) - ENOANO* = 55; (* No anode *) - EBADRQC* = 56; (* Invalid request code *) - EBADSLT* = 57; (* Invalid slot *) - EDEADLOCK* = 58; (* File locking deadlock error *) - EBFONT* = 59; (* Bad font file format *) - ENOSTR* = 60; (* Device not a stream *) - ENODATA* = 61; (* No data available *) - ETIME* = 62; (* Timer expired *) - ENOSR* = 63; (* Out of streams resources *) - ENONET* = 64; (* Machine is not on the network *) - ENOPKG* = 65; (* Package not installed *) - EREMOTE* = 66; (* Object is remote *) - ENOLINK* = 67; (* Link has been severed *) - EADV* = 68; (* Advertise error *) - ESRMNT* = 69; (* Srmount error *) - ECOMM* = 70; (* Communication error on send *) - EPROTO* = 71; (* Protocol error *) - EMULTIHOP* = 72; (* Multihop attempted *) - EDOTDOT* = 73; (* RFS specific error *) - EBADMSG* = 74; (* Not a data message *) - EOVERFLOW* = 75; (* Value too large for defined data type *) - ENOTUNIQ* = 76; (* Name not unique on network *) - EBADFD* = 77; (* File descriptor in bad state *) - EREMCHG* = 78; (* Remote address changed *) - ELIBACC* = 79; (* Can not access a needed shared library *) - ELIBBAD* = 80; (* Accessing a corrupted shared library *) - ELIBSCN* = 81; (* .lib section in a.out corrupted *) - ELIBMAX* = 82; (* Attempting to link in too many shared libraries *) - ELIBEXEC* = 83; (* Cannot exec a shared library directly *) - EILSEQ* = 84; (* Illegal byte sequence *) - ERESTART* = 85; (* Interrupted system call should be restarted *) - ESTRPIPE* = 86; (* Streams pipe error *) - EUSERS* = 87; (* Too many users *) - ENOTSOCK* = 88; (* Socket operation on non-socket *) - EDESTADDRREQ* = 89; (* Destination address required *) - EMSGSIZE* = 90; (* Message too long *) - EPROTOTYPE* = 91; (* Protocol wrong type for socket *) - ENOPROTOOPT* = 92; (* Protocol not available *) - EPROTONOSUPPORT* = 93; (* Protocol not supported *) - ESOCKTNOSUPPORT* = 94; (* Socket type not supported *) - EOPNOTSUPP* = 95; (* Operation not supported on transport endpoint *) - EPFNOSUPPORT* = 96; (* Protocol family not supported *) - EAFNOSUPPORT* = 97; (* Address family not supported by protocol *) - EADDRINUSE* = 98; (* Address already in use *) - EADDRNOTAVAIL* = 99; (* Cannot assign requested address *) - ENETDOWN* = 100; (* Network is down *) - ENETUNREACH* = 101; (* Network is unreachable *) - ENETRESET* = 102; (* Network dropped connection because of reset *) - ECONNABORTED* = 103; (* Software caused connection abort *) - ECONNRESET* = 104; (* Connection reset by peer *) - ENOBUFS* = 105; (* No buffer space available *) - EISCONN* = 106; (* Transport endpoint is already connected *) - ENOTCONN* = 107; (* Transport endpoint is not connected *) - ESHUTDOWN* = 108; (* Cannot send after transport endpoint shutdown *) - ETOOMANYREFS* = 109; (* Too many references: cannot splice *) - ETIMEDOUT* = 110; (* Connection timed out *) - ECONNREFUSED* = 111; (* Connection refused *) - EHOSTDOWN* = 112; (* Host is down *) - EHOSTUNREACH* = 113; (* No route to host *) - EALREADY* = 114; (* Operation already in progress *) - EINPROGRESS* = 115; (* Operation now in progress *) - ESTALE* = 116; (* Stale NFS file handle *) - EUCLEAN* = 117; (* Structure needs cleaning *) - ENOTNAM* = 118; (* Not a XENIX named type file *) - ENAVAIL* = 119; (* No XENIX semaphores available *) - EISNAM* = 120; (* Is a named type file *) - EREMOTEIO* = 121; (* Remote I/O error *) - EDQUOT* = 122; (* Quota exceeded *) - - -TYPE - JmpBuf* = RECORD - bx*, si*, di*, bp*, sp*, pc*: LONGINT; - maskWasSaved*, savedMask*: LONGINT; - END ; - - Status* = RECORD (* struct stat *) - dev*, devX*: LONGINT; (* 64 bit in Linux 2.2 *) - pad1: INTEGER; - ino*, mode*, nlink*, uid*, gid*: LONGINT; - rdev*, rdevX*: LONGINT; (* 64 bit in Linux 2.2 *) - pad2: INTEGER; - size*, blksize*, blocks*, atime*, unused1*, mtime*, unused2*, ctime*, - unused3*, unused4*, unused5*: LONGINT; - END ; - - Timeval* = RECORD - sec*, usec*: LONGINT - END ; - - Timezone* = RECORD - minuteswest*, dsttime*: LONGINT - END ; - - Itimerval* = RECORD - interval*, value*: Timeval - END ; - - FdSet* = ARRAY 8 OF SET; - - SigCtxPtr* = POINTER TO SigContext; - SigContext* = RECORD - END ; - - SignalHandler* = PROCEDURE (sig, code: LONGINT; scp: SigCtxPtr); - - Dirent* = RECORD - ino, off: LONGINT; - reclen: INTEGER; - name: ARRAY 256 OF CHAR; - END ; - - Rusage* = RECORD - utime*, stime*: Timeval; - maxrss*, ixrss*, idrss*, isrss*, - minflt*, majflt*, nswap*, inblock*, - oublock*, msgsnd*, msgrcv*, nsignals*, - nvcsw*, nivcsw*: LONGINT - END ; - - Iovec* = RECORD - base*, len*: LONGINT - END ; - - SocketPair* = ARRAY 2 OF LONGINT; - - Pollfd* = RECORD - fd*: LONGINT; - events*, revents*: INTEGER - END ; - - Sockaddr* = RECORD - family*: INTEGER; - port*: INTEGER; - internetAddr*: LONGINT; - pad*: ARRAY 8 OF CHAR; - END ; - - HostEntry* = POINTER [1] TO Hostent; - Hostent* = RECORD - name*, aliases*: LONGINT; - addrtype*, length*: LONGINT; - addrlist*: LONGINT; (*POINTER TO POINTER TO LONGINT, network byte order*) - END; - - Name* = ARRAY OF CHAR; - - PROCEDURE -includeStat() - "#include "; - - PROCEDURE -includeErrno() - "#include "; - - (* for read(), write() and sleep() *) - PROCEDURE -includeUnistd() - "#include "; - - (* for system() *) -(* commented, doesn't compile on 32bit GNU/Linux platforms - PROCEDURE -includeStdlib() - "#include "; -*) - (* for nanosleep() *) - PROCEDURE -includeTime() - "#include "; - - (* for select() *) - PROCEDURE -includeSelect() - "#include "; - - PROCEDURE -err(): LONGINT - "errno"; - - PROCEDURE errno*(): LONGINT; - BEGIN - RETURN err() - END errno; - - PROCEDURE -Exit*(n: LONGINT) - "exit(n)"; - - PROCEDURE -Fork*(): LONGINT - "fork()"; - - PROCEDURE -Wait*(VAR status: LONGINT): LONGINT - "wait(status)"; - - PROCEDURE -Select*(width: LONGINT; VAR readfds, writefds, exceptfds: FdSet; VAR timeout: Timeval): LONGINT - "select(width, readfds, writefds, exceptfds, timeout)"; - - PROCEDURE -Gettimeofday* (VAR tv: Timeval; VAR tz: Timezone) : LONGINT - "gettimeofday(tv, tz)"; - - PROCEDURE -Read* (fd, buf, nbyte: LONGINT): LONGINT - "read(fd, buf, nbyte)"; - - PROCEDURE -ReadBlk* (fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE): LONGINT - "read(fd, buf, buf__len)"; - - PROCEDURE -Write* (fd, buf, nbyte: LONGINT): LONGINT - "write(fd, buf, nbyte)"; - - PROCEDURE -WriteBlk* (fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE): LONGINT - "write(fd, buf, buf__len)"; - - PROCEDURE -Dup*(fd: LONGINT): LONGINT - "dup(fd)"; - - PROCEDURE -Dup2*(fd1, fd2: LONGINT): LONGINT - "dup(fd1, fd2)"; - - PROCEDURE -Pipe*(fds : LONGINT): LONGINT - "pipe(fds)"; - - PROCEDURE -Getpid*(): LONGINT - "getpid()"; - - PROCEDURE -Getuid*(): LONGINT - "getuid()"; - - PROCEDURE -Geteuid*(): LONGINT - "geteuid()"; - - PROCEDURE -Getgid*(): LONGINT - "getgid()"; - - PROCEDURE -Getegid*(): LONGINT - "getegid()"; - - PROCEDURE -Unlink*(name: Name): LONGINT - "unlink(name)"; - - PROCEDURE -Open*(name: Name; flag, mode: SET): LONGINT - "open(name, flag, mode)"; - - PROCEDURE -Close*(fd: LONGINT): LONGINT - "close(fd)"; - - PROCEDURE -stat(name: Name; VAR statbuf: Status): LONGINT - "stat((const char*)name, (struct stat*)statbuf)"; - - PROCEDURE Stat*(name: Name; VAR statbuf: Status): LONGINT; - VAR res: LONGINT; - BEGIN - res := stat(name, statbuf); - (* make the first 4 bytes as unique as possible (used in module Files for caching!) *) - INC(statbuf.dev, statbuf.devX); - INC(statbuf.rdev, statbuf.rdevX); - RETURN res; - END Stat; - - PROCEDURE -fstat(fd: LONGINT; VAR statbuf: Status): LONGINT - "fstat(fd, (struct stat*)statbuf)"; - - PROCEDURE Fstat*(fd: LONGINT; VAR statbuf: Status): LONGINT; - VAR res: LONGINT; - BEGIN - res := fstat(fd, statbuf); - (* make the first 4 bytes as unique as possible (used in module Files for caching!) *) - INC(statbuf.dev, statbuf.devX); - INC(statbuf.rdev, statbuf.rdevX); - RETURN res; - END Fstat; - - PROCEDURE -Fchmod*(fd, mode: LONGINT): LONGINT - "fchmod(fd, mode)"; - - PROCEDURE -Chmod*(path: Name; mode: LONGINT): LONGINT - "chmod(path, mode)"; - - PROCEDURE -Lseek*(fd, offset, origin: LONGINT): LONGINT - "lseek(fd, offset, origin)"; - - PROCEDURE -Fsync*(fd: LONGINT): LONGINT - "fsync(fd)"; - - PROCEDURE -Fcntl*(fd, cmd, arg: LONGINT ): LONGINT - "fcntl(fd, cmd, arg)"; - - PROCEDURE -Flock*(fd, operation: LONGINT): LONGINT - "flock(fd, operation)"; - - PROCEDURE -Ftruncate*(fd, length: LONGINT): LONGINT - "ftruncate(fd, length)"; - - PROCEDURE -Readblk*(fd: LONGINT; VAR buf: ARRAY OF SYSTEM.BYTE; len: LONGINT): LONGINT - "read(fd, buf, len)"; - - PROCEDURE -Rename*(old, new: Name): LONGINT - "rename(old, new)"; - - PROCEDURE -Chdir*(path: Name): LONGINT - "chdir(path)"; - - PROCEDURE -Ioctl*(fd, request, arg: LONGINT): LONGINT - "ioctl(fd, request, arg)"; - - PROCEDURE -Kill*(pid, sig: LONGINT): LONGINT - "kill(pid, sig)"; - - PROCEDURE -Sigsetmask*(mask: LONGINT): LONGINT - "sigsetmask(mask)"; - - PROCEDURE -Sleep*(ms : LONGINT): LONGINT - "sleep(ms)"; - - PROCEDURE -Nanosleep*(VAR req : Timeval; VAR rem : Timeval): LONGINT - "nanosleep(req, rem)"; - - (* TCP/IP networking *) - - PROCEDURE -Gethostbyname*(name: Name): HostEntry - "(Unix_HostEntry)gethostbyname(name)"; - - PROCEDURE -Gethostname*(VAR name: Name): LONGINT - "gethostname(name, name__len)"; - - PROCEDURE -Socket*(af, type, protocol: LONGINT): LONGINT - "socket(af, type, protocol)"; - - PROCEDURE -Connect*(socket: LONGINT; name: Sockaddr; namelen: LONGINT): LONGINT - "connect(socket, &(name), namelen)"; - - PROCEDURE -Getsockname*(socket: LONGINT; VAR name: Sockaddr; VAR namelen: LONGINT): LONGINT - "getsockname(socket, name, namelen)"; - - PROCEDURE -Bind*(socket: LONGINT; name: Sockaddr; namelen: LONGINT): LONGINT - "bind(socket, &(name), namelen)"; - - PROCEDURE -Listen*(socket, backlog: LONGINT): LONGINT - "listen(socket, backlog)"; - - PROCEDURE -Accept*(socket: LONGINT; VAR addr: Sockaddr; VAR addrlen: LONGINT): LONGINT - "accept(socket, addr, addrlen)"; - - PROCEDURE -Recv*(socket, bufadr, buflen, flags: LONGINT): LONGINT - "recv(socket, bufadr, buflen, flags)"; - - PROCEDURE -Send*(socket, bufadr, buflen, flags: LONGINT): LONGINT - "send(socket, bufadr, buflen, flags)"; - - PROCEDURE -sys(str: ARRAY OF CHAR): INTEGER (* need this to call external tools like gcc or gas; noch *) - "system(str)"; - - PROCEDURE system*(cmd : ARRAY OF CHAR); - VAR r : INTEGER; - BEGIN - r := sys(cmd); - END system; - - PROCEDURE System*(cmd : ARRAY OF CHAR): INTEGER; - VAR r : INTEGER; - BEGIN - r := sys(cmd); - RETURN r - END System; - -END Unix. diff --git a/voc.REMOVED.git-id b/voc.REMOVED.git-id index 597234dd..f28caf06 100644 --- a/voc.REMOVED.git-id +++ b/voc.REMOVED.git-id @@ -1 +1 @@ -298e0f0fec276d16d090e85b34af3341fc6f2f0e \ No newline at end of file +2d1dfe090159d8b5a764dbb1bc3053389429baea \ No newline at end of file diff --git a/vocstatic.linux.clang.x86_64.REMOVED.git-id b/vocstatic.linux.clang.x86_64.REMOVED.git-id index 370f367a..f28caf06 100644 --- a/vocstatic.linux.clang.x86_64.REMOVED.git-id +++ b/vocstatic.linux.clang.x86_64.REMOVED.git-id @@ -1 +1 @@ -a2c52756242dc0366a361e7e7a30874cb3078505 \ No newline at end of file +2d1dfe090159d8b5a764dbb1bc3053389429baea \ No newline at end of file diff --git a/vocstatic.linux.gcc.x86_64.REMOVED.git-id b/vocstatic.linux.gcc.x86_64.REMOVED.git-id index 63c4f7da..f28caf06 100644 --- a/vocstatic.linux.gcc.x86_64.REMOVED.git-id +++ b/vocstatic.linux.gcc.x86_64.REMOVED.git-id @@ -1 +1 @@ -b7325ecd6b5f32df36fe6dcc00ddc6dcb5f5e25e \ No newline at end of file +2d1dfe090159d8b5a764dbb1bc3053389429baea \ No newline at end of file