ref: c3ceeded2dfb647e1a4172debf3cf6d3aba5ef39
parent: 96fa636465351366a4e11569c21175a9337d7866
author: cinap_lenrek <devnull@localhost>
date: Wed Mar 30 12:05:55 EDT 2011
...
--- /dev/null
+++ b/68000/include/u.h
@@ -1,0 +1,65 @@
+#define nil ((void*)0)
+typedef unsigned short ushort;
+typedef unsigned char uchar;
+typedef unsigned long ulong;
+typedef unsigned int uint;
+typedef signed char schar;
+typedef long long vlong;
+typedef unsigned long long uvlong;
+typedef unsigned long uintptr;
+typedef unsigned long usize;
+typedef ushort Rune;
+typedef union FPdbleword FPdbleword;
+typedef long jmp_buf[2];
+#define JMPBUFSP 0
+#define JMPBUFPC 1
+#define JMPBUFDPC 0
+typedef unsigned int mpdigit; /* for /sys/include/mp.h */
+typedef unsigned char u8int;
+typedef unsigned short u16int;
+typedef unsigned int u32int;
+typedef unsigned long long u64int;
+
+/* FCR */
+#define FPINEX (3<<8)
+#define FPOVFL (1<<12)
+#define FPUNFL (1<<11)
+#define FPZDIV (1<<10)
+#define FPRNR (0<<4)
+#define FPRZ (1<<4)
+#define FPINVAL (3<<13)
+#define FPRPINF (3<<4)
+#define FPRNINF (2<<4)
+#define FPRMASK (3<<4)
+#define FPPEXT (0<<6)
+#define FPPSGL (1<<6)
+#define FPPDBL (2<<6)
+#define FPPMASK (3<<6)
+/* FSR */
+#define FPAINEX FPINEX
+#define FPAOVFL FPOVFL
+#define FPAUNFL FPUNFL
+#define FPAZDIV FPZDIV
+#define FPAINVAL FPINVAL
+union FPdbleword
+{
+ double x;
+ struct { /* big endian */
+ ulong hi;
+ ulong lo;
+ };
+};
+
+typedef char* va_list;
+#define va_start(list, start) list =\
+ (sizeof(start) < 4?\
+ (char*)((int*)&(start)+1):\
+ (char*)(&(start)+1))
+#define va_end(list)\
+ USED(list)
+#define va_arg(list, mode)\
+ ((sizeof(mode) == 1)?\
+ ((list += 4), (mode*)list)[-1]:\
+ (sizeof(mode) == 2)?\
+ ((list += 4), (mode*)list)[-1]:\
+ ((list += sizeof(mode)), (mode*)list)[-1])
--- /dev/null
+++ b/68000/include/ureg.h
@@ -1,0 +1,28 @@
+struct Ureg
+{
+ ulong r0;
+ ulong r1;
+ ulong r2;
+ ulong r3;
+ ulong r4;
+ ulong r5;
+ ulong r6;
+ ulong r7;
+ ulong a0;
+ ulong a1;
+ ulong a2;
+ ulong a3;
+ ulong a4;
+ ulong a5;
+ ulong a6;
+ ulong sp;
+ ulong usp;
+ ulong magic; /* for db to find bottom of ureg */
+ ushort sr;
+ ulong pc;
+ ushort vo;
+#ifndef UREGVARSZ
+#define UREGVARSZ 23 /* for 68040; 15 is enough on 68020 */
+#endif
+ uchar microstate[UREGVARSZ]; /* variable-sized portion */
+};
--- /dev/null
+++ b/68000/mkfile
@@ -1,0 +1,7 @@
+</sys/src/mkfile.proto
+
+CC=1c
+LD=1l
+O=1
+RL=rl
+AS=1a
--- /dev/null
+++ b/68020/include/ape/float.h
@@ -1,0 +1,74 @@
+#ifndef __FLOAT
+#define __FLOAT
+/* IEEE, default rounding */
+
+#define FLT_ROUNDS 1
+#define FLT_RADIX 2
+
+#define FLT_DIG 6
+#define FLT_EPSILON 1.19209290e-07
+#define FLT_MANT_DIG 24
+#define FLT_MAX 3.40282347e+38
+#define FLT_MAX_10_EXP 38
+#define FLT_MAX_EXP 128
+#define FLT_MIN 1.17549435e-38
+#define FLT_MIN_10_EXP -37
+#define FLT_MIN_EXP -125
+
+#define DBL_DIG 15
+#define DBL_EPSILON 2.2204460492503131e-16
+#define DBL_MANT_DIG 53
+#define DBL_MAX 1.797693134862315708145e+308
+#define DBL_MAX_10_EXP 308
+#define DBL_MAX_EXP 1024
+#define DBL_MIN 2.225073858507201383090233e-308
+#define DBL_MIN_10_EXP -307
+#define DBL_MIN_EXP -1021
+#define LDBL_MANT_DIG DBL_MANT_DIG
+#define LDBL_EPSILON DBL_EPSILON
+#define LDBL_DIG DBL_DIG
+#define LDBL_MIN_EXP DBL_MIN_EXP
+#define LDBL_MIN DBL_MIN
+#define LDBL_MIN_10_EXP DBL_MIN_10_EXP
+#define LDBL_MAX_EXP DBL_MAX_EXP
+#define LDBL_MAX DBL_MAX
+#define LDBL_MAX_10_EXP DBL_MAX_10_EXP
+
+
+typedef union FPdbleword FPdbleword;
+union FPdbleword
+{
+ double x;
+ struct { /* big endian */
+ long hi;
+ long lo;
+ };
+};
+
+#ifdef _RESEARCH_SOURCE
+/* define order of longs in IEEE double: little endian */
+#define IEEE_MC68k 1
+#define Sudden_Underflow 1
+#endif
+#ifdef _PLAN9_SOURCE
+/* FCR */
+#define FPINEX (3<<8)
+#define FPOVFL (1<<12)
+#define FPUNFL (1<<11)
+#define FPZDIV (1<<10)
+#define FPRNR (0<<4)
+#define FPRZ (1<<4)
+#define FPRPINF (3<<4)
+#define FPRNINF (2<<4)
+#define FPRMASK (3<<4)
+#define FPPEXT (0<<6)
+#define FPPSGL (1<<6)
+#define FPPDBL (2<<6)
+#define FPPMASK (3<<6)
+/* FSR */
+#define FPAINEX FPINEX
+#define FPAOVFL FPOVFL
+#define FPAUNFL FPUNFL
+#define FPAZDIV FPZDIV
+#endif
+#endif /* __FLOAT */
--- /dev/null
+++ b/68020/include/ape/math.h
@@ -1,0 +1,77 @@
+#ifndef __MATH
+#define __MATH
+#pragma lib "/$M/lib/ape/libap.a"
+
+/* a HUGE_VAL appropriate for IEEE double-precision */
+/* the correct value, 1.797693134862316e+308, causes a ken overflow */
+#define HUGE_VAL 1.79769313486231e+308
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern double acos(double);
+extern double asin(double);
+extern double atan(double);
+extern double atan2(double, double);
+extern double cos(double);
+extern double sin(double);
+extern double tan(double);
+extern double cosh(double);
+extern double sinh(double);
+extern double tanh(double);
+extern double exp(double);
+extern double frexp(double, int *);
+extern double ldexp(double, int);
+extern double log(double);
+extern double log10(double);
+extern double modf(double, double *);
+extern double pow(double, double);
+extern double sqrt(double);
+extern double ceil(double);
+extern double fabs(double);
+extern double floor(double);
+extern double fmod(double, double);
+extern double NaN(void);
+extern int isNaN(double);
+extern double Inf(int);
+extern int isInf(double, int);
+
+#ifdef _RESEARCH_SOURCE
+/* does >> treat left operand as unsigned ? */
+#define Unsigned_Shifts 1
+#define M_E 2.7182818284590452354 /* e */
+#define M_LOG2E 1.4426950408889634074 /* log 2e */
+#define M_LOG10E 0.43429448190325182765 /* log 10e */
+#define M_LN2 0.69314718055994530942 /* log e2 */
+#define M_LN10 2.30258509299404568402 /* log e10 */
+#define M_PI 3.14159265358979323846 /* pi */
+#define M_PI_2 1.57079632679489661923 /* pi/2 */
+#define M_PI_4 0.78539816339744830962 /* pi/4 */
+#define M_1_PI 0.31830988618379067154 /* 1/pi */
+#define M_2_PI 0.63661977236758134308 /* 2/pi */
+#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
+#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
+#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
+
+extern double hypot(double, double);
+extern double erf(double);
+extern double erfc(double);
+extern double j0(double);
+extern double y0(double);
+extern double j1(double);
+extern double y1(double);
+extern double jn(int, double);
+extern double yn(int, double);
+
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#define isnan(x) isNaN(x)
+#define isinf(x) isInf(x)
+
+#endif /* __MATH */
--- /dev/null
+++ b/68020/include/ape/stdarg.h
@@ -1,0 +1,11 @@
+#ifndef __STDARG
+#define __STDARG
+
+typedef char *va_list;
+
+#define va_start(list, start) list = (char *)(&(start)+1)
+#define va_end(list)
+#define va_arg(list, mode) (sizeof(mode)==1 ? ((mode *) (list += 4))[-4] : \
+sizeof(mode)==2 ? ((mode *) (list += 4))[-2] : ((mode *) (list += sizeof(mode)))[-1])
+
+#endif /* __STDARG */
--- /dev/null
+++ b/68020/include/ape/ureg.h
@@ -1,0 +1,36 @@
+#ifndef __UREG_H
+#define __UREG_H
+#if !defined(_PLAN9_SOURCE)
+ This header file is an extension to ANSI/POSIX
+#endif
+
+struct Ureg
+{
+ unsigned long r0;
+ unsigned long r1;
+ unsigned long r2;
+ unsigned long r3;
+ unsigned long r4;
+ unsigned long r5;
+ unsigned long r6;
+ unsigned long r7;
+ unsigned long a0;
+ unsigned long a1;
+ unsigned long a2;
+ unsigned long a3;
+ unsigned long a4;
+ unsigned long a5;
+ unsigned long a6;
+ unsigned long sp;
+ unsigned long usp;
+ unsigned long magic; /* for db to find bottom of ureg */
+ unsigned short sr;
+ unsigned long pc;
+ unsigned short vo;
+#ifndef UREGVARSZ
+#define UREGVARSZ 23 /* for 68040; 15 is enough on 68020 */
+#endif
+ unsigned char microstate[UREGVARSZ]; /* variable-sized portion */
+};
+
+#endif
--- /dev/null
+++ b/68020/include/dac.h
@@ -1,0 +1,14 @@
+/*
+ * Inmos G17x d/a converter
+ */
+
+typedef
+struct G170
+{
+ uchar waddr;
+ uchar value;
+ uchar mask;
+ uchar raddr;
+} G170;
+
+#define DAC ((G170*)0xc0100000)
--- /dev/null
+++ b/68020/include/lbp.h
@@ -1,0 +1,3 @@
+typedef struct Lbpconf {
+ int nhblank, nvblank, xmax, ymax, res;
+} Lbpconf;
--- /dev/null
+++ b/68020/include/u.h
@@ -1,0 +1,66 @@
+#define nil ((void*)0)
+typedef unsigned short ushort;
+typedef unsigned char uchar;
+typedef unsigned long ulong;
+typedef unsigned int uint;
+typedef signed char schar;
+typedef long long vlong;
+typedef unsigned long long uvlong;
+typedef unsigned long uintptr;
+typedef unsigned long usize;
+typedef ushort Rune;
+typedef union FPdbleword FPdbleword;
+typedef long jmp_buf[2];
+#define JMPBUFSP 0
+#define JMPBUFPC 1
+#define JMPBUFDPC 0
+typedef unsigned int mpdigit; /* for /sys/include/mp.h */
+typedef unsigned char u8int;
+typedef unsigned short u16int;
+typedef unsigned int u32int;
+typedef unsigned long long u64int;
+
+
+/* FCR */
+#define FPINEX (3<<8)
+#define FPOVFL (1<<12)
+#define FPUNFL (1<<11)
+#define FPZDIV (1<<10)
+#define FPRNR (0<<4)
+#define FPRZ (1<<4)
+#define FPINVAL (3<<13)
+#define FPRPINF (3<<4)
+#define FPRNINF (2<<4)
+#define FPRMASK (3<<4)
+#define FPPEXT (0<<6)
+#define FPPSGL (1<<6)
+#define FPPDBL (2<<6)
+#define FPPMASK (3<<6)
+/* FSR */
+#define FPAINEX FPINEX
+#define FPAOVFL FPOVFL
+#define FPAUNFL FPUNFL
+#define FPAZDIV FPZDIV
+#define FPAINVAL FPINVAL
+union FPdbleword
+{
+ double x;
+ struct { /* big endian */
+ ulong hi;
+ ulong lo;
+ };
+};
+
+typedef char* va_list;
+#define va_start(list, start) list =\
+ (sizeof(start) < 4?\
+ (char*)((int*)&(start)+1):\
+ (char*)(&(start)+1))
+#define va_end(list)\
+ USED(list)
+#define va_arg(list, mode)\
+ ((sizeof(mode) == 1)?\
+ ((list += 4), (mode*)list)[-1]:\
+ (sizeof(mode) == 2)?\
+ ((list += 4), (mode*)list)[-1]:\
+ ((list += sizeof(mode)), (mode*)list)[-1])
--- /dev/null
+++ b/68020/include/ureg.h
@@ -1,0 +1,28 @@
+struct Ureg
+{
+ ulong r0;
+ ulong r1;
+ ulong r2;
+ ulong r3;
+ ulong r4;
+ ulong r5;
+ ulong r6;
+ ulong r7;
+ ulong a0;
+ ulong a1;
+ ulong a2;
+ ulong a3;
+ ulong a4;
+ ulong a5;
+ ulong a6;
+ ulong sp;
+ ulong usp;
+ ulong magic; /* for db to find bottom of ureg */
+ ushort sr;
+ ulong pc;
+ ushort vo;
+#ifndef UREGVARSZ
+#define UREGVARSZ 23 /* for 68040; 15 is enough on 68020 */
+#endif
+ uchar microstate[UREGVARSZ]; /* variable-sized portion */
+};
--- /dev/null
+++ b/68020/mkfile
@@ -1,0 +1,7 @@
+</sys/src/mkfile.proto
+
+CC=2c
+LD=2l
+O=2
+RL=rl
+AS=2a
--- /dev/null
+++ b/alpha/include/ape/float.h
@@ -1,0 +1,76 @@
+#ifndef __FLOAT
+#define __FLOAT
+/* IEEE, default rounding */
+
+#define FLT_ROUNDS 1
+#define FLT_RADIX 2
+
+#define FLT_DIG 6
+#define FLT_EPSILON 1.19209290e-07
+#define FLT_MANT_DIG 24
+#define FLT_MAX 3.40282347e+38
+#define FLT_MAX_10_EXP 38
+#define FLT_MAX_EXP 128
+#define FLT_MIN 1.17549435e-38
+#define FLT_MIN_10_EXP -37
+#define FLT_MIN_EXP -125
+
+#define DBL_DIG 15
+#define DBL_EPSILON 2.2204460492503131e-16
+#define DBL_MANT_DIG 53
+#define DBL_MAX 1.797693134862315708145e+308
+#define DBL_MAX_10_EXP 308
+#define DBL_MAX_EXP 1024
+#define DBL_MIN 2.225073858507201383090233e-308
+#define DBL_MIN_10_EXP -307
+#define DBL_MIN_EXP -1021
+#define LDBL_MANT_DIG DBL_MANT_DIG
+#define LDBL_EPSILON DBL_EPSILON
+#define LDBL_DIG DBL_DIG
+#define LDBL_MIN_EXP DBL_MIN_EXP
+#define LDBL_MIN DBL_MIN
+#define LDBL_MIN_10_EXP DBL_MIN_10_EXP
+#define LDBL_MAX_EXP DBL_MAX_EXP
+#define LDBL_MAX DBL_MAX
+#define LDBL_MAX_10_EXP DBL_MAX_10_EXP
+
+typedef union FPdbleword FPdbleword;
+union FPdbleword
+{
+ double x;
+ struct { /* little endian */
+ long lo;
+ long hi;
+ };
+};
+
+#ifdef _RESEARCH_SOURCE
+/* define stuff needed for floating conversion */
+#define IEEE_8087 1
+#define Sudden_Underflow 1
+#endif
+#ifdef _PLAN9_SOURCE
+#define FPINEX (1<<30)
+#define FPOVFL (1<<19)
+#define FPUNFL ((1<<29)|(1<<28))
+#define FPZDIV (1<<18)
+#define FPINVAL (1<<17)
+
+#define FPRNR (2<<26)
+#define FPRZ (0<<26)
+#define FPRPINF (3<<26)
+#define FPRNINF (1<<26)
+#define FPRMASK (3<<26)
+
+#define FPPEXT 0
+#define FPPSGL 0
+#define FPPDBL 0
+#define FPPMASK 0
+/* FSR */
+#define FPAINEX (1<<24)
+#define FPAUNFL (1<<23)
+#define FPAOVFL (1<<22)
+#define FPAZDIV (1<<21)
+#define FPAINVAL (1<<20)
+#endif
+#endif /* __FLOAT */
--- /dev/null
+++ b/alpha/include/ape/math.h
@@ -1,0 +1,77 @@
+#ifndef __MATH
+#define __MATH
+#pragma lib "/$M/lib/ape/libap.a"
+
+/* a HUGE_VAL appropriate for IEEE double-precision */
+/* the correct value, 1.797693134862316e+308, causes a ken overflow */
+#define HUGE_VAL 1.79769313486231e+308
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern double acos(double);
+extern double asin(double);
+extern double atan(double);
+extern double atan2(double, double);
+extern double cos(double);
+extern double sin(double);
+extern double tan(double);
+extern double cosh(double);
+extern double sinh(double);
+extern double tanh(double);
+extern double exp(double);
+extern double frexp(double, int *);
+extern double ldexp(double, int);
+extern double log(double);
+extern double log10(double);
+extern double modf(double, double *);
+extern double pow(double, double);
+extern double sqrt(double);
+extern double ceil(double);
+extern double fabs(double);
+extern double floor(double);
+extern double fmod(double, double);
+extern double NaN(void);
+extern int isNaN(double);
+extern double Inf(int);
+extern int isInf(double, int);
+
+#ifdef _RESEARCH_SOURCE
+/* does >> treat left operand as unsigned ? */
+#define Unsigned_Shifts 1
+#define M_E 2.7182818284590452354 /* e */
+#define M_LOG2E 1.4426950408889634074 /* log 2e */
+#define M_LOG10E 0.43429448190325182765 /* log 10e */
+#define M_LN2 0.69314718055994530942 /* log e2 */
+#define M_LN10 2.30258509299404568402 /* log e10 */
+#define M_PI 3.14159265358979323846 /* pi */
+#define M_PI_2 1.57079632679489661923 /* pi/2 */
+#define M_PI_4 0.78539816339744830962 /* pi/4 */
+#define M_1_PI 0.31830988618379067154 /* 1/pi */
+#define M_2_PI 0.63661977236758134308 /* 2/pi */
+#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
+#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
+#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
+
+extern double hypot(double, double);
+extern double erf(double);
+extern double erfc(double);
+extern double j0(double);
+extern double y0(double);
+extern double j1(double);
+extern double y1(double);
+extern double jn(int, double);
+extern double yn(int, double);
+
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#define isnan(x) isNaN(x)
+#define isinf(x) isInf(x)
+
+#endif /* __MATH */
--- /dev/null
+++ b/alpha/include/ape/stdarg.h
@@ -1,0 +1,17 @@
+#ifndef __STDARG
+#define __STDARG
+
+typedef char *va_list;
+
+#define va_start(list, start) list = (char *)(&(start)+1)
+#define va_end(list)
+#define va_arg(list, mode)\
+ (sizeof(mode)==1?\
+ ((mode*)(list += 4))[-1]:\
+ sizeof(mode)==2?\
+ ((mode*)(list += 4))[-1]:\
+ sizeof(mode)>4?\
+ ((mode*)(list = (char*)((long)(list+7) & ~7) + sizeof(mode)))[-1]:\
+ ((mode*)(list += sizeof(mode)))[-1])
+
+#endif /* __STDARG */
--- /dev/null
+++ b/alpha/include/ape/ureg.h
@@ -1,0 +1,57 @@
+#ifndef __UREG_H
+#define __UREG_H
+#if !defined(_PLAN9_SOURCE)
+ This header file is an extension to ANSI/POSIX
+#endif
+
+struct Ureg
+{
+ /* l.s saves 31 64-bit values: */
+ unsigned long long type;
+ unsigned long long a0;
+ unsigned long long a1;
+ unsigned long long a2;
+
+ unsigned long long r0;
+ unsigned long long r1;
+ unsigned long long r2;
+ unsigned long long r3;
+ unsigned long long r4;
+ unsigned long long r5;
+ unsigned long long r6;
+ unsigned long long r7;
+ unsigned long long r8;
+ unsigned long long r9;
+ unsigned long long r10;
+ unsigned long long r11;
+ unsigned long long r12;
+ unsigned long long r13;
+ unsigned long long r14;
+ unsigned long long r15;
+
+ unsigned long long r19;
+ unsigned long long r20;
+ unsigned long long r21;
+ unsigned long long r22;
+ unsigned long long r23;
+ unsigned long long r24;
+ unsigned long long r25;
+ unsigned long long r26;
+ unsigned long long r27;
+ unsigned long long r28;
+ union {
+ unsigned long long r30;
+ unsigned long long usp;
+ unsigned long long sp;
+ };
+
+ /* OSF/1 PALcode frame: */
+ unsigned long long status; /* PS */
+ unsigned long long pc;
+ unsigned long long r29; /* GP */
+ unsigned long long r16; /* a0 */
+ unsigned long long r17; /* a1 */
+ unsigned long long r18; /* a2 */
+};
+
+#endif
--- /dev/null
+++ b/alpha/include/u.h
@@ -1,0 +1,70 @@
+#define nil ((void*)0)
+typedef unsigned short ushort;
+typedef unsigned char uchar;
+typedef unsigned long ulong;
+typedef unsigned int uint;
+typedef signed char schar;
+typedef long long vlong;
+typedef unsigned long long uvlong;
+typedef unsigned long uintptr;
+typedef unsigned long usize;
+typedef ushort Rune;
+typedef union FPdbleword FPdbleword;
+typedef long jmp_buf[2];
+#define JMPBUFSP 0
+#define JMPBUFPC 1
+#define JMPBUFDPC 0
+typedef unsigned int mpdigit; /* for /sys/include/mp.h */
+typedef unsigned char u8int;
+typedef unsigned short u16int;
+typedef unsigned int u32int;
+typedef unsigned long long u64int;
+
+/* FCR */
+#define FPINEX (1<<30)
+#define FPOVFL (1<<19)
+#define FPUNFL ((1<<29)|(1<<28))
+#define FPZDIV (1<<18)
+#define FPINVAL (1<<17)
+
+#define FPRNR (2<<26)
+#define FPRZ (0<<26)
+#define FPRPINF (3<<26)
+#define FPRNINF (1<<26)
+#define FPRMASK (3<<26)
+
+#define FPPEXT 0
+#define FPPSGL 0
+#define FPPDBL 0
+#define FPPMASK 0
+/* FSR */
+#define FPAINEX (1<<24)
+#define FPAUNFL (1<<23)
+#define FPAOVFL (1<<22)
+#define FPAZDIV (1<<21)
+#define FPAINVAL (1<<20)
+union FPdbleword
+{
+ double x;
+ struct { /* little endian */
+ ulong lo;
+ ulong hi;
+ };
+};
+
+/* stdarg */
+typedef char* va_list;
+#define va_start(list, start) list =\
+ (sizeof(start) < 4?\
+ (char*)((int*)&(start)+1):\
+ (char*)(&(start)+1))
+#define va_end(list)\
+ USED(list)
+#define va_arg(list, mode)\
+ ((sizeof(mode) == 1)?\
+ ((list += 4), (mode*)list)[-4]:\
+ (sizeof(mode) == 2)?\
+ ((list += 4), (mode*)list)[-2]:\
+ sizeof(mode)>4?\
+ ((mode*)(list = (char*)((uintptr)(list+7) & ~7) + sizeof(mode)))[-1]:\
+ ((list += sizeof(mode)), (mode*)list)[-1])
--- /dev/null
+++ b/alpha/include/ureg.h
@@ -1,0 +1,49 @@
+struct Ureg
+{
+ /* l.s saves 31 64-bit values: */
+ uvlong type;
+ uvlong a0;
+ uvlong a1;
+ uvlong a2;
+
+ uvlong r0;
+ uvlong r1;
+ uvlong r2;
+ uvlong r3;
+ uvlong r4;
+ uvlong r5;
+ uvlong r6;
+ uvlong r7;
+ uvlong r8;
+ uvlong r9;
+ uvlong r10;
+ uvlong r11;
+ uvlong r12;
+ uvlong r13;
+ uvlong r14;
+ uvlong r15;
+
+ uvlong r19;
+ uvlong r20;
+ uvlong r21;
+ uvlong r22;
+ uvlong r23;
+ uvlong r24;
+ uvlong r25;
+ uvlong r26;
+ uvlong r27;
+ uvlong r28;
+ union {
+ uvlong r30;
+ uvlong usp;
+ uvlong sp;
+ };
+
+ /* OSF/1 PALcode frame: */
+ uvlong status; /* PS */
+ uvlong pc;
+ uvlong r29; /* GP */
+ uvlong r16; /* a0 */
+ uvlong r17; /* a1 */
+ uvlong r18; /* a2 */
+};
--- /dev/null
+++ b/alpha/mkfile
@@ -1,0 +1,6 @@
+</sys/src/mkfile.proto
+
+CC=7c
+LD=7l
+O=7
+AS=7a
--- a/sys/src/cmd/gs/src/plan9.mak
+++ /dev/null
@@ -1,450 +1,0 @@
-# Copyright (C) 1997-2002 artofcode LLC. All rights reserved.
-#
-# This software is provided AS-IS with no warranty, either express or
-# implied.
-#
-# This software is distributed under license and may not be copied,
-# modified or distributed except as expressly authorized under the terms
-# of the license contained in the file LICENSE in this distribution.
-#
-# For more information about licensing, please refer to
-# http://www.ghostscript.com/licensing/. For information on
-# commercial licensing, go to http://www.artifex.com/licensing/ or
-# contact Artifex Software, Inc., 101 Lucas Valley Road #110,
-# San Rafael, CA 94903, U.S.A., +1(415)492-9861.
-#
-# $Id: unixansi.mak,v 1.41 2005/08/31 05:52:32 ray Exp $
-# makefile for Unix/ANSI C/X11 configuration.
-
-# ------------------------------- Options ------------------------------- #
-
-####### The following are the only parts of the file you should need to edit.
-
-# Define the directory for the final executable, and the
-# source, generated intermediate file, and object directories
-# for the graphics library (GL) and the PostScript/PDF interpreter (PS).
-
-BINDIR=./bin
-GLSRCDIR=./src
-GLGENDIR=./obj
-GLOBJDIR=./obj
-PSSRCDIR=./src
-PSLIBDIR=./lib
-PSGENDIR=./obj
-PSOBJDIR=./obj
-
-# Do not edit the next group of lines.
-
-#include $(COMMONDIR)/ansidefs.mak
-#include $(COMMONDIR)/unixdefs.mak
-#include $(COMMONDIR)/generic.mak
-include src/version.mak
-DD=$(GLGENDIR)/
-GLD=$(GLGENDIR)/
-PSD=$(PSGENDIR)/
-
-# ------ Generic options ------ #
-
-# Define the installation commands and target directories for
-# executables and files. The commands are only relevant to `make install';
-# the directories also define the default search path for the
-# initialization files (gs_*.ps) and the fonts.
-
-INSTALL = $(GLSRCDIR)/instcopy -c
-INSTALL_PROGRAM = $(INSTALL) -m 755
-INSTALL_DATA = $(INSTALL) -m 644
-
-prefix = /usr/local
-exec_prefix = $(prefix)
-bindir = $(exec_prefix)/bin
-scriptdir = $(bindir)
-mandir = $(prefix)/man
-man1ext = 1
-datadir = $(prefix)/share
-gsdir = $(datadir)/ghostscript
-gsdatadir=/sys/src/cmd/gs
-
-docdir=$(gsdatadir)/doc
-exdir=$(gsdatadir)/examples
-GS_DOCDIR=$(docdir)
-
-# Define the default directory/ies for the runtime initialization, resource and
-# font files. Separate multiple directories with a :.
-
-GS_LIB_DEFAULT=/sys/lib/ghostscript:/sys/lib/ghostscript/font:/sys/lib/postscript/font
-
-# Define whether or not searching for initialization files should always
-# look in the current directory first. This leads to well-known security
-# and confusion problems, but users insist on it.
-# NOTE: this also affects searching for files named on the command line:
-# see the "File searching" section of Use.htm for full details.
-# Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended.
-
-SEARCH_HERE_FIRST=1
-
-# Define the name of the interpreter initialization file.
-# (There is no reason to change this.)
-
-GS_INIT=gs_init.ps
-
-# Choose generic configuration options.
-
-# -DDEBUG
-# includes debugging features (-Z switch) in the code.
-# Code runs substantially slower even if no debugging switches
-# are set.
-# -DNOPRIVATE
-# makes private (static) procedures and variables public,
-# so they are visible to the debugger and profiler.
-# No execution time or space penalty.
-
-GENOPT=
-
-# Define the name of the executable file.
-
-GS=gs
-
-# Define the name of a pre-built executable that can be invoked at build
-# time. Currently, this is only needed for compiled fonts. The usual
-# alternatives are:
-# - the standard name of Ghostscript on your system (typically `gs'):
-BUILD_TIME_GS=gs
-# - the name of the executable you are building now. If you choose this
-# option, then you must build the executable first without compiled fonts,
-# and then again with compiled fonts.
-#BUILD_TIME_GS=$(BINDIR)/$(GS) -I$(PSLIBDIR)
-
-# Define the directories for debugging and profiling binaries, relative to
-# the standard binaries.
-
-DEBUGRELDIR=../debugobj
-PGRELDIR=../pgobj
-
-# Define the directory where the IJG JPEG library sources are stored,
-# and the major version of the library that is stored there.
-# You may need to change this if the IJG library version changes.
-# See jpeg.mak for more information.
-
-JSRCDIR=jpeg
-JVERSION=6
-
-# Note: if a shared library is used, it may not contain the
-# D_MAX_BLOCKS_IN_MCU patch, and thus may not be able to read
-# some older JPEG streams that violate the standard. If the JPEG
-# library built from local sources, the patch will be applied.
-
-SHARE_JPEG=0
-JPEG_NAME=jpeg
-
-# Define the directory where the PNG library sources are stored,
-# and the version of the library that is stored there.
-# You may need to change this if the libpng version changes.
-# See libpng.mak for more information.
-
-PSRCDIR=libpng
-PVERSION=10208
-
-# Choose whether to use a shared version of the PNG library, and if so,
-# what its name is.
-# See gs.mak and Make.htm for more information.
-
-SHARE_LIBPNG=0
-LIBPNG_NAME=png
-
-# Define the directory where the zlib sources are stored.
-# See zlib.mak for more information.
-
-ZSRCDIR=zlib
-
-# Choose whether to use a shared version of the zlib library, and if so,
-# what its name is (usually libz, but sometimes libgz).
-# See gs.mak and Make.htm for more information.
-
-SHARE_ZLIB=0
-#ZLIB_NAME=gz
-ZLIB_NAME=z
-
-# Choose shared or compiled in libjbig2dec and source location
-SHARE_JBIG2=0
-JBIG2SRCDIR=jbig2dec
-
-# Define the directory where the icclib source are stored.
-# See icclib.mak for more information
-
-ICCSRCDIR=icclib
-
-# Define the directory where the ijs source is stored,
-# and the process forking method to use for the server.
-# See ijs.mak for more information.
-
-IJSSRCDIR=ijs
-IJSEXECTYPE=unix
-
-# Define how to build the library archives. (These are not used in any
-# standard configuration.)
-
-AR=ar
-ARFLAGS=qc
-RANLIB=ranlib
-
-# ------ Platform-specific options ------ #
-
-# Define the name of the C compiler. If the standard compiler for your
-# platform is ANSI-compatible, leave this line commented out; if not,
-# uncomment the line and insert the proper definition.
-
-#CC=some_C_compiler
-
-# Define the name of the linker for the final link step.
-# Normally this is the same as the C compiler.
-
-CCLD=$(CC)
-
-# Define the added flags for standard, debugging, and profiling builds.
-
-CFLAGS_STANDARD=
-CFLAGS_DEBUG=-g
-CFLAGS_PROFILE=-pg -O
-
-# Define the other compilation flags. Add at most one of the following:
-# -Aa -w -D_HPUX_SOURCE for the HP 400.
-# -DBSD4_2 for 4.2bsd systems.
-# -DSYSV for System V or DG/UX.
-# -DSVR4 -DSVR4_0 (not -DSYSV) for System V release 4.0.
-# -DSVR4 (not -DSYSV) for System V release 4.2 (or later) and Solaris 2.
-# XCFLAGS can be set from the command line.
-XCFLAGS=-D_BSD_EXTENSION -DPlan9
-
-CFLAGS=$(CFLAGS_STANDARD) $(XCFLAGS)
-
-# Define platform flags for ld.
-# SunOS and some others want -X; Ultrix wants -x.
-# SunOS 4.n may need -Bstatic.
-# Solaris 2.6 (and possibly some other versions) with any of the SHARE_
-# parameters set to 1 may need
-# -R /usr/local/xxx/lib:/usr/local/lib
-# giving the full path names of the shared library directories.
-# Apollos running DomainOS don't support -X (and -x has no effect).
-# XLDFLAGS can be set from the command line.
-XLDFLAGS=
-
-LDFLAGS=$(XLDFLAGS)
-
-# Define any extra libraries to link into the executable.
-# ISC Unix 2.2 wants -linet.
-# SCO Unix needs -lsocket if you aren't including the X11 driver.
-# SVR4 may need -lnsl.
-# Solaris may need -lnsl -lsocket -lposix4.
-# (Libraries required by individual drivers are handled automatically.)
-
-EXTRALIBS=
-
-# Define the standard libraries to search at the end of linking.
-# Most platforms require -lpthread for the POSIX threads library;
-# on FreeBSD, change -lpthread to -lc_r; BSDI and perhaps some others
-# include pthreads in libc and don't require any additional library.
-# All reasonable platforms require -lm, but Rhapsody and perhaps one or
-# two others fold libm into libc and don't require any additional library.
-
-#STDLIBS=-lpthread -lm
-
-# Since the default build is for nosync, don't include pthread lib
-STDLIBS=-lm
-
-# Define the include switch(es) for the X11 header files.
-# This can be null if handled in some other way (e.g., the files are
-# in /usr/include, or the directory is supplied by an environment variable);
-# in particular, SCO Xenix, Unix, and ODT just want
-#XINCLUDE=
-# Note that x_.h expects to find the header files in $(XINCLUDE)/X11,
-# not in $(XINCLUDE).
-
-XINCLUDE=-I/usr/X11R6/include
-
-# Define the directory/ies and library names for the X11 library files.
-# XLIBDIRS is for ld and should include -L; XLIBDIR is for LD_RUN_PATH
-# (dynamic libraries on SVR4) and should not include -L.
-# Newer SVR4 systems can use -R in XLIBDIRS rather than setting XLIBDIR.
-# Both can be null if these files are in the default linker search path;
-# in particular, SCO Xenix, Unix, and ODT just want
-#XLIBDIRS=
-# Solaris and other SVR4 systems with dynamic linking probably want
-#XLIBDIRS=-L/usr/openwin/lib -R/usr/openwin/lib
-# X11R6 (on any platform) may need
-#XLIBS=Xt SM ICE Xext X11
-
-XLIBDIRS=-L/usr/X11R6/lib
-XLIBDIR=
-XLIBS=Xt Xext X11
-
-# Define whether this platform has floating point hardware:
-# FPU_TYPE=2 means floating point is faster than fixed point.
-# (This is the case on some RISCs with multiple instruction dispatch.)
-# FPU_TYPE=1 means floating point is at worst only slightly slower
-# than fixed point.
-# FPU_TYPE=0 means that floating point may be considerably slower.
-# FPU_TYPE=-1 means that floating point is always much slower than
-# fixed point.
-
-FPU_TYPE=1
-
-# Define the .dev module that implements thread and synchronization
-# primitives for this platform. Don't change this unless you really know
-# what you're doing.
-
-# If POSIX sync primitives are used, also change the STDLIBS to include
-# the pthread library.
-#SYNC=posync
-
-# Default is No sync primitives since some platforms don't have it (HP-UX)
-SYNC=nosync
-
-# ------ Devices and features ------ #
-
-# Choose the language feature(s) to include. See gs.mak for details.
-
-FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)epsf.dev $(GLD)pipe.dev $(PSD)fapi.dev
-
-# Choose whether to compile the .ps initialization files into the executable.
-# See gs.mak for details.
-
-COMPILE_INITS=0
-
-# Choose whether to store band lists on files or in memory.
-# The choices are 'file' or 'memory'.
-
-BAND_LIST_STORAGE=file
-
-# Choose which compression method to use when storing band lists in memory.
-# The choices are 'lzw' or 'zlib'.
-
-BAND_LIST_COMPRESSOR=zlib
-
-# Choose the implementation of file I/O: 'stdio', 'fd', or 'both'.
-# See gs.mak and sfxfd.c for more details.
-
-FILE_IMPLEMENTATION=stdio
-
-# Choose the implementation of stdio: '' for file I/O and 'c' for callouts
-# See gs.mak and ziodevs.c/ziodevsc.c for more details.
-
-STDIO_IMPLEMENTATION=c
-
-# Choose the device(s) to include. See devs.mak for details,
-# devs.mak and contrib.mak for the list of available devices.
-
-DEVICE_DEVS=$(DD)plan9.dev $(DD)bj10e.dev $(DD)bjc600.dev $(DD)bjc800.dev $(DD)cdj1600.dev $(DD)cdj670.dev $(DD)cdj850.dev $(DD)cdj890.dev $(DD)dfaxlow.dev $(DD)epswrite.dev $(DD)inferno.dev $(DD)jpeg.dev $(DD)jpeggray.dev $(DD)laserjet.dev $(DD)ljet2p.dev $(DD)ljet3.dev $(DD)ljet3d.dev $(DD)ljet4.dev $(DD)pbm.dev $(DD)pbmraw.dev $(DD)pdfwrite.dev $(DD)pgm.dev $(DD)pgmraw.dev $(DD)plan9bm.dev $(DD)pnm.dev $(DD)pnmraw.dev $(DD)ppm.dev $(DD)ppmraw.dev $(DD)pswrite.dev $(DD)stcolor.dev $(DD)tiffg32d.dev $(DD)tiffg3.dev $(DD)tiffg4.dev
-DEVICE_DEVS1=
-DEVICE_DEVS2=
-DEVICE_DEVS3=
-DEVICE_DEVS4=
-DEVICE_DEVS5=
-DEVICE_DEVS6=
-DEVICE_DEVS7=
-DEVICE_DEVS8=
-DEVICE_DEVS9=
-DEVICE_DEVS10=
-DEVICE_DEVS11=
-DEVICE_DEVS12=
-DEVICE_DEVS13=
-DEVICE_DEVS14=
-DEVICE_DEVS15=
-DEVICE_DEVS16=
-# Overflow from DEVS9
-DEVICE_DEVS17=
-DEVICE_DEVS18=
-DEVICE_DEVS19=
-DEVICE_DEVS20=
-
-# ---------------------------- End of options --------------------------- #
-
-# Define the name of the partial makefile that specifies options --
-# used in dependencies.
-
-MAKEFILE=$(GLSRCDIR)/unixansi.mak
-TOP_MAKEFILES=$(MAKEFILE) $(GLSRCDIR)/unixhead.mak
-
-# Define the auxilary program dependency.
-
-AK=
-
-# Define the compilation rules and flags.
-
-# If you system has a 64 bit type you should pass it through
-# CCFLAGS to improve support for multiple colorants. e.g.:
-# -DGX_COLOR_INDEX_TYPE='unsigned long long'
-# or use the autoconf build, which sets this automatically.
-# If you do not define a 64 bit type, there may be some warnings
-# about oversize shifts. It's a bug if these are not harmless.
-
-CCFLAGS=$(GENOPT) $(CFLAGS)
-CC_=$(CC) $(CCFLAGS)
-CCAUX=$(CC)
-CC_NO_WARN=$(CC_)
-
-# ---------------- End of platform-specific section ---------------- #
-
-include src/unixhead.mak
-include src/gs.mak
-include src/lib.mak
-include src/int.mak
-include src/cfonts.mak
-include src/jpeg.mak
-# zlib.mak must precede libpng.mak
-include src/zlib.mak
-include src/libpng.mak
-include src/jbig2.mak
-include src/icclib.mak
-include src/ijs.mak
-include src/devs.mak
-include src/contrib.mak
-include src/plan9-aux.mak
-include src/unixlink.mak
-include src/unix-end.mak
-include src/unixinst.mak
-
-# platform-specific clean-up
-# this makefile is intended to be hand edited so we don't distribute
-# the (presumedly modified) version in the top level directory
-distclean : clean config-clean
- -$(RM) Makefile
-
-maintainer-clean : distclean
- # nothing special to do
-
-# Contributed drivers not found in the current distribution
-# We reinsert them whenever we download a new distribution.
-
-### ------------------------- Plan 9 bitmaps -------------------------- ###
-### Note: this driver was contributed by a user: please contact ###
-### Russ Cox <[email protected]> if you have questions. ###
-
-plan9_=$(GLOBJ)gdevplan9.$(OBJ)
-$(DD)plan9.dev : $(plan9_) $(DD)page.dev
- $(SETPDEV) $(DD)plan9 $(plan9_)
-
-$(GLOBJ)gdevplan9.$(OBJ) : $(GLSRC)gdevplan9.c $(PDEVH) $(gsparam_h) $(gxlum_h)
- $(GLCC) $(GLO_)gdevplan9.$(OBJ) $(C_) $(GLSRC)gdevplan9.c
-
-### -------------- cdj850 - HP 850c Driver under development ------------- ###
-### For questions about this driver, please contact: ###
-### Uli Wortmann ([email protected]) ###
-
-cdeskjet8_=$(GLOBJ)gdevcd8.$(OBJ) $(HPPCL)
-
-$(DD)cdj850.dev : $(cdeskjet8_) $(DD)page.dev
- $(SETPDEV2) $(DD)cdj850 $(cdeskjet8_)
-
-$(DD)cdj670.dev : $(cdeskjet8_) $(DD)page.dev
- $(SETPDEV2) $(DD)cdj670 $(cdeskjet8_)
-
-$(DD)cdj890.dev : $(cdeskjet8_) $(DD)page.dev
- $(SETPDEV2) $(DD)cdj890 $(cdeskjet8_)
-
-$(DD)cdj1600.dev : $(cdeskjet8_) $(DD)page.dev
- $(SETPDEV2) $(DD)cdj1600 $(cdeskjet8_)
-
-$(GLOBJ)gdevcd8.$(OBJ) : $(GLSRC)gdevcd8.c $(PDEVH) $(math__h)\
- $(gsparam_h) $(gxlum_h) $(gdevpcl_h)
- $(GLCC) $(GLO_)gdevcd8.$(OBJ) $(C_) $(GLSRC)gdevcd8.c
-