mirror of
https://github.com/Interlisp/maiko.git
synced 2026-03-15 06:21:56 +00:00
Compare commits
126 Commits
wip-nhb-sd
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d791b1d332 | ||
|
|
3d09555c6c | ||
|
|
8ad8b4db2a | ||
|
|
673ec07a58 | ||
|
|
60e12dabc0 | ||
|
|
e2f69f4e48 | ||
|
|
9f1bcb9299 | ||
|
|
4dfbdf27ff | ||
|
|
51a33680f4 | ||
|
|
d4a882adc2 | ||
|
|
67f8cc0cf0 | ||
|
|
853d133cda | ||
|
|
0370354432 | ||
|
|
f85f6ce004 | ||
|
|
04ad740ead | ||
|
|
fe7beafcc1 | ||
|
|
e745381970 | ||
|
|
5190a3976f | ||
|
|
babe728d3a | ||
|
|
38d65df90c | ||
|
|
d4a9286962 | ||
|
|
24327920f2 | ||
|
|
987fa637a9 | ||
|
|
4de8b733fd | ||
|
|
353f6d202e | ||
|
|
55209aa7e7 | ||
|
|
dfb820cc62 | ||
|
|
11b81f6c17 | ||
|
|
9557ae8f5b | ||
|
|
d1f7361429 | ||
|
|
4c6aef8fd4 | ||
|
|
409617b506 | ||
|
|
6a550b4ca3 | ||
|
|
f0bd8e0f1f | ||
|
|
c9e2759666 | ||
|
|
9960010129 | ||
|
|
ce20b3520e | ||
|
|
c4752e6caa | ||
|
|
78dfa9b243 | ||
|
|
cfbd78007a | ||
|
|
afe40004b8 | ||
|
|
fe8c991a11 | ||
|
|
5343b12991 | ||
|
|
a0e703678c | ||
|
|
364bc1f31c | ||
|
|
428e7cf1a2 | ||
|
|
01d21b0a44 | ||
|
|
3569e54524 | ||
|
|
b75e66d91c | ||
|
|
0e2cda2328 | ||
|
|
c58336f813 | ||
|
|
f2bf026b07 | ||
|
|
3fad090a6c | ||
|
|
812e296fe8 | ||
|
|
7c7da4cd0c | ||
|
|
f375519dbc | ||
|
|
2c46a9473a | ||
|
|
93b3a709c9 | ||
|
|
31fcfb36ca | ||
|
|
1f18779eb8 | ||
|
|
357336b5f1 | ||
|
|
1ffd1ba7cb | ||
|
|
0a6f8ac72b | ||
|
|
fc90838ad8 | ||
|
|
de1fafba7e | ||
|
|
6f42b353b2 | ||
|
|
8e17c0747d | ||
|
|
6aafbbcb05 | ||
|
|
5dc9233aef | ||
|
|
b029b98fca | ||
|
|
7dd3c90a77 | ||
|
|
389ecf7874 | ||
|
|
5d3639a905 | ||
|
|
59953c2629 | ||
|
|
6d171bff1d | ||
|
|
834a6084c3 | ||
|
|
9343f58b17 | ||
|
|
4994982a90 | ||
|
|
40d4fca8cc | ||
|
|
c8dc63d418 | ||
|
|
7fe0f70640 | ||
|
|
55e20ea993 | ||
|
|
7d85a59e6f | ||
|
|
511a1b523e | ||
|
|
04f9905ca0 | ||
|
|
e61d0f2e6c | ||
|
|
3c4d9f5393 | ||
|
|
31bb14b9d7 | ||
|
|
f23a43f1a0 | ||
|
|
e251f26816 | ||
|
|
51045b402f | ||
|
|
e6c972a62a | ||
|
|
31ad2f2169 | ||
|
|
66721ccc1c | ||
|
|
b13a35e16e | ||
|
|
55d8504060 | ||
|
|
ecdab720f2 | ||
|
|
249efce565 | ||
|
|
1de2e3e954 | ||
|
|
a2f62159e9 | ||
|
|
b2a22a8ac8 | ||
|
|
89b2b4f866 | ||
|
|
96046c01f0 | ||
|
|
578b26547a | ||
|
|
13cbc33da3 | ||
|
|
baeec1b957 | ||
|
|
99550aaa7c | ||
|
|
99601ede75 | ||
|
|
4f3cb4d326 | ||
|
|
b98e1612d1 | ||
|
|
fe71946f82 | ||
|
|
c332c71a3e | ||
|
|
cea720feb2 | ||
|
|
a3f3775c0a | ||
|
|
d2d4f18ade | ||
|
|
c3b7d1707d | ||
|
|
532731b716 | ||
|
|
29e5b374fe | ||
|
|
0c7b1cccd4 | ||
|
|
fae5c4956e | ||
|
|
86ba485c3e | ||
|
|
b88ea87fa8 | ||
|
|
91e0cea9d5 | ||
|
|
4ad14fa832 | ||
|
|
aa4df518a1 | ||
|
|
5c9b5ef4ec |
2
.github/workflows/Dockerfile_builder
vendored
2
.github/workflows/Dockerfile_builder
vendored
@@ -8,7 +8,7 @@
|
||||
#
|
||||
# ******************************************************************************
|
||||
|
||||
FROM ubuntu:latest
|
||||
FROM ubuntu:22.04
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
USER root:root
|
||||
# Install build tools
|
||||
|
||||
13
.github/workflows/Dockerfile_maiko
vendored
13
.github/workflows/Dockerfile_maiko
vendored
@@ -18,8 +18,17 @@ COPY . ${INSTALL_LOCATION}
|
||||
# Build maiko
|
||||
RUN cd ${INSTALL_LOCATION}/bin \
|
||||
&& ./makeright x cleanup \
|
||||
&& ./makeright x
|
||||
RUN cd ${INSTALL_LOCATION}/bin \
|
||||
&& ./makeright x \
|
||||
&& if [ "$(./machinetype)" = "x86_64" ]; then \
|
||||
./makeright init; \
|
||||
fi
|
||||
# Build specially for WSL1 by "fooling" a linux build
|
||||
RUN cd ${INSTALL_LOCATION}/bin \
|
||||
&& arch="$(./machinetype)" \
|
||||
&& if [ "$arch" = "x86_64" ] || [ "$arch" = "aarch64" ]; then \
|
||||
export LDEARCH="${arch}-microsoft-wsl1" \
|
||||
&& ./makeright x cleanup \
|
||||
&& ./makeright x \
|
||||
&& ./makeright init \
|
||||
; \
|
||||
fi
|
||||
|
||||
19
.github/workflows/buildRelease.yml
vendored
19
.github/workflows/buildRelease.yml
vendored
@@ -152,7 +152,7 @@ jobs:
|
||||
|| needs.inputs.outputs.force == 'true'
|
||||
)
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
# Checkout the actions for this repo owner
|
||||
@@ -224,7 +224,13 @@ jobs:
|
||||
RELEASE_TAG: ${{ steps.tag.outputs.release_tag }}
|
||||
run: |
|
||||
mkdir -p /tmp/release_tars
|
||||
for OSARCH in "linux.x86_64:linux_amd64" "linux.aarch64:linux_arm64" "linux.armv7l:linux_arm_v7" ; \
|
||||
for OSARCH in \
|
||||
"linux.x86_64:linux_amd64" \
|
||||
"linux.aarch64:linux_arm64" \
|
||||
"linux.armv7l:linux_arm_v7" \
|
||||
"wsl1.x86_64:linux_amd64" \
|
||||
"wsl1.aarch64:linux_arm64" \
|
||||
; \
|
||||
do \
|
||||
pushd /tmp/docker_images/${OSARCH##*:}/usr/local/interlisp >/dev/null ; \
|
||||
/usr/bin/tar -c -z \
|
||||
@@ -246,6 +252,8 @@ jobs:
|
||||
artifacts:
|
||||
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-linux.x86_64.tgz,
|
||||
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-linux.aarch64.tgz,
|
||||
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-wsl1.x86_64.tgz,
|
||||
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-wsl1.aarch64.tgz,
|
||||
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-linux.armv7l.tgz
|
||||
tag: ${{ steps.tag.outputs.release_tag }}
|
||||
draft: ${{ needs.inputs.outputs.draft }}
|
||||
@@ -310,8 +318,8 @@ jobs:
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
gh release download release-2.26.5 --repo libsdl-org/SDL --pattern SDL2-2.26.5.dmg
|
||||
hdiutil attach SDL2-2.26.5.dmg
|
||||
gh release download release-2.30.11 --repo libsdl-org/SDL --pattern SDL2-2.30.11.dmg
|
||||
hdiutil attach SDL2-2.30.11.dmg
|
||||
sudo ditto /Volumes/SDL2/SDL2.framework /Library/Frameworks/SDL2.framework
|
||||
hdiutil detach /Volumes/SDL2/
|
||||
|
||||
@@ -337,7 +345,7 @@ jobs:
|
||||
# -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12
|
||||
cmake .. \
|
||||
-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" \
|
||||
-DMAIKO_DISPLAY_SDL=ON \
|
||||
-DMAIKO_DISPLAY_SDL=2 \
|
||||
-DMAIKO_DISPLAY_X11=ON \
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build . --config Release
|
||||
@@ -503,6 +511,7 @@ jobs:
|
||||
- name: Install SDL2
|
||||
run: |
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
sudo -E apt-get update
|
||||
sudo -E apt-get install -y libsdl2-dev libsdl2-2.0-0
|
||||
|
||||
# Install Emscripten SDK
|
||||
|
||||
@@ -37,12 +37,16 @@ IF(NEED_LIB_M)
|
||||
SET(MAIKO_LIBRARIES m)
|
||||
ENDIF()
|
||||
|
||||
SET (MAIKO_RELEASE 351 CACHE STRING "Release version to build. Release: 115, 200, 201, 210, 300, 350, 351")
|
||||
SET_PROPERTY(CACHE MAIKO_RELEASE PROPERTY STRINGS 115 200 201 210 300 350 351)
|
||||
|
||||
MESSAGE("-- Configured for release ${MAIKO_RELEASE}")
|
||||
SET(MAIKO_DEFINITIONS
|
||||
"-DRELEASE=351"
|
||||
"-DRELEASE=${MAIKO_RELEASE}"
|
||||
)
|
||||
|
||||
SET(MAIKO_INIT_DEFINITIONS
|
||||
"-DRELEASE=351" "-DINIT" "-DNOVERSION"
|
||||
"-DRELEASE=${MAIKO_RELEASE}" "-DINIT" "-DNOVERSION"
|
||||
)
|
||||
|
||||
OPTION(MAIKO_DISPLAY_X11 "Use X11 for display." ON)
|
||||
@@ -76,18 +80,17 @@ IF(MAIKO_DISPLAY_X11)
|
||||
inc/xmkicondefs.h
|
||||
inc/xrdoptdefs.h
|
||||
inc/xscrolldefs.h
|
||||
inc/xscroll.h
|
||||
inc/xwinmandefs.h
|
||||
)
|
||||
MESSAGE("-- Configured for X11 display")
|
||||
ENDIF()
|
||||
|
||||
IF(MAIKO_DISPLAY_SDL STREQUAL "2")
|
||||
FIND_PACKAGE(SDL2 REQUIRED)
|
||||
FIND_PACKAGE(SDL2 REQUIRED CONFIG REQUIRED COMPONENTS SDL2)
|
||||
SET(MAIKO_DISPLAY_SDL_DEFINITIONS
|
||||
"-DSDL=2"
|
||||
)
|
||||
SET(MAIKO_DISPLAY_SDL_INCLUDE_DIRS "${SDL2_INCLUDE_DIRS}")
|
||||
SET(MAIKO_DISPLAY_SDL_INCLUDE_DIRS SDL2::Headers)
|
||||
SET(MAIKO_DISPLAY_SDL_LIBRARIES SDL2::SDL2)
|
||||
SET(MAIKO_DISPLAY_SDL_SRCS
|
||||
src/sdl.c
|
||||
@@ -97,11 +100,11 @@ IF(MAIKO_DISPLAY_SDL STREQUAL "2")
|
||||
)
|
||||
MESSAGE("-- Configured for SDL2 display")
|
||||
ELSEIF(MAIKO_DISPLAY_SDL STREQUAL "3")
|
||||
FIND_PACKAGE(SDL3 REQUIRED)
|
||||
FIND_PACKAGE(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3)
|
||||
SET(MAIKO_DISPLAY_SDL_DEFINITIONS
|
||||
"-DSDL=3"
|
||||
)
|
||||
SET(MAIKO_DISPLAY_SDL_INCLUDE_DIRS "${SDL3_INCLUDE_DIRS}")
|
||||
SET(MAIKO_DISPLAY_SDL_INCLUDE_DIRS SDL3::Headers)
|
||||
SET(MAIKO_DISPLAY_SDL_LIBRARIES SDL3::SDL3)
|
||||
SET(MAIKO_DISPLAY_SDL_SRCS
|
||||
src/sdl.c
|
||||
@@ -138,6 +141,9 @@ IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
||||
LIST(APPEND MAIKO_DEFINITIONS
|
||||
"-DOS5"
|
||||
)
|
||||
LIST(APPEND MAIKO_INIT_DEFINITIONS
|
||||
"-DOS5"
|
||||
)
|
||||
ENDIF()
|
||||
|
||||
IF(APPLE)
|
||||
@@ -288,7 +294,7 @@ SET(MAIKO_HDRS
|
||||
inc/bindefs.h
|
||||
inc/bindsdefs.h
|
||||
inc/bitbltdefs.h
|
||||
inc/bitblt.h
|
||||
inc/bbtmacro.h
|
||||
inc/bltdefs.h
|
||||
inc/byteswapdefs.h
|
||||
inc/car-cdrdefs.h
|
||||
@@ -313,7 +319,6 @@ SET(MAIKO_HDRS
|
||||
inc/emlglob.h
|
||||
inc/eqfdefs.h
|
||||
inc/etherdefs.h
|
||||
inc/ether.h
|
||||
inc/fast_dsp.h
|
||||
inc/findkeydefs.h
|
||||
inc/foreigndefs.h
|
||||
@@ -359,7 +364,6 @@ SET(MAIKO_HDRS
|
||||
inc/lispemul.h
|
||||
inc/lispmap.h
|
||||
inc/lispver1.h
|
||||
inc/lispver2.h
|
||||
inc/llcolordefs.h
|
||||
inc/lldsp.h
|
||||
inc/llstkdefs.h
|
||||
@@ -392,14 +396,14 @@ SET(MAIKO_HDRS
|
||||
inc/opcodes.h
|
||||
inc/os.h
|
||||
inc/osmsgdefs.h
|
||||
inc/osmsg.h
|
||||
inc/osmsgprint.h
|
||||
inc/perrnodefs.h
|
||||
inc/picture.h
|
||||
inc/pilotbbt.h
|
||||
inc/print.h
|
||||
inc/rawrs232c.h
|
||||
inc/retmacro.h
|
||||
inc/returndefs.h
|
||||
inc/return.h
|
||||
inc/rpcdefs.h
|
||||
inc/rplconsdefs.h
|
||||
inc/rs232c.h
|
||||
@@ -417,7 +421,6 @@ SET(MAIKO_HDRS
|
||||
inc/tos1defs.h
|
||||
inc/tosfns.h
|
||||
inc/tosret.h
|
||||
inc/tty.h
|
||||
inc/typeofdefs.h
|
||||
inc/ubf1defs.h
|
||||
inc/ubf2defs.h
|
||||
@@ -433,14 +436,13 @@ SET(MAIKO_HDRS
|
||||
inc/vars3defs.h
|
||||
inc/version.h
|
||||
inc/vmemsavedefs.h
|
||||
inc/vmemsave.h
|
||||
inc/xcdefs.h
|
||||
inc/z2defs.h
|
||||
)
|
||||
|
||||
ADD_CUSTOM_TARGET(gen-vdate
|
||||
ADD_CUSTOM_COMMAND(OUTPUT vdate.c
|
||||
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bin/mkvdate > vdate.c
|
||||
BYPRODUCTS vdate.c
|
||||
DEPENDS ${MAIKO_SRCS} ${MAIKO_HDRS} ${MAIKO_DISPLAY_X11_SRCS} ${MAIKO_DISPLAY_X11_HDRS} ${MAIKO_DISPLAY_SDL_SRCS} ${MAIKO_DISPLAY_SDL_HDRS}
|
||||
)
|
||||
|
||||
ADD_EXECUTABLE(lde src/ldeboot.c src/unixfork.c)
|
||||
|
||||
39
README.md
39
README.md
@@ -1,8 +1,9 @@
|
||||
# Maiko
|
||||
|
||||
Maiko is the implementation of the Medley Interlisp virtual machine, for a
|
||||
byte-coded Lisp instruction set and some low-level functions for
|
||||
connecting with Lisp for access to display (via X11) and disk etc.
|
||||
Maiko is the implementation of the Medley Interlisp virtual machine for a
|
||||
byte-coded Lisp instruction set, and some low-level functions for
|
||||
connecting Lisp to a display (via X11 or SDL), the local filesystem,
|
||||
and a network subsystem.
|
||||
|
||||
For an overview, see [Medley Interlisp Introduction](https://interlisp.org/medley/using/docs/medley/).
|
||||
|
||||
@@ -15,13 +16,14 @@ Bug reports, feature requests, fixes and improvements, support for additional pl
|
||||
|
||||
## Development Platforms
|
||||
|
||||
We are developing on FreeBSD, Linux, macOS, and Solaris currently
|
||||
on arm7l, arm64, PowerPC, SPARC, i386, and x86_64 hardware.
|
||||
Development has been primarily on macOS, FreeBSD, and Linux, with testing on Solaris and Windows.
|
||||
Processor architectures i386, x86\_64, arm64, arm7l, and SPARC.
|
||||
|
||||
|
||||
## Building Maiko
|
||||
|
||||
Building requires `clang`, `make`, X11 client libraries (`libx11-dev`). For example,
|
||||
### Building with make
|
||||
Building requires a C compiler (`clang` preferred), either `make` or `CMake`, and X11 client libraries (`libx11-dev`), or SDL2. For example, using `make` and X11:
|
||||
|
||||
``` sh
|
||||
$ sudo apt update
|
||||
@@ -33,17 +35,22 @@ $ cd maiko/bin
|
||||
$ ./makeright x
|
||||
```
|
||||
|
||||
* The build will (attempt to) detect the OS-type and cpu-type. It will build binaries `lde` and `ldex` in `../ostype.cputype` (with .o files in `..ostype.cputype-x`. For example, Linux on a 64-bit x86 will use `linux.x86_64`, while macOS 11 on a (new M1) Mac will use `darwin.aarch64`.
|
||||
* If you prefer using `gcc` over `clang`, you will need to edit the makefile fragment for your configuration (`makefile-ostype.cputype-x`) and comment out the line (with a #) that defines `CC` for `clang` and uncomment the line (delete the #) for the line that defines `CC` for `gcc`.
|
||||
* There is a cmake configuration (TBD To Be Described here).
|
||||
* The build will (attempt to) detect the OS-type and cpu-type. It will build binaries `lde` and `ldex` in `../`_`ostype.cputype`_ (with .o files in `../`_`ostype.cputype-x`_. For example, Linux on a 64-bit x86 will use `linux.x86_64`, while macOS 11 on a (new M1) Mac will use `darwin.aarch64`.
|
||||
* If you prefer `gcc` over `clang`, you will need to edit the makefile fragment for your configuration (`makefile-ostype.cputype-x`) and comment out the line (with a #) that defines `CC` as `clang` and uncomment the line (delete the #) for the line that defines `CC` as `gcc`.
|
||||
* If you want to do your own loadups to construct sysout files (see [the Medley repository](https://github.com/Interlisp/medley) for details), you also need the `ldeinit` binary, which you can build using `./makeright init`.
|
||||
|
||||
### Building with CMake
|
||||
We provide a `CMakeLists.txt` which provides mostly matching build capabilities to the `make` setup.
|
||||
CMake options are provided to control the configuration of the Maiko executables:
|
||||
* MAIKO\_DISPLAY\_SDL: [OFF], 2, 3 - selects display subsystem SDL of version specified
|
||||
* MAIKO\_DISPLAY\_X11: [ON], OFF - selects X11 display subsystem
|
||||
* MAIKO\_NETWORK\_TYPE: [NONE], SUN\_DLPI, SUN\_NIT, NETHUB - network subsystem access
|
||||
* MAIKO_RELEASE: [351], various - see `maiko/inc/version.h`
|
||||
|
||||
While SDL3 is selectable, the Maiko code has not yet been updated to work with the SDL3 API.
|
||||
|
||||
### Building For macOS
|
||||
|
||||
* Running on macOS requires an X server, and building on a Mac requires X client libraries.
|
||||
* Building/running on macOS requires either an X server and X client libraries or the SDL2 library.
|
||||
An X-server for macOS (and X11 client libraries) can be freely obtained at https://www.xquartz.org/releases
|
||||
|
||||
### Building for Windows 10
|
||||
|
||||
Windows 10 currently requires "Docker for Desktop" or WSL2 and a (Windows X-server).
|
||||
See [Medley's README](https://github.com/Interlisp/medley/blob/master/README.md) for more.
|
||||
|
||||
The SDL library is freely available from https://libsdl.org
|
||||
|
||||
@@ -15,7 +15,7 @@ XFLAGS = -DSDL=2
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -lm -L/usr/local/lib -lSDL2
|
||||
#
|
||||
|
||||
@@ -18,7 +18,7 @@ XFLAGS = -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
@@ -19,7 +19,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
|
||||
OPTFLAGS = -O2 -g
|
||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) \
|
||||
-DRELEASE=351 # -DSTACKCHECK -DFSBCHECK -DPCTRACE
|
||||
-DRELEASE=$(RELEASE) # -DSTACKCHECK -DFSBCHECK -DPCTRACE
|
||||
|
||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||
|
||||
@@ -16,7 +16,7 @@ SDLFLAGS = -DSDL=2 -F /Library/Frameworks
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||
DFLAGS = $(DEBUGFLAGS) $(SDLFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(DEBUGFLAGS) $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -rpath /Library/Frameworks -F /Library/Frameworks -framework SDL2
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -18,7 +18,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2
|
||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||
|
||||
@@ -19,7 +19,7 @@ XFLAGS = -I/usr/X11/include -DXWINDOW
|
||||
OPTFLAGS = -O2 -g
|
||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) \
|
||||
-DRELEASE=351
|
||||
-DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lm
|
||||
|
||||
@@ -15,7 +15,7 @@ SDLFLAGS = -DSDL=2 -F /Library/Frameworks
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||
DFLAGS = $(DEBUGFLAGS) $(SDLFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(DEBUGFLAGS) $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -rpath /Library/Frameworks -F /Library/Frameworks -framework SDL2
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -18,7 +18,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O1 -g
|
||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||
|
||||
@@ -18,7 +18,7 @@ SRCFILES = conspage.c gcoflow.c shift.c dbgtool.c gcr.c gcrcell.c llstk.
|
||||
OFILES = conspage.obj gcoflow.obj shift.obj dbgtool.obj gcr.obj gcrcell.obj llstk.obj gcscan.obj loopsops.obj storage.obj allocmds.obj dir.obj gvar2.obj lowlev1.obj subr.obj arithops.obj lowlev2.obj subr0374.obj doscomm.obj hardrtn.obj lsthandl.obj sxhash.obj draw.obj main.obj testtool.obj array.obj dsk.obj inet.obj misc7.obj timer.obj array2.obj dspif.obj initdsp.obj miscn.obj typeof.obj array3.obj initkbd.obj ubf1.obj array4.obj dspsubrs.obj initsout.obj mkatom.obj ubf2.obj array5.obj eqf.obj intcall.obj mkcell.obj ubf3.obj array6.obj ether.obj ufn.obj atom.obj findkey.obj kbdsubrs.obj mouseif.obj ufs.obj bbtsub.obj foreign.obj keyevent.obj unixcomm.obj bin.obj fp.obj binds.obj fvar.obj mvs.obj unwind.obj bitblt.obj gc.obj uraid.obj blt.obj gc2.obj kprint.obj osmsg.obj usrsubr.obj byteswap.obj gcarray.obj perrno.obj uutils.obj carcdr.obj asmbbt.obj gccode.obj vars3.obj gcfinal.obj ldsout.obj return.obj vmemsave.obj chardev.obj gchtfind.obj lineblt8.obj rpc.obj xc.obj common.obj gcmain3.obj lisp2c.obj rplcons.obj z2.obj vdate.obj $(COLORFILES) $(ARCHFILES) $(LPFILES)
|
||||
|
||||
|
||||
HFILES = address.h adr68k.h arithopsdefs.h arith.h cell.h dbprint.h display.h dspif.h ifpage.h iopage.h lispemul.h lispmap.h lsptypes.h miscstat.h lspglob.h array.h bb.h bitblt.h debug.h devconf.h dspdata.h ether.h fast_dsp.h gcdata.h initatms.h inlinec.h keyboard.h lispver1.h lispver2.h lldsp.h locfile.h medleyfp.h mouseif.h my.h opcodes.h osmsg.h pilotbbt.h print.h return.h stack.h stream.h subrs.h timeout.h tos1defs.h tosfns.h tosret.h vmemsave.h xdefs.h xbitmaps.h xkeymap.h
|
||||
HFILES = address.h adr68k.h arithopsdefs.h arith.h cell.h dbprint.h display.h dspif.h ifpage.h iopage.h lispemul.h lispmap.h lsptypes.h miscstat.h lspglob.h array.h bb.h bbtmacro.h debug.h devconf.h dspdata.h fast_dsp.h gcdata.h initatms.h inlinec.h keyboard.h lispver1.h lldsp.h locfile.h medleyfp.h mouseif.h my.h opcodes.h osmsgprint.h pilotbbt.h print.h retmacro.h stack.h stream.h subrs.h timeout.h tos1defs.h tosfns.h tosret.h xdefs.h xbitmaps.h xkeymap.h
|
||||
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ emul.exe : $(OFILES)
|
||||
del copts
|
||||
@ echo "Executable is now named '$@'"
|
||||
|
||||
main.o : lispemul.h address.h lsptypes.h adr68k.h stack.h lspglob.h lispmap.h ifpage.h iopage.h return.h debug.h
|
||||
main.o : lispemul.h address.h lsptypes.h adr68k.h stack.h lspglob.h lispmap.h ifpage.h iopage.h retmacro.h debug.h
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ XFLAGS = -DSDL=2 -sUSE_SDL=2
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351 -DMAIKO_ENABLE_NETHUB
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DMAIKO_ENABLE_NETHUB
|
||||
|
||||
MEDLEY?=../../medley
|
||||
SYSOUT?=$(MEDLEY)/loadups/full.sysout
|
||||
|
||||
@@ -14,7 +14,7 @@ XFLAGS = -DSDL=2 -sUSE_SDL=2
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351 -DMAIKO_ENABLE_NETHUB
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DMAIKO_ENABLE_NETHUB
|
||||
|
||||
MEDLEY?=../../medley
|
||||
SYSOUT?=$(MEDLEY)/loadups/full.sysout
|
||||
|
||||
@@ -14,7 +14,7 @@ SDLFLAGS = -DSDL=2 -I/usr/local/include
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
|
||||
@@ -14,7 +14,7 @@ SDLFLAGS = -DSDL=2 -I/usr/local/include
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
|
||||
@@ -14,7 +14,7 @@ SDLFLAGS = -DSDL=2 -I/usr/local/include
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
|
||||
@@ -15,7 +15,7 @@ XFLAGS = -DSDL=2
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -lSDL2 -lnetwork
|
||||
LDELDFLAGS = -lnetwork -lbsd
|
||||
|
||||
@@ -18,7 +18,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
|
||||
# OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it
|
||||
OPTFLAGS = -O0 -g
|
||||
DEBUGFLAGS =
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lm
|
||||
|
||||
@@ -18,7 +18,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O0 -g3
|
||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
||||
|
||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||
|
||||
@@ -18,7 +18,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O0 -g
|
||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
||||
|
||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O0 for init
|
||||
OPTFLAGS = -O0 -g
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O0 for init
|
||||
OPTFLAGS = -O0 -g
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O0 for init
|
||||
OPTFLAGS = -O0 -g
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
|
||||
@@ -19,7 +19,7 @@ XFLAGS = -DXWINDOW
|
||||
# OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it
|
||||
OPTFLAGS = -O0 -g
|
||||
DEBUGFLAGS =
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
@@ -19,7 +19,7 @@ XFLAGS = -DXWINDOW
|
||||
# OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it
|
||||
OPTFLAGS = -O0 -g
|
||||
DEBUGFLAGS =
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/X11R6/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
||||
|
||||
LDFLAGS = -L/usr/X11R6/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11R6/lib -lX11 -lc -lm
|
||||
|
||||
@@ -50,7 +50,7 @@ DFLAGS = -DINIT \
|
||||
$(XFLAGS) \
|
||||
$(DEBUGFLAGS) \
|
||||
$(MACHINEFLAGS) \
|
||||
-DNOVERSION -DRELEASE=351
|
||||
-DNOVERSION -DRELEASE=$(RELEASE)
|
||||
|
||||
|
||||
LDFLAGS = -lX11 -lc -lm -lsocket -lnsl
|
||||
|
||||
29
bin/makefile-init-wsl1.aarch64
Normal file
29
bin/makefile-init-wsl1.aarch64
Normal file
@@ -0,0 +1,29 @@
|
||||
# Options for Windows System for Linux v1, aarch64 processor, X windows, for INIT processing
|
||||
|
||||
CC = gcc $(GCC_CFLAGS)
|
||||
#CC = clang $(CLANG_CFLAGS)
|
||||
|
||||
XFILES = $(OBJECTDIR)xmkicon.o \
|
||||
$(OBJECTDIR)xbbt.o \
|
||||
$(OBJECTDIR)dspif.o \
|
||||
$(OBJECTDIR)xinit.o \
|
||||
$(OBJECTDIR)xscroll.o \
|
||||
$(OBJECTDIR)xcursor.o \
|
||||
$(OBJECTDIR)xlspwin.o \
|
||||
$(OBJECTDIR)xrdopt.o \
|
||||
$(OBJECTDIR)xwinman.o
|
||||
|
||||
|
||||
XFLAGS = -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it
|
||||
OPTFLAGS = -O0 -g
|
||||
DEBUGFLAGS =
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT -D__wsl1__
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
default : ../$(OSARCHNAME)/ldeinit
|
||||
29
bin/makefile-init-wsl1.x86_64
Normal file
29
bin/makefile-init-wsl1.x86_64
Normal file
@@ -0,0 +1,29 @@
|
||||
# Options for Windows System for Linux v1, Intel x86_64 processor, X windows, for INIT processing
|
||||
|
||||
CC = gcc $(GCC_CFLAGS)
|
||||
#CC = clang $(CLANG_CFLAGS)
|
||||
|
||||
XFILES = $(OBJECTDIR)xmkicon.o \
|
||||
$(OBJECTDIR)xbbt.o \
|
||||
$(OBJECTDIR)dspif.o \
|
||||
$(OBJECTDIR)xinit.o \
|
||||
$(OBJECTDIR)xscroll.o \
|
||||
$(OBJECTDIR)xcursor.o \
|
||||
$(OBJECTDIR)xlspwin.o \
|
||||
$(OBJECTDIR)xrdopt.o \
|
||||
$(OBJECTDIR)xwinman.o
|
||||
|
||||
|
||||
XFLAGS = -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it
|
||||
OPTFLAGS = -O0 -g
|
||||
DEBUGFLAGS =
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT -D__wsl1__
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
default : ../$(OSARCHNAME)/ldeinit
|
||||
@@ -15,7 +15,7 @@ XFLAGS = -DSDL=2
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -lm -lSDL2
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
@@ -15,7 +15,7 @@ SDLFLAGS = -DSDL=2
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -lSDL2 -lm
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
@@ -15,7 +15,7 @@ XFLAGS = -DSDL=2
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -lm -lSDL2
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
@@ -15,7 +15,7 @@ XFLAGS = -DSDL=2
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -lm -lSDL2
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -18,7 +18,7 @@ XFLAGS = -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/X11R6/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/X11R6/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11R6/lib -lX11 -lc -lm
|
||||
|
||||
@@ -36,7 +36,7 @@ DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
|
||||
DFLAGS = $(XFLAGS) \
|
||||
$(DEBUGFLAGS) \
|
||||
-DOS5 \
|
||||
-DRELEASE=351
|
||||
-DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
|
||||
|
||||
@@ -45,7 +45,7 @@ MACHINEFLAGS = -DOS5 -DUSE_DLPI
|
||||
DFLAGS = $(XFLAGS) \
|
||||
$(DEBUGFLAGS) \
|
||||
$(MACHINEFLAGS) \
|
||||
-DRELEASE=351
|
||||
-DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -lX11 -lc -lm -lsocket -lnsl
|
||||
LDELDFLAGS = -lX11 -lc -lm -lsocket -lnsl
|
||||
|
||||
@@ -37,7 +37,7 @@ DFLAGS = $(XFLAGS) \
|
||||
$(DEBUGFLAGS) \
|
||||
-DOS5 \
|
||||
-DUSE_DLPI \
|
||||
-DRELEASE=351
|
||||
-DRELEASE=$(RELEASE)
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
|
||||
|
||||
@@ -192,7 +192,7 @@ $(OBJECTDIR)ldeether.o: $(SRCDIR)ldeether.c $(REQUIRED-INCS)
|
||||
$(OBJECTDIR)main.o: $(SRCDIR)main.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)dbprint.h \
|
||||
$(INCDIR)emlglob.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)stack.h \
|
||||
$(INCDIR)return.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
|
||||
$(INCDIR)retmacro.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
|
||||
$(INCDIR)miscstat.h $(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)debug.h \
|
||||
$(INCDIR)timeout.h $(INCDIR)maindefs.h $(INCDIR)commondefs.h \
|
||||
$(INCDIR)dirdefs.h $(INCDIR)dspifdefs.h $(INCDIR)devif.h \
|
||||
@@ -292,7 +292,7 @@ $(OBJECTDIR)bitblt.o: $(SRCDIR)bitblt.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)address.h $(INCDIR)pilotbbt.h $(INCDIR)display.h \
|
||||
$(INCDIR)bitblt.h $(INCDIR)bb.h $(INCDIR)bitbltdefs.h $(INCDIR)initdspdefs.h
|
||||
$(INCDIR)bbtmacro.h $(INCDIR)bb.h $(INCDIR)bitbltdefs.h $(INCDIR)initdspdefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)bitblt.c -o $(OBJECTDIR)bitblt.o
|
||||
|
||||
$(OBJECTDIR)bbt68k.o: $(OBJECTDIR)bbt68k.i $(SRCDIR)bbt68k.s
|
||||
@@ -308,10 +308,10 @@ $(OBJECTDIR)bbtsub.o: $(SRCDIR)bbtsub.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)xdefs.h $(INCDIR)lispemul.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
|
||||
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)lispmap.h $(INCDIR)lsptypes.h \
|
||||
$(INCDIR)emlglob.h $(INCDIR)adr68k.h $(INCDIR)address.h $(INCDIR)arith.h \
|
||||
$(INCDIR)stack.h $(INCDIR)return.h $(INCDIR)cell.h $(INCDIR)gcdata.h \
|
||||
$(INCDIR)stack.h $(INCDIR)retmacro.h $(INCDIR)cell.h $(INCDIR)gcdata.h \
|
||||
$(INCDIR)bbtsubdefs.h $(INCDIR)car-cdrdefs.h $(INCDIR)commondefs.h \
|
||||
$(INCDIR)gcarraydefs.h $(INCDIR)initdspdefs.h $(INCDIR)kprintdefs.h \
|
||||
$(INCDIR)llstkdefs.h $(INCDIR)returndefs.h $(INCDIR)bb.h $(INCDIR)bitblt.h \
|
||||
$(INCDIR)llstkdefs.h $(INCDIR)returndefs.h $(INCDIR)bb.h $(INCDIR)bbtmacro.h \
|
||||
$(INCDIR)pilotbbt.h $(INCDIR)dspdata.h $(INCDIR)display.h $(INCDIR)dbprint.h \
|
||||
$(INCDIR)devif.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)bbtsub.c -o $(OBJECTDIR)bbtsub.o
|
||||
@@ -340,7 +340,7 @@ $(OBJECTDIR)car-cdr.o: $(SRCDIR)car-cdr.c $(REQUIRED-INCS) \
|
||||
$(OBJECTDIR)chardev.o: $(SRCDIR)chardev.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)arith.h $(INCDIR)timeout.h \
|
||||
$(INCDIR)locfile.h $(INCDIR)lispver2.h $(INCDIR)osmsg.h $(INCDIR)dbprint.h \
|
||||
$(INCDIR)locfile.h $(INCDIR)dbprint.h \
|
||||
$(INCDIR)chardevdefs.h $(INCDIR)byteswapdefs.h $(INCDIR)commondefs.h \
|
||||
$(INCDIR)perrnodefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)chardev.c -o $(OBJECTDIR)chardev.o
|
||||
@@ -348,7 +348,7 @@ $(OBJECTDIR)chardev.o: $(SRCDIR)chardev.c $(REQUIRED-INCS) \
|
||||
$(OBJECTDIR)rawcolor.o: $(SRCDIR)rawcolor.c $(REQUIRED-INCS) $(INCDIR)lispemul.h \
|
||||
$(INCDIR)lspglob.h $(INCDIR)lispmap.h $(INCDIR)lsptypes.h \
|
||||
$(INCDIR)emlglob.h $(INCDIR)adr68k.h $(INCDIR)address.h \
|
||||
$(INCDIR)pilotbbt.h $(INCDIR)display.h $(INCDIR)bitblt.h \
|
||||
$(INCDIR)pilotbbt.h $(INCDIR)display.h $(INCDIR)bbtmacro.h \
|
||||
$(INCDIR)arith.h $(INCDIR)cell.h $(INCDIR)dspdata.h $(INCDIR)debug.h \
|
||||
$(INCDIR)stream.h $(INCDIR)bbtsubdefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)rawcolor.c -o $(OBJECTDIR)rawcolor.o
|
||||
@@ -357,7 +357,7 @@ $(OBJECTDIR)llcolor.o: $(SRCDIR)llcolor.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)emlglob.h \
|
||||
$(INCDIR)display.h $(INCDIR)devconf.h $(INCDIR)bb.h $(INCDIR)bitblt.h \
|
||||
$(INCDIR)display.h $(INCDIR)devconf.h $(INCDIR)bb.h $(INCDIR)bbtmacro.h \
|
||||
$(INCDIR)pilotbbt.h $(INCDIR)dbprint.h $(INCDIR)llcolordefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)llcolor.c -o $(OBJECTDIR)llcolor.o
|
||||
|
||||
@@ -391,7 +391,7 @@ $(OBJECTDIR)mkcell.o: $(SRCDIR)mkcell.c $(REQUIRED-INCS) \
|
||||
$(OBJECTDIR)draw.o: $(SRCDIR)draw.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)emlglob.h $(INCDIR)adr68k.h $(INCDIR)bitblt.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)emlglob.h $(INCDIR)adr68k.h $(INCDIR)bbtmacro.h \
|
||||
$(INCDIR)display.h $(INCDIR)drawdefs.h $(INCDIR)bbtsubdefs.h \
|
||||
$(INCDIR)initdspdefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)draw.c -o $(OBJECTDIR)draw.o
|
||||
@@ -423,7 +423,7 @@ $(OBJECTDIR)fp.o: $(SRCDIR)fp.c $(REQUIRED-INCS) \
|
||||
$(OBJECTDIR)intcall.o: $(SRCDIR)intcall.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)address.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)stack.h \
|
||||
$(INCDIR)return.h $(INCDIR)emlglob.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
|
||||
$(INCDIR)retmacro.h $(INCDIR)emlglob.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
|
||||
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)initatms.h $(INCDIR)cell.h \
|
||||
$(INCDIR)tosfns.h $(INCDIR)intcalldefs.h $(INCDIR)commondefs.h \
|
||||
$(INCDIR)llstkdefs.h $(INCDIR)returndefs.h
|
||||
@@ -450,7 +450,7 @@ $(OBJECTDIR)ubf3.o: $(SRCDIR)ubf3.c $(REQUIRED-INCS) \
|
||||
$(OBJECTDIR)uutils.o: $(SRCDIR)uutils.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)adr68k.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
|
||||
$(INCDIR)miscstat.h $(INCDIR)osmsg.h $(INCDIR)keyboard.h $(INCDIR)uutilsdefs.h \
|
||||
$(INCDIR)miscstat.h $(INCDIR)osmsgprint.h $(INCDIR)keyboard.h $(INCDIR)uutilsdefs.h \
|
||||
$(INCDIR)osmsgdefs.h $(INCDIR)uraiddefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)uutils.c -o $(OBJECTDIR)uutils.o
|
||||
|
||||
@@ -478,21 +478,21 @@ $(OBJECTDIR)ether_common.o: $(SRCDIR)ether_common.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)commondefs.h $(INCDIR)lispemul.h \
|
||||
$(INCDIR)lispmap.h $(INCDIR)emlglob.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
|
||||
$(INCDIR)ether.h $(INCDIR)dbprint.h $(INCDIR)etherdefs.h
|
||||
$(INCDIR)dbprint.h $(INCDIR)etherdefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)ether_common.c -o $(OBJECTDIR)ether_common.o
|
||||
|
||||
$(OBJECTDIR)ether_sunos.o: $(SRCDIR)ether_sunos.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)commondefs.h $(INCDIR)lispemul.h \
|
||||
$(INCDIR)lispmap.h $(INCDIR)emlglob.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
|
||||
$(INCDIR)ether.h $(INCDIR)dbprint.h $(INCDIR)etherdefs.h
|
||||
$(INCDIR)dbprint.h $(INCDIR)etherdefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)ether_sunos.c -o $(OBJECTDIR)ether_sunos.o
|
||||
|
||||
$(OBJECTDIR)ether_nethub.o: $(SRCDIR)ether_nethub.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)commondefs.h $(INCDIR)lispemul.h \
|
||||
$(INCDIR)lispmap.h $(INCDIR)emlglob.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
|
||||
$(INCDIR)ether.h $(INCDIR)dbprint.h $(INCDIR)etherdefs.h
|
||||
$(INCDIR)dbprint.h $(INCDIR)etherdefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)ether_nethub.c -o $(OBJECTDIR)ether_nethub.o
|
||||
|
||||
$(OBJECTDIR)findkey.o: $(SRCDIR)findkey.c $(REQUIRED-INCS) \
|
||||
@@ -505,7 +505,7 @@ $(OBJECTDIR)dsk.o: $(SRCDIR)dsk.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
|
||||
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)arith.h $(INCDIR)stream.h \
|
||||
$(INCDIR)timeout.h $(INCDIR)locfile.h $(INCDIR)lispver2.h $(INCDIR)osmsg.h \
|
||||
$(INCDIR)timeout.h $(INCDIR)locfile.h \
|
||||
$(INCDIR)dbprint.h $(INCDIR)dskdefs.h $(INCDIR)byteswapdefs.h \
|
||||
$(INCDIR)car-cdrdefs.h $(INCDIR)cell.h $(INCDIR)commondefs.h \
|
||||
$(INCDIR)ufsdefs.h
|
||||
@@ -515,7 +515,7 @@ $(OBJECTDIR)ufs.o: $(SRCDIR)ufs.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
|
||||
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)arith.h $(INCDIR)stream.h \
|
||||
$(INCDIR)timeout.h $(INCDIR)locfile.h $(INCDIR)lispver2.h $(INCDIR)dbprint.h \
|
||||
$(INCDIR)timeout.h $(INCDIR)locfile.h $(INCDIR)dbprint.h \
|
||||
$(INCDIR)ufsdefs.h $(INCDIR)commondefs.h $(INCDIR)dskdefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)ufs.c -o $(OBJECTDIR)ufs.o
|
||||
|
||||
@@ -523,7 +523,7 @@ $(OBJECTDIR)dir.o: $(SRCDIR)dir.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)arith.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)timeout.h \
|
||||
$(INCDIR)locfile.h $(INCDIR)lispver2.h $(INCDIR)dirdefs.h \
|
||||
$(INCDIR)locfile.h $(INCDIR)dirdefs.h \
|
||||
$(INCDIR)commondefs.h $(INCDIR)dskdefs.h $(INCDIR)ufsdefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)dir.c -o $(OBJECTDIR)dir.o
|
||||
|
||||
@@ -632,7 +632,7 @@ $(OBJECTDIR)hardrtn.o: $(SRCDIR)hardrtn.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)adr68k.h $(INCDIR)address.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)emlglob.h \
|
||||
$(INCDIR)cell.h $(INCDIR)stack.h $(INCDIR)return.h $(INCDIR)hardrtndefs.h \
|
||||
$(INCDIR)cell.h $(INCDIR)stack.h $(INCDIR)retmacro.h $(INCDIR)hardrtndefs.h \
|
||||
$(INCDIR)commondefs.h $(INCDIR)llstkdefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)hardrtn.c -o $(OBJECTDIR)hardrtn.o
|
||||
|
||||
@@ -640,7 +640,7 @@ $(OBJECTDIR)inet.o: $(SRCDIR)inet.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)arith.h $(INCDIR)emlglob.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
|
||||
$(INCDIR)ether.h $(INCDIR)dbprint.h $(INCDIR)locfile.h $(INCDIR)lispver2.h \
|
||||
$(INCDIR)dbprint.h $(INCDIR)locfile.h \
|
||||
$(INCDIR)inetdefs.h $(INCDIR)byteswapdefs.h $(INCDIR)commondefs.h \
|
||||
$(INCDIR)mkcelldefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)inet.c -o $(OBJECTDIR)inet.o
|
||||
@@ -649,7 +649,7 @@ $(OBJECTDIR)initdsp.o: $(SRCDIR)initdsp.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)emlglob.h \
|
||||
$(INCDIR)display.h $(INCDIR)devconf.h $(INCDIR)bb.h $(INCDIR)bitblt.h \
|
||||
$(INCDIR)display.h $(INCDIR)devconf.h $(INCDIR)bb.h $(INCDIR)bbtmacro.h \
|
||||
$(INCDIR)pilotbbt.h $(INCDIR)dbprint.h $(INCDIR)initdspdefs.h \
|
||||
$(INCDIR)byteswapdefs.h $(INCDIR)xcursordefs.h $(INCDIR)devif.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)initdsp.c -o $(OBJECTDIR)initdsp.o
|
||||
@@ -674,7 +674,7 @@ $(OBJECTDIR)initsout.o: $(SRCDIR)initsout.c $(REQUIRED-INCS) \
|
||||
|
||||
$(OBJECTDIR)kbdsubrs.o: $(SRCDIR)kbdsubrs.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)kbdsubrsdefs.h \
|
||||
$(INCDIR)commondefs.h $(INCDIR)lisp2cdefs.h $(INCDIR)xwinmandefs.h \
|
||||
$(INCDIR)commondefs.h $(INCDIR)xwinmandefs.h \
|
||||
$(INCDIR)devif.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)kbdsubrs.c -o $(OBJECTDIR)kbdsubrs.o
|
||||
|
||||
@@ -682,7 +682,7 @@ $(OBJECTDIR)keyevent.o: $(SRCDIR)keyevent.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
|
||||
$(INCDIR)address.h $(INCDIR)stack.h $(INCDIR)keyboard.h $(INCDIR)display.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)bb.h $(INCDIR)bitblt.h $(INCDIR)pilotbbt.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)bb.h $(INCDIR)bbtmacro.h $(INCDIR)pilotbbt.h \
|
||||
$(INCDIR)keyeventdefs.h $(INCDIR)osmsgdefs.h $(INCDIR)xwinmandefs.h \
|
||||
$(INCDIR)devif.h $(INCDIR)dbprint.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)keyevent.c -o $(OBJECTDIR)keyevent.o
|
||||
@@ -698,7 +698,7 @@ $(OBJECTDIR)llstk.o: $(SRCDIR)llstk.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)address.h $(INCDIR)lsptypes.h $(INCDIR)initatms.h \
|
||||
$(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h \
|
||||
$(INCDIR)emlglob.h $(INCDIR)cell.h $(INCDIR)stack.h $(INCDIR)return.h \
|
||||
$(INCDIR)emlglob.h $(INCDIR)cell.h $(INCDIR)stack.h $(INCDIR)retmacro.h \
|
||||
$(INCDIR)llstkdefs.h $(INCDIR)commondefs.h $(INCDIR)dbgtooldefs.h \
|
||||
$(INCDIR)testtooldefs.h $(INCDIR)kprintdefs.h $(INCDIR)storagedefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)llstk.c -o $(OBJECTDIR)llstk.o
|
||||
@@ -758,7 +758,7 @@ $(OBJECTDIR)osmsg.o: $(SRCDIR)osmsg.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)arith.h $(INCDIR)stream.h \
|
||||
$(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h \
|
||||
$(INCDIR)timeout.h $(INCDIR)locfile.h $(INCDIR)lispver2.h $(INCDIR)osmsg.h \
|
||||
$(INCDIR)timeout.h $(INCDIR)locfile.h $(INCDIR)osmsgprint.h \
|
||||
$(INCDIR)dbprint.h $(INCDIR)commondefs.h $(INCDIR)osmsgdefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)osmsg.c -o $(OBJECTDIR)osmsg.o
|
||||
|
||||
@@ -766,7 +766,7 @@ $(OBJECTDIR)return.o: $(SRCDIR)return.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)address.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)stack.h \
|
||||
$(INCDIR)emlglob.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
|
||||
$(INCDIR)miscstat.h $(INCDIR)initatms.h $(INCDIR)cell.h $(INCDIR)return.h \
|
||||
$(INCDIR)miscstat.h $(INCDIR)initatms.h $(INCDIR)cell.h $(INCDIR)retmacro.h \
|
||||
$(INCDIR)returndefs.h $(INCDIR)commondefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)return.c -o $(OBJECTDIR)return.o
|
||||
|
||||
@@ -828,7 +828,7 @@ $(OBJECTDIR)subr0374.o: $(SRCDIR)subr0374.c $(REQUIRED-INCS) \
|
||||
$(CC) $(RFLAGS) $(SRCDIR)subr0374.c -o $(OBJECTDIR)subr0374.o
|
||||
|
||||
$(OBJECTDIR)perrno.o: $(SRCDIR)perrno.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)osmsg.h \
|
||||
$(INCDIR)lispemul.h $(INCDIR)osmsgprint.h \
|
||||
$(INCDIR)perrnodefs.h $(INCDIR)osmsgdefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)perrno.c -o $(OBJECTDIR)perrno.o
|
||||
|
||||
@@ -843,7 +843,7 @@ $(OBJECTDIR)timer.o: $(SRCDIR)timer.c $(REQUIRED-INCS) \
|
||||
$(OBJECTDIR)tty.o: $(SRCDIR)tty.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h \
|
||||
$(INCDIR)commondefs.h $(INCDIR)tty.h $(INCDIR)ttydefs.h
|
||||
$(INCDIR)commondefs.h $(INCDIR)ttydefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)tty.c -o $(OBJECTDIR)tty.o
|
||||
|
||||
$(OBJECTDIR)typeof.o: $(SRCDIR)typeof.c $(REQUIRED-INCS) \
|
||||
@@ -865,7 +865,7 @@ $(OBJECTDIR)unixcomm.o: $(SRCDIR)unixcomm.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h \
|
||||
$(INCDIR)cell.h $(INCDIR)stack.h $(INCDIR)arith.h $(INCDIR)dbprint.h \
|
||||
$(INCDIR)timeout.h $(INCDIR)unixcommdefs.h $(INCDIR)byteswapdefs.h \
|
||||
$(INCDIR)commondefs.h $(INCDIR)locfile.h $(INCDIR)lispver2.h
|
||||
$(INCDIR)commondefs.h $(INCDIR)locfile.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)unixcomm.c -o $(OBJECTDIR)unixcomm.o
|
||||
|
||||
$(OBJECTDIR)unixfork.o: $(SRCDIR)unixfork.c $(REQUIRED-INCS) \
|
||||
@@ -876,7 +876,7 @@ $(OBJECTDIR)uraid.o: $(SRCDIR)uraid.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
|
||||
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)emlglob.h $(INCDIR)cell.h \
|
||||
$(INCDIR)debug.h $(INCDIR)devconf.h $(INCDIR)display.h $(INCDIR)bitblt.h \
|
||||
$(INCDIR)debug.h $(INCDIR)devconf.h $(INCDIR)display.h $(INCDIR)bbtmacro.h \
|
||||
$(INCDIR)uraiddefs.h $(INCDIR)dbgtooldefs.h $(INCDIR)stack.h \
|
||||
$(INCDIR)gcarraydefs.h $(INCDIR)initdspdefs.h $(INCDIR)initkbddefs.h \
|
||||
$(INCDIR)kprintdefs.h $(INCDIR)llstkdefs.h $(INCDIR)mkatomdefs.h \
|
||||
@@ -888,7 +888,7 @@ $(OBJECTDIR)rpc.o: $(SRCDIR)rpc.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
|
||||
$(INCDIR)miscstat.h $(INCDIR)emlglob.h $(INCDIR)adr68k.h $(INCDIR)arith.h \
|
||||
$(INCDIR)locfile.h $(INCDIR)lispver2.h $(INCDIR)rpcdefs.h \
|
||||
$(INCDIR)locfile.h $(INCDIR)rpcdefs.h \
|
||||
$(INCDIR)commondefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)rpc.c -o $(OBJECTDIR)rpc.o
|
||||
|
||||
@@ -908,8 +908,8 @@ $(OBJECTDIR)vars3.o: $(SRCDIR)vars3.c $(REQUIRED-INCS) \
|
||||
$(OBJECTDIR)vmemsave.o: $(SRCDIR)vmemsave.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h \
|
||||
$(INCDIR)lispmap.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
|
||||
$(INCDIR)miscstat.h $(INCDIR)vmemsave.h $(INCDIR)timeout.h $(INCDIR)adr68k.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)locfile.h $(INCDIR)lispver2.h $(INCDIR)dbprint.h \
|
||||
$(INCDIR)miscstat.h $(INCDIR)timeout.h $(INCDIR)adr68k.h \
|
||||
$(INCDIR)lsptypes.h $(INCDIR)locfile.h $(INCDIR)dbprint.h \
|
||||
$(INCDIR)devif.h $(INCDIR)vmemsavedefs.h $(INCDIR)byteswapdefs.h $(INCDIR)commondefs.h \
|
||||
$(INCDIR)dskdefs.h $(INCDIR)initkbddefs.h $(INCDIR)perrnodefs.h \
|
||||
$(INCDIR)ufsdefs.h
|
||||
@@ -929,7 +929,7 @@ $(OBJECTDIR)usrsubr.o: $(SRCDIR)usrsubr.c $(REQUIRED-INCS) \
|
||||
|
||||
$(OBJECTDIR)xc.o: $(SRCDIR)xc.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)emlglob.h \
|
||||
$(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)stack.h $(INCDIR)return.h \
|
||||
$(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)stack.h $(INCDIR)retmacro.h \
|
||||
$(INCDIR)dbprint.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
|
||||
$(INCDIR)miscstat.h $(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)cell.h \
|
||||
$(INCDIR)initatms.h $(INCDIR)gcdata.h $(INCDIR)arith.h $(INCDIR)stream.h \
|
||||
@@ -992,7 +992,7 @@ $(OBJECTDIR)xcursor.o: $(SRCDIR)xcursor.c $(REQUIRED-INCS) \
|
||||
|
||||
$(OBJECTDIR)xwinman.o: $(SRCDIR)xwinman.c $(REQUIRED-INCS) \
|
||||
$(INCDIR)lispemul.h $(INCDIR)miscstat.h $(INCDIR)devif.h $(INCDIR)xdefs.h \
|
||||
$(INCDIR)xscroll.h $(INCDIR)xwinmandefs.h $(INCDIR)keyeventdefs.h \
|
||||
$(INCDIR)xwinmandefs.h $(INCDIR)keyeventdefs.h \
|
||||
$(INCDIR)xlspwindefs.h $(INCDIR)xscrolldefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)xwinman.c -o $(OBJECTDIR)xwinman.o
|
||||
|
||||
|
||||
25
bin/makefile-wsl1.aarch64-sdl
Normal file
25
bin/makefile-wsl1.aarch64-sdl
Normal file
@@ -0,0 +1,25 @@
|
||||
# Options for Windows System for Linux v1, ARM64 and SDL
|
||||
|
||||
CC = gcc $(GCC_CFLAGS)
|
||||
#CC = clang $(CLANG_CFLAGS)
|
||||
|
||||
XFILES = $(OBJECTDIR)sdl.o
|
||||
|
||||
#
|
||||
# For SDL version 2
|
||||
# -DSDL=2 in SDLFLAGS and -lSDL2 in LDFLAGS
|
||||
# For SDL version 3
|
||||
# -DSDL=3 in SDLFLAGS and -lSDL3 in LDFLAGS
|
||||
#
|
||||
SDLFLAGS = -DSDL=2
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__
|
||||
|
||||
LDFLAGS = -lSDL2 -lm
|
||||
LDELDFLAGS =
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl
|
||||
27
bin/makefile-wsl1.aarch64-x
Normal file
27
bin/makefile-wsl1.aarch64-x
Normal file
@@ -0,0 +1,27 @@
|
||||
# Options for Windows System for Linux v1, aarch64 and X-Window
|
||||
|
||||
CC = gcc $(GCC_CFLAGS)
|
||||
#CC = clang $(CLANG_CFLAGS)
|
||||
|
||||
XFILES = $(OBJECTDIR)xmkicon.o \
|
||||
$(OBJECTDIR)xbbt.o \
|
||||
$(OBJECTDIR)dspif.o \
|
||||
$(OBJECTDIR)xinit.o \
|
||||
$(OBJECTDIR)xscroll.o \
|
||||
$(OBJECTDIR)xcursor.o \
|
||||
$(OBJECTDIR)xlspwin.o \
|
||||
$(OBJECTDIR)xrdopt.o \
|
||||
$(OBJECTDIR)xwinman.o
|
||||
|
||||
XFLAGS = -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex
|
||||
25
bin/makefile-wsl1.x86_64-sdl
Normal file
25
bin/makefile-wsl1.x86_64-sdl
Normal file
@@ -0,0 +1,25 @@
|
||||
# Options for Windows System for Linux v1, Intel x86_64 and SDL
|
||||
|
||||
CC = gcc -m64 $(GCC_CFLAGS)
|
||||
# CC = clang -m64 $(CLANG_CFLAGS)
|
||||
|
||||
XFILES = $(OBJECTDIR)sdl.o
|
||||
|
||||
#
|
||||
# For SDL version 2
|
||||
# -DSDL=2 in XFLAGS and -lSDL2 in LDFLAGS
|
||||
# For SDL version 3
|
||||
# -DSDL=3 in XFLAGS and -lSDL3 in LDFLAGS
|
||||
#
|
||||
XFLAGS = -DSDL=2
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__
|
||||
|
||||
LDFLAGS = -lm -lSDL2
|
||||
LDELDFLAGS =
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl
|
||||
28
bin/makefile-wsl1.x86_64-x
Normal file
28
bin/makefile-wsl1.x86_64-x
Normal file
@@ -0,0 +1,28 @@
|
||||
# Options for Windows System for Linux v1, Intel x86_64 and X-Window
|
||||
|
||||
CC = gcc -m64 $(GCC_CFLAGS)
|
||||
# CC = clang -m64 $(CLANG_CFLAGS)
|
||||
|
||||
XFILES = $(OBJECTDIR)xmkicon.o \
|
||||
$(OBJECTDIR)xbbt.o \
|
||||
$(OBJECTDIR)dspif.o \
|
||||
$(OBJECTDIR)xinit.o \
|
||||
$(OBJECTDIR)xscroll.o \
|
||||
$(OBJECTDIR)xcursor.o \
|
||||
$(OBJECTDIR)xlspwin.o \
|
||||
$(OBJECTDIR)xrdopt.o \
|
||||
$(OBJECTDIR)xwinman.o
|
||||
|
||||
|
||||
XFLAGS = -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex
|
||||
@@ -54,9 +54,10 @@ if test $# -gt 0
|
||||
shift
|
||||
fi
|
||||
|
||||
: ${RELEASE=351}
|
||||
architecture=`machinetype`
|
||||
osversion=`osversion`
|
||||
echo "making so far for ${osversion} on ${architecture}."
|
||||
echo "making release ${RELEASE} for ${osversion} on ${architecture}."
|
||||
case "$display" in
|
||||
init) display=single
|
||||
releasename=init-${osversion}.${architecture}
|
||||
@@ -106,12 +107,12 @@ if [ ! -d ../${releasename} ]; then
|
||||
mkdir ../${releasename}
|
||||
fi
|
||||
|
||||
echo start making lde for ${releasename}.
|
||||
echo start making lde for ${releasename}
|
||||
|
||||
# then finally do the make, including the right stuff
|
||||
# With makefile-tail merged, this should only take ONE make command....
|
||||
|
||||
make RELEASENAME=${releasename} LDENAME=${ldename} \
|
||||
make RELEASENAME=${releasename} RELEASE=${RELEASE} LDENAME=${ldename} \
|
||||
OSARCHNAME=${osversion}.${architecture} \
|
||||
-f makefile-header -f makefile-${releasename} \
|
||||
-f makefile-tail $*
|
||||
|
||||
16
bin/mkvdate
16
bin/mkvdate
@@ -1,6 +1,22 @@
|
||||
#!/bin/sh
|
||||
if command -v "git" >/dev/null 2>&1; then
|
||||
MAIKO_REV="$(git status --porcelain)"
|
||||
if [ $? -eq 0 ]; then
|
||||
if [ ! -z "$(git status --porcelain)" ]; then
|
||||
MAIKO_REV="$(git rev-parse --short HEAD)-dirty"
|
||||
else
|
||||
MAIKO_REV="$(git rev-parse --short HEAD)"
|
||||
fi
|
||||
else
|
||||
MAIKO_REV="none"
|
||||
fi
|
||||
else
|
||||
MAIKO_REV = "none"
|
||||
fi
|
||||
cat <<EOF
|
||||
#include <time.h>
|
||||
extern const time_t MDate;
|
||||
const time_t MDate = $(date +%s);
|
||||
extern const char *MaikoGitVersion;
|
||||
const char *MaikoGitVersion = "maiko git version: $MAIKO_REV";
|
||||
EOF
|
||||
|
||||
@@ -8,11 +8,14 @@ case "$os" in
|
||||
*-*-solaris2*) echo sunos5 ;;
|
||||
alpha-dec-osf1) echo osf1 ;;
|
||||
*-apple-darwin*) echo darwin ;;
|
||||
*-*-linux*) echo linux ;;
|
||||
*-*-linux*)
|
||||
if [ -n "${WSL_DISTRO_NAME}" ] && [ -z "${WSL_INTEROP}" ];
|
||||
then echo wsl1; else echo linux; fi ;;
|
||||
*-*-openbsd*) echo openbsd ;;
|
||||
*-*-freebsd*) echo freebsd ;;
|
||||
*-*-cygwin*) echo cygwin ;;
|
||||
*-*-haiku*) echo haiku ;;
|
||||
*-microsoft-wsl1) echo wsl1 ;;
|
||||
esac
|
||||
### Don't leave the variable set.
|
||||
unset os
|
||||
|
||||
@@ -221,17 +221,17 @@ static const int generic_X_keymap[] = {
|
||||
/* keypad digit assignments above, try assigning */
|
||||
/* the new arrow-key key#s assigned for RS/6000 */
|
||||
/* Failing that, try assigning the keypad #s. */
|
||||
1, 84, XK_Left,
|
||||
0, 129, XK_Left,
|
||||
0, 84, XK_Left,
|
||||
|
||||
1, 82, XK_Up,
|
||||
0, 130, XK_Up,
|
||||
0, 82, XK_Up,
|
||||
|
||||
1, 69, XK_Down,
|
||||
0, 131, XK_Down,
|
||||
0, 69, XK_Down,
|
||||
|
||||
1, 87, XK_Right,
|
||||
0, 132, XK_Right,
|
||||
0, 87, XK_Right,
|
||||
|
||||
0, 93, XK_Multi_key, /* Expand, Sun type-4 */
|
||||
0, 93, XK_Alt_R, /* Expand, RH Alt key */
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#ifndef BITBLT_H
|
||||
#define BITBLT_H 1
|
||||
#ifndef BBTMACRO_H
|
||||
#define BBTMACRO_H 1
|
||||
/* $Id: bitblt.h,v 1.2 1999/01/03 02:05:54 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
||||
/*
|
||||
* Copyright (C) 1988 by Fuji Xerox Co., Ltd. All rights reserved.
|
||||
*
|
||||
* File : bitblt.h
|
||||
* File : bbtmacro.h (was bitblt.h)
|
||||
*
|
||||
* Author : Osamu Nakamura
|
||||
*
|
||||
@@ -85,4 +85,4 @@ extern DLword *EmCursorX68K,*EmCursorY68K;
|
||||
#define UNLOCKSCREEN ScreenLocked = NIL
|
||||
|
||||
#endif /* DOS */
|
||||
#endif /* BITBLT_H */
|
||||
#endif /* BBTMACRO_H */
|
||||
@@ -58,7 +58,7 @@ typedef struct dfinfo {
|
||||
} DFINFO;
|
||||
|
||||
#ifdef DOS
|
||||
int make_old_version(char *old, char *file);
|
||||
int make_old_version(char *old, size_t oldsize, char *file);
|
||||
#endif
|
||||
#ifdef FSDEBUG
|
||||
void print_finfo(FINFO *fp);
|
||||
|
||||
@@ -19,7 +19,9 @@ LispPTR COM_writepage(LispPTR *args);
|
||||
LispPTR COM_truncatefile(LispPTR *args);
|
||||
LispPTR COM_changedir(LispPTR *args);
|
||||
LispPTR COM_getfreeblock(LispPTR *args);
|
||||
void separate_version(char *name, char *ver, int checkp);
|
||||
void conc_dir_and_name(char *dir, char *name, char *fname, size_t fname_size);
|
||||
void conc_name_and_version(char *name, char *ver, char *rname, size_t rname_size);
|
||||
void separate_version(char *name, size_t namesize, char *ver, size_t versize, int checkp);
|
||||
int unpack_filename(char *file, char *dir, char *name, char *ver, int checkp);
|
||||
int true_name(char *path);
|
||||
int true_name(char *path, size_t pathsize);
|
||||
#endif
|
||||
|
||||
120
inc/ether.h
120
inc/ether.h
@@ -1,120 +0,0 @@
|
||||
#ifndef ETHER_H
|
||||
#define ETHER_H 1
|
||||
/* $Id: ether.h,v 1.2 1999/01/03 02:05:59 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* (C) Copyright 1989-92 Venue. All Rights Reserved. */
|
||||
/* Manufactured in the United States of America. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
#include "lispemul.h" /* for LispPTR, DLword */
|
||||
|
||||
#ifndef BYTESWAP
|
||||
|
||||
typedef struct {
|
||||
DLword DLLOCALHOST0;
|
||||
DLword DLLOCALHOST1;
|
||||
DLword DLLOCALHOST2;
|
||||
DLword DLFIRSTICB;
|
||||
DLword DLINPUTMASK;
|
||||
DLword DLFIRSTOCB;
|
||||
DLword DLOUTPUTMASK;
|
||||
DLword DLMISSEDPACKETS;
|
||||
DLword DLLASTICB;
|
||||
DLword DLLASTOCB;
|
||||
} DLETHERCSB;
|
||||
|
||||
typedef struct{
|
||||
DLword DLIOCBLENGTH;
|
||||
DLword DLIOCBBUFFERLO;
|
||||
DLword DLIOCBBUFFERHI;
|
||||
DLword DLRETRANSMISSIONMASK;
|
||||
DLword DLIOCBBYTESUSED;
|
||||
DLword DLIOCBSTATUS;
|
||||
DLword DLNEXTIOCB;
|
||||
DLword DLFOROUTPUTUSE;
|
||||
} DLETHERIOCB;
|
||||
|
||||
typedef struct {
|
||||
unsigned int NETTYPE : 8;
|
||||
unsigned int NDBNEXT : 24;
|
||||
unsigned int NDBPUPNET : 8;
|
||||
unsigned int NDBNSNET : 24;
|
||||
unsigned int NDBTASK : 8;
|
||||
unsigned int NDBBROADCASTP : 24;
|
||||
unsigned int NDBPUPHOST : 8;
|
||||
unsigned int NDBTRANSMITTER : 24;
|
||||
unsigned int nil1: 8;
|
||||
unsigned int NDBENCAPSULATOR : 24;
|
||||
unsigned int NDBIQLENGTH : 8; /* DATATYPE */
|
||||
unsigned int NDBCSB : 24; /* DATATYPE */
|
||||
LispPTR NDBIQ;
|
||||
LispPTR NDBTQ;
|
||||
LispPTR NDBTRANSLATIONS;
|
||||
LispPTR NDBETHERFLUSHER;
|
||||
LispPTR NDBWATCHER;
|
||||
LispPTR NDBCANHEARSELF;
|
||||
LispPTR NDBIPNET;
|
||||
LispPTR NDBIPHOST;
|
||||
DLword NDBPUPTYPE;
|
||||
DLword nil2;
|
||||
LispPTR nil3;
|
||||
} NDB;
|
||||
#else
|
||||
/***********************************************/
|
||||
/* Byte-swapped definitions, for e.g., 80386's */
|
||||
/***********************************************/
|
||||
typedef struct {
|
||||
DLword DLLOCALHOST1;
|
||||
DLword DLLOCALHOST0;
|
||||
DLword DLFIRSTICB;
|
||||
DLword DLLOCALHOST2;
|
||||
DLword DLFIRSTOCB;
|
||||
DLword DLINPUTMASK;
|
||||
DLword DLMISSEDPACKETS;
|
||||
DLword DLOUTPUTMASK;
|
||||
DLword DLLASTOCB;
|
||||
DLword DLLASTICB;
|
||||
} DLETHERCSB;
|
||||
|
||||
typedef struct{
|
||||
DLword DLIOCBBUFFERLO;
|
||||
DLword DLIOCBLENGTH;
|
||||
DLword DLRETRANSMISSIONMASK;
|
||||
DLword DLIOCBBUFFERHI;
|
||||
DLword DLIOCBSTATUS;
|
||||
DLword DLIOCBBYTESUSED;
|
||||
DLword DLFOROUTPUTUSE;
|
||||
DLword DLNEXTIOCB;
|
||||
} DLETHERIOCB;
|
||||
|
||||
typedef struct {
|
||||
unsigned int NDBNEXT : 24;
|
||||
unsigned int NETTYPE : 8;
|
||||
unsigned int NDBNSNET : 24;
|
||||
unsigned int NDBPUPNET : 8;
|
||||
unsigned int NDBBROADCASTP : 24;
|
||||
unsigned int NDBTASK : 8;
|
||||
unsigned int NDBTRANSMITTER : 24;
|
||||
unsigned int NDBPUPHOST : 8;
|
||||
unsigned int NDBENCAPSULATOR : 24;
|
||||
unsigned int nil1: 8;
|
||||
unsigned int NDBCSB : 24; /* DATATYPE */
|
||||
unsigned int NDBIQLENGTH : 8; /* DATATYPE */
|
||||
LispPTR NDBIQ;
|
||||
LispPTR NDBTQ;
|
||||
LispPTR NDBTRANSLATIONS;
|
||||
LispPTR NDBETHERFLUSHER;
|
||||
LispPTR NDBWATCHER;
|
||||
LispPTR NDBCANHEARSELF;
|
||||
LispPTR NDBIPNET;
|
||||
LispPTR NDBIPHOST;
|
||||
DLword nil2;
|
||||
DLword NDBPUPTYPE;
|
||||
LispPTR nil3;
|
||||
} NDB;
|
||||
|
||||
#endif /* BYTESWAP */
|
||||
|
||||
#endif /* ETHER_H */
|
||||
35
inc/gcdata.h
35
inc/gcdata.h
@@ -18,8 +18,7 @@
|
||||
*/
|
||||
/**********************************************************************/
|
||||
#include "lispemul.h" /* for LispPTR, DLword */
|
||||
#include "version.h" /* for USHORT */
|
||||
#include "gchtfinddefs.h"
|
||||
#include "version.h" /* for BIGVM */
|
||||
|
||||
#define ADDREF 0 /* for gclookup routine. */
|
||||
#define DELREF 1 /* for gclookup routine. */
|
||||
@@ -132,10 +131,10 @@
|
||||
#ifdef BIGVM
|
||||
struct hashentry
|
||||
{ /* GC hashtable entry */
|
||||
unsigned short count :15;
|
||||
unsigned short stackref :1;
|
||||
unsigned short segnum :15;
|
||||
unsigned short collision :1;
|
||||
DLword count :15;
|
||||
DLword stackref :1;
|
||||
DLword segnum :15;
|
||||
DLword collision :1;
|
||||
};
|
||||
|
||||
struct htlinkptr
|
||||
@@ -163,10 +162,10 @@ struct htoverflow
|
||||
#else
|
||||
struct hashentry
|
||||
{ /* GC hashtable entry */
|
||||
USHORT count :6;
|
||||
USHORT stackref :1;
|
||||
USHORT segnum :8;
|
||||
USHORT collision :1;
|
||||
DLword count :6;
|
||||
DLword stackref :1;
|
||||
DLword segnum :8;
|
||||
DLword collision :1;
|
||||
};
|
||||
|
||||
struct htlinkptr
|
||||
@@ -201,10 +200,10 @@ struct htoverflow
|
||||
#ifdef BIGVM
|
||||
struct hashentry
|
||||
{ /* GC hashtable entry */
|
||||
USHORT collision :1;
|
||||
USHORT segnum :15;
|
||||
USHORT stackref :1;
|
||||
USHORT count :15;
|
||||
DLword collision :1;
|
||||
DLword segnum :15;
|
||||
DLword stackref :1;
|
||||
DLword count :15;
|
||||
};
|
||||
|
||||
struct htlinkptr
|
||||
@@ -232,10 +231,10 @@ struct htoverflow
|
||||
#else
|
||||
struct hashentry
|
||||
{ /* GC hashtable entry */
|
||||
USHORT collision :1;
|
||||
USHORT segnum :8;
|
||||
USHORT stackref :1;
|
||||
USHORT count :6;
|
||||
DLword collision :1;
|
||||
DLword segnum :8;
|
||||
DLword stackref :1;
|
||||
DLword count :6;
|
||||
};
|
||||
|
||||
struct htlinkptr
|
||||
|
||||
@@ -2,14 +2,10 @@
|
||||
#define GCFINALDEFS_H 1
|
||||
#include "lispemul.h" /* for LispPTR, DLword */
|
||||
void printarrayblock(LispPTR base);
|
||||
int integerlength(unsigned int n);
|
||||
LispPTR findptrsbuffer(LispPTR ptr);
|
||||
void printfreeblockchainn(int arlen);
|
||||
LispPTR releasingvmempage(LispPTR ptr);
|
||||
LispPTR checkarrayblock(LispPTR base, LispPTR free, LispPTR onfreelist);
|
||||
LispPTR deleteblock(LispPTR base);
|
||||
LispPTR linkblock(LispPTR base);
|
||||
LispPTR makefreearrayblock(LispPTR block, DLword length);
|
||||
LispPTR arrayblockmerger(LispPTR base, LispPTR nbase);
|
||||
LispPTR mergebackward(LispPTR base);
|
||||
LispPTR mergeforward(LispPTR base);
|
||||
LispPTR reclaimarrayblock(LispPTR ptr);
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
#ifndef GCHTFINDDEFS_H
|
||||
#define GCHTFINDDEFS_H 1
|
||||
#include "lispemul.h" /* for LispPTR, DLword */
|
||||
#include "gcdata.h" /* for GCENTRY */
|
||||
void enter_big_reference_count(LispPTR ptr);
|
||||
void modify_big_reference_count(LispPTR *entry, DLword casep, LispPTR ptr);
|
||||
void modify_big_reference_count(GCENTRY *entry, DLword casep, LispPTR ptr);
|
||||
LispPTR htfind(LispPTR ptr, int casep);
|
||||
LispPTR rec_htfind(LispPTR ptr, int casep);
|
||||
#endif
|
||||
|
||||
@@ -217,7 +217,7 @@
|
||||
|
||||
#define FJUMPMACRO(x) \
|
||||
do { \
|
||||
if (TOPOFSTACK != 0) { goto PopNextop1; } \
|
||||
if (TOPOFSTACK != 0) { POP; nextop1; } \
|
||||
{ \
|
||||
CHECK_INTERRUPT; \
|
||||
POP; \
|
||||
@@ -227,7 +227,7 @@
|
||||
} while (0)
|
||||
#define TJUMPMACRO(x) \
|
||||
do { \
|
||||
if (TOPOFSTACK == 0) { goto PopNextop1; } \
|
||||
if (TOPOFSTACK == 0) { POP; nextop1; } \
|
||||
{ \
|
||||
CHECK_INTERRUPT; \
|
||||
POP; \
|
||||
|
||||
@@ -267,22 +267,22 @@ struct state {
|
||||
|
||||
/* For bit test */
|
||||
typedef struct wbits {
|
||||
USHORT LSB : 1;
|
||||
USHORT B14 : 1;
|
||||
USHORT B13 : 1;
|
||||
USHORT B12 : 1;
|
||||
USHORT B11 : 1;
|
||||
USHORT B10 : 1;
|
||||
USHORT B9 : 1;
|
||||
USHORT B8 : 1;
|
||||
USHORT B7 : 1;
|
||||
USHORT B6 : 1;
|
||||
USHORT B5 : 1;
|
||||
USHORT B4 : 1;
|
||||
USHORT B3 : 1;
|
||||
USHORT B2 : 1;
|
||||
USHORT B1 : 1;
|
||||
USHORT xMSB : 1;
|
||||
DLword LSB : 1;
|
||||
DLword B14 : 1;
|
||||
DLword B13 : 1;
|
||||
DLword B12 : 1;
|
||||
DLword B11 : 1;
|
||||
DLword B10 : 1;
|
||||
DLword B9 : 1;
|
||||
DLword B8 : 1;
|
||||
DLword B7 : 1;
|
||||
DLword B6 : 1;
|
||||
DLword B5 : 1;
|
||||
DLword B4 : 1;
|
||||
DLword B3 : 1;
|
||||
DLword B2 : 1;
|
||||
DLword B1 : 1;
|
||||
DLword xMSB : 1;
|
||||
} WBITS;
|
||||
|
||||
#define PUTBASEBIT68K(base68k, offset, bitvalue) \
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
#ifndef LISPVER2_H
|
||||
#define LISPVER2_H 1
|
||||
/* $Id: lispver2.h,v 1.2 1999/01/03 02:06:09 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
||||
|
||||
/* non-DOS version of LispVersionToUnixVersion */
|
||||
|
||||
#define LispVersionToUnixVersion(pathname) do { \
|
||||
\
|
||||
char *lv_cp; \
|
||||
char *lv_vp; \
|
||||
unsigned lv_ver; \
|
||||
char lv_ver_buf[VERSIONLEN]; \
|
||||
\
|
||||
lv_cp = pathname; \
|
||||
lv_vp = NULL; \
|
||||
while (*lv_cp) { \
|
||||
switch (*lv_cp) { \
|
||||
\
|
||||
case ';': \
|
||||
lv_vp = lv_cp; \
|
||||
lv_cp++; \
|
||||
break; \
|
||||
\
|
||||
case '\'': \
|
||||
if (*(lv_cp + 1) != 0) lv_cp += 2; \
|
||||
else lv_cp++; \
|
||||
break; \
|
||||
\
|
||||
default: \
|
||||
lv_cp++; \
|
||||
break; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
if (lv_vp != NULL) { \
|
||||
/* \
|
||||
* A semicolon which is not quoted has been found. \
|
||||
*/ \
|
||||
if (*(lv_vp + 1) == 0) { \
|
||||
/* \
|
||||
* The empty version field. \
|
||||
* This is regarded as a versionless file. \
|
||||
*/ \
|
||||
*lv_vp = 0; \
|
||||
} else { \
|
||||
NumericStringP((lv_vp + 1), YES, NO); \
|
||||
YES: \
|
||||
/* \
|
||||
* Convert the remaining field to digit. \
|
||||
*/ \
|
||||
lv_ver = strtoul(lv_vp + 1, (char **)NULL, 10); \
|
||||
if (lv_ver == 0) { \
|
||||
/* versionless */ \
|
||||
*lv_vp = 0; \
|
||||
} else { \
|
||||
sprintf(lv_ver_buf, ".~%u~", lv_ver); \
|
||||
*lv_vp = 0; \
|
||||
strcat(pathname, lv_ver_buf); \
|
||||
} \
|
||||
goto CONT; \
|
||||
\
|
||||
NO: \
|
||||
strcpy(lv_ver_buf, lv_vp + 1); \
|
||||
strcat(lv_ver_buf, "~"); \
|
||||
*lv_vp++ = '.'; \
|
||||
*lv_vp++ = '~'; \
|
||||
*lv_vp = 0; \
|
||||
strcat(pathname, lv_ver_buf); \
|
||||
CONT: \
|
||||
lv_vp--; /* Just for label */ \
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
#endif /* LISPVER2_H */
|
||||
317
inc/locfile.h
317
inc/locfile.h
@@ -12,6 +12,7 @@
|
||||
#include <limits.h> /* for NAME_MAX */
|
||||
#include <dirent.h> /* for MAXNAMLEN */
|
||||
#include "lispemul.h" /* for DLword */
|
||||
#include "commondefs.h" /* for error */
|
||||
|
||||
#define FDEV_PAGE_SIZE 512 /* 1 page == 512 byte */
|
||||
|
||||
@@ -34,6 +35,8 @@
|
||||
#define PROTECTION (S_POSITIVE | 6)
|
||||
#define EOL (S_POSITIVE | 7)
|
||||
#define ALL (S_POSITIVE | 8)
|
||||
#define INODE_LO (S_POSITIVE | 9)
|
||||
#define INODE_HI (S_POSITIVE | 10)
|
||||
|
||||
#define ToLispTime(x) ((int)(x) + 29969152)
|
||||
/* For getfileinfo. For WDATE&RDATE */
|
||||
@@ -44,18 +47,17 @@
|
||||
/* For getfileinfo. For WDATE&RDATE */
|
||||
/* 29969152 == (timer.c)LISP_UNIX_TIME_DIFF */
|
||||
|
||||
#define StrNCpyFromCToLisp(lispbuf, cbuf ,len) do { \
|
||||
char *lf_sptr = (cbuf); \
|
||||
char *lf_dptr = (lispbuf); \
|
||||
for(size_t lf_i=0;lf_i<(len);lf_i++)\
|
||||
GETBYTE(lf_dptr++) = *lf_sptr++; \
|
||||
} while (0)
|
||||
|
||||
#define StrNCpyFromLispToC(cbuf , lispbuf, len) do { \
|
||||
char *lf_sptr = (lispbuf); \
|
||||
char *lf_dptr = (cbuf); \
|
||||
for(size_t lf_i=0;lf_i<(len);lf_i++)\
|
||||
*lf_dptr++ = GETBYTE(lf_sptr++); \
|
||||
/*
|
||||
* Copy memory between native memory locations accounting for potential
|
||||
* byte-swapping necessary when then destination is within Lisp memory space
|
||||
* though the provided destination pointer is a native address within the
|
||||
* Lisp space.
|
||||
*/
|
||||
#define MemCpyToLispFromNative(lispbuf, cbuf, len) \
|
||||
do { \
|
||||
char *lf_sptr = (cbuf); \
|
||||
char *lf_dptr = (lispbuf); \
|
||||
for (size_t lf_i = 0; lf_i < (len); lf_i++) *BYTEPTR(lf_dptr++) = *lf_sptr++; \
|
||||
} while (0)
|
||||
|
||||
#define FGetNum(ptr, place) do { \
|
||||
@@ -64,6 +66,10 @@
|
||||
else {return(NIL);}} while (0)
|
||||
|
||||
|
||||
#ifndef min
|
||||
#define min(a, b) (((a) <= (b))?(a):(b))
|
||||
#endif /* min */
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* L i s p S t r i n g T o C S t r i n g */
|
||||
@@ -79,65 +85,52 @@
|
||||
/* */
|
||||
/************************************************************************/
|
||||
#ifndef BYTESWAP
|
||||
#define LispStringToCString(Lisp, C, MaxLen) \
|
||||
do { \
|
||||
OneDArray *lf_arrayp; \
|
||||
char *lf_base, *lf_dp; \
|
||||
short *lf_sbase; \
|
||||
size_t lf_length; \
|
||||
lf_arrayp = (OneDArray *)NativeAligned4FromLAddr(Lisp); \
|
||||
lf_length = min(MaxLen, lf_arrayp->fillpointer); \
|
||||
switch(lf_arrayp->typenumber) \
|
||||
{ \
|
||||
case THIN_CHAR_TYPENUMBER: \
|
||||
lf_base = ((char *)(NativeAligned2FromLAddr(lf_arrayp->base))) \
|
||||
+ ((int)(lf_arrayp->offset)); \
|
||||
strncpy(C, lf_base, lf_length); \
|
||||
(C)[lf_length] = '\0'; \
|
||||
break; \
|
||||
\
|
||||
case FAT_CHAR_TYPENUMBER: \
|
||||
lf_sbase = ((short *)(NativeAligned2FromLAddr(lf_arrayp->base))) \
|
||||
+ ((int)(lf_arrayp->offset)); \
|
||||
lf_dp = C; \
|
||||
for(size_t lf_i=0;lf_i<(lf_length);lf_i++) \
|
||||
*lf_dp++ = (char)(*lf_sbase++); \
|
||||
*lf_dp = '\0'; \
|
||||
break; \
|
||||
default: \
|
||||
error("LispStringToCString: Not a character array.\n"); \
|
||||
} \
|
||||
} while (0)
|
||||
static void LispStringToCString(LispPTR Lisp, char *C, size_t MaxLen) {
|
||||
OneDArray *lf_arrayp;
|
||||
char *lf_base, *lf_dp;
|
||||
short *lf_sbase;
|
||||
size_t lf_length;
|
||||
lf_arrayp = (OneDArray *)NativeAligned4FromLAddr(Lisp);
|
||||
lf_length = min(MaxLen - 1, lf_arrayp->fillpointer);
|
||||
lf_dp = (C);
|
||||
switch (lf_arrayp->typenumber) {
|
||||
case THIN_CHAR_TYPENUMBER:
|
||||
lf_base = ((char *)(NativeAligned2FromLAddr(lf_arrayp->base))) + ((int)(lf_arrayp->offset));
|
||||
strncpy(lf_dp, lf_base, lf_length);
|
||||
lf_dp[lf_length] = '\0';
|
||||
break;
|
||||
|
||||
case FAT_CHAR_TYPENUMBER:
|
||||
lf_sbase = ((short *)(NativeAligned2FromLAddr(lf_arrayp->base))) + ((int)(lf_arrayp->offset));
|
||||
for (size_t lf_i = 0; lf_i < (lf_length); lf_i++) *lf_dp++ = (char)(*lf_sbase++);
|
||||
*lf_dp = '\0';
|
||||
break;
|
||||
default: error("LispStringToCString: Not a character array.\n");
|
||||
}
|
||||
}
|
||||
#else /* BYTESWAP == T CHANGED-BY-TAKE */
|
||||
#define LispStringToCString(Lisp, C, MaxLen) \
|
||||
do { \
|
||||
OneDArray *lf_arrayp; \
|
||||
char *lf_base, *lf_dp; \
|
||||
short *lf_sbase; \
|
||||
size_t lf_length; \
|
||||
lf_arrayp = (OneDArray *)(NativeAligned4FromLAddr(Lisp)); \
|
||||
lf_length = min(MaxLen, lf_arrayp->fillpointer); \
|
||||
switch(lf_arrayp->typenumber) \
|
||||
{ \
|
||||
case THIN_CHAR_TYPENUMBER: \
|
||||
lf_base = ((char *)(NativeAligned2FromLAddr(lf_arrayp->base))) \
|
||||
+ ((int)(lf_arrayp->offset)); \
|
||||
StrNCpyFromLispToC(C , lf_base , lf_length ); \
|
||||
(C)[lf_length] = '\0'; \
|
||||
break; \
|
||||
\
|
||||
case FAT_CHAR_TYPENUMBER: \
|
||||
lf_sbase = ((short *)(NativeAligned2FromLAddr(lf_arrayp->base))) \
|
||||
+ ((int)(lf_arrayp->offset)); \
|
||||
lf_dp = C; \
|
||||
for(size_t lf_ii=0;lf_ii<(lf_length);lf_ii++,lf_sbase++) \
|
||||
*lf_dp++ = (char)(GETWORD(lf_sbase)); \
|
||||
*lf_dp = '\0'; \
|
||||
break; \
|
||||
default: \
|
||||
error("LispStringToCString: Not a character array.\n"); \
|
||||
} \
|
||||
} while (0)
|
||||
static void LispStringToCString(LispPTR Lisp, char *C, size_t MaxLen) {
|
||||
OneDArray *lf_arrayp;
|
||||
char *lf_base, *lf_dp;
|
||||
short *lf_sbase;
|
||||
size_t lf_length;
|
||||
lf_arrayp = (OneDArray *)(NativeAligned4FromLAddr(Lisp));
|
||||
lf_length = min(MaxLen - 1, lf_arrayp->fillpointer);
|
||||
lf_dp = (C);
|
||||
switch (lf_arrayp->typenumber) {
|
||||
case THIN_CHAR_TYPENUMBER:
|
||||
lf_base = ((char *)(NativeAligned2FromLAddr(lf_arrayp->base))) + ((int)(lf_arrayp->offset));
|
||||
for (size_t lf_i = 0; lf_i < lf_length; lf_i++) *lf_dp++ = GETBYTE(lf_base++);
|
||||
break;
|
||||
|
||||
case FAT_CHAR_TYPENUMBER:
|
||||
lf_sbase = ((short *)(NativeAligned2FromLAddr(lf_arrayp->base))) + ((int)(lf_arrayp->offset));
|
||||
for (size_t lf_ii = 0; lf_ii < lf_length; lf_ii++) *lf_dp++ = (char)(GETWORD(lf_sbase++));
|
||||
break;
|
||||
default: error("LispStringToCString: Not a character array.\n");
|
||||
}
|
||||
*lf_dp = '\0';
|
||||
}
|
||||
|
||||
#endif /* BYTESWAP */
|
||||
|
||||
@@ -189,10 +182,6 @@ do { \
|
||||
(cstringp) = (char *)(NativeAligned2FromLAddr(((OneDArray *)lf_naddress)->base)); \
|
||||
} while (0)
|
||||
|
||||
#ifndef min
|
||||
#define min(a, b) (((a) <= (b))?(a):(b))
|
||||
#endif /* min */
|
||||
|
||||
#define LispNumToCInt(Lisp) \
|
||||
( (((Lisp) & SEGMASK) == S_POSITIVE) ? ((Lisp) & 0xFFFF) : \
|
||||
(((Lisp) & SEGMASK) == S_NEGATIVE) ? ((Lisp) | 0xFFFF0000) : \
|
||||
@@ -299,7 +288,7 @@ do { \
|
||||
* Argument: char *pathname
|
||||
* Xerox Lisp syntax pathname.
|
||||
*
|
||||
* Value: If succeed, returns 1, otherwise 0.
|
||||
* Value: On success returns 1, otherwise 0.
|
||||
*
|
||||
* Side Effect: The version part of pathname is destructively modified.
|
||||
*
|
||||
@@ -312,7 +301,7 @@ do { \
|
||||
* code.
|
||||
* This macro should be called at the top of the routines which accept the
|
||||
* file name from lisp before converting it into UNIX file name, because
|
||||
* locating the version part, the informations about quoted characters are needed.
|
||||
* locating the version part, the information about quoted characters are needed.
|
||||
* They might be lost in the course of the conversion.
|
||||
*
|
||||
*/
|
||||
@@ -323,183 +312,15 @@ do { \
|
||||
/* * * * * it gave "Too many characters in a character constant" errors! */
|
||||
#include "lispver1.h"
|
||||
#else /* DOS */
|
||||
/* NON-DOS version of the macro LispVersionToUnixVersion */
|
||||
#include "lispver2.h"
|
||||
/* NON-DOS version is inline in ufs.c */
|
||||
#endif /* DOS */
|
||||
|
||||
|
||||
/*
|
||||
* Name: UnixVersionToLispVersion
|
||||
*
|
||||
* Argument: char *pathname
|
||||
* UNIX syntax pathname.
|
||||
* int vlessp
|
||||
* If 0, versionless file is converted to version 1.
|
||||
* Otherwise, remains as versionless.
|
||||
*
|
||||
* Value: If succeed, returns 1, otherwise 0.
|
||||
*
|
||||
* Side Effect: The version part of pathname is destructively modified.
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Destructively modify the version part of pathname which is following the
|
||||
* UNIX file naming convention to Xerox Lisp one.
|
||||
* This macro should be called, in the routines which convert the UNIX pathname
|
||||
* to Lisp one, just before it returns the result to Lisp, because converting
|
||||
* version field will append a semicolon and it might make the routine be
|
||||
* confused.
|
||||
* The file which has not a valid version field, that is ".~##~" form, is
|
||||
* dealt with as version 1.
|
||||
*/
|
||||
|
||||
#define UnixVersionToLispVersion(pathname, vlessp) do { \
|
||||
\
|
||||
char *start; \
|
||||
char *end; \
|
||||
char *lf_cp; \
|
||||
int ver_no; \
|
||||
size_t len; \
|
||||
char ver_buf[VERSIONLEN]; \
|
||||
\
|
||||
if ((start = strchr(pathname, '~')) != NULL) { \
|
||||
/* First of all, find the version field in pathname. */ \
|
||||
end = start; \
|
||||
lf_cp = start + 1; \
|
||||
while (*lf_cp) { \
|
||||
if (*lf_cp == '~') { \
|
||||
start = end; \
|
||||
end = lf_cp; \
|
||||
lf_cp++; \
|
||||
} else { \
|
||||
lf_cp++; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
if (start != end && *(start - 1) == '.' && end == (lf_cp - 1)) { \
|
||||
/* \
|
||||
* pathname ends in the form ".~###~". But we \
|
||||
* check ### is a valid number or not. \
|
||||
*/ \
|
||||
len = (end - start) - 1; \
|
||||
strncpy(ver_buf, start + 1, len); \
|
||||
ver_buf[len] = '\0'; \
|
||||
NumericStringP(ver_buf, YES, NO); \
|
||||
YES: \
|
||||
*(start - 1) = ';'; \
|
||||
*start = '\0'; \
|
||||
*end = '\0'; \
|
||||
/* call strtoul() to eliminate leading 0s. */ \
|
||||
ver_no = strtoul(start + 1, (char **)NULL, 10); \
|
||||
sprintf(ver_buf, "%u", ver_no); \
|
||||
strcat(pathname, ver_buf); \
|
||||
goto CONT; \
|
||||
\
|
||||
NO: \
|
||||
/* Dealt with as version 1 unless vlessp */ \
|
||||
if (!(vlessp)) strcat(pathname, ";1"); \
|
||||
CONT: \
|
||||
lf_cp--; /* Just for label */ \
|
||||
} else { \
|
||||
/* Dealt with as version 1 unless vlessp. */ \
|
||||
if (!(vlessp)) strcat(pathname, ";1"); \
|
||||
} \
|
||||
} else { \
|
||||
/* Dealt with as version 1 unless vlessp. */ \
|
||||
if (!(vlessp)) strcat(pathname, ";1"); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Name: ConcDirAndName
|
||||
*
|
||||
* Argument: char *dir The name of the directory.
|
||||
* char *name The name of a file.
|
||||
* char *fname The place where the full file name should be
|
||||
* stored.
|
||||
* Value: N/A
|
||||
*
|
||||
* Side Effect: fname is replaced with the full file name.
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Concatenate the directory name and root file name. Checks if dir contains
|
||||
* the trail directory delimiter or not.
|
||||
*
|
||||
*/
|
||||
|
||||
#define ConcDirAndName(dir, name, fname) do { \
|
||||
\
|
||||
char *lf_cp1, *lf_cp2; \
|
||||
\
|
||||
lf_cp1 = dir; \
|
||||
lf_cp2 = dir; \
|
||||
\
|
||||
while (*lf_cp2 != '\0') { \
|
||||
switch (*lf_cp2) { \
|
||||
\
|
||||
case '/': \
|
||||
lf_cp1 = lf_cp2; \
|
||||
lf_cp2++; \
|
||||
break; \
|
||||
\
|
||||
default: \
|
||||
lf_cp2++; \
|
||||
break; \
|
||||
} \
|
||||
} \
|
||||
if (lf_cp1 == (lf_cp2 - 1)) { \
|
||||
if (lf_cp1 == (dir)) { \
|
||||
/* dir is a root directory. */ \
|
||||
strcpy(fname, "/"); \
|
||||
strcat(fname, name); \
|
||||
} else { \
|
||||
/* The trail directory is included. */ \
|
||||
strcpy(fname, dir); \
|
||||
strcat(fname, name); \
|
||||
} \
|
||||
} else { \
|
||||
/* The trail directory is not included */ \
|
||||
strcpy(fname, dir); \
|
||||
strcat(fname, "/"); \
|
||||
strcat(fname, name); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Name: ConcNameAndVersion
|
||||
*
|
||||
* Argument: char *name The root file name.
|
||||
* char *ver The file version.
|
||||
* char *rname The place where the concatenated file name will be
|
||||
* stored.
|
||||
* Value: N/A
|
||||
*
|
||||
* Side Effect: rname is replaced with the concatenated file name.
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* Concatenate the root file name and its version in UNIX format.
|
||||
*
|
||||
*/
|
||||
|
||||
#define ConcNameAndVersion(name, ver, rname) do { \
|
||||
if (*(ver) != '\0') { \
|
||||
strcpy(rname, name); \
|
||||
strcat(rname, ".~"); \
|
||||
strcat(rname, ver); \
|
||||
strcat(rname, "~"); \
|
||||
} else { \
|
||||
strcpy(rname, name); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define VERSIONLEN 16
|
||||
|
||||
#define VERSIONLEN 24
|
||||
#define MAXVERSION 999999999
|
||||
|
||||
#define LASTVERSIONARRAY ((unsigned) -1)
|
||||
#define VERSIONARRAYLENGTH 200
|
||||
#define VERSIONARRAYCHUNKLENGTH 200
|
||||
#define VERSIONARRAYMAXLENGTH 2000
|
||||
|
||||
#define NoFileP(varray) \
|
||||
(((varray)->version_no == LASTVERSIONARRAY)? 1 : 0)
|
||||
|
||||
107
inc/lsptypes.h
107
inc/lsptypes.h
@@ -699,4 +699,111 @@ typedef
|
||||
/* low-order 12 bits first. */
|
||||
} BIGNUM;
|
||||
|
||||
|
||||
/* Ethernet records */
|
||||
|
||||
#ifndef BYTESWAP
|
||||
typedef struct {
|
||||
DLword DLLOCALHOST0;
|
||||
DLword DLLOCALHOST1;
|
||||
DLword DLLOCALHOST2;
|
||||
DLword DLFIRSTICB;
|
||||
DLword DLINPUTMASK;
|
||||
DLword DLFIRSTOCB;
|
||||
DLword DLOUTPUTMASK;
|
||||
DLword DLMISSEDPACKETS;
|
||||
DLword DLLASTICB;
|
||||
DLword DLLASTOCB;
|
||||
} DLETHERCSB;
|
||||
|
||||
typedef struct{
|
||||
DLword DLIOCBLENGTH;
|
||||
DLword DLIOCBBUFFERLO;
|
||||
DLword DLIOCBBUFFERHI;
|
||||
DLword DLRETRANSMISSIONMASK;
|
||||
DLword DLIOCBBYTESUSED;
|
||||
DLword DLIOCBSTATUS;
|
||||
DLword DLNEXTIOCB;
|
||||
DLword DLFOROUTPUTUSE;
|
||||
} DLETHERIOCB;
|
||||
|
||||
typedef struct {
|
||||
unsigned int NETTYPE : 8;
|
||||
unsigned int NDBNEXT : 24;
|
||||
unsigned int NDBPUPNET : 8;
|
||||
unsigned int NDBNSNET : 24;
|
||||
unsigned int NDBTASK : 8;
|
||||
unsigned int NDBBROADCASTP : 24;
|
||||
unsigned int NDBPUPHOST : 8;
|
||||
unsigned int NDBTRANSMITTER : 24;
|
||||
unsigned int nil1: 8;
|
||||
unsigned int NDBENCAPSULATOR : 24;
|
||||
unsigned int NDBIQLENGTH : 8; /* DATATYPE */
|
||||
unsigned int NDBCSB : 24; /* DATATYPE */
|
||||
LispPTR NDBIQ;
|
||||
LispPTR NDBTQ;
|
||||
LispPTR NDBTRANSLATIONS;
|
||||
LispPTR NDBETHERFLUSHER;
|
||||
LispPTR NDBWATCHER;
|
||||
LispPTR NDBCANHEARSELF;
|
||||
LispPTR NDBIPNET;
|
||||
LispPTR NDBIPHOST;
|
||||
DLword NDBPUPTYPE;
|
||||
DLword nil2;
|
||||
LispPTR nil3;
|
||||
} NDB;
|
||||
#else
|
||||
/***********************************************/
|
||||
/* Byte-swapped definitions, for e.g., 80386's */
|
||||
/***********************************************/
|
||||
typedef struct {
|
||||
DLword DLLOCALHOST1;
|
||||
DLword DLLOCALHOST0;
|
||||
DLword DLFIRSTICB;
|
||||
DLword DLLOCALHOST2;
|
||||
DLword DLFIRSTOCB;
|
||||
DLword DLINPUTMASK;
|
||||
DLword DLMISSEDPACKETS;
|
||||
DLword DLOUTPUTMASK;
|
||||
DLword DLLASTOCB;
|
||||
DLword DLLASTICB;
|
||||
} DLETHERCSB;
|
||||
|
||||
typedef struct{
|
||||
DLword DLIOCBBUFFERLO;
|
||||
DLword DLIOCBLENGTH;
|
||||
DLword DLRETRANSMISSIONMASK;
|
||||
DLword DLIOCBBUFFERHI;
|
||||
DLword DLIOCBSTATUS;
|
||||
DLword DLIOCBBYTESUSED;
|
||||
DLword DLFOROUTPUTUSE;
|
||||
DLword DLNEXTIOCB;
|
||||
} DLETHERIOCB;
|
||||
|
||||
typedef struct {
|
||||
unsigned int NDBNEXT : 24;
|
||||
unsigned int NETTYPE : 8;
|
||||
unsigned int NDBNSNET : 24;
|
||||
unsigned int NDBPUPNET : 8;
|
||||
unsigned int NDBBROADCASTP : 24;
|
||||
unsigned int NDBTASK : 8;
|
||||
unsigned int NDBTRANSMITTER : 24;
|
||||
unsigned int NDBPUPHOST : 8;
|
||||
unsigned int NDBENCAPSULATOR : 24;
|
||||
unsigned int nil1: 8;
|
||||
unsigned int NDBCSB : 24; /* DATATYPE */
|
||||
unsigned int NDBIQLENGTH : 8; /* DATATYPE */
|
||||
LispPTR NDBIQ;
|
||||
LispPTR NDBTQ;
|
||||
LispPTR NDBTRANSLATIONS;
|
||||
LispPTR NDBETHERFLUSHER;
|
||||
LispPTR NDBWATCHER;
|
||||
LispPTR NDBCANHEARSELF;
|
||||
LispPTR NDBIPNET;
|
||||
LispPTR NDBIPHOST;
|
||||
DLword nil2;
|
||||
DLword NDBPUPTYPE;
|
||||
LispPTR nil3;
|
||||
} NDB;
|
||||
#endif /* BYTESWAP */
|
||||
#endif /* LSPTYPES_H */
|
||||
|
||||
@@ -38,13 +38,23 @@
|
||||
# define MAIKO_OS_DETECTED 1
|
||||
#endif
|
||||
|
||||
#ifdef __linux__
|
||||
#if defined(__linux__) && !defined(__wsl1__)
|
||||
# define MAIKO_OS_LINUX 1
|
||||
# define MAIKO_OS_NAME "Linux"
|
||||
# define MAIKO_OS_UNIX_LIKE 1
|
||||
# define MAIKO_OS_DETECTED 1
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) && defined(__wsl1__)
|
||||
# define MAIKO_OS_LINUX 1
|
||||
# define MAIKO_OS_WSL1 1
|
||||
# define MAIKO_OS_NAME "Windows System for Linux v1"
|
||||
# define MAIKO_OS_UNIX_LIKE 1
|
||||
# define MAIKO_EMULATE_TIMER_INTERRUPTS 1
|
||||
# define MAIKO_EMULATE_ASYNC_INTERRUPTS 1
|
||||
# define MAIKO_OS_DETECTED 1
|
||||
#endif
|
||||
|
||||
#ifdef __NetBSD__
|
||||
# define MAIKO_OS_NETBSD 1
|
||||
# define MAIKO_OS_NAME "NetBSD"
|
||||
|
||||
1
inc/my.h
1
inc/my.h
@@ -20,6 +20,7 @@
|
||||
#include "version.h" // for BIGVM
|
||||
#include "adr68k.h" // for NativeAligned2FromLAddr, NativeAligned4FromLAddr, LAddrFromNative
|
||||
#include "arith.h" // for N_ARITH_SWITCH, N_GETNUMBER
|
||||
#include "gchtfinddefs.h"// for htfind, rec_htfind, from gcdata.h macros
|
||||
#include "gcdata.h" // for ADDREF, DELREF
|
||||
#include "lispemul.h" // for ERROR_EXIT, LispPTR, DLword, SEGMASK, state
|
||||
#include "lispmap.h" // for S_POSITIVE, S_CHARACTER, S_NEGATIVE
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef OSMSG_H
|
||||
#define OSMSG_H 1
|
||||
#ifndef OSMSGPRINT_H
|
||||
#define OSMSGPRINT_H 1
|
||||
/* $Id: osmsg.h,v 1.2 1999/01/03 02:06:20 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
||||
|
||||
|
||||
@@ -23,4 +23,4 @@
|
||||
print_exp; \
|
||||
} while (0)
|
||||
|
||||
#endif /* OSMSG_H */
|
||||
#endif /* OSMSGPRINT_H */
|
||||
8
inc/rawcolordefs.h
Normal file
8
inc/rawcolordefs.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef RAWCOLORDEFS_H
|
||||
#define RAWCOLORDEFS_H 1
|
||||
#include "lispemul.h" /* for LispPTR */
|
||||
void C_slowbltchar(LispPTR *args);
|
||||
LispPTR Colorize_Bitmap(LispPTR args[]);
|
||||
void Draw_8BppColorLine(LispPTR *args);
|
||||
void Uncolorize_Bitmap(LispPTR args[]);
|
||||
#endif
|
||||
@@ -1,12 +1,12 @@
|
||||
#ifndef RETURN_H
|
||||
#define RETURN_H 1
|
||||
#ifndef RETMACRO_H
|
||||
#define RETMACRO_H 1
|
||||
/* $Id: return.h,v 1.2 1999/01/03 02:06:22 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
||||
|
||||
|
||||
/**************************************************************/
|
||||
/*
|
||||
|
||||
File Name : return.h
|
||||
File Name : retmacro.h (was return.h)
|
||||
Desc. : Macros for return,contextsw
|
||||
|
||||
Written by : Takeshi Shimizu
|
||||
@@ -111,4 +111,4 @@
|
||||
S_CHECK( EndSTKP > CurrentStackPTR, \
|
||||
"End of stack isn't beyond current stk pointer."); \
|
||||
} while (0)
|
||||
#endif /* RETURN_H */
|
||||
#endif /* RETMACRO_H */
|
||||
114
inc/stack.h
114
inc/stack.h
@@ -79,22 +79,22 @@ typedef struct fnhead {
|
||||
} FNHEAD;
|
||||
|
||||
typedef struct frameex1 {
|
||||
unsigned short flags : 3;
|
||||
unsigned short fast : 1;
|
||||
unsigned short nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
unsigned short incall : 1;
|
||||
unsigned short validnametable : 1;
|
||||
DLword flags : 3;
|
||||
DLword fast : 1;
|
||||
DLword nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
DLword incall : 1;
|
||||
DLword validnametable : 1;
|
||||
/* 0: look for FunctionHeader
|
||||
1: look for NameTable on this FrameEx */
|
||||
unsigned short nopush : 1;
|
||||
unsigned short usecount : 8;
|
||||
DLword nopush : 1;
|
||||
DLword usecount : 8;
|
||||
DLword alink; /* alink pointer (Low addr) */
|
||||
#ifdef BIGVM
|
||||
LispPTR fnheader; /* pointer to FunctionHeader (Hi2 addr) */
|
||||
#else
|
||||
DLword lofnheader; /* pointer to FunctionHeader (Low addr) */
|
||||
unsigned short hi1fnheader : 8; /* pointer to FunctionHeader (Hi1 addr) */
|
||||
unsigned short hi2fnheader : 8; /* pointer to FunctionHeader (Hi2 addr) */
|
||||
DLword hi1fnheader : 8; /* pointer to FunctionHeader (Hi1 addr) */
|
||||
DLword hi2fnheader : 8; /* pointer to FunctionHeader (Hi2 addr) */
|
||||
#endif /* BIGVM */
|
||||
DLword nextblock; /* pointer to FreeStackBlock */
|
||||
DLword pc; /* Program counter */
|
||||
@@ -102,23 +102,23 @@ typedef struct frameex1 {
|
||||
LispPTR nametable; /* ptr to NameTable of this FrameEx (Hi2 addr) */
|
||||
#else
|
||||
DLword lonametable; /* ptr to NameTable of this FrameEx (Low addr) */
|
||||
unsigned short hi1nametable : 8; /* ptr to NameTable of this FrameEx (Hi1 addr) */
|
||||
unsigned short hi2nametable : 8; /* ptr to NameTable of this FrameEx (Hi2 addr) */
|
||||
DLword hi1nametable : 8; /* ptr to NameTable of this FrameEx (Hi1 addr) */
|
||||
DLword hi2nametable : 8; /* ptr to NameTable of this FrameEx (Hi2 addr) */
|
||||
#endif /* BIGVM */
|
||||
DLword blink; /* blink pointer (Low addr) */
|
||||
DLword clink; /* clink pointer (Low addr) */
|
||||
} FX;
|
||||
|
||||
typedef struct frameex2 {
|
||||
unsigned short flags : 3;
|
||||
unsigned short fast : 1;
|
||||
unsigned short nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
unsigned short incall : 1;
|
||||
unsigned short validnametable : 1;
|
||||
DLword flags : 3;
|
||||
DLword fast : 1;
|
||||
DLword nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
DLword incall : 1;
|
||||
DLword validnametable : 1;
|
||||
/* 0: look for FunctionHeader
|
||||
1: look for NameTable on this FrameEx */
|
||||
unsigned short nopush : 1;
|
||||
unsigned short usecount : 8;
|
||||
DLword nopush : 1;
|
||||
DLword usecount : 8;
|
||||
DLword alink; /* alink pointer (Low addr) */
|
||||
LispPTR fnheader; /* pointer to FunctionHeader */
|
||||
DLword nextblock; /* pointer to FreeStackBlock */
|
||||
@@ -135,19 +135,19 @@ typedef struct fxblock {
|
||||
} FXBLOCK;
|
||||
|
||||
typedef struct basic_frame {
|
||||
unsigned short flags : 3;
|
||||
unsigned short nil : 3;
|
||||
unsigned short residual : 1;
|
||||
unsigned short padding : 1;
|
||||
unsigned short usecnt : 8;
|
||||
DLword flags : 3;
|
||||
DLword nil : 3;
|
||||
DLword residual : 1;
|
||||
DLword padding : 1;
|
||||
DLword usecnt : 8;
|
||||
DLword ivar; /* stk offset of IVARs for this frame ?? */
|
||||
|
||||
} Bframe;
|
||||
|
||||
typedef struct stkword {
|
||||
unsigned short flags : 3;
|
||||
unsigned short nil : 5;
|
||||
unsigned short usecount : 8;
|
||||
DLword flags : 3;
|
||||
DLword nil : 5;
|
||||
DLword usecount : 8;
|
||||
} StackWord;
|
||||
|
||||
typedef struct stack_block {
|
||||
@@ -185,33 +185,33 @@ typedef struct fnhead {
|
||||
unsigned nil3 : 2; /* not used */
|
||||
unsigned nil2 : 2; /* not used */
|
||||
#endif /* BIGVM */
|
||||
unsigned short argtype : 2; /* ?? */
|
||||
unsigned short byteswapped : 1; /* code was reswapped. */
|
||||
unsigned short nil4 : 1; /* not used, prev: native translated? */
|
||||
unsigned short fvaroffset : 8;
|
||||
DLword argtype : 2; /* ?? */
|
||||
DLword byteswapped : 1; /* code was reswapped. */
|
||||
DLword nil4 : 1; /* not used, prev: native translated? */
|
||||
DLword fvaroffset : 8;
|
||||
/* DLword offset from head of NameTable */
|
||||
unsigned short nlocals : 8; /* ?? */
|
||||
DLword nlocals : 8; /* ?? */
|
||||
DLword ntsize; /* size of NameTable */
|
||||
/* NameTable of variable length is following with this structure. */
|
||||
} FNHEAD;
|
||||
|
||||
typedef struct frameex1 {
|
||||
DLword alink; /* alink pointer (Low addr) */
|
||||
unsigned short usecount : 8;
|
||||
unsigned short nopush : 1;
|
||||
unsigned short validnametable : 1;
|
||||
DLword usecount : 8;
|
||||
DLword nopush : 1;
|
||||
DLword validnametable : 1;
|
||||
/* 0: look for FunctionHeader
|
||||
1: look for NameTable on this FrameEx */
|
||||
unsigned short incall : 1;
|
||||
unsigned short nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
unsigned short fast : 1;
|
||||
unsigned short flags : 3; /* hi word */
|
||||
DLword incall : 1;
|
||||
DLword nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
DLword fast : 1;
|
||||
DLword flags : 3; /* hi word */
|
||||
|
||||
#ifdef BIGVM
|
||||
LispPTR fnheader; /* pointer to FunctionHeader (Hi2 addr) */
|
||||
#else
|
||||
unsigned short hi2fnheader : 8; /* pointer to FunctionHeader (Hi2 addr) */
|
||||
unsigned short hi1fnheader : 8; /* pointer to FunctionHeader (Hi1 addr) */
|
||||
DLword hi2fnheader : 8; /* pointer to FunctionHeader (Hi2 addr) */
|
||||
DLword hi1fnheader : 8; /* pointer to FunctionHeader (Hi1 addr) */
|
||||
DLword lofnheader; /* pointer to FunctionHeader (Low addr) */
|
||||
#endif /* BIGVM */
|
||||
|
||||
@@ -221,8 +221,8 @@ typedef struct frameex1 {
|
||||
#ifdef BIGVM
|
||||
LispPTR nametable; /* pointer to NameTable of this FX (Hi2 addr) */
|
||||
#else
|
||||
unsigned short hi2nametable : 8; /* pointer to NameTable of this FX (Hi2 addr) */
|
||||
unsigned short hi1nametable : 8; /* pointer to NameTable of this FX (Hi1 addr) */
|
||||
DLword hi2nametable : 8; /* pointer to NameTable of this FX (Hi2 addr) */
|
||||
DLword hi1nametable : 8; /* pointer to NameTable of this FX (Hi1 addr) */
|
||||
DLword lonametable; /* pointer to NameTable of this FX (Low addr) */
|
||||
#endif /* BIGVM */
|
||||
|
||||
@@ -232,15 +232,15 @@ typedef struct frameex1 {
|
||||
|
||||
typedef struct frameex2 {
|
||||
DLword alink; /* alink pointer (Low addr) */
|
||||
unsigned short usecount : 8;
|
||||
unsigned short nopush : 1;
|
||||
unsigned short validnametable : 1;
|
||||
DLword usecount : 8;
|
||||
DLword nopush : 1;
|
||||
DLword validnametable : 1;
|
||||
/* 0: look for FunctionHeader
|
||||
1: look for NameTable on this FrameEx */
|
||||
unsigned short incall : 1;
|
||||
unsigned short nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
unsigned short fast : 1;
|
||||
unsigned short flags : 3;
|
||||
DLword incall : 1;
|
||||
DLword nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
DLword fast : 1;
|
||||
DLword flags : 3;
|
||||
|
||||
LispPTR fnheader; /* pointer to FunctionHeader (swapped) */
|
||||
|
||||
@@ -261,18 +261,18 @@ typedef struct fxblock {
|
||||
|
||||
typedef struct basic_frame {
|
||||
DLword ivar;
|
||||
unsigned short usecnt : 8;
|
||||
unsigned short padding : 1;
|
||||
unsigned short residual : 1;
|
||||
unsigned short nil : 3;
|
||||
unsigned short flags : 3;
|
||||
DLword usecnt : 8;
|
||||
DLword padding : 1;
|
||||
DLword residual : 1;
|
||||
DLword nil : 3;
|
||||
DLword flags : 3;
|
||||
|
||||
} Bframe;
|
||||
|
||||
typedef struct stkword {
|
||||
USHORT usecount : 8;
|
||||
USHORT nil : 5;
|
||||
USHORT flags : 3;
|
||||
DLword usecount : 8;
|
||||
DLword nil : 5;
|
||||
DLword flags : 3;
|
||||
} StackWord;
|
||||
|
||||
typedef struct stack_block {
|
||||
|
||||
@@ -37,10 +37,13 @@ extern unsigned int TIMEOUT_TIME;
|
||||
alarm(0); \
|
||||
} while (0)
|
||||
|
||||
|
||||
/* After any use of S_TOUT one should call alarm(0) to cancel
|
||||
* the last pending alarm.
|
||||
*/
|
||||
#define S_TOUT(exp) \
|
||||
alarm(TIMEOUT_TIME), \
|
||||
(exp), \
|
||||
alarm(0)
|
||||
alarm(TIMEOUT_TIME), \
|
||||
(exp)
|
||||
|
||||
#define ERRSETJMP(rval) \
|
||||
do { \
|
||||
|
||||
67
inc/tty.h
67
inc/tty.h
@@ -1,67 +0,0 @@
|
||||
#ifndef TTY_H
|
||||
#define TTY_H 1
|
||||
/* $Id: tty.h,v 1.2 1999/01/03 02:06:29 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* (C) Copyright 1989-96 Venue. All Rights Reserved. */
|
||||
/* Manufactured in the United States of America. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
#include "lispemul.h" /* for DLword */
|
||||
|
||||
/*
|
||||
TTY Command
|
||||
*/
|
||||
|
||||
#define TTY_GET_STATUS 33280>>8
|
||||
#define TTY_ON 33536>>8
|
||||
#define TTY_OFF 33792>>8
|
||||
#define TTY_BREAK_ON 34304>>8
|
||||
#define TTY_BREAK_OFF 34560>>8
|
||||
#define PUT_CHAR 128
|
||||
#define ABORT_PUT 133
|
||||
#define SET_PARAM 129
|
||||
#define SET_DSR 33025
|
||||
#define SET_CTS 33026
|
||||
#define SET_CHAR_LENGTH 33028
|
||||
#define SET_PARITY 33032
|
||||
#define SET_STOP_BITS 33040
|
||||
#define SET_BAUD_RATE 33056
|
||||
#define SET_ALL_PARAMETERS 33087
|
||||
|
||||
typedef struct {
|
||||
unsigned command : 8;
|
||||
unsigned outdata : 8;
|
||||
} DLTTY_OUT_COMMAND;
|
||||
|
||||
typedef struct {
|
||||
unsigned on_off : 4;
|
||||
unsigned line_speed : 4;
|
||||
unsigned stop_bits : 2;
|
||||
unsigned parity : 2;
|
||||
unsigned char_length : 2;
|
||||
unsigned clear_to_send : 1;
|
||||
unsigned data_set_ready : 1;
|
||||
DLword notify_mask;
|
||||
} DLTTY_OUT_CSB;
|
||||
|
||||
typedef struct {
|
||||
unsigned state : 1;
|
||||
unsigned nil1 : 7;
|
||||
unsigned success : 1;
|
||||
unsigned break_detected : 1;
|
||||
unsigned framing_error : 1;
|
||||
unsigned data_lost : 1;
|
||||
unsigned parity_error : 1;
|
||||
unsigned nil2 : 2;
|
||||
unsigned not_ready : 1;
|
||||
char in_data;
|
||||
unsigned data_terminal_ready : 1;
|
||||
unsigned nil3 : 4;
|
||||
unsigned request_to_send : 1;
|
||||
unsigned rx_ready : 1;
|
||||
unsigned tx_ready : 1;
|
||||
} DLTTY_IN_CSB;
|
||||
|
||||
#endif /* TTY_H */
|
||||
@@ -5,15 +5,14 @@ LispPTR UFS_getfilename(LispPTR *args);
|
||||
LispPTR UFS_deletefile(LispPTR *args);
|
||||
LispPTR UFS_renamefile(LispPTR *args);
|
||||
LispPTR UFS_directorynamep(LispPTR *args);
|
||||
void UnixVersionToLispVersion(char *pathname, size_t pathsize, int vlessp);
|
||||
void LispVersionToUnixVersion(char *pathname, size_t pathsize);
|
||||
#ifdef DOS
|
||||
int unixpathname(char *src, char *dst, int versionp, int genp, char *drive, int *extlenptr, char *rawname);
|
||||
int unixpathname(char *src, char *dst, int dstlen, int versionp, int genp, char *drive, int *extlenptr, char *rawname);
|
||||
#else
|
||||
int unixpathname(char *src, char *dst, int versionp, int genp);
|
||||
int unixpathname(char *src, char *dst, size_t dstlen, int versionp, int genp);
|
||||
#endif
|
||||
int lisppathname(char *fullname, char *lispname, int dirp, int versionp);
|
||||
int quote_fname(char *file);
|
||||
int quote_fname_ufs(char *file);
|
||||
int quote_dname(char *dir);
|
||||
int lisppathname(char *fullname, char *lispname, size_t lispnamesize, int dirp, int versionp);
|
||||
#ifdef DOS
|
||||
init_host_filesystem(void);
|
||||
exit_host_filesystem(void);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "stack.h" /* for FX */
|
||||
#include "lispemul.h" /* for LispPTR */
|
||||
|
||||
#define URMAXFXNUM 2000
|
||||
#define URMAXFXNUM 4096
|
||||
#define URMAXCOMM 512
|
||||
#define URSCAN_ALINK 0
|
||||
#define URSCAN_CLINK 1
|
||||
|
||||
@@ -6,5 +6,5 @@ LispPTR unix_username(LispPTR *args);
|
||||
LispPTR unix_getparm(LispPTR *args);
|
||||
LispPTR unix_getenv(LispPTR *args);
|
||||
LispPTR unix_fullname(LispPTR *args);
|
||||
LispPTR suspend_lisp(LispPTR *args);
|
||||
LispPTR suspend_lisp(void);
|
||||
#endif
|
||||
|
||||
@@ -227,9 +227,6 @@ 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 */
|
||||
|
||||
/****************************************************************/
|
||||
@@ -237,6 +234,14 @@ typedef unsigned short USHORT;
|
||||
/* --Start of system-specific flags */
|
||||
/* */
|
||||
/****************************************************************/
|
||||
#ifdef MAIKO_OS_MACOS
|
||||
/* macOS does not follow the POSIX standard for the names of the stat
|
||||
fields that allow access to the nanosecond resolution times
|
||||
*/
|
||||
#define st_atim st_atimespec
|
||||
#define st_mtim st_mtimespec
|
||||
#define st_ctim st_ctimespec
|
||||
#endif
|
||||
|
||||
/****************************************************************/
|
||||
/* End of system-specific flag settings */
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
#ifndef VMEMSAVE_H
|
||||
#define VMEMSAVE_H 1
|
||||
/* $Id: vmemsave.h,v 1.2 1999/01/03 02:06:29 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
||||
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* (C) Copyright 1989-96 Venue. All Rights Reserved. */
|
||||
/* Manufactured in the United States of America. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
|
||||
/*
|
||||
File Name : vmemsave.h
|
||||
DEfinition for vmemsave
|
||||
*/
|
||||
|
||||
#define FP_IFPAGE 512 /* IFPAGE address in sysoutfile by Byte */
|
||||
#define DOMINOPAGES 301 /* skip dominopages in fptovp */
|
||||
#define SKIPPAGES 301 /* save first filepage */
|
||||
#define SKIP_DOMINOPAGES 153600 /* Byte size in sysoutfile for dominocode */
|
||||
#define SAVE_IFPAGE 223 /* Virtual address for IFPAGES's buffer page. This value is \EMUSWAPBUFFERS in lisp. */
|
||||
#endif /* VMEMSAVE_H */
|
||||
@@ -1,8 +1,7 @@
|
||||
#ifndef VMEMSAVEDEFS_H
|
||||
#define VMEMSAVEDEFS_H 1
|
||||
#include "lispemul.h" /* for LispPTR, DLword */
|
||||
int lispstringP(LispPTR Lisp);
|
||||
#include "lispemul.h" /* for LispPTR */
|
||||
LispPTR vmem_save(char *sysout_file_name);
|
||||
LispPTR vmem_save0(LispPTR *args);
|
||||
void lisp_finish(void);
|
||||
void lisp_finish(int exit_status);
|
||||
#endif
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
#ifndef XSCROLL_H
|
||||
#define XSCROLL_H 1
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* xscroll.h */
|
||||
/* */
|
||||
/* Scrolling functions implemented in xscroll.c */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
#include "devif.h" /* for DspInterface */
|
||||
void Scroll(DspInterface dsp, int newX, int newY);
|
||||
void JumpScrollVer(DspInterface dsp, int y);
|
||||
void JumpScrollHor(DspInterface dsp, int x);
|
||||
void ScrollLeft(DspInterface dsp);
|
||||
void ScrollRight(DspInterface dsp);
|
||||
void ScrollUp(DspInterface dsp);
|
||||
void ScrollDown(DspInterface dsp);
|
||||
#endif /* XSCROLL_H */
|
||||
@@ -47,9 +47,8 @@
|
||||
#include "address.h"
|
||||
#include "arith.h"
|
||||
#include "stack.h"
|
||||
#include "return.h"
|
||||
#include "retmacro.h"
|
||||
#include "cell.h"
|
||||
#include "gcdata.h"
|
||||
|
||||
#include "bbtsubdefs.h"
|
||||
#include "car-cdrdefs.h"
|
||||
@@ -61,7 +60,7 @@
|
||||
#include "returndefs.h"
|
||||
|
||||
#include "bb.h"
|
||||
#include "bitblt.h"
|
||||
#include "bbtmacro.h"
|
||||
#include "pilotbbt.h"
|
||||
#include "dspdata.h"
|
||||
#include "display.h"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
#include "pilotbbt.h"
|
||||
#include "display.h"
|
||||
#include "bitblt.h"
|
||||
#include "bbtmacro.h"
|
||||
#include "bb.h"
|
||||
|
||||
#include "bitbltdefs.h"
|
||||
@@ -126,7 +126,7 @@ LispPTR N_OP_pilotbitblt(LispPTR pilot_bt_tbl, LispPTR tos)
|
||||
if (displayflg) (currentdsp->mouse_visible)(IOPage->dlmousex, IOPage->dlmousey);
|
||||
#endif /* SUNDISPLAY / DOS */
|
||||
|
||||
#ifdef XWINDOW
|
||||
#if defined(XWINDOW) || defined(SDL)
|
||||
flush_display_lineregion(dx, dstbase, w, h);
|
||||
#endif /* XWINDOW */
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "conspagedefs.h" // for next_conspage
|
||||
#include "emlglob.h"
|
||||
#include "gcdata.h" // for GCLOOKUP, ADDREF, DELREF
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "lispemul.h" // for ConsCell, LispPTR, DLword, NIL_PTR, state
|
||||
#include "lspglob.h" // for ListpDTD
|
||||
#include "lsptypes.h" // for Listp, dtd
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
#include "arith.h"
|
||||
#include "timeout.h"
|
||||
#include "locfile.h"
|
||||
#include "osmsg.h"
|
||||
#include "dbprint.h"
|
||||
|
||||
#include "chardevdefs.h"
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "commondefs.h" // for error
|
||||
#include "conspagedefs.h" // for N_OP_cons, cons, next_conspage
|
||||
#include "gcdata.h" // for GCLOOKUP, ADDREF, DELREF
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "lispemul.h" // for ConsCell, DLword, LispPTR, NIL_PTR, DLWORD...
|
||||
#include "lspglob.h"
|
||||
#include "lsptypes.h" // for dtd, Listp, TYPE_LISTP
|
||||
|
||||
@@ -589,8 +589,8 @@ void bt1(FX *startFX) {
|
||||
BT_morep;
|
||||
while ((fnobj->framename != ATOM_T) && (fx->alink != 11)) {
|
||||
if (fnum > URMAXFXNUM - 1) {
|
||||
/* Internal buf overflow,more than 100 stacks */
|
||||
printf("***There are more than 100 stack frames.\n");
|
||||
/* Internal buf overflow, too many stack frames */
|
||||
printf("***There are more than %d stack frames.\n", URMAXFXNUM);
|
||||
printf(
|
||||
"If you want to continue, Uraid will smash its internal table for FX pointer. Do you "
|
||||
"accept?(Y or N)\n");
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <stddef.h> // for ptrdiff_t
|
||||
#include <stdlib.h> // for abs
|
||||
#include "adr68k.h" // for NativeAligned2FromLAddr
|
||||
#include "bitblt.h" // for MOUSEXR, MOUSEYH
|
||||
#include "bbtmacro.h" // for MOUSEXR, MOUSEYH
|
||||
#include "display.h" // for DISPLAYBUFFER, DisplayRegion68k, in_display...
|
||||
#include "drawdefs.h" // for N_OP_drawline
|
||||
#include "emlglob.h"
|
||||
|
||||
@@ -40,7 +40,12 @@ extern int Mouse_Included;
|
||||
****************************************************/
|
||||
|
||||
void DSP_dspbout(LispPTR *args) /* args[0] : charcode */
|
||||
{ putc((args[0] & 0xFFFF) & 0x7f, BCPLDISPLAY); }
|
||||
{
|
||||
int charcode = (args[0] & 0x7F);
|
||||
/* Interlisp-D uses CR as EOL which isn't useful here */
|
||||
putc((charcode == '\r') ? '\n' : charcode, BCPLDISPLAY);
|
||||
fflush(BCPLDISPLAY);
|
||||
}
|
||||
|
||||
/****************************************************
|
||||
*
|
||||
@@ -52,7 +57,16 @@ void DSP_dspbout(LispPTR *args) /* args[0] : charcode */
|
||||
extern int DisplayInitialized;
|
||||
|
||||
void DSP_showdisplay(LispPTR *args)
|
||||
{ DisplayInitialized = 1; }
|
||||
{
|
||||
LispPTR base = args[0]; /* pointer to the display bitmap */
|
||||
LispPTR rasterwidth = args[1]; /* should be a smallp */
|
||||
|
||||
if (base == NIL) {
|
||||
DisplayInitialized = 0;
|
||||
} else {
|
||||
DisplayInitialized = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************
|
||||
*
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
#include "lsptypes.h"
|
||||
#include "lspglob.h"
|
||||
#include "adr68k.h"
|
||||
#include "ether.h"
|
||||
#include "dbprint.h"
|
||||
#include "etherdefs.h"
|
||||
#include "ifpage.h"
|
||||
@@ -469,7 +468,7 @@ LispPTR ether_get(LispPTR args[])
|
||||
log_debug(("ether_get() - begin\n"));
|
||||
|
||||
target = (u_char *)NativeAligned2FromLAddr(args[1]);
|
||||
maxByteCount = 2 * LispIntToCInt(args[0]); /* words to bytes */
|
||||
maxByteCount = BYTESPER_DLWORD * LispIntToCInt(args[0]); /* words to bytes */
|
||||
log_debug((" target = %p maxBytecount: %d bytes\n", (void *)target, maxByteCount));
|
||||
|
||||
ether_buf = target;
|
||||
@@ -502,7 +501,7 @@ LispPTR ether_send(LispPTR args[])
|
||||
log_debug(("ether_send() - begin\n"));
|
||||
|
||||
u_char *source = (u_char *)NativeAligned2FromLAddr(args[1]);
|
||||
int byteCount = 2 * LispIntToCInt(args[0]); /* words to bytes */
|
||||
int byteCount = BYTESPER_DLWORD * LispIntToCInt(args[0]); /* words to bytes */
|
||||
|
||||
log_debug((" source = %p , bytecount: %d bytes\n", (void *)source, byteCount));
|
||||
|
||||
|
||||
@@ -71,7 +71,6 @@
|
||||
#include "lsptypes.h"
|
||||
#include "lspglob.h"
|
||||
#include "adr68k.h"
|
||||
#include "ether.h"
|
||||
#include "dbprint.h"
|
||||
#include "etherdefs.h"
|
||||
#include "ifpage.h"
|
||||
@@ -367,7 +366,7 @@ LispPTR ether_get(LispPTR args[])
|
||||
LispPTR MaxByteCount;
|
||||
sigset_t signals;
|
||||
|
||||
MaxByteCount = 2 * (0xFFFF & args[0]); /* words to bytes */
|
||||
MaxByteCount = BYTERSPER_DLWORD * (0xFFFF & args[0]); /* words to bytes */
|
||||
|
||||
DBPRINT(("Ether Get. "));
|
||||
|
||||
@@ -409,7 +408,7 @@ LispPTR ether_send(LispPTR args[])
|
||||
LispPTR MaxByteCount;
|
||||
u_char *BufferAddr; /* buffer address pointer(in native address) */
|
||||
|
||||
MaxByteCount = 2 * (0xFFFF & args[0]); /* words to bytes */
|
||||
MaxByteCount = BYTESPER_DLWORD * (0xFFFF & args[0]); /* words to bytes */
|
||||
BufferAddr = (u_char *)NativeAligned2FromLAddr(args[1]);
|
||||
|
||||
if (ether_fd > 0) {
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "emlglob.h"
|
||||
#include "fvardefs.h" // for N_OP_fvar_, N_OP_fvarn, N_OP_stkscan, nati...
|
||||
#include "gcdata.h" // for GCLOOKUP, ADDREF, DELREF
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "lispmap.h" // for ATOMS_HI, STK_HI
|
||||
#include "lspglob.h" // for Stackspace
|
||||
#include "lsptypes.h" // for DLword, LispPTR, GETBASEWORD, state, FRAME...
|
||||
|
||||
1
src/gc.c
1
src/gc.c
@@ -12,6 +12,7 @@
|
||||
#include <stdio.h> // for printf
|
||||
#include "emlglob.h"
|
||||
#include "gcdata.h" // for GCLOOKUPV
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "gcdefs.h" // for OP_gcref
|
||||
#include "lspglob.h"
|
||||
#include "lsptypes.h" // for state, ByteCode, PC, TopOfStack, Get_code_...
|
||||
|
||||
@@ -99,35 +99,35 @@ struct hashtable {
|
||||
LispPTR aref1(LispPTR array, int index) {
|
||||
LispPTR retval = 0;
|
||||
LispPTR base;
|
||||
short typenumber;
|
||||
struct arrayheader *actarray;
|
||||
struct arrayheader *array_np;
|
||||
|
||||
actarray = (struct arrayheader *)NativeAligned4FromLAddr(array);
|
||||
if (index >= actarray->totalsize) {
|
||||
array_np = (struct arrayheader *)NativeAligned4FromLAddr(array);
|
||||
if (index >= array_np->totalsize) {
|
||||
printf("Invalid index in GC's AREF1: 0x%x\n", index);
|
||||
printf(" Array size limit: 0x%x\n", actarray->totalsize);
|
||||
printf(" Array size limit: 0x%x\n", array_np->totalsize);
|
||||
printf(" Array ptr: 0x%x\n", array);
|
||||
printf(" Array 68K ptr: %p\n", (void *)actarray);
|
||||
printf("base: 0x%x\n", actarray->base);
|
||||
printf("offset: 0x%x\n", actarray->offset);
|
||||
printf("type #: 0x%x\n", actarray->typenumber);
|
||||
printf("fill ptr: 0x%x\n", actarray->fillpointer);
|
||||
printf(" Array native ptr: %p\n", (void *)array_np);
|
||||
printf("base: 0x%x\n", array_np->base);
|
||||
printf("offset: 0x%x\n", array_np->offset);
|
||||
printf("type #: 0x%x\n", array_np->typenumber);
|
||||
printf("fill ptr: 0x%x\n", array_np->fillpointer);
|
||||
error("index out of range in GC's AREF1.");
|
||||
}
|
||||
index += actarray->offset;
|
||||
typenumber = actarray->typenumber;
|
||||
base = actarray->base;
|
||||
switch (typenumber) {
|
||||
case 3: /* unsigned 8bits */
|
||||
retval = (GETBYTE(((char *)NativeAligned2FromLAddr(base)) + index)) & 0x0ff;
|
||||
retval |= S_POSITIVE;
|
||||
break;
|
||||
case 4: /* unsigned 16bits */
|
||||
retval = (GETWORD(((DLword *)NativeAligned2FromLAddr(base)) + index)) & 0x0ffff;
|
||||
retval |= S_POSITIVE;
|
||||
break;
|
||||
case 38: retval = (*(((LispPTR *)NativeAligned4FromLAddr(base)) + index)); break;
|
||||
default: error("Not Implemented in gc's aref1 (other types)");
|
||||
index += array_np->offset;
|
||||
base = array_np->base;
|
||||
switch (array_np->typenumber) {
|
||||
case 3: /* unsigned 8 bits */
|
||||
retval = (GETBYTE(((char *)NativeAligned2FromLAddr(base)) + index)) & 0x0ff;
|
||||
retval |= S_POSITIVE;
|
||||
break;
|
||||
case 4: /* unsigned 16 bits */
|
||||
retval = (GETWORD(((DLword *)NativeAligned2FromLAddr(base)) + index)) & 0x0ffff;
|
||||
retval |= S_POSITIVE;
|
||||
break;
|
||||
case 38: /* pointer 32 bits */
|
||||
retval = (*(((LispPTR *)NativeAligned4FromLAddr(base)) + index));
|
||||
break;
|
||||
default: error("Not Implemented in gc's aref1 (other types)");
|
||||
}
|
||||
return (retval);
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "commondefs.h" // for error
|
||||
#include "gccodedefs.h" // for code_block_size, reclaimcodeblock
|
||||
#include "gcdata.h" // for REC_GCLOOKUP, DELREF, ADDREF
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "lspglob.h" // for Deleted_Implicit_Hash_Slot_word, UFNTable
|
||||
#include "lsptypes.h" // for LispPTR, NIL, UFN, Get_code_BYTE, POINTERMASK
|
||||
#include "stack.h" // for fnhead
|
||||
|
||||
414
src/gcfinal.c
414
src/gcfinal.c
@@ -49,7 +49,8 @@
|
||||
#include "commondefs.h" // for error
|
||||
#include "gccodedefs.h" // for reclaimcodeblock
|
||||
#include "gcdata.h" // for DELREF, REC_GCLOOKUP
|
||||
#include "gcfinaldefs.h" // for arrayblockmerger, checkarrayblock, deleteblock
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "gcfinaldefs.h" // for checkarrayblock
|
||||
#include "lispemul.h" // for LispPTR, NIL, T, POINTERMASK, DLword, ATOM_T
|
||||
#include "llstkdefs.h" // for decusecount68k
|
||||
#include "lspglob.h" // for FreeBlockBuckets_word, ArrayMerging_word
|
||||
@@ -68,13 +69,16 @@
|
||||
#endif /* NEVER */
|
||||
|
||||
#define min(a, b) (((a) > (b)) ? (b) : (a))
|
||||
#define Trailer(ldatum, datum68) ((ldatum) + 2 * ((datum68)->arlen - ARRAYBLOCKTRAILERCELLS))
|
||||
#define Trailer(ldatum, datum68) ((ldatum) + DLWORDSPER_CELL * ((datum68)->arlen - ARRAYBLOCKTRAILERCELLS))
|
||||
#define BucketIndex(n) min(integerlength(n), MAXBUCKETINDEX)
|
||||
#define FreeBlockChainN(n) ((POINTERMASK & *FreeBlockBuckets_word) + 2 * BucketIndex(n))
|
||||
|
||||
/*
|
||||
* Declaration of buffer must be identical layout to Lisp BUFFER datatype in PMAP.
|
||||
*/
|
||||
#ifndef BYTESWAP
|
||||
#ifdef BIGVM
|
||||
struct buf {
|
||||
struct buffer {
|
||||
LispPTR filepage;
|
||||
LispPTR vmempage;
|
||||
LispPTR buffernext;
|
||||
@@ -85,7 +89,7 @@ struct buf {
|
||||
unsigned sysnext : 28;
|
||||
};
|
||||
#else
|
||||
struct buf {
|
||||
struct buffer {
|
||||
LispPTR filepage;
|
||||
LispPTR vmempage;
|
||||
LispPTR buffernext;
|
||||
@@ -98,7 +102,7 @@ struct buf {
|
||||
#endif /* BIGVM */
|
||||
#else
|
||||
#ifdef BIGVM
|
||||
struct buf {
|
||||
struct buffer {
|
||||
LispPTR filepage;
|
||||
LispPTR vmempage;
|
||||
LispPTR buffernext;
|
||||
@@ -109,7 +113,7 @@ struct buf {
|
||||
unsigned noreference : 1;
|
||||
};
|
||||
#else
|
||||
struct buf {
|
||||
struct buffer {
|
||||
LispPTR filepage;
|
||||
LispPTR vmempage;
|
||||
LispPTR buffernext;
|
||||
@@ -122,24 +126,32 @@ struct buf {
|
||||
#endif /* BIGVM */
|
||||
#endif /* BYTESWAP */
|
||||
|
||||
/************* The following procedure is common !! **************************/
|
||||
static int integerlength(unsigned int n) {
|
||||
int p = 0;
|
||||
|
||||
int integerlength(unsigned int n) {
|
||||
int cnt;
|
||||
if (n <= 2)
|
||||
return (n);
|
||||
else {
|
||||
cnt = 1;
|
||||
do {
|
||||
cnt++;
|
||||
n = (n >> 1);
|
||||
} while (n != 1);
|
||||
return (cnt);
|
||||
if (n <= 2) return (n); /* easy case */
|
||||
if (n >= 65536) {
|
||||
n >>= 16;
|
||||
p += 16;
|
||||
}
|
||||
if (n >= 256) {
|
||||
n >>= 8;
|
||||
p += 8;
|
||||
}
|
||||
if (n >= 16) {
|
||||
n >>= 4;
|
||||
p += 4;
|
||||
}
|
||||
if (n >= 4) {
|
||||
n >>= 2;
|
||||
p += 2;
|
||||
}
|
||||
if (n >= 2) {
|
||||
p += 1;
|
||||
}
|
||||
return (p + 1);
|
||||
}
|
||||
|
||||
/************* The above procedure is common !! **************************/
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* f i n d p t r s b u f f e r */
|
||||
@@ -150,14 +162,16 @@ int integerlength(unsigned int n) {
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
LispPTR findptrsbuffer(LispPTR ptr) {
|
||||
struct buf *bptr;
|
||||
bptr = (struct buf *)NativeAligned4FromLAddr(*System_Buffer_List_word);
|
||||
while (LAddrFromNative(bptr) != NIL) {
|
||||
if (ptr == bptr->vmempage)
|
||||
return (LAddrFromNative(bptr));
|
||||
else
|
||||
bptr = (struct buf *)NativeAligned4FromLAddr(bptr->sysnext);
|
||||
static LispPTR findptrsbuffer(LispPTR ptr) {
|
||||
LispPTR buf;
|
||||
struct buffer *buf_np;
|
||||
buf = *System_Buffer_List_word;
|
||||
while (buf != NIL) {
|
||||
buf_np = (struct buffer *)NativeAligned4FromLAddr(buf);
|
||||
if (ptr == buf_np->vmempage) {
|
||||
return (buf);
|
||||
}
|
||||
buf = buf_np->sysnext;
|
||||
}
|
||||
return (NIL);
|
||||
}
|
||||
@@ -174,13 +188,13 @@ LispPTR findptrsbuffer(LispPTR ptr) {
|
||||
/************************************************************************/
|
||||
|
||||
LispPTR releasingvmempage(LispPTR ptr) {
|
||||
struct buf *bptr;
|
||||
LispPTR bufferptr = findptrsbuffer(ptr);
|
||||
LispPTR buffer = findptrsbuffer(ptr);
|
||||
struct buffer *buffer_np;
|
||||
|
||||
if (bufferptr == NIL) return (NIL); /* Not in use, OK to reclaim it */
|
||||
if (buffer == NIL) return (NIL); /* Not in use, OK to reclaim it */
|
||||
|
||||
bptr = (struct buf *)NativeAligned4FromLAddr(bufferptr);
|
||||
bptr->noreference = T; /* Mark the buffer free to use ?? */
|
||||
buffer_np = (struct buffer *)NativeAligned4FromLAddr(buffer);
|
||||
buffer_np->noreference = T; /* Mark the buffer free to use ?? */
|
||||
return (ATOM_T);
|
||||
}
|
||||
|
||||
@@ -191,10 +205,9 @@ LispPTR releasingvmempage(LispPTR ptr) {
|
||||
/* Given an array block, do consistency checks on it. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
LispPTR checkarrayblock(LispPTR base, LispPTR free, LispPTR onfreelist) {
|
||||
struct arrayblock *bbase, *btrailer;
|
||||
struct arrayblock *bfwd, *bbwd, *rbase;
|
||||
struct arrayblock *base_np, *trailer_np;
|
||||
struct arrayblock *fwd_np, *bkwd_np, *rbase;
|
||||
LispPTR fbl;
|
||||
LispPTR *rover, *tmprover;
|
||||
#ifdef ARRAYCHECK
|
||||
@@ -203,38 +216,51 @@ LispPTR checkarrayblock(LispPTR base, LispPTR free, LispPTR onfreelist) {
|
||||
if (*Array_Block_Checking_word != NIL)
|
||||
#endif
|
||||
{
|
||||
bbase = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
||||
btrailer = (struct arrayblock *)NativeAligned4FromLAddr(Trailer(base, bbase));
|
||||
if (bbase->password != ARRAYBLOCKPASSWORD) {
|
||||
base_np = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
||||
trailer_np = (struct arrayblock *)NativeAligned4FromLAddr(Trailer(base, base_np));
|
||||
#if 0
|
||||
printf("cblock: 0x%x free: %x onfreelist: %x pw: %x arlen %d\n",
|
||||
base, free, onfreelist, base_np->password, base_np->arlen);
|
||||
#endif
|
||||
if (base_np->password != ARRAYBLOCKPASSWORD) {
|
||||
printarrayblock(base);
|
||||
error("ARRAYBLOCK password wrong\n");
|
||||
} else if (bbase->inuse == free) {
|
||||
return(T);
|
||||
} else if (base_np->inuse == free) {
|
||||
printarrayblock(base);
|
||||
error("ARRAYBLOCK INUSE bit set wrong\n");
|
||||
} else if (btrailer->password != ARRAYBLOCKPASSWORD) {
|
||||
return(T);
|
||||
} else if (trailer_np->password != ARRAYBLOCKPASSWORD) {
|
||||
printarrayblock(base);
|
||||
error("ARRAYBLOCK trailer password wrong\n");
|
||||
} else if (bbase->arlen != btrailer->arlen) {
|
||||
return(T);
|
||||
} else if (base_np->arlen != trailer_np->arlen) {
|
||||
printarrayblock(base);
|
||||
error("ARRAYBLOCK Header and Trailer length don't match\n");
|
||||
} else if (btrailer->inuse == free)
|
||||
return(T);
|
||||
} else if (trailer_np->inuse == free)
|
||||
/* This is not original source.(in original,
|
||||
btrailer -> bbase) maybe, this is correction. */
|
||||
trailer_np -> base_np) maybe, this is correction. */
|
||||
{
|
||||
printarrayblock(base);
|
||||
error("ARRAYBLOCK Trailer INUSE bit set wrong\n");
|
||||
} else if (!onfreelist || (bbase->arlen < MINARRAYBLOCKSIZE))
|
||||
return(T);
|
||||
} else if (!onfreelist || (base_np->arlen < MINARRAYBLOCKSIZE))
|
||||
return (NIL);
|
||||
/* Remaining tests only for free list. */
|
||||
bfwd = (struct arrayblock *)NativeAligned4FromLAddr(bbase->fwd);
|
||||
bbwd = (struct arrayblock *)NativeAligned4FromLAddr(bbase->bkwd);
|
||||
if ((bbwd->fwd != base) || (bfwd->bkwd != base)) {
|
||||
fwd_np = (struct arrayblock *)NativeAligned4FromLAddr(base_np->fwd);
|
||||
bkwd_np = (struct arrayblock *)NativeAligned4FromLAddr(base_np->bkwd);
|
||||
if ((bkwd_np->fwd != base) || (fwd_np->bkwd != base)) {
|
||||
error("ARRAYBLOCK links fouled\n");
|
||||
return(T);
|
||||
} else {
|
||||
fbl = FreeBlockChainN(bbase->arlen);
|
||||
fbl = FreeBlockChainN(base_np->arlen);
|
||||
rover = tmprover = (LispPTR *)NativeAligned4FromLAddr(fbl);
|
||||
/* GETBASEPTR */
|
||||
if ((*rover & POINTERMASK) == NIL) error("Free Block's bucket empty\n");
|
||||
if ((*rover & POINTERMASK) == NIL) {
|
||||
error("Free Block's bucket empty\n");
|
||||
return(T);
|
||||
}
|
||||
do {
|
||||
if ((*rover & POINTERMASK) == base) return (NIL);
|
||||
checkarrayblock((*rover & POINTERMASK), T, NIL);
|
||||
@@ -253,32 +279,38 @@ LispPTR checkarrayblock(LispPTR base, LispPTR free, LispPTR onfreelist) {
|
||||
/* */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
LispPTR deleteblock(LispPTR base) {
|
||||
struct arrayblock *bbase, *fbbase, *bbbase;
|
||||
LispPTR fwd, bkwd, fbl, freeblocklsp;
|
||||
LispPTR *freeblock;
|
||||
bbase = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
||||
if ((bbase->arlen >= MINARRAYBLOCKSIZE) && (bbase->fwd != NIL)) {
|
||||
fwd = bbase->fwd;
|
||||
fbbase = (struct arrayblock *)NativeAligned4FromLAddr(fwd);
|
||||
bkwd = bbase->bkwd;
|
||||
bbbase = (struct arrayblock *)NativeAligned4FromLAddr(bkwd);
|
||||
fbl = FreeBlockChainN(bbase->arlen);
|
||||
freeblock = (LispPTR *)NativeAligned4FromLAddr(fbl);
|
||||
freeblocklsp = POINTERMASK & *freeblock;
|
||||
if (base == fwd) {
|
||||
if (base == freeblocklsp)
|
||||
*freeblock = NIL;
|
||||
/*
|
||||
* Removes "base", a block from the free list and
|
||||
* adjusts the forward and backward pointers of the blocks behind and
|
||||
* ahead of the deleted block.
|
||||
* The forward and backward pointers of this deleted block are left
|
||||
* dangling - as in the Lisp implementation. Also does not affect the
|
||||
* inuse bit in header and trailer.
|
||||
*/
|
||||
static void deleteblock(LispPTR base) {
|
||||
struct arrayblock *base_np, *f_np, *b_np;
|
||||
LispPTR f, b, fbl, freeblock;
|
||||
LispPTR *fbl_np;
|
||||
base_np = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
||||
if ((base_np->arlen >= MINARRAYBLOCKSIZE) && (base_np->fwd != NIL)) {
|
||||
f = base_np->fwd;
|
||||
f_np = (struct arrayblock *)NativeAligned4FromLAddr(f);
|
||||
b = base_np->bkwd;
|
||||
b_np = (struct arrayblock *)NativeAligned4FromLAddr(b);
|
||||
fbl = FreeBlockChainN(base_np->arlen);
|
||||
fbl_np = (LispPTR *)NativeAligned4FromLAddr(fbl);
|
||||
freeblock = POINTERMASK & *fbl_np;
|
||||
if (base == f) {
|
||||
if (base == freeblock)
|
||||
*fbl_np = NIL;
|
||||
else
|
||||
error("GC error:deleting last list # FREEBLOCKLIST\n");
|
||||
return (NIL);
|
||||
} else if (base == freeblocklsp)
|
||||
*freeblock = fwd;
|
||||
fbbase->bkwd = bkwd;
|
||||
bbbase->fwd = fwd;
|
||||
return;
|
||||
} else if (base == freeblock)
|
||||
*fbl_np = f;
|
||||
f_np->bkwd = b;
|
||||
b_np->fwd = f;
|
||||
}
|
||||
return (NIL);
|
||||
}
|
||||
|
||||
/************************************************************************/
|
||||
@@ -288,34 +320,53 @@ LispPTR deleteblock(LispPTR base) {
|
||||
/* */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
/*
|
||||
* Links a block onto the free list for a particular size range.
|
||||
* The free list is maintained as a doubly linked circular list accessed
|
||||
* from the block pointed to by the free list bucket for the size.
|
||||
* If there are no blocks in the free list bucket then the forward and
|
||||
* backward pointers of the newly added block point to the block itself.
|
||||
*/
|
||||
static LispPTR linkblock(LispPTR base) {
|
||||
struct arrayblock *base_np, *freeblock_np, *tail_np;
|
||||
LispPTR fbl, freeblock;
|
||||
LispPTR *fbl_np;
|
||||
|
||||
LispPTR linkblock(LispPTR base) {
|
||||
struct arrayblock *bbase, *fbbase, *tmpbase;
|
||||
LispPTR fbl, freeblocklsp;
|
||||
LispPTR *freeblock;
|
||||
if (*FreeBlockBuckets_word != NIL) {
|
||||
bbase = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
||||
if (bbase->arlen < MINARRAYBLOCKSIZE)
|
||||
checkarrayblock(base, T, NIL);
|
||||
else {
|
||||
fbl = FreeBlockChainN(bbase->arlen);
|
||||
freeblock = (LispPTR *)NativeAligned4FromLAddr(POINTERMASK & fbl);
|
||||
freeblocklsp = POINTERMASK & (*freeblock);
|
||||
if (freeblocklsp == NIL) {
|
||||
bbase->fwd = base;
|
||||
bbase->bkwd = base;
|
||||
} else {
|
||||
fbbase = (struct arrayblock *)NativeAligned4FromLAddr(freeblocklsp);
|
||||
bbase->fwd = freeblocklsp;
|
||||
bbase->bkwd = fbbase->bkwd;
|
||||
tmpbase = (struct arrayblock *)NativeAligned4FromLAddr(fbbase->bkwd);
|
||||
tmpbase->fwd = base;
|
||||
fbbase->bkwd = base;
|
||||
}
|
||||
*freeblock = base;
|
||||
checkarrayblock(base, T, T);
|
||||
}
|
||||
if (*FreeBlockBuckets_word == NIL)
|
||||
return (base);
|
||||
|
||||
base_np = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
||||
if (base_np->arlen < MINARRAYBLOCKSIZE) {
|
||||
checkarrayblock(base, T, NIL);
|
||||
return (base);
|
||||
}
|
||||
|
||||
/* lisp pointer to bucket for size */
|
||||
fbl = FreeBlockChainN(base_np->arlen);
|
||||
/* native pointer to bucket */
|
||||
fbl_np = (LispPTR *)NativeAligned4FromLAddr(POINTERMASK & fbl);
|
||||
/* lisp pointer to first free block on chain */
|
||||
freeblock = POINTERMASK & (*fbl_np);
|
||||
if (freeblock == NIL) { /* no blocks already in chain */
|
||||
base_np->fwd = base;
|
||||
base_np->bkwd = base;
|
||||
} else {
|
||||
/* set up new block to be first free block on the chain */
|
||||
freeblock_np = (struct arrayblock *)NativeAligned4FromLAddr(freeblock);
|
||||
/* link new block forward to free block */
|
||||
base_np->fwd = freeblock;
|
||||
/* new block's backward link becomes free block's backward link */
|
||||
base_np->bkwd = freeblock_np->bkwd;
|
||||
/* get the tail location (backward pointer of freelist head) */
|
||||
tail_np = (struct arrayblock *)NativeAligned4FromLAddr(freeblock_np->bkwd);
|
||||
/* set its forward pointer to new block */
|
||||
tail_np->fwd = base;
|
||||
/* and the update the free block's backward link to new block */
|
||||
freeblock_np->bkwd = base;
|
||||
}
|
||||
/* new block becomes the head of the free list */
|
||||
*fbl_np = base;
|
||||
checkarrayblock(base, T, T); /* free, and on free list */
|
||||
return (base);
|
||||
}
|
||||
|
||||
@@ -329,17 +380,26 @@ LispPTR linkblock(LispPTR base) {
|
||||
|
||||
LispPTR makefreearrayblock(LispPTR block, DLword length) {
|
||||
LispPTR trailer;
|
||||
struct arrayblock *bbase;
|
||||
struct abdum *dbase;
|
||||
bbase = (struct arrayblock *)NativeAligned4FromLAddr(block);
|
||||
dbase = (struct abdum *)WORDPTR(bbase);
|
||||
dbase->abflags = FREEARRAYFLAGWORD;
|
||||
bbase->arlen = length;
|
||||
trailer = Trailer(block, bbase);
|
||||
bbase = (struct arrayblock *)NativeAligned4FromLAddr(trailer);
|
||||
dbase = (struct abdum *)WORDPTR(bbase);
|
||||
dbase->abflags = FREEARRAYFLAGWORD;
|
||||
bbase->arlen = length;
|
||||
struct arrayblock *block_np, *trailer_np;
|
||||
struct abdum *flags_np;
|
||||
block_np = (struct arrayblock *)NativeAligned4FromLAddr(block);
|
||||
/* this is an appropriate place to test whether the block that
|
||||
is about to be freed contains words that look like valid
|
||||
array header/trailer pairs as data. This may result in
|
||||
false positives, but could help if there's a real smash happening.
|
||||
*/
|
||||
/* struct abdum's abflags is a DLword and does not account for
|
||||
the BYTESWAP setup (as arrayblock does), so use WORDPTR to
|
||||
pick the correct word of the cell
|
||||
*/
|
||||
flags_np = (struct abdum *)WORDPTR(block_np);
|
||||
flags_np->abflags = FREEARRAYFLAGWORD;
|
||||
block_np->arlen = length;
|
||||
trailer = Trailer(block, block_np);
|
||||
trailer_np = (struct arrayblock *)NativeAligned4FromLAddr(trailer);
|
||||
flags_np = (struct abdum *)WORDPTR(trailer_np);
|
||||
flags_np->abflags = FREEARRAYFLAGWORD;
|
||||
trailer_np->arlen = length;
|
||||
return (block);
|
||||
}
|
||||
|
||||
@@ -350,13 +410,13 @@ LispPTR makefreearrayblock(LispPTR block, DLword length) {
|
||||
/* */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
LispPTR arrayblockmerger(LispPTR base, LispPTR nbase) {
|
||||
static LispPTR arrayblockmerger(LispPTR base, LispPTR nbase) {
|
||||
DLword arlens, narlens, secondbite, minblocksize, shaveback;
|
||||
struct arrayblock *bbase, *bnbase;
|
||||
bbase = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
||||
bnbase = (struct arrayblock *)NativeAligned4FromLAddr(nbase);
|
||||
arlens = bbase->arlen;
|
||||
narlens = bnbase->arlen;
|
||||
struct arrayblock *base_np, *nbase_np;
|
||||
base_np = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
||||
nbase_np = (struct arrayblock *)NativeAligned4FromLAddr(nbase);
|
||||
arlens = base_np->arlen;
|
||||
narlens = nbase_np->arlen;
|
||||
secondbite = MAXARRAYBLOCKSIZE - arlens;
|
||||
/* There are three cases for merging the blocks
|
||||
* (1) the total size of the two blocks is less than max:
|
||||
@@ -366,7 +426,7 @@ LispPTR arrayblockmerger(LispPTR base, LispPTR nbase) {
|
||||
* (3) creating a max size block leaves a non-viable leftover block
|
||||
* move the boundary to make a big block and a minimum size leftover block
|
||||
*/
|
||||
if (base + (2 * arlens) != nbase) {
|
||||
if (base + (DLWORDSPER_CELL * arlens) != nbase) {
|
||||
error("Attempt to merge non-adjacent blocks in array space\n");
|
||||
}
|
||||
if (narlens > secondbite) { /* (2) or (3) */
|
||||
@@ -380,7 +440,7 @@ LispPTR arrayblockmerger(LispPTR base, LispPTR nbase) {
|
||||
arlens += shaveback;
|
||||
secondbite += shaveback;
|
||||
}
|
||||
linkblock(makefreearrayblock(nbase + 2 * secondbite, narlens));
|
||||
linkblock(makefreearrayblock(nbase + DLWORDSPER_CELL * secondbite, narlens));
|
||||
narlens = 0;
|
||||
}
|
||||
return (linkblock(makefreearrayblock(base, arlens + narlens)));
|
||||
@@ -394,18 +454,34 @@ LispPTR arrayblockmerger(LispPTR base, LispPTR nbase) {
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
/*
|
||||
* merges this block into the block behind it, unless there are
|
||||
* disqualifying conditions:
|
||||
* merging is turned off or
|
||||
* this is the first block in array space or
|
||||
* this is the first block in the 2nd array space or
|
||||
* the block behind it is in use
|
||||
* in which case it is linked onto the freelist (fwd and backward pointers)
|
||||
* and added to the free block chain by size.
|
||||
* If it can be merged,
|
||||
*/
|
||||
LispPTR mergebackward(LispPTR base) {
|
||||
LispPTR pbase;
|
||||
struct arrayblock *ptrailer;
|
||||
struct arrayblock *ptrailer_np;
|
||||
|
||||
if (base == NIL)
|
||||
return (NIL);
|
||||
ptrailer = (struct arrayblock *)NativeAligned4FromLAddr(base - ARRAYBLOCKTRAILERWORDS);
|
||||
/* back up to get the trailer of the previous block */
|
||||
ptrailer_np = (struct arrayblock *)NativeAligned4FromLAddr(base - ARRAYBLOCKTRAILERWORDS);
|
||||
/* check that there are no disqualifying conditions for merging with previous block */
|
||||
if ((*ArrayMerging_word == NIL) ||
|
||||
((base == *ArraySpace_word) || ((base == *ArraySpace2_word) || (ptrailer->inuse == T))))
|
||||
((base == *ArraySpace_word) || ((base == *ArraySpace2_word) || (ptrailer_np->inuse == T))))
|
||||
return (linkblock(base));
|
||||
pbase = base - 2 * ptrailer->arlen;
|
||||
/* back up to the header of the previous block */
|
||||
pbase = base - DLWORDSPER_CELL * ptrailer_np->arlen;
|
||||
/* check that it is free, but skip free list checks */
|
||||
checkarrayblock(pbase, T, NIL);
|
||||
/* remove it from the free list */
|
||||
deleteblock(pbase);
|
||||
return (arrayblockmerger(pbase, base));
|
||||
}
|
||||
@@ -420,17 +496,17 @@ LispPTR mergebackward(LispPTR base) {
|
||||
|
||||
LispPTR mergeforward(LispPTR base) {
|
||||
LispPTR nbase, nbinuse;
|
||||
struct arrayblock *bbase, *bnbase;
|
||||
struct arrayblock *base_np, *nbase_np;
|
||||
if (*ArrayMerging_word == NIL) return NIL;
|
||||
if (base == NIL) return NIL;
|
||||
if (checkarrayblock(base, T, T)) return NIL;
|
||||
|
||||
bbase = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
||||
nbase = base + 2 * (bbase->arlen);
|
||||
base_np = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
||||
nbase = base + DLWORDSPER_CELL * (base_np->arlen);
|
||||
if (nbase == *ArrayFrLst_word || nbase == *ArrayFrLst2_word) return NIL;
|
||||
|
||||
bnbase = (struct arrayblock *)NativeAligned4FromLAddr(nbase);
|
||||
nbinuse = bnbase->inuse;
|
||||
nbase_np = (struct arrayblock *)NativeAligned4FromLAddr(nbase);
|
||||
nbinuse = nbase_np->inuse;
|
||||
if (checkarrayblock(nbase, !nbinuse, NIL)) return NIL;
|
||||
if (nbinuse) return (NIL);
|
||||
deleteblock(nbase);
|
||||
@@ -445,10 +521,13 @@ LispPTR mergeforward(LispPTR base) {
|
||||
/* Reclaim a block of storage in the array-space heap. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
/*
|
||||
* The pointer passed is to the data of the block, not the array block
|
||||
* header.
|
||||
*/
|
||||
LispPTR reclaimarrayblock(LispPTR ptr) {
|
||||
LispPTR tmpptr, btrailer;
|
||||
struct arrayblock *base;
|
||||
struct arrayblock *base_np;
|
||||
LispPTR *tmpp;
|
||||
int reclaim_p;
|
||||
|
||||
@@ -457,7 +536,7 @@ LispPTR reclaimarrayblock(LispPTR ptr) {
|
||||
checkarrayblock(ptr - ARRAYBLOCKHEADERWORDS, NIL, NIL);
|
||||
#endif /* ARRAYCHECK */
|
||||
|
||||
base = (struct arrayblock *)NativeAligned4FromLAddr(ptr - ARRAYBLOCKHEADERWORDS);
|
||||
base_np = (struct arrayblock *)NativeAligned4FromLAddr(ptr - ARRAYBLOCKHEADERWORDS);
|
||||
#ifdef ARRAYCHECK
|
||||
if (HILOC(ptr) < FIRSTARRAYSEGMENT) {
|
||||
printarrayblock(ptr - ARRAYBLOCKHEADERWORDS);
|
||||
@@ -465,11 +544,11 @@ LispPTR reclaimarrayblock(LispPTR ptr) {
|
||||
"Bad array block reclaimed [not in array space].\nContinue with 'q' but save state ASAP. "
|
||||
"\n");
|
||||
return (T);
|
||||
} else if (ARRAYBLOCKPASSWORD != base->password) {
|
||||
} else if (ARRAYBLOCKPASSWORD != base_np->password) {
|
||||
printarrayblock(ptr - ARRAYBLOCKHEADERWORDS);
|
||||
error("Bad array block reclaimed [password wrong].\nContinue with 'q' but save state ASAP. \n");
|
||||
return (T);
|
||||
} else if (base->inuse == NIL) {
|
||||
} else if (base_np->inuse == NIL) {
|
||||
printarrayblock(ptr - ARRAYBLOCKHEADERWORDS);
|
||||
error(
|
||||
"Bad array block reclaimed [block not in use].\nContinue with 'q' but save state ASAP. \n");
|
||||
@@ -478,15 +557,15 @@ LispPTR reclaimarrayblock(LispPTR ptr) {
|
||||
#else
|
||||
/* Normal case, just tell the guy something's wrong: */
|
||||
if ((HILOC(ptr) < FIRSTARRAYSEGMENT) ||
|
||||
((ARRAYBLOCKPASSWORD != base->password) || (base->inuse == NIL))) {
|
||||
((ARRAYBLOCKPASSWORD != base_np->password) || (base_np->inuse == NIL))) {
|
||||
error("Bad array block reclaimed--continue with 'q' but save state ASAP. \n");
|
||||
return (T);
|
||||
}
|
||||
#endif /* ARRAYCHECK */
|
||||
|
||||
switch (base->gctype) {
|
||||
switch (base_np->gctype) {
|
||||
case PTRBLOCK_GCT: {
|
||||
btrailer = (ptr - 2) + 2 * (base->arlen - ARRAYBLOCKTRAILERCELLS);
|
||||
btrailer = (ptr - 2) + DLWORDSPER_CELL * (base_np->arlen - ARRAYBLOCKTRAILERCELLS);
|
||||
tmpptr = ptr;
|
||||
do {
|
||||
tmpp = (LispPTR *)NativeAligned4FromLAddr(tmpptr);
|
||||
@@ -503,7 +582,7 @@ LispPTR reclaimarrayblock(LispPTR ptr) {
|
||||
/* default: No Action */
|
||||
}
|
||||
if (reclaim_p == T)
|
||||
mergeforward(mergebackward(makefreearrayblock(ptr - ARRAYBLOCKHEADERWORDS, base->arlen)));
|
||||
mergeforward(mergebackward(makefreearrayblock(ptr - ARRAYBLOCKHEADERWORDS, base_np->arlen)));
|
||||
return (T);
|
||||
}
|
||||
|
||||
@@ -535,31 +614,62 @@ LispPTR reclaimstackp(LispPTR ptr) /* This is the entry function */
|
||||
/************************************************************************/
|
||||
|
||||
void printarrayblock(LispPTR base) {
|
||||
struct arrayblock *bbase, *btrailer, *ptrailer;
|
||||
struct arrayblock *base_np, *trailer_np, *ptrailer_np;
|
||||
LispPTR *addr;
|
||||
|
||||
LispPTR pbase, nbase;
|
||||
|
||||
bbase = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
||||
btrailer = (struct arrayblock *)NativeAligned4FromLAddr(Trailer(base, bbase));
|
||||
ptrailer = (struct arrayblock *)NativeAligned4FromLAddr(base - ARRAYBLOCKTRAILERWORDS);
|
||||
base_np = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
||||
trailer_np = (struct arrayblock *)NativeAligned4FromLAddr(Trailer(base, base_np));
|
||||
ptrailer_np = (struct arrayblock *)NativeAligned4FromLAddr(base - ARRAYBLOCKTRAILERWORDS);
|
||||
|
||||
nbase = base + 2 * bbase->arlen;
|
||||
pbase = base - 2 * ptrailer->arlen;
|
||||
nbase = base + DLWORDSPER_CELL * base_np->arlen;
|
||||
pbase = base - DLWORDSPER_CELL * ptrailer_np->arlen;
|
||||
|
||||
printf("This array block: 0x%x. Previous: 0x%x. Next: 0x%x.\n", base, pbase, nbase);
|
||||
printf(" Length: %d cells.\n\n", bbase->arlen);
|
||||
printf(" password: 0x%x gctype: 0x%x in use: %d\n", base_np->password,
|
||||
base_np->gctype, base_np->inuse);
|
||||
if (!base_np->inuse)
|
||||
printf(" Free list: fwd 0x%x bkwd 0x%x\n", base_np->fwd, base_np->bkwd);
|
||||
printf(" Header Length: %d cells.\n\n", base_np->arlen);
|
||||
printf(" Trailer Length: %d cells.\n\n", trailer_np->arlen);
|
||||
|
||||
addr = ((LispPTR *)bbase) - 20;
|
||||
for (; addr < (LispPTR *)bbase; addr++) printf("%p %8x\n", (void *)addr, *addr);
|
||||
printf("%p %8x <- array header\n", (void *)addr, *addr);
|
||||
addr = ((LispPTR *)base_np) - 20;
|
||||
for (; addr < (LispPTR *)base_np; addr++) printf("%16p (0x%8x) %8x\n", (void *)addr, LAddrFromNative(addr), *addr);
|
||||
printf("%16p (0x%8x) %8x <- array header\n", (void *)addr, LAddrFromNative(addr), *addr);
|
||||
addr++;
|
||||
for (; addr < (LispPTR *)bbase + 20; addr++) printf("%p %8x\n", (void *)addr, *addr);
|
||||
for (; addr < (LispPTR *)base_np + 20; addr++) printf("%16p (0x%8x) %8x\n", (void *)addr, LAddrFromNative(addr), *addr);
|
||||
printf(". . .\n");
|
||||
|
||||
addr = ((LispPTR *)btrailer) - 20;
|
||||
for (; addr < (LispPTR *)btrailer; addr++) printf("%p %8x\n", (void *)addr, *addr);
|
||||
printf("%p %8x <- array trailer\n", (void *)addr, *addr);
|
||||
addr = ((LispPTR *)trailer_np) - 20;
|
||||
for (; addr < (LispPTR *)trailer_np; addr++) printf("%16p (0x%8x) %8x\n", (void *)addr, LAddrFromNative(addr), *addr);
|
||||
printf("%16p (0x%8x) %8x <- array trailer\n", (void *)addr, LAddrFromNative(addr), *addr);
|
||||
addr++;
|
||||
for (; addr < (LispPTR *)btrailer + 20; addr++) printf("%p %8x\n", (void *)addr, *addr);
|
||||
for (; addr < (LispPTR *)trailer_np + 20; addr++) printf("%16p (0x%8x) %8x\n", (void *)addr, LAddrFromNative(addr), *addr);
|
||||
}
|
||||
|
||||
static void printfreeblockchainhead(int index)
|
||||
{
|
||||
LispPTR fbl, freeblock;
|
||||
LispPTR *fbl_np;
|
||||
|
||||
fbl = POINTERMASK & ((*FreeBlockBuckets_word) + (DLWORDSPER_CELL * index));
|
||||
fbl_np = (LispPTR *)NativeAligned4FromLAddr(fbl);
|
||||
/* lisp pointer to free block on chain */
|
||||
freeblock = POINTERMASK & (*fbl_np);
|
||||
if (freeblock == NIL) { /* no blocks in chain */
|
||||
printf("Free block chain (bucket %d): NIL\n", index);
|
||||
} else {
|
||||
printf("Free block chain(bucket %d): 0x%x\n", index, freeblock);
|
||||
}
|
||||
}
|
||||
|
||||
void printfreeblockchainn(int arlen)
|
||||
{
|
||||
if (arlen >= 0) {
|
||||
printfreeblockchainhead(BucketIndex(arlen));
|
||||
return;
|
||||
} else
|
||||
for (int i = 0; i <= MAXBUCKETINDEX; i++) {
|
||||
printfreeblockchainhead(i);
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user