1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-01-13 23:27:12 +00:00
Interlisp.maiko/inc/version.h
devhawala 82577ce951
Dodo Nethub support (#445)
* added support for XNS networking via Dodo-Nethub

* NetHub connection now optional (only if -nh-host is given); released NetHub-related changes to 'ether.c' to the public domain

* Added file using-dodo-networking-with-maiko.md

Documentation for building and using the Dodo-networking addition to Maiko

* Added support for running Maiko unter cygwin/x86_64-x

* Migrate Addr68k/NativeAlignment{2,4} in Nethub code, move timer/async defines to platform.h

* added missing include <netinet/in.h> for FreeBSD

* updated 'compile-flags' with added flags

* splitted ether.c in 3 (_common, _sunos, _nethub)

* reworks/modifications for nbriggs' pull-request review comments

* addintional additions for nbriggs' pull-request review comments

* get the Lisp packet lengths with 'LispInt2CInt'

* renamed variables in dblwordsSwap to indicate it's about double-words

* fixed wrong preprocessor directive unnoticed by clang

* added networking choice option to cmake build, fix to printf warning

- for cmake specify the networking to use with -DMAIKO_NETWORK_TYPE=<type>
- with <type> one of: NONE, SUN_DLPI, SUN_NIT, NETHUB
- e.g.: cmake .. -DMAIKO_NETWORK_TYPE=NETHUB

* integrated improvement to sendPacket() proposed by nbriggs

* integrated fix for SIGBUS on 32-bit big-endian, provided by nbriggs

* MAIKO_ENABLE_ETHERNET should not be unconditionally set on Solaris systems

* Receiving an ethernet packet is an ether interrupt but not an i/o interrupt.

Co-authored-by: dev hawala <devhawala@x.y>
Co-authored-by: Nick Briggs <nicholas.h.briggs@gmail.com>
2022-10-11 14:21:55 -07:00

246 lines
5.9 KiB
C

#ifndef VERSION_H
#define VERSION_H 1
/* $Id: version.h,v 1.5 2001/12/26 22:17:01 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
/************************************************************************/
/* */
/* (C) Copyright 1989-98 Venue. All Rights Reserved. */
/* Manufactured in the United States of America. */
/* */
/************************************************************************/
#include <stdint.h>
#include "maiko/platform.h" // IWYU pragma: export
/************************************************************************/
/* */
/* V E R S I O N . H */
/* */
/* Version control: Set the two values that keep sysouts and emul- */
/* ators in sync: The LVERSION and MINBVERSION fields in the IFPAGE */
/* */
/* MINBVERSION is the current emulator version, incremented with each */
/* modification. This must be >= a sysout's ifpage.minbversion. */
/* */
/* LVERSION is the minimum lisp version that will run with this emu- */
/* lator. This must be <= a sysouts's ifpage.lversion. */
/* */
/* The loadup process sets both of these values in the sysout. */
/* */
/* */
/* */
/* C O N F I G U R A T I O N / O P T I O N C O N T R O L */
/* */
/* Given a release specification, set flags for the features */
/* that release has. This lets us set one flag in the make- */
/* file, rather than remembering all the options that must change. */
/* */
/* -DRELEASE=115 Medley 1.15, small atoms */
/* -DRELEASE=200 Medley 2.0 as released */
/* -DRELEASE=201 Medley with DOS & European kbd support */
/* -DRELEASE=210 Medley with big VM */
/* -DRELEASE=300 Medley bigvm as released. */
/* -DRELEASE=350 Medley with 256MB vm. */
/* -DRELEASE=351 Medley with 256MB vm and cursor fix */
/* */
/* */
/************************************************************************/
/* The current values */
#define LVERSION 21000
#define MINBVERSION 21001
/* But remember old values, if we can figure them out from ifdef's */
#if (RELEASE == 115)
#undef LVERSION
#undef MINBVERSION
#define LVERSION 15000
#define MINBVERSION 15000
#undef BIGATOMS
#define NOEUROKBD
#define NOVERSION
#elif (RELEASE == 200)
/* Medley 2.0 as released */
#undef LVERSION
#undef MINBVERSION
#define LVERSION 20000
#define MINBVERSION 20000
#define BIGATOMS
#define NOEUROKBD
#define NOVERSION
#elif (RELEASE == 201 )
/* Medley 2.0 with EUROKBD modification */
#undef LVERSION
#undef MINBVERSION
#define LVERSION 20100
#define MINBVERSION 20100
#define BIGATOMS
#undef NOEUROKBD
#define NOVERSION
#elif (RELEASE == 210)
/* Medley 2.1, big-vm Medley while in beta-test */
#undef LVERSION
#undef MINBVERSION
#define LVERSION 21000
#define MINBVERSION 21000
#define BIGATOMS
#define BIGVM 1
#define NEWCDRCODING
# elif (RELEASE == 300 )
/* Medley 301, big-vm Medley in release?? */
#undef LVERSION
#undef MINBVERSION
#define LVERSION 30000
#define MINBVERSION 30000
#define BIGATOMS
#define BIGVM
#define NEWCDRCODING
#elif (RELEASE == 350)
/* Medley 3.5, 256Mb version */
#undef LVERSION
#undef MINBVERSION
#define LVERSION 35000
#define MINBVERSION 35000
#define BIGATOMS
#define BIGVM
#define BIGBIGVM
#define NEWCDRCODING
#elif (RELEASE == 351)
/* Medley 3.5, 256Mb version, X cursor hotspot fix 1/00 */
#undef LVERSION
#undef MINBVERSION
#define LVERSION 35010
#define MINBVERSION 35010
#define BIGATOMS
#define BIGVM
#define BIGBIGVM
#define NEWCDRCODING
#define NEWXCURSOR
#else
error Must specify RELEASE to build Medley.
#endif
/****************************************************************/
/* */
/* There used to be a define NEW_STORAGE, but this wasn't tied */
/* clearly to any RELEASE values. There are comments related */
/* to this in LLPARAMS on the Lisp side. */
/* */
/****************************************************************/
/****************************************************************/
/* */
/* Architecture-specific flags: Set flags */
/* based on thing we know about the architecture */
/* or idiosyncrasies of the machine we're compiling for. */
/* */
/* Defaults: Unaligned fetches OK UNALIGNED_FETCH_OK */
/* fp values used with */
/* pointer-wide unsigned UNSIGNED */
/* pointer-wide int INT */
/* */
/* */
/* */
/****************************************************************/
#ifdef NOASM
#undef OPDISP
#undef PROFILE
#endif
/* Set up defaults */
#define UNALIGNED_FETCH_OK
typedef uintptr_t UNSIGNED;
typedef intptr_t INT;
/* Not all platforms want to do unaligned reads, so
* we will disable those here. */
#if defined(MAIKO_ARCH_SPARC) || defined(MAIKO_ARCH_ARM)
#undef UNALIGNED_FETCH_OK
#endif
/********************************************************/
/* */
/********************************************************/
#ifndef __has_builtin
#define __has_builtin(x) 0
#endif
#if __has_builtin(__builtin_sadd_overflow) && \
__has_builtin(__builtin_ssub_overflow) && \
__has_builtin(__builtin_smul_overflow)
#define USE_OVERFLOW_BUILTINS
#endif
/********************************************************/
/* */
/********************************************************/
#ifdef DOS
typedef unsigned char u_char;
typedef unsigned long u_int;
typedef unsigned short u_short;
#undef UNALIGNED_FETCH_OK
typedef unsigned USHORT;
#else
typedef unsigned short USHORT;
#endif /* DOS */
/****************************************************************/
/* End of architecture-specific flag settings */
/* --Start of system-specific flags */
/* */
/****************************************************************/
/****************************************************************/
/* End of system-specific flag settings */
/****************************************************************/
#endif /* VERSION_H */