mirror of
https://github.com/Interlisp/maiko.git
synced 2026-03-18 15:52:52 +00:00
Compare commits
7 Commits
fgh_github
...
debug-arra
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4245764b31 | ||
|
|
4520609479 | ||
|
|
3b42f0579d | ||
|
|
29b492093d | ||
|
|
1c6d366e3c | ||
|
|
c74e7a0169 | ||
|
|
060420ce42 |
6
.github/workflows/build.yml
vendored
6
.github/workflows/build.yml
vendored
@@ -1,6 +1,6 @@
|
|||||||
name: Build
|
name: Build
|
||||||
|
|
||||||
on: [push, pull_request, workflow_dispatch]
|
on: [push, pull_request]
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
@@ -11,7 +11,7 @@ jobs:
|
|||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [macos-12, macos-13, macos-14, macos-15, ubuntu-24.04, ubuntu-22.04, ubuntu-20.04]
|
os: [macos-11, macos-12, ubuntu-22.04, ubuntu-20.04]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Install X11 dependencies on MacOS
|
- name: Install X11 dependencies on MacOS
|
||||||
@@ -37,7 +37,7 @@ jobs:
|
|||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [macos-12, macos-13, macos-14, macos-15, ubuntu-24.04, ubuntu-22.04, ubuntu-20.04]
|
os: [macos-11, macos-12, ubuntu-22.04, ubuntu-20.04]
|
||||||
env:
|
env:
|
||||||
BUILD_TYPE: Release
|
BUILD_TYPE: Release
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
2
.github/workflows/buildBuilderImage.yml
vendored
2
.github/workflows/buildBuilderImage.yml
vendored
@@ -29,7 +29,7 @@ jobs:
|
|||||||
|
|
||||||
buildBuilder:
|
buildBuilder:
|
||||||
|
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
# Checkout maiko
|
# Checkout maiko
|
||||||
|
|||||||
124
.github/workflows/buildRelease.yml
vendored
124
.github/workflows/buildRelease.yml
vendored
@@ -84,7 +84,7 @@ jobs:
|
|||||||
# the result of a workflow_dispatch or a workflow_call
|
# the result of a workflow_dispatch or a workflow_call
|
||||||
|
|
||||||
inputs:
|
inputs:
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
draft: ${{ steps.one.outputs.draft }}
|
draft: ${{ steps.one.outputs.draft }}
|
||||||
force: ${{ steps.one.outputs.force }}
|
force: ${{ steps.one.outputs.force }}
|
||||||
@@ -116,14 +116,14 @@ jobs:
|
|||||||
|
|
||||||
sentry:
|
sentry:
|
||||||
needs: inputs
|
needs: inputs
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
release_not_built: ${{ steps.check.outputs.release_not_built }}
|
release_not_built: ${{ steps.check.outputs.release_not_built }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
# Checkout the actions for this repo owner
|
# Checkout the actions for this repo owner
|
||||||
- name: Checkout Actions
|
- name: Checkout Actions
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: ${{ github.repository_owner }}/.github
|
repository: ${{ github.repository_owner }}/.github
|
||||||
path: ./Actions_${{ github.sha }}
|
path: ./Actions_${{ github.sha }}
|
||||||
@@ -152,12 +152,12 @@ jobs:
|
|||||||
|| needs.inputs.outputs.force == 'true'
|
|| needs.inputs.outputs.force == 'true'
|
||||||
)
|
)
|
||||||
|
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
# Checkout the actions for this repo owner
|
# Checkout the actions for this repo owner
|
||||||
- name: Checkout Actions
|
- name: Checkout Actions
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: ${{ github.repository_owner }}/.github
|
repository: ${{ github.repository_owner }}/.github
|
||||||
path: ./Actions_${{ github.sha }}
|
path: ./Actions_${{ github.sha }}
|
||||||
@@ -165,7 +165,7 @@ jobs:
|
|||||||
|
|
||||||
# Checkout the branch
|
# Checkout the branch
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
# Setup release tag
|
# Setup release tag
|
||||||
- name: Setup Release Tag
|
- name: Setup Release Tag
|
||||||
@@ -185,14 +185,14 @@ jobs:
|
|||||||
|
|
||||||
# Setup the Docker Machine Emulation environment.
|
# Setup the Docker Machine Emulation environment.
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v3
|
uses: docker/setup-qemu-action@v2
|
||||||
with:
|
with:
|
||||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||||
|
|
||||||
# Setup the Docker Buildx funtion
|
# Setup the Docker Buildx funtion
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
id: buildx
|
id: buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v2
|
||||||
|
|
||||||
# Do the Docker Build using the Dockerfile in the repository we
|
# Do the Docker Build using the Dockerfile in the repository we
|
||||||
# checked out. Save the results in a directory under /tmp to be used
|
# checked out. Save the results in a directory under /tmp to be used
|
||||||
@@ -204,7 +204,7 @@ jobs:
|
|||||||
# Dockerfile, NOT HERE IN THE WORKFLOW.
|
# Dockerfile, NOT HERE IN THE WORKFLOW.
|
||||||
#
|
#
|
||||||
- name: Build Docker Image and Save It Locally
|
- name: Build Docker Image and Save It Locally
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v4
|
||||||
with:
|
with:
|
||||||
builder: ${{ steps.buildx.outputs.name }}
|
builder: ${{ steps.buildx.outputs.name }}
|
||||||
build-args: |
|
build-args: |
|
||||||
@@ -266,17 +266,17 @@ jobs:
|
|||||||
|| needs.inputs.outputs.force == 'true'
|
|| needs.inputs.outputs.force == 'true'
|
||||||
)
|
)
|
||||||
|
|
||||||
runs-on: macos-12
|
runs-on: macos-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
# Checkout the branch
|
# Checkout the branch
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
# Checkout the actions for this repo owner
|
# Checkout the actions for this repo owner
|
||||||
- name: Checkout Actions
|
- name: Checkout Actions
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: ${{ github.repository_owner }}/.github
|
repository: ${{ github.repository_owner }}/.github
|
||||||
path: ./Actions_${{ github.sha }}
|
path: ./Actions_${{ github.sha }}
|
||||||
@@ -290,13 +290,13 @@ jobs:
|
|||||||
# Uninstall exisitng X11 stuff preconfigured on runner then install correct X11 dependencies
|
# Uninstall exisitng X11 stuff preconfigured on runner then install correct X11 dependencies
|
||||||
- name: Unistall X components already on the runner
|
- name: Unistall X components already on the runner
|
||||||
run: |
|
run: |
|
||||||
brew uninstall --ignore-dependencies --force libxft
|
brew uninstall --ignore-dependencies libxft
|
||||||
brew uninstall --ignore-dependencies --force libxrender
|
brew uninstall --ignore-dependencies libxrender
|
||||||
brew uninstall --ignore-dependencies --force libxext
|
brew uninstall --ignore-dependencies libxext
|
||||||
brew uninstall --ignore-dependencies --force libx11
|
brew uninstall --ignore-dependencies libx11
|
||||||
brew uninstall --ignore-dependencies --force xorgproto
|
brew uninstall --ignore-dependencies xorgproto
|
||||||
brew uninstall --ignore-dependencies --force libxdmcp
|
brew uninstall --ignore-dependencies libxdmcp
|
||||||
brew uninstall --ignore-dependencies --force libxau
|
brew uninstall --ignore-dependencies libxau
|
||||||
|
|
||||||
- name: Install X11 dependencies on MacOS
|
- name: Install X11 dependencies on MacOS
|
||||||
env:
|
env:
|
||||||
@@ -412,7 +412,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
wget https://cygwin.com/setup-x86_64.exe -OutFile setup-x86_64.exe
|
wget https://cygwin.com/setup-x86_64.exe -OutFile setup-x86_64.exe
|
||||||
Unblock-File setup-x86_64.exe
|
Unblock-File setup-x86_64.exe
|
||||||
Start-Process setup-x86_64.exe -Wait -ArgumentList @("--root", ".\cygwin", "--quiet-mode", "--no-admin", "--wait", "--no-shortcuts", "--no-write-registry", "--verbose", "--site", "https://mirrors.kernel.org/sourceware/cygwin/", "--packages", "nano,binutils,make,cmake,gcc,clang")
|
Start-Process setup-x86_64.exe -Wait -ArgumentList @("--root", ".\cygwin", "--quiet-mode", "--no-admin", "--wait", "--no-shortcuts", "--no-write-registry", "--verbose", "--site", "http://www.gtlib.gatech.edu/pub/cygwin/", "--packages", "nano,binutils,make,cmake,gcc,clang")
|
||||||
cygwin\bin\bash -login -c 'sed -i -e "s/^none/#none/" /etc/fstab; echo "none / cygdrive binary,posix=0,user 0 0" >>/etc/fstab'
|
cygwin\bin\bash -login -c 'sed -i -e "s/^none/#none/" /etc/fstab; echo "none / cygdrive binary,posix=0,user 0 0" >>/etc/fstab'
|
||||||
|
|
||||||
# Retrieve SDL2 and install in cygwin
|
# Retrieve SDL2 and install in cygwin
|
||||||
@@ -426,13 +426,13 @@ jobs:
|
|||||||
|
|
||||||
# Checkout the branch
|
# Checkout the branch
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
path: cygwin\maiko
|
path: cygwin\maiko
|
||||||
|
|
||||||
# Checkout the actions for this repo owner
|
# Checkout the actions for this repo owner
|
||||||
- name: Checkout Actions
|
- name: Checkout Actions
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: ${{ github.repository_owner }}/.github
|
repository: ${{ github.repository_owner }}/.github
|
||||||
path: ./Actions_${{ github.sha }}
|
path: ./Actions_${{ github.sha }}
|
||||||
@@ -473,80 +473,6 @@ jobs:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
# Emscripten: build and push Maiko compiled for Emscripten (to run Maiko in browser)
|
|
||||||
|
|
||||||
emscripten:
|
|
||||||
|
|
||||||
needs: [inputs, sentry]
|
|
||||||
if: |
|
|
||||||
needs.inputs.outputs.linux == 'true'
|
|
||||||
&& (
|
|
||||||
needs.sentry.outputs.release_not_built == 'true'
|
|
||||||
|| needs.inputs.outputs.force == 'true'
|
|
||||||
)
|
|
||||||
|
|
||||||
runs-on: ubuntu-24.04
|
|
||||||
|
|
||||||
steps:
|
|
||||||
|
|
||||||
# Checkout the actions for this repo owner
|
|
||||||
- name: Checkout Actions
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: ${{ github.repository_owner }}/.github
|
|
||||||
path: ./Actions_${{ github.sha }}
|
|
||||||
- run: mv ./Actions_${{ github.sha }}/actions ../actions && rm -rf ./Actions_${{ github.sha }}
|
|
||||||
|
|
||||||
# Install SDL2
|
|
||||||
- name: Install SDL2
|
|
||||||
run: |
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
sudo -E apt-get install -y libsdl2-dev libsdl2-2.0-0
|
|
||||||
|
|
||||||
# Install Emscripten SDK
|
|
||||||
- name: Install Empscripten
|
|
||||||
working-directory: ../
|
|
||||||
run: |
|
|
||||||
git clone https://github.com/emscripten-core/emsdk.git
|
|
||||||
cd emsdk
|
|
||||||
./emsdk install latest
|
|
||||||
./emsdk activate latest
|
|
||||||
CWD="$(pwd)"
|
|
||||||
echo "${CWD}" >> ${GITHUB_PATH}
|
|
||||||
echo "${CWD}/upstream/emscripten" >> ${GITHUB_PATH}
|
|
||||||
echo "${CWD}/upstream/emscripten/tools" >> ${GITHUB_PATH}
|
|
||||||
echo "${CWD}/node/$(ls -d node/*64bit | tail -1)/bin" >> ${GITHUB_PATH}
|
|
||||||
|
|
||||||
# Checkout the maiko branch
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Setup release tag
|
|
||||||
- name: Setup Release Tag
|
|
||||||
id: tag
|
|
||||||
uses: ./../actions/release-tag-action
|
|
||||||
|
|
||||||
# Compile maiko using Emscripten (no load build)
|
|
||||||
- name: Compile Maiko using Emscripten
|
|
||||||
working-directory: ./bin
|
|
||||||
run: |
|
|
||||||
./makeright wasm_nl
|
|
||||||
cd ../emscripten.wasm_nl
|
|
||||||
tar -c -z -f ../${{ steps.tag.outputs.release_tag }}-emscripten.tgz *
|
|
||||||
|
|
||||||
# Push Release to github
|
|
||||||
- name: Push the release
|
|
||||||
uses: ncipollo/release-action@v1
|
|
||||||
with:
|
|
||||||
allowUpdates: true
|
|
||||||
artifacts: ${{ steps.tag.outputs.release_tag }}-emscripten.tgz
|
|
||||||
tag: ${{ steps.tag.outputs.release_tag }}
|
|
||||||
draft: ${{ needs.inputs.outputs.draft }}
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
|
||||||
# Use set-sentry-action to determine set the sentry that says this release has
|
# Use set-sentry-action to determine set the sentry that says this release has
|
||||||
@@ -554,17 +480,17 @@ jobs:
|
|||||||
|
|
||||||
complete:
|
complete:
|
||||||
|
|
||||||
runs-on: ubuntu-24.04
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
build_successful: ${{ steps.output.outputs.build_successful }}
|
build_successful: ${{ steps.output.outputs.build_successful }}
|
||||||
|
|
||||||
needs: [inputs, sentry, linux, macos, windows, emscripten]
|
needs: [inputs, sentry, linux, macos, windows]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
# Checkout the actions for this repo owner
|
# Checkout the actions for this repo owner
|
||||||
- name: Checkout Actions
|
- name: Checkout Actions
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: ${{ github.repository_owner }}/.github
|
repository: ${{ github.repository_owner }}/.github
|
||||||
path: ./Actions_${{ github.sha }}
|
path: ./Actions_${{ github.sha }}
|
||||||
|
|||||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -10,7 +10,6 @@ cmake-build-*/**
|
|||||||
.idea/
|
.idea/
|
||||||
*.m68k-x/**
|
*.m68k-x/**
|
||||||
*.m68k/**
|
*.m68k/**
|
||||||
*.386-sdl/**
|
|
||||||
*.386-x/**
|
*.386-x/**
|
||||||
*.386/**
|
*.386/**
|
||||||
*.ppc-x/**
|
*.ppc-x/**
|
||||||
@@ -20,10 +19,6 @@ cmake-build-*/**
|
|||||||
*.x86_64-x/**
|
*.x86_64-x/**
|
||||||
*.x86_64-sdl/**
|
*.x86_64-sdl/**
|
||||||
*.x86_64/**
|
*.x86_64/**
|
||||||
*.wasm/**
|
|
||||||
*.wasm-wasm/**
|
|
||||||
*.wasm_nl/**
|
|
||||||
*.wasm_nl-wasm_nl/**
|
|
||||||
*.armv7l-x/**
|
*.armv7l-x/**
|
||||||
*.armv7l/**
|
*.armv7l/**
|
||||||
*.aarch64-x/**
|
*.aarch64-x/**
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ ENDIF()
|
|||||||
|
|
||||||
find_program(
|
find_program(
|
||||||
CLANG_TIDY_EXE
|
CLANG_TIDY_EXE
|
||||||
NAMES "clang-tidy" "clang-tidy16" "clang-tidy15" "clang-tidy14" "clang-tidy13" "clang-tidy12" "clang-tidy11" "clang-tidy10"
|
NAMES "clang-tidy" "clang-tidy13" "clang-tidy12" "clang-tidy11" "clang-tidy10"
|
||||||
DOC "Path to clang-tidy executable"
|
DOC "Path to clang-tidy executable"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -37,21 +37,12 @@ IF(NEED_LIB_M)
|
|||||||
SET(MAIKO_LIBRARIES m)
|
SET(MAIKO_LIBRARIES m)
|
||||||
ENDIF()
|
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
|
SET(MAIKO_DEFINITIONS
|
||||||
"-DRELEASE=${MAIKO_RELEASE}"
|
"-DRELEASE=351"
|
||||||
)
|
|
||||||
|
|
||||||
SET(MAIKO_INIT_DEFINITIONS
|
|
||||||
"-DRELEASE=${MAIKO_RELEASE}" "-DINIT" "-DNOVERSION"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
OPTION(MAIKO_DISPLAY_X11 "Use X11 for display." ON)
|
OPTION(MAIKO_DISPLAY_X11 "Use X11 for display." ON)
|
||||||
SET(MAIKO_DISPLAY_SDL OFF CACHE STRING "Use SDL for display. Version: OFF, 2, 3")
|
OPTION(MAIKO_DISPLAY_SDL "Use SDL for display." OFF)
|
||||||
SET_PROPERTY(CACHE MAIKO_DISPLAY_SDL PROPERTY STRINGS OFF 2 3)
|
|
||||||
|
|
||||||
IF(MAIKO_DISPLAY_X11)
|
IF(MAIKO_DISPLAY_X11)
|
||||||
FIND_PACKAGE(X11 REQUIRED)
|
FIND_PACKAGE(X11 REQUIRED)
|
||||||
@@ -86,34 +77,19 @@ IF(MAIKO_DISPLAY_X11)
|
|||||||
MESSAGE("-- Configured for X11 display")
|
MESSAGE("-- Configured for X11 display")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF(MAIKO_DISPLAY_SDL STREQUAL "2")
|
IF(MAIKO_DISPLAY_SDL)
|
||||||
FIND_PACKAGE(SDL2 REQUIRED CONFIG REQUIRED COMPONENTS SDL2)
|
FIND_PACKAGE(SDL2 REQUIRED)
|
||||||
SET(MAIKO_DISPLAY_SDL_DEFINITIONS
|
SET(MAIKO_DISPLAY_SDL_DEFINITIONS
|
||||||
"-DSDL=2"
|
"-DSDL"
|
||||||
)
|
)
|
||||||
SET(MAIKO_DISPLAY_SDL_INCLUDE_DIRS SDL2::Headers)
|
SET(MAIKO_DISPLAY_SDL_LIBRARIES ${SDL2_LIBRARIES})
|
||||||
SET(MAIKO_DISPLAY_SDL_LIBRARIES SDL2::SDL2)
|
|
||||||
SET(MAIKO_DISPLAY_SDL_SRCS
|
SET(MAIKO_DISPLAY_SDL_SRCS
|
||||||
src/sdl.c
|
src/sdl.c
|
||||||
)
|
)
|
||||||
SET(MAIKO_DISPLAY_SDL_HDRS
|
SET(MAIKO_DISPLAY_SDL_HDRS
|
||||||
inc/sdldefs.h
|
inc/sdldefs.h
|
||||||
)
|
)
|
||||||
MESSAGE("-- Configured for SDL2 display")
|
MESSAGE("-- Configured for SDL display")
|
||||||
ELSEIF(MAIKO_DISPLAY_SDL STREQUAL "3")
|
|
||||||
FIND_PACKAGE(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3)
|
|
||||||
SET(MAIKO_DISPLAY_SDL_DEFINITIONS
|
|
||||||
"-DSDL=3"
|
|
||||||
)
|
|
||||||
SET(MAIKO_DISPLAY_SDL_INCLUDE_DIRS SDL3::Headers)
|
|
||||||
SET(MAIKO_DISPLAY_SDL_LIBRARIES SDL3::SDL3)
|
|
||||||
SET(MAIKO_DISPLAY_SDL_SRCS
|
|
||||||
src/sdl.c
|
|
||||||
)
|
|
||||||
SET(MAIKO_DISPLAY_SDL_HDRS
|
|
||||||
inc/sdldefs.h
|
|
||||||
)
|
|
||||||
MESSAGE("-- Configured for SDL3 display")
|
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
# according to: https://cmake.org/pipermail/cmake/2016-October/064342.html
|
# according to: https://cmake.org/pipermail/cmake/2016-October/064342.html
|
||||||
@@ -448,23 +424,23 @@ ADD_CUSTOM_TARGET(gen-vdate
|
|||||||
)
|
)
|
||||||
|
|
||||||
ADD_EXECUTABLE(lde src/ldeboot.c src/unixfork.c)
|
ADD_EXECUTABLE(lde src/ldeboot.c src/unixfork.c)
|
||||||
TARGET_COMPILE_DEFINITIONS(lde PRIVATE ${MAIKO_DEFINITIONS})
|
TARGET_COMPILE_DEFINITIONS(lde PUBLIC ${MAIKO_DEFINITIONS})
|
||||||
TARGET_INCLUDE_DIRECTORIES(lde PRIVATE inc)
|
TARGET_INCLUDE_DIRECTORIES(lde PUBLIC inc)
|
||||||
IF(MAIKO_DISPLAY_X11)
|
IF(MAIKO_DISPLAY_X11)
|
||||||
# Tell it that the X11 launcher is available.
|
# Tell it that the X11 launcher is available.
|
||||||
TARGET_COMPILE_DEFINITIONS(lde PRIVATE ${MAIKO_DISPLAY_X11_DEFINITIONS})
|
TARGET_COMPILE_DEFINITIONS(lde PUBLIC ${MAIKO_DISPLAY_X11_DEFINITIONS})
|
||||||
# This is needed so that it can call XOpenDisplay.
|
# This is needed so that it can call XOpenDisplay.
|
||||||
TARGET_LINK_LIBRARIES(lde X11::X11)
|
TARGET_LINK_LIBRARIES(lde X11::X11)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF(MAIKO_DISPLAY_SDL)
|
IF(MAIKO_DISPLAY_SDL)
|
||||||
# Tell it that the SDL launcher is available.
|
# Tell it that the SDL launcher is available.
|
||||||
TARGET_COMPILE_DEFINITIONS(lde PRIVATE ${MAIKO_DISPLAY_SDL_DEFINITIONS})
|
TARGET_COMPILE_DEFINITIONS(lde PUBLIC ${MAIKO_DISPLAY_SDL_DEFINITIONS})
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
ADD_EXECUTABLE(ldeether src/ldeether.c src/dlpi.c)
|
ADD_EXECUTABLE(ldeether src/ldeether.c src/dlpi.c)
|
||||||
TARGET_COMPILE_DEFINITIONS(ldeether PRIVATE ${MAIKO_DEFINITIONS})
|
TARGET_COMPILE_DEFINITIONS(ldeether PUBLIC ${MAIKO_DEFINITIONS})
|
||||||
TARGET_INCLUDE_DIRECTORIES(ldeether PRIVATE inc)
|
TARGET_INCLUDE_DIRECTORIES(ldeether PUBLIC inc)
|
||||||
|
|
||||||
IF(MAIKO_DISPLAY_X11)
|
IF(MAIKO_DISPLAY_X11)
|
||||||
ADD_EXECUTABLE(ldex
|
ADD_EXECUTABLE(ldex
|
||||||
@@ -475,21 +451,9 @@ IF(MAIKO_DISPLAY_X11)
|
|||||||
${MAIKO_DISPLAY_X11_SRCS}
|
${MAIKO_DISPLAY_X11_SRCS}
|
||||||
${MAIKO_DISPLAY_X11_HDRS}
|
${MAIKO_DISPLAY_X11_HDRS}
|
||||||
)
|
)
|
||||||
TARGET_COMPILE_DEFINITIONS(ldex PRIVATE ${MAIKO_DEFINITIONS} ${MAIKO_DISPLAY_X11_DEFINITIONS})
|
TARGET_COMPILE_DEFINITIONS(ldex PUBLIC ${MAIKO_DEFINITIONS} ${MAIKO_DISPLAY_X11_DEFINITIONS})
|
||||||
TARGET_INCLUDE_DIRECTORIES(ldex PRIVATE inc)
|
TARGET_INCLUDE_DIRECTORIES(ldex PUBLIC inc)
|
||||||
TARGET_LINK_LIBRARIES(ldex ${MAIKO_LIBRARIES} ${MAIKO_DISPLAY_X11_LIBRARIES})
|
TARGET_LINK_LIBRARIES(ldex ${MAIKO_LIBRARIES} ${MAIKO_DISPLAY_X11_LIBRARIES})
|
||||||
|
|
||||||
ADD_EXECUTABLE(ldeinit
|
|
||||||
src/main.c
|
|
||||||
vdate.c
|
|
||||||
${MAIKO_SRCS}
|
|
||||||
${MAIKO_HDRS}
|
|
||||||
${MAIKO_DISPLAY_X11_SRCS}
|
|
||||||
${MAIKO_DISPLAY_X11_HDRS}
|
|
||||||
)
|
|
||||||
TARGET_COMPILE_DEFINITIONS(ldeinit PRIVATE ${MAIKO_INIT_DEFINITIONS} ${MAIKO_DISPLAY_X11_DEFINITIONS})
|
|
||||||
TARGET_INCLUDE_DIRECTORIES(ldeinit PRIVATE inc)
|
|
||||||
TARGET_LINK_LIBRARIES(ldeinit ${MAIKO_LIBRARIES} ${MAIKO_DISPLAY_X11_LIBRARIES})
|
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF(MAIKO_DISPLAY_SDL)
|
IF(MAIKO_DISPLAY_SDL)
|
||||||
@@ -501,32 +465,20 @@ IF(MAIKO_DISPLAY_SDL)
|
|||||||
${MAIKO_DISPLAY_SDL_SRCS}
|
${MAIKO_DISPLAY_SDL_SRCS}
|
||||||
${MAIKO_DISPLAY_SDL_HDRS}
|
${MAIKO_DISPLAY_SDL_HDRS}
|
||||||
)
|
)
|
||||||
TARGET_COMPILE_DEFINITIONS(ldesdl PRIVATE ${MAIKO_DEFINITIONS} ${MAIKO_DISPLAY_SDL_DEFINITIONS})
|
TARGET_COMPILE_DEFINITIONS(ldesdl PUBLIC ${MAIKO_DEFINITIONS} ${MAIKO_DISPLAY_SDL_DEFINITIONS})
|
||||||
TARGET_INCLUDE_DIRECTORIES(ldesdl PRIVATE inc)
|
TARGET_INCLUDE_DIRECTORIES(ldesdl PUBLIC inc)
|
||||||
TARGET_INCLUDE_DIRECTORIES(ldesdl PRIVATE ${MAIKO_DISPLAY_SDL_INCLUDE_DIRS})
|
TARGET_INCLUDE_DIRECTORIES(ldesdl PRIVATE ${SDL2_INCLUDE_DIRS})
|
||||||
|
|
||||||
IF(APPLE)
|
|
||||||
IF(MAIKO_DISPLAY_SDL STREQUAL "3")
|
|
||||||
#
|
|
||||||
# Until CMake properly supports .xcframeworks, https://gitlab.kitware.com/cmake/cmake/-/issues/25998
|
|
||||||
# we need to manually set the RPATH to produce a working executable
|
|
||||||
#
|
|
||||||
MESSAGE("-- Applying fixup for macOS RPATH for SDL3.xcframework")
|
|
||||||
SET_PROPERTY(TARGET ldesdl APPEND PROPERTY BUILD_RPATH "/Library/Frameworks/SDL3.xcframework/macos-arm64_x86_64")
|
|
||||||
#
|
|
||||||
ENDIF()
|
|
||||||
ENDIF()
|
|
||||||
TARGET_LINK_LIBRARIES(ldesdl ${MAIKO_LIBRARIES} ${MAIKO_DISPLAY_SDL_LIBRARIES})
|
TARGET_LINK_LIBRARIES(ldesdl ${MAIKO_LIBRARIES} ${MAIKO_DISPLAY_SDL_LIBRARIES})
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
ADD_EXECUTABLE(mkvdate src/mkvdate.c)
|
ADD_EXECUTABLE(mkvdate src/mkvdate.c)
|
||||||
TARGET_COMPILE_DEFINITIONS(mkvdate PRIVATE ${MAIKO_DEFINITIONS})
|
TARGET_COMPILE_DEFINITIONS(mkvdate PUBLIC ${MAIKO_DEFINITIONS})
|
||||||
TARGET_INCLUDE_DIRECTORIES(mkvdate PRIVATE inc)
|
TARGET_INCLUDE_DIRECTORIES(mkvdate PUBLIC inc)
|
||||||
|
|
||||||
ADD_EXECUTABLE(setsout src/setsout.c src/byteswap.c)
|
ADD_EXECUTABLE(setsout src/setsout.c src/byteswap.c)
|
||||||
TARGET_COMPILE_DEFINITIONS(setsout PRIVATE ${MAIKO_DEFINITIONS})
|
TARGET_COMPILE_DEFINITIONS(setsout PUBLIC ${MAIKO_DEFINITIONS})
|
||||||
TARGET_INCLUDE_DIRECTORIES(setsout PRIVATE inc)
|
TARGET_INCLUDE_DIRECTORIES(setsout PUBLIC inc)
|
||||||
|
|
||||||
ADD_EXECUTABLE(tstsout src/tstsout.c src/byteswap.c)
|
ADD_EXECUTABLE(tstsout src/tstsout.c src/byteswap.c)
|
||||||
TARGET_COMPILE_DEFINITIONS(tstsout PRIVATE ${MAIKO_DEFINITIONS})
|
TARGET_COMPILE_DEFINITIONS(tstsout PUBLIC ${MAIKO_DEFINITIONS})
|
||||||
TARGET_INCLUDE_DIRECTORIES(tstsout PRIVATE inc)
|
TARGET_INCLUDE_DIRECTORIES(tstsout PUBLIC inc)
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Maiko is the implementation of the Medley Interlisp virtual machine, for a
|
|||||||
byte-coded Lisp instruction set and some low-level functions for
|
byte-coded Lisp instruction set and some low-level functions for
|
||||||
connecting with Lisp for access to display (via X11) and disk etc.
|
connecting with Lisp for access to display (via X11) and disk etc.
|
||||||
|
|
||||||
For an overview, see [Medley Interlisp Introduction](https://interlisp.org/medley/using/docs/medley/).
|
For an overview, see [Medley Interlisp Introduction](https://github.com/Interlisp/medley/wiki/Medley-Interlisp-Introduction).
|
||||||
|
|
||||||
See [the Medley repository](https://github.com/Interlisp/medley) for
|
See [the Medley repository](https://github.com/Interlisp/medley) for
|
||||||
* [Issues](https://github.com/Interlisp/medley/issues) (note that maiko issues are there too)
|
* [Issues](https://github.com/Interlisp/medley/issues) (note that maiko issues are there too)
|
||||||
|
|||||||
1231
bin/config.guess
vendored
1231
bin/config.guess
vendored
File diff suppressed because it is too large
Load Diff
310
bin/config.sub
vendored
310
bin/config.sub
vendored
@@ -1,14 +1,12 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Configuration validation subroutine script.
|
# Configuration validation subroutine script.
|
||||||
# Copyright 1992-2024 Free Software Foundation, Inc.
|
# Copyright 1992-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# shellcheck disable=SC2006,SC2268 # see below for rationale
|
timestamp='2020-08-17'
|
||||||
|
|
||||||
timestamp='2024-01-01'
|
|
||||||
|
|
||||||
# This file is free software; you can redistribute it and/or modify it
|
# This file is free software; you can redistribute it and/or modify it
|
||||||
# under the terms of the GNU General Public License as published by
|
# under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation; either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful, but
|
# This program is distributed in the hope that it will be useful, but
|
||||||
@@ -35,7 +33,7 @@ timestamp='2024-01-01'
|
|||||||
# Otherwise, we print the canonical config type on stdout and succeed.
|
# Otherwise, we print the canonical config type on stdout and succeed.
|
||||||
|
|
||||||
# You can get the latest version of this script from:
|
# You can get the latest version of this script from:
|
||||||
# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
|
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
|
||||||
|
|
||||||
# This file is supposed to be the same for all GNU packages
|
# This file is supposed to be the same for all GNU packages
|
||||||
# and recognize all the CPU types, system types and aliases
|
# and recognize all the CPU types, system types and aliases
|
||||||
@@ -52,13 +50,6 @@ timestamp='2024-01-01'
|
|||||||
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
|
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
|
||||||
# It is wrong to echo any other type of specification.
|
# It is wrong to echo any other type of specification.
|
||||||
|
|
||||||
# The "shellcheck disable" line above the timestamp inhibits complaints
|
|
||||||
# about features and limitations of the classic Bourne shell that were
|
|
||||||
# superseded or lifted in POSIX. However, this script identifies a wide
|
|
||||||
# variety of pre-POSIX systems that do not have POSIX shells at all, and
|
|
||||||
# even some reasonably current systems (Solaris 10 as case-in-point) still
|
|
||||||
# have a pre-POSIX /bin/sh.
|
|
||||||
|
|
||||||
me=`echo "$0" | sed -e 's,.*/,,'`
|
me=`echo "$0" | sed -e 's,.*/,,'`
|
||||||
|
|
||||||
usage="\
|
usage="\
|
||||||
@@ -76,13 +67,13 @@ Report bugs and patches to <config-patches@gnu.org>."
|
|||||||
version="\
|
version="\
|
||||||
GNU config.sub ($timestamp)
|
GNU config.sub ($timestamp)
|
||||||
|
|
||||||
Copyright 1992-2024 Free Software Foundation, Inc.
|
Copyright 1992-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This is free software; see the source for copying conditions. There is NO
|
This is free software; see the source for copying conditions. There is NO
|
||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||||
|
|
||||||
help="
|
help="
|
||||||
Try '$me --help' for more information."
|
Try \`$me --help' for more information."
|
||||||
|
|
||||||
# Parse command line
|
# Parse command line
|
||||||
while test $# -gt 0 ; do
|
while test $# -gt 0 ; do
|
||||||
@@ -121,16 +112,14 @@ esac
|
|||||||
|
|
||||||
# Split fields of configuration type
|
# Split fields of configuration type
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
saved_IFS=$IFS
|
|
||||||
IFS="-" read field1 field2 field3 field4 <<EOF
|
IFS="-" read field1 field2 field3 field4 <<EOF
|
||||||
$1
|
$1
|
||||||
EOF
|
EOF
|
||||||
IFS=$saved_IFS
|
|
||||||
|
|
||||||
# Separate into logical components for further validation
|
# Separate into logical components for further validation
|
||||||
case $1 in
|
case $1 in
|
||||||
*-*-*-*-*)
|
*-*-*-*-*)
|
||||||
echo "Invalid configuration '$1': more than four components" >&2
|
echo Invalid configuration \`"$1"\': more than four components >&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
*-*-*-*)
|
*-*-*-*)
|
||||||
@@ -145,8 +134,7 @@ case $1 in
|
|||||||
nto-qnx* | linux-* | uclinux-uclibc* \
|
nto-qnx* | linux-* | uclinux-uclibc* \
|
||||||
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
|
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
|
||||||
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
|
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
|
||||||
| storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \
|
| storm-chaos* | os2-emx* | rtmk-nova*)
|
||||||
| windows-* )
|
|
||||||
basic_machine=$field1
|
basic_machine=$field1
|
||||||
basic_os=$maybe_os
|
basic_os=$maybe_os
|
||||||
;;
|
;;
|
||||||
@@ -175,10 +163,6 @@ case $1 in
|
|||||||
basic_machine=$field1
|
basic_machine=$field1
|
||||||
basic_os=$field2
|
basic_os=$field2
|
||||||
;;
|
;;
|
||||||
zephyr*)
|
|
||||||
basic_machine=$field1-unknown
|
|
||||||
basic_os=$field2
|
|
||||||
;;
|
|
||||||
# Manufacturers
|
# Manufacturers
|
||||||
dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
|
dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
|
||||||
| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
|
| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
|
||||||
@@ -938,13 +922,11 @@ case $basic_machine in
|
|||||||
|
|
||||||
*-*)
|
*-*)
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
saved_IFS=$IFS
|
|
||||||
IFS="-" read cpu vendor <<EOF
|
IFS="-" read cpu vendor <<EOF
|
||||||
$basic_machine
|
$basic_machine
|
||||||
EOF
|
EOF
|
||||||
IFS=$saved_IFS
|
|
||||||
;;
|
;;
|
||||||
# We use 'pc' rather than 'unknown'
|
# We use `pc' rather than `unknown'
|
||||||
# because (1) that's what they normally are, and
|
# because (1) that's what they normally are, and
|
||||||
# (2) the word "unknown" tends to confuse beginning users.
|
# (2) the word "unknown" tends to confuse beginning users.
|
||||||
i*86 | x86_64)
|
i*86 | x86_64)
|
||||||
@@ -1021,11 +1003,6 @@ case $cpu-$vendor in
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
# Here we normalize CPU types with a missing or matching vendor
|
# Here we normalize CPU types with a missing or matching vendor
|
||||||
armh-unknown | armh-alt)
|
|
||||||
cpu=armv7l
|
|
||||||
vendor=alt
|
|
||||||
basic_os=${basic_os:-linux-gnueabihf}
|
|
||||||
;;
|
|
||||||
dpx20-unknown | dpx20-bull)
|
dpx20-unknown | dpx20-bull)
|
||||||
cpu=rs6000
|
cpu=rs6000
|
||||||
vendor=bull
|
vendor=bull
|
||||||
@@ -1076,7 +1053,7 @@ case $cpu-$vendor in
|
|||||||
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
|
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
|
||||||
cpu=i586
|
cpu=i586
|
||||||
;;
|
;;
|
||||||
pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
|
pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
|
||||||
cpu=i686
|
cpu=i686
|
||||||
;;
|
;;
|
||||||
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
|
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
|
||||||
@@ -1127,7 +1104,7 @@ case $cpu-$vendor in
|
|||||||
xscale-* | xscalee[bl]-*)
|
xscale-* | xscalee[bl]-*)
|
||||||
cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
|
cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
|
||||||
;;
|
;;
|
||||||
arm64-* | aarch64le-*)
|
arm64-*)
|
||||||
cpu=aarch64
|
cpu=aarch64
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -1181,14 +1158,14 @@ case $cpu-$vendor in
|
|||||||
case $cpu in
|
case $cpu in
|
||||||
1750a | 580 \
|
1750a | 580 \
|
||||||
| a29k \
|
| a29k \
|
||||||
| aarch64 | aarch64_be | aarch64c | arm64ec \
|
| aarch64 | aarch64_be \
|
||||||
| abacus \
|
| abacus \
|
||||||
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
|
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
|
||||||
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
|
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
|
||||||
| alphapca5[67] | alpha64pca5[67] \
|
| alphapca5[67] | alpha64pca5[67] \
|
||||||
| am33_2.0 \
|
| am33_2.0 \
|
||||||
| amdgcn \
|
| amdgcn \
|
||||||
| arc | arceb | arc32 | arc64 \
|
| arc | arceb \
|
||||||
| arm | arm[lb]e | arme[lb] | armv* \
|
| arm | arm[lb]e | arme[lb] | armv* \
|
||||||
| avr | avr32 \
|
| avr | avr32 \
|
||||||
| asmjs \
|
| asmjs \
|
||||||
@@ -1200,29 +1177,45 @@ case $cpu-$vendor in
|
|||||||
| d10v | d30v | dlx | dsp16xx \
|
| d10v | d30v | dlx | dsp16xx \
|
||||||
| e2k | elxsi | epiphany \
|
| e2k | elxsi | epiphany \
|
||||||
| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
|
| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
|
||||||
| javascript \
|
|
||||||
| h8300 | h8500 \
|
| h8300 | h8500 \
|
||||||
| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||||
| hexagon \
|
| hexagon \
|
||||||
| i370 | i*86 | i860 | i960 | ia16 | ia64 \
|
| i370 | i*86 | i860 | i960 | ia16 | ia64 \
|
||||||
| ip2k | iq2000 \
|
| ip2k | iq2000 \
|
||||||
| k1om \
|
| k1om \
|
||||||
| kvx \
|
|
||||||
| le32 | le64 \
|
| le32 | le64 \
|
||||||
| lm32 \
|
| lm32 \
|
||||||
| loongarch32 | loongarch64 \
|
|
||||||
| m32c | m32r | m32rle \
|
| m32c | m32r | m32rle \
|
||||||
| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
|
| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
|
||||||
| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
|
| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
|
||||||
| m88110 | m88k | maxq | mb | mcore | mep | metag \
|
| m88110 | m88k | maxq | mb | mcore | mep | metag \
|
||||||
| microblaze | microblazeel \
|
| microblaze | microblazeel \
|
||||||
| mips* \
|
| mips | mipsbe | mipseb | mipsel | mipsle \
|
||||||
|
| mips16 \
|
||||||
|
| mips64 | mips64eb | mips64el \
|
||||||
|
| mips64octeon | mips64octeonel \
|
||||||
|
| mips64orion | mips64orionel \
|
||||||
|
| mips64r5900 | mips64r5900el \
|
||||||
|
| mips64vr | mips64vrel \
|
||||||
|
| mips64vr4100 | mips64vr4100el \
|
||||||
|
| mips64vr4300 | mips64vr4300el \
|
||||||
|
| mips64vr5000 | mips64vr5000el \
|
||||||
|
| mips64vr5900 | mips64vr5900el \
|
||||||
|
| mipsisa32 | mipsisa32el \
|
||||||
|
| mipsisa32r2 | mipsisa32r2el \
|
||||||
|
| mipsisa32r6 | mipsisa32r6el \
|
||||||
|
| mipsisa64 | mipsisa64el \
|
||||||
|
| mipsisa64r2 | mipsisa64r2el \
|
||||||
|
| mipsisa64r6 | mipsisa64r6el \
|
||||||
|
| mipsisa64sb1 | mipsisa64sb1el \
|
||||||
|
| mipsisa64sr71k | mipsisa64sr71kel \
|
||||||
|
| mipsr5900 | mipsr5900el \
|
||||||
|
| mipstx39 | mipstx39el \
|
||||||
| mmix \
|
| mmix \
|
||||||
| mn10200 | mn10300 \
|
| mn10200 | mn10300 \
|
||||||
| moxie \
|
| moxie \
|
||||||
| mt \
|
| mt \
|
||||||
| msp430 \
|
| msp430 \
|
||||||
| nanomips* \
|
|
||||||
| nds32 | nds32le | nds32be \
|
| nds32 | nds32le | nds32be \
|
||||||
| nfp \
|
| nfp \
|
||||||
| nios | nios2 | nios2eb | nios2el \
|
| nios | nios2 | nios2eb | nios2el \
|
||||||
@@ -1236,7 +1229,7 @@ case $cpu-$vendor in
|
|||||||
| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
|
| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
|
||||||
| pru \
|
| pru \
|
||||||
| pyramid \
|
| pyramid \
|
||||||
| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
|
| riscv | riscv32 | riscv64 \
|
||||||
| rl78 | romp | rs6000 | rx \
|
| rl78 | romp | rs6000 | rx \
|
||||||
| s390 | s390x \
|
| s390 | s390x \
|
||||||
| score \
|
| score \
|
||||||
@@ -1248,13 +1241,11 @@ case $cpu-$vendor in
|
|||||||
| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
|
| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
|
||||||
| spu \
|
| spu \
|
||||||
| tahoe \
|
| tahoe \
|
||||||
| thumbv7* \
|
|
||||||
| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
|
| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
|
||||||
| tron \
|
| tron \
|
||||||
| ubicom32 \
|
| ubicom32 \
|
||||||
| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
|
| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
|
||||||
| vax \
|
| vax \
|
||||||
| vc4 \
|
|
||||||
| visium \
|
| visium \
|
||||||
| w65 \
|
| w65 \
|
||||||
| wasm32 | wasm64 \
|
| wasm32 | wasm64 \
|
||||||
@@ -1266,7 +1257,7 @@ case $cpu-$vendor in
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
|
echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -1287,45 +1278,34 @@ esac
|
|||||||
|
|
||||||
# Decode manufacturer-specific aliases for certain operating systems.
|
# Decode manufacturer-specific aliases for certain operating systems.
|
||||||
|
|
||||||
if test x"$basic_os" != x
|
if test x$basic_os != x
|
||||||
then
|
then
|
||||||
|
|
||||||
# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
|
# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
|
||||||
# set os.
|
# set os.
|
||||||
obj=
|
|
||||||
case $basic_os in
|
case $basic_os in
|
||||||
gnu/linux*)
|
gnu/linux*)
|
||||||
kernel=linux
|
kernel=linux
|
||||||
os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
|
os=`echo $basic_os | sed -e 's|gnu/linux|gnu|'`
|
||||||
;;
|
|
||||||
os2-emx)
|
|
||||||
kernel=os2
|
|
||||||
os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
|
|
||||||
;;
|
;;
|
||||||
nto-qnx*)
|
nto-qnx*)
|
||||||
kernel=nto
|
kernel=nto
|
||||||
os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
|
os=`echo $basic_os | sed -e 's|nto-qnx|qnx|'`
|
||||||
;;
|
;;
|
||||||
*-*)
|
*-*)
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
saved_IFS=$IFS
|
|
||||||
IFS="-" read kernel os <<EOF
|
IFS="-" read kernel os <<EOF
|
||||||
$basic_os
|
$basic_os
|
||||||
EOF
|
EOF
|
||||||
IFS=$saved_IFS
|
|
||||||
;;
|
;;
|
||||||
# Default OS when just kernel was specified
|
# Default OS when just kernel was specified
|
||||||
nto*)
|
nto*)
|
||||||
kernel=nto
|
kernel=nto
|
||||||
os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
|
os=`echo $basic_os | sed -e 's|nto|qnx|'`
|
||||||
;;
|
;;
|
||||||
linux*)
|
linux*)
|
||||||
kernel=linux
|
kernel=linux
|
||||||
os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
|
os=`echo $basic_os | sed -e 's|linux|gnu|'`
|
||||||
;;
|
|
||||||
managarm*)
|
|
||||||
kernel=managarm
|
|
||||||
os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
kernel=
|
kernel=
|
||||||
@@ -1346,7 +1326,7 @@ case $os in
|
|||||||
os=cnk
|
os=cnk
|
||||||
;;
|
;;
|
||||||
solaris1 | solaris1.*)
|
solaris1 | solaris1.*)
|
||||||
os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
|
os=`echo $os | sed -e 's|solaris1|sunos4|'`
|
||||||
;;
|
;;
|
||||||
solaris)
|
solaris)
|
||||||
os=solaris2
|
os=solaris2
|
||||||
@@ -1375,7 +1355,7 @@ case $os in
|
|||||||
os=sco3.2v4
|
os=sco3.2v4
|
||||||
;;
|
;;
|
||||||
sco3.2.[4-9]*)
|
sco3.2.[4-9]*)
|
||||||
os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
|
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
|
||||||
;;
|
;;
|
||||||
sco*v* | scout)
|
sco*v* | scout)
|
||||||
# Don't match below
|
# Don't match below
|
||||||
@@ -1387,7 +1367,13 @@ case $os in
|
|||||||
os=psos
|
os=psos
|
||||||
;;
|
;;
|
||||||
qnx*)
|
qnx*)
|
||||||
os=qnx
|
case $cpu in
|
||||||
|
x86 | i*86)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
os=nto-$os
|
||||||
|
;;
|
||||||
|
esac
|
||||||
;;
|
;;
|
||||||
hiux*)
|
hiux*)
|
||||||
os=hiuxwe2
|
os=hiuxwe2
|
||||||
@@ -1451,7 +1437,7 @@ case $os in
|
|||||||
;;
|
;;
|
||||||
# Preserve the version number of sinix5.
|
# Preserve the version number of sinix5.
|
||||||
sinix5.*)
|
sinix5.*)
|
||||||
os=`echo "$os" | sed -e 's|sinix|sysv|'`
|
os=`echo $os | sed -e 's|sinix|sysv|'`
|
||||||
;;
|
;;
|
||||||
sinix*)
|
sinix*)
|
||||||
os=sysv4
|
os=sysv4
|
||||||
@@ -1492,16 +1478,10 @@ case $os in
|
|||||||
os=eabi
|
os=eabi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
os=
|
os=elf
|
||||||
obj=elf
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
aout* | coff* | elf* | pe*)
|
|
||||||
# These are machine code file formats, not OSes
|
|
||||||
obj=$os
|
|
||||||
os=
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
# No normalization, but not necessarily accepted, that comes below.
|
# No normalization, but not necessarily accepted, that comes below.
|
||||||
;;
|
;;
|
||||||
@@ -1520,15 +1500,12 @@ else
|
|||||||
# system, and we'll never get to this point.
|
# system, and we'll never get to this point.
|
||||||
|
|
||||||
kernel=
|
kernel=
|
||||||
obj=
|
|
||||||
case $cpu-$vendor in
|
case $cpu-$vendor in
|
||||||
score-*)
|
score-*)
|
||||||
os=
|
os=elf
|
||||||
obj=elf
|
|
||||||
;;
|
;;
|
||||||
spu-*)
|
spu-*)
|
||||||
os=
|
os=elf
|
||||||
obj=elf
|
|
||||||
;;
|
;;
|
||||||
*-acorn)
|
*-acorn)
|
||||||
os=riscix1.2
|
os=riscix1.2
|
||||||
@@ -1538,35 +1515,28 @@ case $cpu-$vendor in
|
|||||||
os=gnu
|
os=gnu
|
||||||
;;
|
;;
|
||||||
arm*-semi)
|
arm*-semi)
|
||||||
os=
|
os=aout
|
||||||
obj=aout
|
|
||||||
;;
|
;;
|
||||||
c4x-* | tic4x-*)
|
c4x-* | tic4x-*)
|
||||||
os=
|
os=coff
|
||||||
obj=coff
|
|
||||||
;;
|
;;
|
||||||
c8051-*)
|
c8051-*)
|
||||||
os=
|
os=elf
|
||||||
obj=elf
|
|
||||||
;;
|
;;
|
||||||
clipper-intergraph)
|
clipper-intergraph)
|
||||||
os=clix
|
os=clix
|
||||||
;;
|
;;
|
||||||
hexagon-*)
|
hexagon-*)
|
||||||
os=
|
os=elf
|
||||||
obj=elf
|
|
||||||
;;
|
;;
|
||||||
tic54x-*)
|
tic54x-*)
|
||||||
os=
|
os=coff
|
||||||
obj=coff
|
|
||||||
;;
|
;;
|
||||||
tic55x-*)
|
tic55x-*)
|
||||||
os=
|
os=coff
|
||||||
obj=coff
|
|
||||||
;;
|
;;
|
||||||
tic6x-*)
|
tic6x-*)
|
||||||
os=
|
os=coff
|
||||||
obj=coff
|
|
||||||
;;
|
;;
|
||||||
# This must come before the *-dec entry.
|
# This must come before the *-dec entry.
|
||||||
pdp10-*)
|
pdp10-*)
|
||||||
@@ -1588,24 +1558,19 @@ case $cpu-$vendor in
|
|||||||
os=sunos3
|
os=sunos3
|
||||||
;;
|
;;
|
||||||
m68*-cisco)
|
m68*-cisco)
|
||||||
os=
|
os=aout
|
||||||
obj=aout
|
|
||||||
;;
|
;;
|
||||||
mep-*)
|
mep-*)
|
||||||
os=
|
os=elf
|
||||||
obj=elf
|
|
||||||
;;
|
;;
|
||||||
mips*-cisco)
|
mips*-cisco)
|
||||||
os=
|
os=elf
|
||||||
obj=elf
|
|
||||||
;;
|
;;
|
||||||
mips*-*|nanomips*-*)
|
mips*-*)
|
||||||
os=
|
os=elf
|
||||||
obj=elf
|
|
||||||
;;
|
;;
|
||||||
or32-*)
|
or32-*)
|
||||||
os=
|
os=coff
|
||||||
obj=coff
|
|
||||||
;;
|
;;
|
||||||
*-tti) # must be before sparc entry or we get the wrong os.
|
*-tti) # must be before sparc entry or we get the wrong os.
|
||||||
os=sysv3
|
os=sysv3
|
||||||
@@ -1614,8 +1579,7 @@ case $cpu-$vendor in
|
|||||||
os=sunos4.1.1
|
os=sunos4.1.1
|
||||||
;;
|
;;
|
||||||
pru-*)
|
pru-*)
|
||||||
os=
|
os=elf
|
||||||
obj=elf
|
|
||||||
;;
|
;;
|
||||||
*-be)
|
*-be)
|
||||||
os=beos
|
os=beos
|
||||||
@@ -1696,12 +1660,10 @@ case $cpu-$vendor in
|
|||||||
os=uxpv
|
os=uxpv
|
||||||
;;
|
;;
|
||||||
*-rom68k)
|
*-rom68k)
|
||||||
os=
|
os=coff
|
||||||
obj=coff
|
|
||||||
;;
|
;;
|
||||||
*-*bug)
|
*-*bug)
|
||||||
os=
|
os=coff
|
||||||
obj=coff
|
|
||||||
;;
|
;;
|
||||||
*-apple)
|
*-apple)
|
||||||
os=macos
|
os=macos
|
||||||
@@ -1719,20 +1681,13 @@ esac
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ).
|
# Now, validate our (potentially fixed-up) OS.
|
||||||
|
|
||||||
case $os in
|
case $os in
|
||||||
# Sometimes we do "kernel-libc", so those need to count as OSes.
|
# Sometimes we do "kernel-abi", so those need to count as OSes.
|
||||||
llvm* | musl* | newlib* | relibc* | uclibc*)
|
musl* | newlib* | uclibc*)
|
||||||
;;
|
;;
|
||||||
# Likewise for "kernel-abi"
|
# Likewise for "kernel-libc"
|
||||||
eabi* | gnueabi*)
|
eabi | eabihf | gnueabi | gnueabihf)
|
||||||
;;
|
|
||||||
# VxWorks passes extra cpu info in the 4th filed.
|
|
||||||
simlinux | simwindows | spe)
|
|
||||||
;;
|
|
||||||
# See `case $cpu-$os` validation below
|
|
||||||
ghcjs)
|
|
||||||
;;
|
;;
|
||||||
# Now accept the basic system types.
|
# Now accept the basic system types.
|
||||||
# The portable systems comes first.
|
# The portable systems comes first.
|
||||||
@@ -1742,20 +1697,20 @@ case $os in
|
|||||||
| hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
|
| hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
|
||||||
| sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
|
| sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
|
||||||
| hiux* | abug | nacl* | netware* | windows* \
|
| hiux* | abug | nacl* | netware* | windows* \
|
||||||
| os9* | macos* | osx* | ios* | tvos* | watchos* \
|
| os9* | macos* | osx* | ios* \
|
||||||
| mpw* | magic* | mmixware* | mon960* | lnews* \
|
| mpw* | magic* | mmixware* | mon960* | lnews* \
|
||||||
| amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
|
| amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
|
||||||
| aos* | aros* | cloudabi* | sortix* | twizzler* \
|
| aos* | aros* | cloudabi* | sortix* | twizzler* \
|
||||||
| nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
|
| nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
|
||||||
| clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
|
| clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
|
||||||
| mirbsd* | netbsd* | dicos* | openedition* | ose* \
|
| mirbsd* | netbsd* | dicos* | openedition* | ose* \
|
||||||
| bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
|
| bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
|
||||||
| ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
|
| ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
|
||||||
| bosx* | nextstep* | cxux* | oabi* \
|
| bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
|
||||||
| ptx* | ecoff* | winnt* | domain* | vsta* \
|
| ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
|
||||||
| udi* | lites* | ieee* | go32* | aux* | hcos* \
|
| udi* | lites* | ieee* | go32* | aux* | hcos* \
|
||||||
| chorusrdb* | cegcc* | glidix* | serenity* \
|
| chorusrdb* | cegcc* | glidix* \
|
||||||
| cygwin* | msys* | moss* | proelf* | rtems* \
|
| cygwin* | msys* | pe* | moss* | proelf* | rtems* \
|
||||||
| midipix* | mingw32* | mingw64* | mint* \
|
| midipix* | mingw32* | mingw64* | mint* \
|
||||||
| uxpv* | beos* | mpeix* | udk* | moxiebox* \
|
| uxpv* | beos* | mpeix* | udk* | moxiebox* \
|
||||||
| interix* | uwin* | mks* | rhapsody* | darwin* \
|
| interix* | uwin* | mks* | rhapsody* | darwin* \
|
||||||
@@ -1767,117 +1722,42 @@ case $os in
|
|||||||
| skyos* | haiku* | rdos* | toppers* | drops* | es* \
|
| skyos* | haiku* | rdos* | toppers* | drops* | es* \
|
||||||
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
|
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
|
||||||
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
|
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
|
||||||
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
|
| nsk* | powerunix* | genode* | zvmoe* )
|
||||||
| fiwix* | mlibc* | cos* | mbr* | ironclad* )
|
|
||||||
;;
|
;;
|
||||||
# This one is extra strict with allowed versions
|
# This one is extra strict with allowed versions
|
||||||
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
|
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
|
||||||
# Don't forget version if it is 3.2v4 or newer.
|
# Don't forget version if it is 3.2v4 or newer.
|
||||||
;;
|
;;
|
||||||
# This refers to builds using the UEFI calling convention
|
|
||||||
# (which depends on the architecture) and PE file format.
|
|
||||||
# Note that this is both a different calling convention and
|
|
||||||
# different file format than that of GNU-EFI
|
|
||||||
# (x86_64-w64-mingw32).
|
|
||||||
uefi)
|
|
||||||
;;
|
|
||||||
none)
|
none)
|
||||||
;;
|
;;
|
||||||
kernel* | msvc* )
|
|
||||||
# Restricted further below
|
|
||||||
;;
|
|
||||||
'')
|
|
||||||
if test x"$obj" = x
|
|
||||||
then
|
|
||||||
echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
|
echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case $obj in
|
|
||||||
aout* | coff* | elf* | pe*)
|
|
||||||
;;
|
|
||||||
'')
|
|
||||||
# empty is fine
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Here we handle the constraint that a (synthetic) cpu and os are
|
|
||||||
# valid only in combination with each other and nowhere else.
|
|
||||||
case $cpu-$os in
|
|
||||||
# The "javascript-unknown-ghcjs" triple is used by GHC; we
|
|
||||||
# accept it here in order to tolerate that, but reject any
|
|
||||||
# variations.
|
|
||||||
javascript-ghcjs)
|
|
||||||
;;
|
|
||||||
javascript-* | *-ghcjs)
|
|
||||||
echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2
|
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# As a final step for OS-related things, validate the OS-kernel combination
|
# As a final step for OS-related things, validate the OS-kernel combination
|
||||||
# (given a valid OS), if there is a kernel.
|
# (given a valid OS), if there is a kernel.
|
||||||
case $kernel-$os-$obj in
|
case $kernel-$os in
|
||||||
linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \
|
linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
|
||||||
| linux-mlibc*- | linux-musl*- | linux-newlib*- \
|
|
||||||
| linux-relibc*- | linux-uclibc*- )
|
|
||||||
;;
|
;;
|
||||||
uclinux-uclibc*- )
|
-dietlibc* | -newlib* | -musl* | -uclibc* )
|
||||||
;;
|
|
||||||
managarm-mlibc*- | managarm-kernel*- )
|
|
||||||
;;
|
|
||||||
windows*-msvc*-)
|
|
||||||
;;
|
|
||||||
-dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \
|
|
||||||
| -uclibc*- )
|
|
||||||
# These are just libc implementations, not actual OSes, and thus
|
# These are just libc implementations, not actual OSes, and thus
|
||||||
# require a kernel.
|
# require a kernel.
|
||||||
echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
|
echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
-kernel*- )
|
kfreebsd*-gnu* | kopensolaris*-gnu*)
|
||||||
echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
|
|
||||||
exit 1
|
|
||||||
;;
|
;;
|
||||||
*-kernel*- )
|
nto-qnx*)
|
||||||
echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
|
|
||||||
exit 1
|
|
||||||
;;
|
;;
|
||||||
*-msvc*- )
|
*-eabi* | *-gnueabi*)
|
||||||
echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
|
|
||||||
exit 1
|
|
||||||
;;
|
;;
|
||||||
kfreebsd*-gnu*- | kopensolaris*-gnu*-)
|
-*)
|
||||||
;;
|
|
||||||
vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)
|
|
||||||
;;
|
|
||||||
nto-qnx*-)
|
|
||||||
;;
|
|
||||||
os2-emx-)
|
|
||||||
;;
|
|
||||||
*-eabi*- | *-gnueabi*-)
|
|
||||||
;;
|
|
||||||
none--*)
|
|
||||||
# None (no kernel, i.e. freestanding / bare metal),
|
|
||||||
# can be paired with an machine code file format
|
|
||||||
;;
|
|
||||||
-*-)
|
|
||||||
# Blank kernel with real OS is always fine.
|
# Blank kernel with real OS is always fine.
|
||||||
;;
|
;;
|
||||||
--*)
|
*-*)
|
||||||
# Blank kernel and OS with real machine code file format is always fine.
|
echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
|
||||||
;;
|
|
||||||
*-*-*)
|
|
||||||
echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
|
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -1960,7 +1840,7 @@ case $vendor in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
|
echo "$cpu-$vendor-${kernel:+$kernel-}$os"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
|
|||||||
@@ -9,8 +9,7 @@
|
|||||||
# #
|
# #
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
|
os=${LDEARCH:-`./config.guess`}
|
||||||
os=${LDEARCH:-`$SCRIPTPATH/config.guess`}
|
|
||||||
# o/s switch block
|
# o/s switch block
|
||||||
case "$os" in
|
case "$os" in
|
||||||
m68k-*) echo m68k ;;
|
m68k-*) echo m68k ;;
|
||||||
|
|||||||
@@ -5,17 +5,11 @@ CC = gcc -m64 $(GCC_CFLAGS) -I/usr/local/include
|
|||||||
|
|
||||||
XFILES = $(OBJECTDIR)sdl.o
|
XFILES = $(OBJECTDIR)sdl.o
|
||||||
|
|
||||||
#
|
XFLAGS = -DSDL
|
||||||
# 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 is normally -O2.
|
||||||
OPTFLAGS = -O2 -g3
|
OPTFLAGS = -O2 -g3
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -lm -L/usr/local/lib -lSDL2
|
LDFLAGS = -lm -L/usr/local/lib -lSDL2
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ XFLAGS = -DXWINDOW
|
|||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O2 -g3
|
OPTFLAGS = -O2 -g3
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||||
LDELDFLAGS = -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
|
OPTFLAGS = -O2 -g
|
||||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) \
|
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) \
|
||||||
-DRELEASE=$(RELEASE) # -DSTACKCHECK -DFSBCHECK -DPCTRACE
|
-DRELEASE=351 # -DSTACKCHECK -DFSBCHECK -DPCTRACE
|
||||||
|
|
||||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||||
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||||
|
|||||||
@@ -4,21 +4,14 @@ CC = clang -target aarch64-apple-darwin $(CLANG_CFLAGS)
|
|||||||
|
|
||||||
XFILES = $(OBJECTDIR)sdl.o
|
XFILES = $(OBJECTDIR)sdl.o
|
||||||
|
|
||||||
#
|
SDLFLAGS = -DSDL -F /Library/Frameworks
|
||||||
# For SDL version 2
|
|
||||||
# -DSDL=2 in SDLFLAGS and -framework SDL2 in LDFLAGS
|
|
||||||
# For SDL version 3
|
|
||||||
# -DSDL=3 in SDLFLAGS and -framework SDL3 in LDFLAGS
|
|
||||||
#
|
|
||||||
|
|
||||||
SDLFLAGS = -DSDL=2 -F /Library/Frameworks
|
|
||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O2 -g
|
OPTFLAGS = -O2 -g
|
||||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||||
DFLAGS = $(DEBUGFLAGS) $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(DEBUGFLAGS) $(SDLFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -rpath /Library/Frameworks -F /Library/Frameworks -framework SDL2
|
LDFLAGS = -F /Library/Frameworks -framework SDL2
|
||||||
LDELDFLAGS =
|
LDELDFLAGS =
|
||||||
|
|
||||||
OBJECTDIR = ../$(RELEASENAME)/
|
OBJECTDIR = ../$(RELEASENAME)/
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ XFILES = $(OBJECTDIR)xmkicon.o \
|
|||||||
XFLAGS = -I/opt/X11/include -DXWINDOW
|
XFLAGS = -I/opt/X11/include -DXWINDOW
|
||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O2
|
OPTFLAGS = -g -O2
|
||||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
DEBUGFLAGS = -DARRAYCHECK -DDTDDEBUG # -DDEBUG -DOPTRACE
|
||||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||||
LDELDFLAGS = -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
|
OPTFLAGS = -O2 -g
|
||||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) \
|
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) \
|
||||||
-DRELEASE=$(RELEASE)
|
-DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/X11/lib -lX11 -lm
|
LDFLAGS = -L/usr/X11/lib -lX11 -lm
|
||||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lm
|
LDELDFLAGS = -L/usr/X11/lib -lX11 -lm
|
||||||
|
|||||||
@@ -2,22 +2,16 @@
|
|||||||
|
|
||||||
CC = clang -m64 -target x86_64-apple-darwin $(CLANG_CFLAGS)
|
CC = clang -m64 -target x86_64-apple-darwin $(CLANG_CFLAGS)
|
||||||
|
|
||||||
#
|
|
||||||
# For SDL version 2
|
|
||||||
# -DSDL=2 in SDLFLAGS and -framework SDL2 in LDFLAGS
|
|
||||||
# For SDL version 3
|
|
||||||
# -DSDL=3 in SDLFLAGS and -framework SDL3 in LDFLAGS
|
|
||||||
#
|
|
||||||
XFILES = $(OBJECTDIR)sdl.o
|
XFILES = $(OBJECTDIR)sdl.o
|
||||||
|
|
||||||
SDLFLAGS = -DSDL=2 -F /Library/Frameworks
|
SDLFLAGS = -DSDL -F /Library/Frameworks
|
||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O2 -g
|
OPTFLAGS = -O2 -g
|
||||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||||
DFLAGS = $(DEBUGFLAGS) $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(DEBUGFLAGS) $(SDLFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -rpath /Library/Frameworks -F /Library/Frameworks -framework SDL2
|
LDFLAGS = -F /Library/Frameworks -framework SDL2
|
||||||
LDELDFLAGS =
|
LDELDFLAGS =
|
||||||
|
|
||||||
OBJECTDIR = ../$(RELEASENAME)/
|
OBJECTDIR = ../$(RELEASENAME)/
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
|
|||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O1 -g
|
OPTFLAGS = -O1 -g
|
||||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
DEBUGFLAGS = -DARRAYCHECK -DDTDDEBUG # -DDEBUG -DOPTRACE
|
||||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||||
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
# Options for Emscripten, WASM and SDL
|
|
||||||
|
|
||||||
CC = emcc $(CLANG_CFLAGS)
|
|
||||||
|
|
||||||
XFILES = $(OBJECTDIR)sdl.o
|
|
||||||
|
|
||||||
#
|
|
||||||
# For SDL version 2
|
|
||||||
# -DSDL=2 and -sUSE_SDL=2 in XFLAGS and -sUSE_SDL=2 in LDFLAGS
|
|
||||||
# For SDL version 3
|
|
||||||
# -DSDL=3 and -sUSE_SDL=3 in XFLAGS and -sUSE_SDL=3 in LDFLAGS
|
|
||||||
#
|
|
||||||
XFLAGS = -DSDL=2 -sUSE_SDL=2
|
|
||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
|
||||||
OPTFLAGS = -O2
|
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DMAIKO_ENABLE_NETHUB
|
|
||||||
|
|
||||||
MEDLEY?=../../medley
|
|
||||||
SYSOUT?=$(MEDLEY)/loadups/full.sysout
|
|
||||||
|
|
||||||
LD = emcc
|
|
||||||
LDFLAGS = -sUSE_SDL=2 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sEXIT_RUNTIME=1 \
|
|
||||||
--preload-file $(SYSOUT)@medley/loadups/full.sysout \
|
|
||||||
--preload-file $(MEDLEY)/loadups/whereis.hash@medley/loadups/whereis.hash \
|
|
||||||
--preload-file $(MEDLEY)/greetfiles/MEDLEYDIR-INIT.LCOM@usr/local/lde/site-init.lisp \
|
|
||||||
--preload-file $(MEDLEY)/docs/@medley/docs \
|
|
||||||
--preload-file $(MEDLEY)/doctools/@medley/doctools \
|
|
||||||
--preload-file $(MEDLEY)/greetfiles/@medley/greetfiles \
|
|
||||||
--preload-file $(MEDLEY)/internal/@medley/internal \
|
|
||||||
--preload-file $(MEDLEY)/sources/@medley/sources \
|
|
||||||
--preload-file $(MEDLEY)/library/@medley/library \
|
|
||||||
--preload-file $(MEDLEY)/lispusers/@medley/lispusers \
|
|
||||||
--preload-file $(MEDLEY)/fonts/@medley/fonts
|
|
||||||
|
|
||||||
LDELDFLAGS =
|
|
||||||
|
|
||||||
OBJECTDIR = ../$(RELEASENAME)/
|
|
||||||
|
|
||||||
default : ../$(OSARCHNAME)/ldesdl.js
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
# Options for Emscripten, WASM and SDL
|
|
||||||
|
|
||||||
CC = emcc $(CLANG_CFLAGS)
|
|
||||||
|
|
||||||
XFILES = $(OBJECTDIR)sdl.o
|
|
||||||
|
|
||||||
#
|
|
||||||
# For SDL version 2
|
|
||||||
# -DSDL=2 and -sUSE_SDL=2 in XFLAGS and -sUSE_SDL=2 in LDFLAGS
|
|
||||||
# For SDL version 3
|
|
||||||
# -DSDL=3 and -sUSE_SDL=3 in XFLAGS and -sUSE_SDL=3 in LDFLAGS
|
|
||||||
#
|
|
||||||
XFLAGS = -DSDL=2 -sUSE_SDL=2
|
|
||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
|
||||||
OPTFLAGS = -O2
|
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DMAIKO_ENABLE_NETHUB
|
|
||||||
|
|
||||||
MEDLEY?=../../medley
|
|
||||||
SYSOUT?=$(MEDLEY)/loadups/full.sysout
|
|
||||||
|
|
||||||
LD = emcc
|
|
||||||
LDFLAGS = -sUSE_SDL=2 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sEXIT_RUNTIME=1 -sFORCE_FILESYSTEM -sLZ4
|
|
||||||
|
|
||||||
LDELDFLAGS =
|
|
||||||
|
|
||||||
OBJECTDIR = ../$(RELEASENAME)/
|
|
||||||
|
|
||||||
default : ../$(OSARCHNAME)/ldesdl.js
|
|
||||||
@@ -4,17 +4,11 @@ CC = clang -m32 $(CLANG_CFLAGS)
|
|||||||
|
|
||||||
XFILES = $(OBJECTDIR)sdl.o
|
XFILES = $(OBJECTDIR)sdl.o
|
||||||
|
|
||||||
#
|
SDLFLAGS = -DSDL -I/usr/local/include
|
||||||
# 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 -I/usr/local/include
|
|
||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O2 -g
|
OPTFLAGS = -O2 -g
|
||||||
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(SDLFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
|
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
|
||||||
LDELDFLAGS =
|
LDELDFLAGS =
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
|||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O2 -g
|
OPTFLAGS = -O2 -g
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||||
|
|||||||
@@ -4,17 +4,11 @@ CC = clang -m64 $(CLANG_CFLAGS)
|
|||||||
|
|
||||||
XFILES = $(OBJECTDIR)sdl.o
|
XFILES = $(OBJECTDIR)sdl.o
|
||||||
|
|
||||||
#
|
SDLFLAGS = -DSDL -I/usr/local/include
|
||||||
# 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 -I/usr/local/include
|
|
||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O2 -g
|
OPTFLAGS = -O2 -g
|
||||||
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(SDLFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
|
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
|
||||||
LDELDFLAGS =
|
LDELDFLAGS =
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
|||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O2 -g
|
OPTFLAGS = -O2 -g
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||||
|
|||||||
@@ -4,17 +4,11 @@ CC = clang -m64 $(CLANG_CFLAGS)
|
|||||||
|
|
||||||
XFILES = $(OBJECTDIR)sdl.o
|
XFILES = $(OBJECTDIR)sdl.o
|
||||||
|
|
||||||
#
|
SDLFLAGS = -DSDL -I/usr/local/include
|
||||||
# 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 -I/usr/local/include
|
|
||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O2 -g
|
OPTFLAGS = -O2 -g
|
||||||
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(SDLFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
|
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
|
||||||
LDELDFLAGS =
|
LDELDFLAGS =
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
|||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O2 -g
|
OPTFLAGS = -O2 -g
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
# Options for Haiku, 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)
|
|
||||||
|
|
||||||
LDFLAGS = -lSDL2 -lnetwork
|
|
||||||
LDELDFLAGS = -lnetwork -lbsd
|
|
||||||
|
|
||||||
OBJECTDIR = ../$(RELEASENAME)/
|
|
||||||
|
|
||||||
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl
|
|
||||||
@@ -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 is normally -O2, for INIT we want unoptimized in case we need to debug it
|
||||||
OPTFLAGS = -O0 -g
|
OPTFLAGS = -O0 -g
|
||||||
DEBUGFLAGS =
|
DEBUGFLAGS =
|
||||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||||
|
|
||||||
LDFLAGS = -L/usr/X11/lib -lX11 -lm
|
LDFLAGS = -L/usr/X11/lib -lX11 -lm
|
||||||
LDELDFLAGS = -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 is normally -O2.
|
||||||
OPTFLAGS = -O0 -g3
|
OPTFLAGS = -O0 -g3
|
||||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||||
|
|
||||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||||
LDELDFLAGS = -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 is normally -O2.
|
||||||
OPTFLAGS = -O0 -g
|
OPTFLAGS = -O0 -g
|
||||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||||
|
|
||||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||||
LDELDFLAGS = -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 is normally -O0 for init
|
||||||
OPTFLAGS = -O0 -g
|
OPTFLAGS = -O0 -g
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
DFLAGS = $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||||
|
|
||||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||||
LDELDFLAGS = -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 is normally -O0 for init
|
||||||
OPTFLAGS = -O0 -g
|
OPTFLAGS = -O0 -g
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
DFLAGS = $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||||
|
|
||||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||||
LDELDFLAGS = -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 is normally -O0 for init
|
||||||
OPTFLAGS = -O0 -g
|
OPTFLAGS = -O0 -g
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
DFLAGS = $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||||
|
|
||||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
# Options for Linux, 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
|
|
||||||
|
|
||||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
|
||||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
|
||||||
|
|
||||||
OBJECTDIR = ../$(RELEASENAME)/
|
|
||||||
|
|
||||||
default : ../$(OSARCHNAME)/ldeinit
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# Options for Linux, x86 processor, X windows, for INIT processing
|
# Options for Linux, x86 processor, X windows, for INIT processing
|
||||||
|
|
||||||
CC = gcc $(GCC_CFLAGS)
|
#CC = gcc -m64 $(GCC_CFLAGS)
|
||||||
#CC = clang $(CLANG_CFLAGS)
|
CC = clang -m64 $(CLANG_CFLAGS)
|
||||||
|
|
||||||
XFILES = $(OBJECTDIR)xmkicon.o \
|
XFILES = $(OBJECTDIR)xmkicon.o \
|
||||||
$(OBJECTDIR)xbbt.o \
|
$(OBJECTDIR)xbbt.o \
|
||||||
@@ -19,7 +19,7 @@ XFLAGS = -DXWINDOW
|
|||||||
# OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it
|
# OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it
|
||||||
OPTFLAGS = -O0 -g
|
OPTFLAGS = -O0 -g
|
||||||
DEBUGFLAGS =
|
DEBUGFLAGS =
|
||||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||||
|
|
||||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
# Options for OpenBSD, Intel x86_64 and X-Window
|
|
||||||
|
|
||||||
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 = -I/usr/X11R6/include -DXWINDOW
|
|
||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
|
||||||
OPTFLAGS = -O2 -g3
|
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
|
||||||
|
|
||||||
LDFLAGS = -L/usr/X11R6/lib -lX11 -lc -lm
|
|
||||||
LDELDFLAGS = -L/usr/X11R6/lib -lX11 -lc -lm
|
|
||||||
|
|
||||||
OBJECTDIR = ../$(RELEASENAME)/
|
|
||||||
|
|
||||||
default : ../$(OSARCHNAME)/ldeinit
|
|
||||||
@@ -50,7 +50,7 @@ DFLAGS = -DINIT \
|
|||||||
$(XFLAGS) \
|
$(XFLAGS) \
|
||||||
$(DEBUGFLAGS) \
|
$(DEBUGFLAGS) \
|
||||||
$(MACHINEFLAGS) \
|
$(MACHINEFLAGS) \
|
||||||
-DNOVERSION -DRELEASE=$(RELEASE)
|
-DNOVERSION -DRELEASE=351
|
||||||
|
|
||||||
|
|
||||||
LDFLAGS = -lX11 -lc -lm -lsocket -lnsl
|
LDFLAGS = -lX11 -lc -lm -lsocket -lnsl
|
||||||
|
|||||||
@@ -5,17 +5,11 @@ CC = gcc -m32 $(GCC_CFLAGS)
|
|||||||
|
|
||||||
XFILES = $(OBJECTDIR)sdl.o
|
XFILES = $(OBJECTDIR)sdl.o
|
||||||
|
|
||||||
#
|
XFLAGS = -DSDL
|
||||||
# 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 is normally -O2.
|
||||||
OPTFLAGS = -O2 -g3
|
OPTFLAGS = -O2 -g3
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -lm -lSDL2
|
LDFLAGS = -lm -lSDL2
|
||||||
LDELDFLAGS =
|
LDELDFLAGS =
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ XFLAGS = -DXWINDOW
|
|||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O2 -g3
|
OPTFLAGS = -O2 -g3
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||||
|
|||||||
@@ -5,17 +5,11 @@ CC = gcc $(GCC_CFLAGS)
|
|||||||
|
|
||||||
XFILES = $(OBJECTDIR)sdl.o
|
XFILES = $(OBJECTDIR)sdl.o
|
||||||
|
|
||||||
#
|
SDLFLAGS = -DSDL
|
||||||
# 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 is normally -O2.
|
||||||
OPTFLAGS = -O2 -g3
|
OPTFLAGS = -O2 -g3
|
||||||
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(SDLFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -lSDL2 -lm
|
LDFLAGS = -lSDL2 -lm
|
||||||
LDELDFLAGS =
|
LDELDFLAGS =
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Options for Linux, aarch64 and X-Window
|
# Options for Linux, ARMv7 and X-Window
|
||||||
|
|
||||||
CC = gcc $(GCC_CFLAGS)
|
CC = gcc $(GCC_CFLAGS)
|
||||||
#CC = clang $(CLANG_CFLAGS)
|
#CC = clang $(CLANG_CFLAGS)
|
||||||
@@ -17,7 +17,7 @@ XFLAGS = -DXWINDOW
|
|||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O2 -g3
|
OPTFLAGS = -O2 -g3
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||||
|
|||||||
@@ -5,17 +5,11 @@ CC = gcc $(GCC_CFLAGS)
|
|||||||
|
|
||||||
XFILES = $(OBJECTDIR)sdl.o
|
XFILES = $(OBJECTDIR)sdl.o
|
||||||
|
|
||||||
#
|
XFLAGS = -DSDL
|
||||||
# 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 is normally -O2.
|
||||||
OPTFLAGS = -O2 -g3
|
OPTFLAGS = -O2 -g3
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -lm -lSDL2
|
LDFLAGS = -lm -lSDL2
|
||||||
LDELDFLAGS =
|
LDELDFLAGS =
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ XFLAGS = -DXWINDOW
|
|||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O2 -g3
|
OPTFLAGS = -O2 -g3
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||||
|
|||||||
@@ -5,17 +5,11 @@ CC = gcc -m64 $(GCC_CFLAGS)
|
|||||||
|
|
||||||
XFILES = $(OBJECTDIR)sdl.o
|
XFILES = $(OBJECTDIR)sdl.o
|
||||||
|
|
||||||
#
|
XFLAGS = -DSDL
|
||||||
# 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 is normally -O2.
|
||||||
OPTFLAGS = -O2 -g3
|
OPTFLAGS = -O2 -g3
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -lm -lSDL2
|
LDFLAGS = -lm -lSDL2
|
||||||
LDELDFLAGS =
|
LDELDFLAGS =
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ XFLAGS = -DXWINDOW
|
|||||||
|
|
||||||
# OPTFLAGS is normally -O2.
|
# OPTFLAGS is normally -O2.
|
||||||
OPTFLAGS = -O2 -g3
|
OPTFLAGS = -O2 -g3
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||||
LDELDFLAGS = -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 is normally -O2.
|
||||||
OPTFLAGS = -O2 -g3
|
OPTFLAGS = -O2 -g3
|
||||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/X11R6/lib -lX11 -lc -lm
|
LDFLAGS = -L/usr/X11R6/lib -lX11 -lc -lm
|
||||||
LDELDFLAGS = -L/usr/X11R6/lib -lX11 -lc -lm
|
LDELDFLAGS = -L/usr/X11R6/lib -lX11 -lc -lm
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
|
|||||||
DFLAGS = $(XFLAGS) \
|
DFLAGS = $(XFLAGS) \
|
||||||
$(DEBUGFLAGS) \
|
$(DEBUGFLAGS) \
|
||||||
-DOS5 \
|
-DOS5 \
|
||||||
-DRELEASE=$(RELEASE)
|
-DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
|
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
|
||||||
LDELDFLAGS = -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) \
|
DFLAGS = $(XFLAGS) \
|
||||||
$(DEBUGFLAGS) \
|
$(DEBUGFLAGS) \
|
||||||
$(MACHINEFLAGS) \
|
$(MACHINEFLAGS) \
|
||||||
-DRELEASE=$(RELEASE)
|
-DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -lX11 -lc -lm -lsocket -lnsl
|
LDFLAGS = -lX11 -lc -lm -lsocket -lnsl
|
||||||
LDELDFLAGS = -lX11 -lc -lm -lsocket -lnsl
|
LDELDFLAGS = -lX11 -lc -lm -lsocket -lnsl
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ DFLAGS = $(XFLAGS) \
|
|||||||
$(DEBUGFLAGS) \
|
$(DEBUGFLAGS) \
|
||||||
-DOS5 \
|
-DOS5 \
|
||||||
-DUSE_DLPI \
|
-DUSE_DLPI \
|
||||||
-DRELEASE=$(RELEASE)
|
-DRELEASE=351
|
||||||
|
|
||||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
|
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
|
||||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
|
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
|
||||||
|
|||||||
@@ -54,10 +54,9 @@ if test $# -gt 0
|
|||||||
shift
|
shift
|
||||||
fi
|
fi
|
||||||
|
|
||||||
: ${RELEASE=351}
|
|
||||||
architecture=`machinetype`
|
architecture=`machinetype`
|
||||||
osversion=`osversion`
|
osversion=`osversion`
|
||||||
echo "making release ${RELEASE} for ${osversion} on ${architecture}."
|
echo "making so far for ${osversion} on ${architecture}."
|
||||||
case "$display" in
|
case "$display" in
|
||||||
init) display=single
|
init) display=single
|
||||||
releasename=init-${osversion}.${architecture}
|
releasename=init-${osversion}.${architecture}
|
||||||
@@ -72,19 +71,9 @@ case "$display" in
|
|||||||
x) releasename=${osversion}.${architecture}-${display}
|
x) releasename=${osversion}.${architecture}-${display}
|
||||||
ldename=ldex
|
ldename=ldex
|
||||||
;;
|
;;
|
||||||
sdl*) releasename=${osversion}.${architecture}-${display}
|
sdl) releasename=${osversion}.${architecture}-${display}
|
||||||
ldename=ldesdl
|
ldename=ldesdl
|
||||||
;;
|
;;
|
||||||
wasm) osversion=emscripten
|
|
||||||
architecture=wasm
|
|
||||||
releasename=${osversion}.${architecture}-${display}
|
|
||||||
ldename=ldesdl.js
|
|
||||||
;;
|
|
||||||
wasm_nl) osversion=emscripten
|
|
||||||
architecture=wasm_nl
|
|
||||||
releasename=${osversion}.${architecture}-${display}
|
|
||||||
ldename=ldesdl.js
|
|
||||||
;;
|
|
||||||
*) echo "display-option: $display is not supported."
|
*) echo "display-option: $display is not supported."
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
@@ -107,12 +96,12 @@ if [ ! -d ../${releasename} ]; then
|
|||||||
mkdir ../${releasename}
|
mkdir ../${releasename}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo start making lde for ${releasename}
|
echo start making lde for ${releasename}.
|
||||||
|
|
||||||
# then finally do the make, including the right stuff
|
# then finally do the make, including the right stuff
|
||||||
# With makefile-tail merged, this should only take ONE make command....
|
# With makefile-tail merged, this should only take ONE make command....
|
||||||
|
|
||||||
make RELEASENAME=${releasename} RELEASE=${RELEASE} LDENAME=${ldename} \
|
make RELEASENAME=${releasename} LDENAME=${ldename} \
|
||||||
OSARCHNAME=${osversion}.${architecture} \
|
OSARCHNAME=${osversion}.${architecture} \
|
||||||
-f makefile-header -f makefile-${releasename} \
|
-f makefile-header -f makefile-${releasename} \
|
||||||
-f makefile-tail $*
|
-f makefile-tail $*
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
|
os=${LDEARCH:-`./config.guess`}
|
||||||
os=${LDEARCH:-`$SCRIPTPATH/config.guess`}
|
|
||||||
case "$os" in
|
case "$os" in
|
||||||
m68k-*-amigaos) echo amigaos ;;
|
m68k-*-amigaos) echo amigaos ;;
|
||||||
sparc-sun-sunos*) echo sunos4 ;;
|
sparc-sun-sunos*) echo sunos4 ;;
|
||||||
@@ -12,7 +11,6 @@ case "$os" in
|
|||||||
*-*-openbsd*) echo openbsd ;;
|
*-*-openbsd*) echo openbsd ;;
|
||||||
*-*-freebsd*) echo freebsd ;;
|
*-*-freebsd*) echo freebsd ;;
|
||||||
*-*-cygwin*) echo cygwin ;;
|
*-*-cygwin*) echo cygwin ;;
|
||||||
*-*-haiku*) echo haiku ;;
|
|
||||||
esac
|
esac
|
||||||
### Don't leave the variable set.
|
### Don't leave the variable set.
|
||||||
unset os
|
unset os
|
||||||
|
|||||||
17
inc/adr68k.h
17
inc/adr68k.h
@@ -28,11 +28,19 @@
|
|||||||
*/
|
*/
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
|
|
||||||
|
#include <execinfo.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "lispemul.h"
|
#include "lispemul.h"
|
||||||
#include "lspglob.h"
|
#include "lspglob.h"
|
||||||
|
|
||||||
|
static inline void dobacktrace()
|
||||||
|
{
|
||||||
|
void* callstack[128];
|
||||||
|
int i, frames = backtrace(callstack, 128);
|
||||||
|
backtrace_symbols_fd(callstack, frames, 2);
|
||||||
|
}
|
||||||
|
|
||||||
static inline LispPTR LAddrFromNative(void *NAddr)
|
static inline LispPTR LAddrFromNative(void *NAddr)
|
||||||
{
|
{
|
||||||
if ((uintptr_t)NAddr & 1) {
|
if ((uintptr_t)NAddr & 1) {
|
||||||
@@ -48,8 +56,9 @@ static inline DLword *NativeAligned2FromLAddr(LispPTR LAddr)
|
|||||||
|
|
||||||
static inline LispPTR *NativeAligned4FromLAddr(LispPTR LAddr)
|
static inline LispPTR *NativeAligned4FromLAddr(LispPTR LAddr)
|
||||||
{
|
{
|
||||||
if (LAddr & 1) {
|
if (LAddr & 1 || LAddr > 0x0FFFFFFF) {
|
||||||
printf("Misaligned pointer in NativeAligned4FromLAddr 0x%x\n", LAddr);
|
printf("Misaligned/bad pointer in NativeAligned4FromLAddr 0x%x\n", LAddr);
|
||||||
|
dobacktrace();
|
||||||
}
|
}
|
||||||
return (void *)(Lisp_world + LAddr);
|
return (void *)(Lisp_world + LAddr);
|
||||||
}
|
}
|
||||||
@@ -63,8 +72,8 @@ static inline DLword StackOffsetFromNative(void *SAddr)
|
|||||||
{
|
{
|
||||||
/* Stack offsets are expressed as an offset in DLwords from the stack base */
|
/* Stack offsets are expressed as an offset in DLwords from the stack base */
|
||||||
ptrdiff_t hoffset = (DLword *)SAddr - Stackspace;
|
ptrdiff_t hoffset = (DLword *)SAddr - Stackspace;
|
||||||
if (hoffset > 0xffff || hoffset < 0) {
|
if (hoffset > 0xffff) {
|
||||||
printf("Stack offset is out of range: 0x%tx\n", hoffset);
|
printf("Stack offset is too large: 0x%tx\n", hoffset);
|
||||||
}
|
}
|
||||||
return (DLword)hoffset;
|
return (DLword)hoffset;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ extern int flushing;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
#define DBPRINT(X) do { printf("%s:%d ", __FILE__, __LINE__); printf X ; if (flushing) fflush(stdout); } while(0)
|
#define DBPRINT(X) do {printf X ; if (flushing) fflush(stdout); } while(0)
|
||||||
#define DEBUGGER(X) X
|
#define DEBUGGER(X) X
|
||||||
#else
|
#else
|
||||||
#define DBPRINT(X) if (0) do {printf X ; } while(0)
|
#define DBPRINT(X) if (0) do {printf X ; } while(0)
|
||||||
@@ -51,7 +51,7 @@ extern int flushing;
|
|||||||
/* For trace print statements */
|
/* For trace print statements */
|
||||||
|
|
||||||
#ifdef TRACE
|
#ifdef TRACE
|
||||||
#define TPRINT(X) do { printf("%s:%d ", __FILE__, __LINE__); printf X; if (flushing) fflush(stdout); } while (0)
|
#define TPRINT(X) do { printf X; if (flushing) fflush(stdout); } while (0)
|
||||||
#define TRACER(X) X
|
#define TRACER(X) X
|
||||||
#else /* TRACE */
|
#else /* TRACE */
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ extern int flushing;
|
|||||||
/* For tracing individual opcode executions */
|
/* For tracing individual opcode executions */
|
||||||
|
|
||||||
#ifdef OPTRACE
|
#ifdef OPTRACE
|
||||||
#define OPTPRINT(X) do { printf("%s:%d ", __FILE__, __LINE__); printf X; if (flushing) fflush(stdout); } while (0)
|
#define OPTPRINT(X) do { printf X; if (flushing) fflush(stdout); } while (0)
|
||||||
#define OPTRACER(X) X
|
#define OPTRACER(X) X
|
||||||
#else
|
#else
|
||||||
#define OPTPRINT(X) if (0) do { printf X; } while (0)
|
#define OPTPRINT(X) if (0) do { printf X; } while (0)
|
||||||
@@ -75,7 +75,7 @@ extern int flushing;
|
|||||||
/* For tracing function calls */
|
/* For tracing function calls */
|
||||||
|
|
||||||
#ifdef FNTRACE
|
#ifdef FNTRACE
|
||||||
#define FNTPRINT(X) do { printf("%s:%d ", __FILE__, __LINE__); printf X; if (flushing) fflush(stdout); } while (0)
|
#define FNTPRINT(X) do { printf X; if (flushing) fflush(stdout); } while (0)
|
||||||
#define FNTRACER(X) X
|
#define FNTRACER(X) X
|
||||||
#else
|
#else
|
||||||
#define FNTPRINT(X) if (0) do { printf X; } while (0)
|
#define FNTPRINT(X) if (0) do { printf X; } while (0)
|
||||||
@@ -86,7 +86,7 @@ extern int flushing;
|
|||||||
/* For function-call & return stack checking */
|
/* For function-call & return stack checking */
|
||||||
|
|
||||||
#ifdef FNSTKCHECK
|
#ifdef FNSTKCHECK
|
||||||
#define FNCHKPRINT(X) do { printf("%s:%d ", __FILE__, __LINE__); printf X ; if (flushing) fflush(stdout); } while (0)
|
#define FNCHKPRINT(X) do { printf X ; if (flushing) fflush(stdout); } while (0)
|
||||||
#define FNCHECKER(X) X
|
#define FNCHECKER(X) X
|
||||||
#else
|
#else
|
||||||
#define FNCHKPRINT(X) if (0) do { printf X; } while (0)
|
#define FNCHKPRINT(X) if (0) do { printf X; } while (0)
|
||||||
|
|||||||
35
inc/gcdata.h
35
inc/gcdata.h
@@ -18,7 +18,8 @@
|
|||||||
*/
|
*/
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
#include "lispemul.h" /* for LispPTR, DLword */
|
#include "lispemul.h" /* for LispPTR, DLword */
|
||||||
#include "version.h" /* for BIGVM */
|
#include "version.h" /* for USHORT */
|
||||||
|
#include "gchtfinddefs.h"
|
||||||
|
|
||||||
#define ADDREF 0 /* for gclookup routine. */
|
#define ADDREF 0 /* for gclookup routine. */
|
||||||
#define DELREF 1 /* for gclookup routine. */
|
#define DELREF 1 /* for gclookup routine. */
|
||||||
@@ -131,10 +132,10 @@
|
|||||||
#ifdef BIGVM
|
#ifdef BIGVM
|
||||||
struct hashentry
|
struct hashentry
|
||||||
{ /* GC hashtable entry */
|
{ /* GC hashtable entry */
|
||||||
DLword count :15;
|
unsigned short count :15;
|
||||||
DLword stackref :1;
|
unsigned short stackref :1;
|
||||||
DLword segnum :15;
|
unsigned short segnum :15;
|
||||||
DLword collision :1;
|
unsigned short collision :1;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct htlinkptr
|
struct htlinkptr
|
||||||
@@ -162,10 +163,10 @@ struct htoverflow
|
|||||||
#else
|
#else
|
||||||
struct hashentry
|
struct hashentry
|
||||||
{ /* GC hashtable entry */
|
{ /* GC hashtable entry */
|
||||||
DLword count :6;
|
USHORT count :6;
|
||||||
DLword stackref :1;
|
USHORT stackref :1;
|
||||||
DLword segnum :8;
|
USHORT segnum :8;
|
||||||
DLword collision :1;
|
USHORT collision :1;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct htlinkptr
|
struct htlinkptr
|
||||||
@@ -200,10 +201,10 @@ struct htoverflow
|
|||||||
#ifdef BIGVM
|
#ifdef BIGVM
|
||||||
struct hashentry
|
struct hashentry
|
||||||
{ /* GC hashtable entry */
|
{ /* GC hashtable entry */
|
||||||
DLword collision :1;
|
USHORT collision :1;
|
||||||
DLword segnum :15;
|
USHORT segnum :15;
|
||||||
DLword stackref :1;
|
USHORT stackref :1;
|
||||||
DLword count :15;
|
USHORT count :15;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct htlinkptr
|
struct htlinkptr
|
||||||
@@ -231,10 +232,10 @@ struct htoverflow
|
|||||||
#else
|
#else
|
||||||
struct hashentry
|
struct hashentry
|
||||||
{ /* GC hashtable entry */
|
{ /* GC hashtable entry */
|
||||||
DLword collision :1;
|
USHORT collision :1;
|
||||||
DLword segnum :8;
|
USHORT segnum :8;
|
||||||
DLword stackref :1;
|
USHORT stackref :1;
|
||||||
DLword count :6;
|
USHORT count :6;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct htlinkptr
|
struct htlinkptr
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
#ifndef GCHTFINDDEFS_H
|
#ifndef GCHTFINDDEFS_H
|
||||||
#define GCHTFINDDEFS_H 1
|
#define GCHTFINDDEFS_H 1
|
||||||
#include "lispemul.h" /* for LispPTR, DLword */
|
#include "lispemul.h" /* for LispPTR, DLword */
|
||||||
#include "gcdata.h" /* for GCENTRY */
|
|
||||||
void enter_big_reference_count(LispPTR ptr);
|
void enter_big_reference_count(LispPTR ptr);
|
||||||
void modify_big_reference_count(GCENTRY *entry, DLword casep, LispPTR ptr);
|
void modify_big_reference_count(LispPTR *entry, DLword casep, LispPTR ptr);
|
||||||
LispPTR htfind(LispPTR ptr, int casep);
|
LispPTR htfind(LispPTR ptr, int casep);
|
||||||
LispPTR rec_htfind(LispPTR ptr, int casep);
|
LispPTR rec_htfind(LispPTR ptr, int casep);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
void process_io_events(void);
|
void process_io_events(void);
|
||||||
void kb_trans(u_short keycode, u_short upflg);
|
void kb_trans(u_short keycode, u_short upflg);
|
||||||
void taking_mouse_down(void);
|
void taking_mouse_down(void);
|
||||||
void taking_mouse_up(int newx, int newy);
|
|
||||||
void copy_cursor(int newx, int newy);
|
void copy_cursor(int newx, int newy);
|
||||||
void cursor_hidden_bitmap(int x, int y);
|
void cursor_hidden_bitmap(int x, int y);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -267,22 +267,22 @@ struct state {
|
|||||||
|
|
||||||
/* For bit test */
|
/* For bit test */
|
||||||
typedef struct wbits {
|
typedef struct wbits {
|
||||||
DLword LSB : 1;
|
USHORT LSB : 1;
|
||||||
DLword B14 : 1;
|
USHORT B14 : 1;
|
||||||
DLword B13 : 1;
|
USHORT B13 : 1;
|
||||||
DLword B12 : 1;
|
USHORT B12 : 1;
|
||||||
DLword B11 : 1;
|
USHORT B11 : 1;
|
||||||
DLword B10 : 1;
|
USHORT B10 : 1;
|
||||||
DLword B9 : 1;
|
USHORT B9 : 1;
|
||||||
DLword B8 : 1;
|
USHORT B8 : 1;
|
||||||
DLword B7 : 1;
|
USHORT B7 : 1;
|
||||||
DLword B6 : 1;
|
USHORT B6 : 1;
|
||||||
DLword B5 : 1;
|
USHORT B5 : 1;
|
||||||
DLword B4 : 1;
|
USHORT B4 : 1;
|
||||||
DLword B3 : 1;
|
USHORT B3 : 1;
|
||||||
DLword B2 : 1;
|
USHORT B2 : 1;
|
||||||
DLword B1 : 1;
|
USHORT B1 : 1;
|
||||||
DLword xMSB : 1;
|
USHORT xMSB : 1;
|
||||||
} WBITS;
|
} WBITS;
|
||||||
|
|
||||||
#define PUTBASEBIT68K(base68k, offset, bitvalue) \
|
#define PUTBASEBIT68K(base68k, offset, bitvalue) \
|
||||||
|
|||||||
@@ -194,9 +194,8 @@ do { \
|
|||||||
#endif /* min */
|
#endif /* min */
|
||||||
|
|
||||||
#define LispNumToCInt(Lisp) \
|
#define LispNumToCInt(Lisp) \
|
||||||
( (((Lisp) & SEGMASK) == S_POSITIVE) ? ((Lisp) & 0xFFFF) : \
|
( (((Lisp) & SEGMASK) == S_POSITIVE) ? \
|
||||||
(((Lisp) & SEGMASK) == S_NEGATIVE) ? ((Lisp) | 0xFFFF0000) : \
|
((Lisp) & 0xFFFF) : (*((int *)(NativeAligned4FromLAddr(Lisp)))) )
|
||||||
(*((int *)(NativeAligned4FromLAddr(Lisp)))) )
|
|
||||||
|
|
||||||
#define UPLOWDIFF 0x20
|
#define UPLOWDIFF 0x20
|
||||||
|
|
||||||
@@ -499,8 +498,7 @@ do { \
|
|||||||
#define MAXVERSION 999999999
|
#define MAXVERSION 999999999
|
||||||
|
|
||||||
#define LASTVERSIONARRAY ((unsigned) -1)
|
#define LASTVERSIONARRAY ((unsigned) -1)
|
||||||
#define VERSIONARRAYCHUNKLENGTH 200
|
#define VERSIONARRAYLENGTH 200
|
||||||
#define VERSIONARRAYMAXLENGTH 2000
|
|
||||||
|
|
||||||
#define NoFileP(varray) \
|
#define NoFileP(varray) \
|
||||||
(((varray)->version_no == LASTVERSIONARRAY)? 1 : 0)
|
(((varray)->version_no == LASTVERSIONARRAY)? 1 : 0)
|
||||||
|
|||||||
@@ -83,19 +83,6 @@
|
|||||||
# define MAIKO_OS_DETECTED 1
|
# define MAIKO_OS_DETECTED 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __EMSCRIPTEN__
|
|
||||||
# define MAIKO_OS_LINUX 1
|
|
||||||
# define MAIKO_OS_EMSCRIPTEN 1
|
|
||||||
# define MAIKO_OS_NAME "Emscripten"
|
|
||||||
# define MAIKO_EMULATE_TIMER_INTERRUPTS 1
|
|
||||||
# define MAIKO_EMULATE_ASYNC_INTERRUPTS 1
|
|
||||||
# define MAIKO_OS_UNIX_LIKE 1
|
|
||||||
# define MAIKO_OS_DETECTED
|
|
||||||
# define MAIKO_ARCH_NAME "WebAssembly"
|
|
||||||
# define MAIKO_ARCH_WORD_BITS 32
|
|
||||||
# define MAIKO_ARCH_DETECTED 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* __x86_64__: GNU C, __x86_64: Sun Studio, _M_AMD64: Visual Studio */
|
/* __x86_64__: GNU C, __x86_64: Sun Studio, _M_AMD64: Visual Studio */
|
||||||
#if defined(__x86_64__) || defined(__x86_64) || defined(_M_AMD64)
|
#if defined(__x86_64__) || defined(__x86_64) || defined(_M_AMD64)
|
||||||
# define MAIKO_ARCH_X86_64 1
|
# define MAIKO_ARCH_X86_64 1
|
||||||
@@ -166,12 +153,6 @@
|
|||||||
# define MAIKO_ARCH_DETECTED 1
|
# define MAIKO_ARCH_DETECTED 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __HAIKU__
|
|
||||||
# define MAIKO_OS_HAIKU 1
|
|
||||||
# define MAIKO_OS_NAME "Haiku"
|
|
||||||
# define MAIKO_OS_UNIX_LIKE 1
|
|
||||||
# define MAIKO_OS_DETECTED 1
|
|
||||||
#endif
|
|
||||||
/* Modern GNU C, Clang, Sun Studio provide __BYTE_ORDER__
|
/* Modern GNU C, Clang, Sun Studio provide __BYTE_ORDER__
|
||||||
* Older GNU C (ca. 4.0.1) provides __BIG_ENDIAN__/__LITTLE_ENDIAN__
|
* Older GNU C (ca. 4.0.1) provides __BIG_ENDIAN__/__LITTLE_ENDIAN__
|
||||||
*/
|
*/
|
||||||
|
|||||||
1
inc/my.h
1
inc/my.h
@@ -20,7 +20,6 @@
|
|||||||
#include "version.h" // for BIGVM
|
#include "version.h" // for BIGVM
|
||||||
#include "adr68k.h" // for NativeAligned2FromLAddr, NativeAligned4FromLAddr, LAddrFromNative
|
#include "adr68k.h" // for NativeAligned2FromLAddr, NativeAligned4FromLAddr, LAddrFromNative
|
||||||
#include "arith.h" // for N_ARITH_SWITCH, N_GETNUMBER
|
#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 "gcdata.h" // for ADDREF, DELREF
|
||||||
#include "lispemul.h" // for ERROR_EXIT, LispPTR, DLword, SEGMASK, state
|
#include "lispemul.h" // for ERROR_EXIT, LispPTR, DLword, SEGMASK, state
|
||||||
#include "lispmap.h" // for S_POSITIVE, S_CHARACTER, S_NEGATIVE
|
#include "lispmap.h" // for S_POSITIVE, S_CHARACTER, S_NEGATIVE
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
#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
|
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
#define FastRetCALL \
|
#define FastRetCALL \
|
||||||
do { \
|
do { \
|
||||||
/* Get IVar from Returnee's IVAR offset slot(BF) */ \
|
/* Get IVar from Returnee's IVAR offset slot(BF) */ \
|
||||||
IVar = NativeAligned2FromStackOffset(GETWORD((DLword *)CURRENTFX - 1)); \
|
IVar = NativeAligned2FromLAddr(STK_OFFSET | GETWORD((DLword *)CURRENTFX -1)); \
|
||||||
/* Get FuncObj from Returnee's FNHEAD slot in FX */ \
|
/* Get FuncObj from Returnee's FNHEAD slot in FX */ \
|
||||||
FuncObj = (struct fnhead *)NativeAligned4FromLAddr(FX_FNHEADER); \
|
FuncObj = (struct fnhead *)NativeAligned4FromLAddr(FX_FNHEADER); \
|
||||||
/* Get PC from Returnee's pc slot in FX */ \
|
/* Get PC from Returnee's pc slot in FX */ \
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
#define FastRetCALL \
|
#define FastRetCALL \
|
||||||
do { \
|
do { \
|
||||||
/* Get IVar from Returnee's IVAR offset slot(BF) */ \
|
/* Get IVar from Returnee's IVAR offset slot(BF) */ \
|
||||||
IVar = NativeAligned2FromStackOffset(GETWORD((DLword *)CURRENTFX - 1)); \
|
IVar = NativeAligned2FromLAddr(STK_OFFSET | GETWORD((DLword *)CURRENTFX -1)); \
|
||||||
/* Get FuncObj from Returnee's FNHEAD slot in FX */ \
|
/* Get FuncObj from Returnee's FNHEAD slot in FX */ \
|
||||||
FuncObj = (struct fnhead *)NativeAligned4FromLAddr(FX_FNHEADER); \
|
FuncObj = (struct fnhead *)NativeAligned4FromLAddr(FX_FNHEADER); \
|
||||||
/* Get PC from Returnee's pc slot in FX */ \
|
/* Get PC from Returnee's pc slot in FX */ \
|
||||||
|
|||||||
114
inc/stack.h
114
inc/stack.h
@@ -79,22 +79,22 @@ typedef struct fnhead {
|
|||||||
} FNHEAD;
|
} FNHEAD;
|
||||||
|
|
||||||
typedef struct frameex1 {
|
typedef struct frameex1 {
|
||||||
DLword flags : 3;
|
unsigned flags : 3;
|
||||||
DLword fast : 1;
|
unsigned fast : 1;
|
||||||
DLword nil2 : 1; /* not used, prev: This frame treats N-func */
|
unsigned nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||||
DLword incall : 1;
|
unsigned incall : 1;
|
||||||
DLword validnametable : 1;
|
unsigned validnametable : 1;
|
||||||
/* 0: look for FunctionHeader
|
/* 0: look for FunctionHeader
|
||||||
1: look for NameTable on this FrameEx */
|
1: look for NameTable on this FrameEx */
|
||||||
DLword nopush : 1;
|
unsigned nopush : 1;
|
||||||
DLword usecount : 8;
|
unsigned usecount : 8;
|
||||||
DLword alink; /* alink pointer (Low addr) */
|
DLword alink; /* alink pointer (Low addr) */
|
||||||
#ifdef BIGVM
|
#ifdef BIGVM
|
||||||
LispPTR fnheader; /* pointer to FunctionHeader (Hi2 addr) */
|
LispPTR fnheader; /* pointer to FunctionHeader (Hi2 addr) */
|
||||||
#else
|
#else
|
||||||
DLword lofnheader; /* pointer to FunctionHeader (Low addr) */
|
DLword lofnheader; /* pointer to FunctionHeader (Low addr) */
|
||||||
DLword hi1fnheader : 8; /* pointer to FunctionHeader (Hi1 addr) */
|
unsigned hi1fnheader : 8; /* pointer to FunctionHeader (Hi1 addr) */
|
||||||
DLword hi2fnheader : 8; /* pointer to FunctionHeader (Hi2 addr) */
|
unsigned hi2fnheader : 8; /* pointer to FunctionHeader (Hi2 addr) */
|
||||||
#endif /* BIGVM */
|
#endif /* BIGVM */
|
||||||
DLword nextblock; /* pointer to FreeStackBlock */
|
DLword nextblock; /* pointer to FreeStackBlock */
|
||||||
DLword pc; /* Program counter */
|
DLword pc; /* Program counter */
|
||||||
@@ -102,23 +102,23 @@ typedef struct frameex1 {
|
|||||||
LispPTR nametable; /* ptr to NameTable of this FrameEx (Hi2 addr) */
|
LispPTR nametable; /* ptr to NameTable of this FrameEx (Hi2 addr) */
|
||||||
#else
|
#else
|
||||||
DLword lonametable; /* ptr to NameTable of this FrameEx (Low addr) */
|
DLword lonametable; /* ptr to NameTable of this FrameEx (Low addr) */
|
||||||
DLword hi1nametable : 8; /* ptr to NameTable of this FrameEx (Hi1 addr) */
|
unsigned hi1nametable : 8; /* ptr to NameTable of this FrameEx (Hi1 addr) */
|
||||||
DLword hi2nametable : 8; /* ptr to NameTable of this FrameEx (Hi2 addr) */
|
unsigned hi2nametable : 8; /* ptr to NameTable of this FrameEx (Hi2 addr) */
|
||||||
#endif /* BIGVM */
|
#endif /* BIGVM */
|
||||||
DLword blink; /* blink pointer (Low addr) */
|
DLword blink; /* blink pointer (Low addr) */
|
||||||
DLword clink; /* clink pointer (Low addr) */
|
DLword clink; /* clink pointer (Low addr) */
|
||||||
} FX;
|
} FX;
|
||||||
|
|
||||||
typedef struct frameex2 {
|
typedef struct frameex2 {
|
||||||
DLword flags : 3;
|
unsigned flags : 3;
|
||||||
DLword fast : 1;
|
unsigned fast : 1;
|
||||||
DLword nil2 : 1; /* not used, prev: This frame treats N-func */
|
unsigned nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||||
DLword incall : 1;
|
unsigned incall : 1;
|
||||||
DLword validnametable : 1;
|
unsigned validnametable : 1;
|
||||||
/* 0: look for FunctionHeader
|
/* 0: look for FunctionHeader
|
||||||
1: look for NameTable on this FrameEx */
|
1: look for NameTable on this FrameEx */
|
||||||
DLword nopush : 1;
|
unsigned nopush : 1;
|
||||||
DLword usecount : 8;
|
unsigned usecount : 8;
|
||||||
DLword alink; /* alink pointer (Low addr) */
|
DLword alink; /* alink pointer (Low addr) */
|
||||||
LispPTR fnheader; /* pointer to FunctionHeader */
|
LispPTR fnheader; /* pointer to FunctionHeader */
|
||||||
DLword nextblock; /* pointer to FreeStackBlock */
|
DLword nextblock; /* pointer to FreeStackBlock */
|
||||||
@@ -135,19 +135,19 @@ typedef struct fxblock {
|
|||||||
} FXBLOCK;
|
} FXBLOCK;
|
||||||
|
|
||||||
typedef struct basic_frame {
|
typedef struct basic_frame {
|
||||||
DLword flags : 3;
|
unsigned flags : 3;
|
||||||
DLword nil : 3;
|
unsigned nil : 3;
|
||||||
DLword residual : 1;
|
unsigned residual : 1;
|
||||||
DLword padding : 1;
|
unsigned padding : 1;
|
||||||
DLword usecnt : 8;
|
unsigned usecnt : 8;
|
||||||
DLword ivar; /* stk offset of IVARs for this frame ?? */
|
DLword ivar; /* stk offset of IVARs for this frame ?? */
|
||||||
|
|
||||||
} Bframe;
|
} Bframe;
|
||||||
|
|
||||||
typedef struct stkword {
|
typedef struct stkword {
|
||||||
DLword flags : 3;
|
unsigned short flags : 3;
|
||||||
DLword nil : 5;
|
unsigned short nil : 5;
|
||||||
DLword usecount : 8;
|
unsigned short usecount : 8;
|
||||||
} StackWord;
|
} StackWord;
|
||||||
|
|
||||||
typedef struct stack_block {
|
typedef struct stack_block {
|
||||||
@@ -185,33 +185,33 @@ typedef struct fnhead {
|
|||||||
unsigned nil3 : 2; /* not used */
|
unsigned nil3 : 2; /* not used */
|
||||||
unsigned nil2 : 2; /* not used */
|
unsigned nil2 : 2; /* not used */
|
||||||
#endif /* BIGVM */
|
#endif /* BIGVM */
|
||||||
DLword argtype : 2; /* ?? */
|
unsigned argtype : 2; /* ?? */
|
||||||
DLword byteswapped : 1; /* code was reswapped. */
|
unsigned byteswapped : 1; /* code was reswapped. */
|
||||||
DLword nil4 : 1; /* not used, prev: native translated? */
|
unsigned nil4 : 1; /* not used, prev: native translated? */
|
||||||
DLword fvaroffset : 8;
|
unsigned fvaroffset : 8;
|
||||||
/* DLword offset from head of NameTable */
|
/* DLword offset from head of NameTable */
|
||||||
DLword nlocals : 8; /* ?? */
|
unsigned nlocals : 8; /* ?? */
|
||||||
DLword ntsize; /* size of NameTable */
|
DLword ntsize; /* size of NameTable */
|
||||||
/* NameTable of variable length is following with this structure. */
|
/* NameTable of variable length is following with this structure. */
|
||||||
} FNHEAD;
|
} FNHEAD;
|
||||||
|
|
||||||
typedef struct frameex1 {
|
typedef struct frameex1 {
|
||||||
DLword alink; /* alink pointer (Low addr) */
|
DLword alink; /* alink pointer (Low addr) */
|
||||||
DLword usecount : 8;
|
unsigned usecount : 8;
|
||||||
DLword nopush : 1;
|
unsigned nopush : 1;
|
||||||
DLword validnametable : 1;
|
unsigned validnametable : 1;
|
||||||
/* 0: look for FunctionHeader
|
/* 0: look for FunctionHeader
|
||||||
1: look for NameTable on this FrameEx */
|
1: look for NameTable on this FrameEx */
|
||||||
DLword incall : 1;
|
unsigned incall : 1;
|
||||||
DLword nil2 : 1; /* not used, prev: This frame treats N-func */
|
unsigned nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||||
DLword fast : 1;
|
unsigned fast : 1;
|
||||||
DLword flags : 3; /* hi word */
|
unsigned flags : 3; /* hi word */
|
||||||
|
|
||||||
#ifdef BIGVM
|
#ifdef BIGVM
|
||||||
LispPTR fnheader; /* pointer to FunctionHeader (Hi2 addr) */
|
LispPTR fnheader; /* pointer to FunctionHeader (Hi2 addr) */
|
||||||
#else
|
#else
|
||||||
DLword hi2fnheader : 8; /* pointer to FunctionHeader (Hi2 addr) */
|
unsigned hi2fnheader : 8; /* pointer to FunctionHeader (Hi2 addr) */
|
||||||
DLword hi1fnheader : 8; /* pointer to FunctionHeader (Hi1 addr) */
|
unsigned hi1fnheader : 8; /* pointer to FunctionHeader (Hi1 addr) */
|
||||||
DLword lofnheader; /* pointer to FunctionHeader (Low addr) */
|
DLword lofnheader; /* pointer to FunctionHeader (Low addr) */
|
||||||
#endif /* BIGVM */
|
#endif /* BIGVM */
|
||||||
|
|
||||||
@@ -221,8 +221,8 @@ typedef struct frameex1 {
|
|||||||
#ifdef BIGVM
|
#ifdef BIGVM
|
||||||
LispPTR nametable; /* pointer to NameTable of this FX (Hi2 addr) */
|
LispPTR nametable; /* pointer to NameTable of this FX (Hi2 addr) */
|
||||||
#else
|
#else
|
||||||
DLword hi2nametable : 8; /* pointer to NameTable of this FX (Hi2 addr) */
|
unsigned hi2nametable : 8; /* pointer to NameTable of this FX (Hi2 addr) */
|
||||||
DLword hi1nametable : 8; /* pointer to NameTable of this FX (Hi1 addr) */
|
unsigned hi1nametable : 8; /* pointer to NameTable of this FX (Hi1 addr) */
|
||||||
DLword lonametable; /* pointer to NameTable of this FX (Low addr) */
|
DLword lonametable; /* pointer to NameTable of this FX (Low addr) */
|
||||||
#endif /* BIGVM */
|
#endif /* BIGVM */
|
||||||
|
|
||||||
@@ -232,15 +232,15 @@ typedef struct frameex1 {
|
|||||||
|
|
||||||
typedef struct frameex2 {
|
typedef struct frameex2 {
|
||||||
DLword alink; /* alink pointer (Low addr) */
|
DLword alink; /* alink pointer (Low addr) */
|
||||||
DLword usecount : 8;
|
unsigned usecount : 8;
|
||||||
DLword nopush : 1;
|
unsigned nopush : 1;
|
||||||
DLword validnametable : 1;
|
unsigned validnametable : 1;
|
||||||
/* 0: look for FunctionHeader
|
/* 0: look for FunctionHeader
|
||||||
1: look for NameTable on this FrameEx */
|
1: look for NameTable on this FrameEx */
|
||||||
DLword incall : 1;
|
unsigned incall : 1;
|
||||||
DLword nil2 : 1; /* not used, prev: This frame treats N-func */
|
unsigned nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||||
DLword fast : 1;
|
unsigned fast : 1;
|
||||||
DLword flags : 3;
|
unsigned flags : 3;
|
||||||
|
|
||||||
LispPTR fnheader; /* pointer to FunctionHeader (swapped) */
|
LispPTR fnheader; /* pointer to FunctionHeader (swapped) */
|
||||||
|
|
||||||
@@ -261,18 +261,18 @@ typedef struct fxblock {
|
|||||||
|
|
||||||
typedef struct basic_frame {
|
typedef struct basic_frame {
|
||||||
DLword ivar;
|
DLword ivar;
|
||||||
DLword usecnt : 8;
|
unsigned usecnt : 8;
|
||||||
DLword padding : 1;
|
unsigned padding : 1;
|
||||||
DLword residual : 1;
|
unsigned residual : 1;
|
||||||
DLword nil : 3;
|
unsigned nil : 3;
|
||||||
DLword flags : 3;
|
unsigned flags : 3;
|
||||||
|
|
||||||
} Bframe;
|
} Bframe;
|
||||||
|
|
||||||
typedef struct stkword {
|
typedef struct stkword {
|
||||||
DLword usecount : 8;
|
USHORT usecount : 8;
|
||||||
DLword nil : 5;
|
USHORT nil : 5;
|
||||||
DLword flags : 3;
|
USHORT flags : 3;
|
||||||
} StackWord;
|
} StackWord;
|
||||||
|
|
||||||
typedef struct stack_block {
|
typedef struct stack_block {
|
||||||
|
|||||||
@@ -227,6 +227,9 @@ typedef unsigned char u_char;
|
|||||||
typedef unsigned long u_int;
|
typedef unsigned long u_int;
|
||||||
typedef unsigned short u_short;
|
typedef unsigned short u_short;
|
||||||
#undef UNALIGNED_FETCH_OK
|
#undef UNALIGNED_FETCH_OK
|
||||||
|
typedef unsigned USHORT;
|
||||||
|
#else
|
||||||
|
typedef unsigned short USHORT;
|
||||||
#endif /* DOS */
|
#endif /* DOS */
|
||||||
|
|
||||||
/****************************************************************/
|
/****************************************************************/
|
||||||
@@ -234,14 +237,6 @@ typedef unsigned short u_short;
|
|||||||
/* --Start of system-specific flags */
|
/* --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 */
|
/* End of system-specific flag settings */
|
||||||
|
|||||||
@@ -49,6 +49,7 @@
|
|||||||
#include "stack.h"
|
#include "stack.h"
|
||||||
#include "return.h"
|
#include "return.h"
|
||||||
#include "cell.h"
|
#include "cell.h"
|
||||||
|
#include "gcdata.h"
|
||||||
|
|
||||||
#include "bbtsubdefs.h"
|
#include "bbtsubdefs.h"
|
||||||
#include "car-cdrdefs.h"
|
#include "car-cdrdefs.h"
|
||||||
@@ -1663,7 +1664,7 @@ void ccfuncall(unsigned int atom_index, int argnum, int bytenum)
|
|||||||
CURRENTFX->nextblock = (LAddrFromNative(CurrentStackPTR) & 0x0ffff) - (argnum << 1) + 4 /* +3 */;
|
CURRENTFX->nextblock = (LAddrFromNative(CurrentStackPTR) & 0x0ffff) - (argnum << 1) + 4 /* +3 */;
|
||||||
|
|
||||||
/* Setup IVar */ /* XXX: is it really only 2-byte aligned? */
|
/* Setup IVar */ /* XXX: is it really only 2-byte aligned? */
|
||||||
IVar = NativeAligned2FromStackOffset(CURRENTFX->nextblock);
|
IVar = NativeAligned2FromLAddr((((LispPTR)(CURRENTFX->nextblock)) | STK_OFFSET));
|
||||||
|
|
||||||
/* Set PC to the Next Instruction and save into FX */
|
/* Set PC to the Next Instruction and save into FX */
|
||||||
CURRENTFX->pc = ((UNSIGNED)PC - (UNSIGNED)FuncObj) + bytenum;
|
CURRENTFX->pc = ((UNSIGNED)PC - (UNSIGNED)FuncObj) + bytenum;
|
||||||
@@ -1798,7 +1799,7 @@ void tedit_bltchar(LispPTR *args)
|
|||||||
|
|
||||||
} /* end tedit_bltchar */
|
} /* end tedit_bltchar */
|
||||||
|
|
||||||
#if defined(REALCURSOR)
|
#if defined(REALCURSOR) || defined(SUNDISPLAY)
|
||||||
#ifndef COLOR
|
#ifndef COLOR
|
||||||
/* Lisp addr hi-word, lo-word, ... */
|
/* Lisp addr hi-word, lo-word, ... */
|
||||||
static int old_cursorin(DLword addrhi, DLword addrlo, int x, int w, int h, int y, int backward)
|
static int old_cursorin(DLword addrhi, DLword addrlo, int x, int w, int h, int y, int backward)
|
||||||
@@ -1865,4 +1866,4 @@ static int old_cursorin(DLword addrhi, DLword addrlo, int x, int w, int h, int y
|
|||||||
} /* COLOR case end */
|
} /* COLOR case end */
|
||||||
}
|
}
|
||||||
#endif /* COLOR */
|
#endif /* COLOR */
|
||||||
#endif /* defined(REALCURSOR) */
|
#endif /* defined(REALCURSOR) || defined(SUNDISPLAY) */
|
||||||
|
|||||||
@@ -38,7 +38,6 @@
|
|||||||
#include "conspagedefs.h" // for next_conspage
|
#include "conspagedefs.h" // for next_conspage
|
||||||
#include "emlglob.h"
|
#include "emlglob.h"
|
||||||
#include "gcdata.h" // for GCLOOKUP, ADDREF, DELREF
|
#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 "lispemul.h" // for ConsCell, LispPTR, DLword, NIL_PTR, state
|
||||||
#include "lspglob.h" // for ListpDTD
|
#include "lspglob.h" // for ListpDTD
|
||||||
#include "lsptypes.h" // for Listp, dtd
|
#include "lsptypes.h" // for Listp, dtd
|
||||||
|
|||||||
@@ -64,14 +64,14 @@ LispPTR Uraid_mess = NIL;
|
|||||||
int error(const char *cp) {
|
int error(const char *cp) {
|
||||||
char *ptr;
|
char *ptr;
|
||||||
if (device_before_raid() < 0) {
|
if (device_before_raid() < 0) {
|
||||||
(void)fprintf(stderr, "Can't Enter URAID.\n");
|
fprintf(stderr, "Can't Enter URAID.\n");
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
/* comm read */
|
/* comm read */
|
||||||
URaid_errmess = cp;
|
URaid_errmess = cp;
|
||||||
(void)fprintf(stderr, "\n*Error* %s\n", cp);
|
fprintf(stderr, "\n*Error* %s\n", cp);
|
||||||
fflush(stdin);
|
fflush(stdin);
|
||||||
(void)fprintf(stderr, "Enter the URaid\n");
|
fprintf(stderr, "Enter the URaid\n");
|
||||||
print(Uraid_mess);
|
print(Uraid_mess);
|
||||||
putchar('\n');
|
putchar('\n');
|
||||||
/* XXX: make sure output is flushed so we can see where we are */
|
/* XXX: make sure output is flushed so we can see where we are */
|
||||||
|
|||||||
@@ -23,7 +23,6 @@
|
|||||||
#include "commondefs.h" // for error
|
#include "commondefs.h" // for error
|
||||||
#include "conspagedefs.h" // for N_OP_cons, cons, next_conspage
|
#include "conspagedefs.h" // for N_OP_cons, cons, next_conspage
|
||||||
#include "gcdata.h" // for GCLOOKUP, ADDREF, DELREF
|
#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 "lispemul.h" // for ConsCell, DLword, LispPTR, NIL_PTR, DLWORD...
|
||||||
#include "lspglob.h"
|
#include "lspglob.h"
|
||||||
#include "lsptypes.h" // for dtd, Listp, TYPE_LISTP
|
#include "lsptypes.h" // for dtd, Listp, TYPE_LISTP
|
||||||
|
|||||||
@@ -303,14 +303,14 @@ int sf(struct frameex1 *fx_addr68k) {
|
|||||||
if (((fx_addr68k)->alink & 1) == 0) { /* FAST */
|
if (((fx_addr68k)->alink & 1) == 0) { /* FAST */
|
||||||
bf = (Bframe *)(((DLword *)fx_addr68k) - 2);
|
bf = (Bframe *)(((DLword *)fx_addr68k) - 2);
|
||||||
} else { /* SLOW */
|
} else { /* SLOW */
|
||||||
bf = (Bframe *)NativeAligned4FromStackOffset((fx_addr68k)->blink);
|
bf = (Bframe *)NativeAligned4FromLAddr(((fx_addr68k)->blink + STK_OFFSET));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Print IVARs */
|
/* Print IVARs */
|
||||||
printf("IVAR -------\n");
|
printf("IVAR -------\n");
|
||||||
BT_morep;
|
BT_morep;
|
||||||
|
|
||||||
ptr = NativeAligned2FromStackOffset(bf->ivar);
|
ptr = NativeAligned2FromLAddr(STK_OFFSET + bf->ivar);
|
||||||
i = 0;
|
i = 0;
|
||||||
while (ptr != (DLword *)bf) {
|
while (ptr != (DLword *)bf) {
|
||||||
ptrlo = ptr + 1;
|
ptrlo = ptr + 1;
|
||||||
@@ -475,7 +475,7 @@ int sf(struct frameex1 *fx_addr68k) {
|
|||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
if (fx_addr68k->alink == 11) /* for contextsw */
|
if (fx_addr68k->alink == 11) /* for contextsw */
|
||||||
next68k = NativeAligned2FromStackOffset(fx_addr68k->nextblock);
|
next68k = (DLword *)NativeAligned2FromLAddr((fx_addr68k->nextblock + STK_OFFSET));
|
||||||
|
|
||||||
else
|
else
|
||||||
next68k = CurrentStackPTR;
|
next68k = CurrentStackPTR;
|
||||||
@@ -493,7 +493,7 @@ int sf(struct frameex1 *fx_addr68k) {
|
|||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
next68k = NativeAligned2FromStackOffset(fx_addr68k->nextblock);
|
next68k = (DLword *)NativeAligned2FromLAddr((fx_addr68k->nextblock + STK_OFFSET));
|
||||||
ptr = (DLword *)(fx_addr68k + 1);
|
ptr = (DLword *)(fx_addr68k + 1);
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
@@ -589,8 +589,8 @@ void bt1(FX *startFX) {
|
|||||||
BT_morep;
|
BT_morep;
|
||||||
while ((fnobj->framename != ATOM_T) && (fx->alink != 11)) {
|
while ((fnobj->framename != ATOM_T) && (fx->alink != 11)) {
|
||||||
if (fnum > URMAXFXNUM - 1) {
|
if (fnum > URMAXFXNUM - 1) {
|
||||||
/* Internal buf overflow, too many stack frames */
|
/* Internal buf overflow,more than 100 stacks */
|
||||||
printf("***There are more than %d stack frames.\n", URMAXFXNUM);
|
printf("***There are more than 100 stack frames.\n");
|
||||||
printf(
|
printf(
|
||||||
"If you want to continue, Uraid will smash its internal table for FX pointer. Do you "
|
"If you want to continue, Uraid will smash its internal table for FX pointer. Do you "
|
||||||
"accept?(Y or N)\n");
|
"accept?(Y or N)\n");
|
||||||
|
|||||||
@@ -2150,8 +2150,7 @@ LispPTR COM_next_file(LispPTR *args)
|
|||||||
propp = gfsp->propp;
|
propp = gfsp->propp;
|
||||||
|
|
||||||
dfp = &FinfoArray[finfoid];
|
dfp = &FinfoArray[finfoid];
|
||||||
fp = dfp->next;
|
if (dfp->head == (FINFO *)0 || (fp = dfp->next) == (FINFO *)0) return (SMALLP_MINUSONE);
|
||||||
if (dfp->head == NULL || fp == NULL) return (SMALLP_MINUSONE);
|
|
||||||
dfp->next = fp->next;
|
dfp->next = fp->next;
|
||||||
|
|
||||||
laddr = gfsp->name;
|
laddr = gfsp->name;
|
||||||
|
|||||||
14
src/dlpi.c
14
src/dlpi.c
@@ -188,7 +188,7 @@ int setup_dlpi_dev(char *device)
|
|||||||
dlbindreq(fd, 0x0600, 0, DL_CLDLS, 0, 0);
|
dlbindreq(fd, 0x0600, 0, DL_CLDLS, 0, 0);
|
||||||
|
|
||||||
if (dlbindack(fd, buf) < 0) {
|
if (dlbindack(fd, buf) < 0) {
|
||||||
(void)fprintf(stderr, "%s: dlbindack failed.\n", pname);
|
fprintf(stderr, "%s: dlbindack failed.\n", pname);
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -202,14 +202,14 @@ int setup_dlpi_dev(char *device)
|
|||||||
dlpromisconreq(fd, DL_PROMISC_SAP);
|
dlpromisconreq(fd, DL_PROMISC_SAP);
|
||||||
|
|
||||||
if (dlokack(fd, buf) < 0) {
|
if (dlokack(fd, buf) < 0) {
|
||||||
(void)fprintf(stderr, "%s: DL_PROMISC_SAP failed.\n", pname);
|
fprintf(stderr, "%s: DL_PROMISC_SAP failed.\n", pname);
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
dlpromisconreq(fd, DL_PROMISC_MULTI);
|
dlpromisconreq(fd, DL_PROMISC_MULTI);
|
||||||
|
|
||||||
if (dlokack(fd, buf) < 0) {
|
if (dlokack(fd, buf) < 0) {
|
||||||
(void)fprintf(stderr, "%s: DL_PROMISC_MULTI failed.\n", pname);
|
fprintf(stderr, "%s: DL_PROMISC_MULTI failed.\n", pname);
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -329,8 +329,8 @@ int dlpi_devtype(int fd)
|
|||||||
case DL_FDDI: return (DLT_FDDI);
|
case DL_FDDI: return (DLT_FDDI);
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
(void)fprintf(stderr, "%s: DLPI MACtype %ld unknown, ", pname, (long)dlp->info_ack.dl_mac_type);
|
fprintf(stderr, "%s: DLPI MACtype %ld unknown, ", pname, (long)dlp->info_ack.dl_mac_type);
|
||||||
(void)fprintf(stderr, "assuming ethernet.\n");
|
fprintf(stderr, "assuming ethernet.\n");
|
||||||
return (DLT_EN10MB);
|
return (DLT_EN10MB);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -585,7 +585,7 @@ static int strgetmsg(int fd, struct strbuf *ctlp, struct strbuf *datap, int *fla
|
|||||||
/*
|
/*
|
||||||
* sigalrm - handle alarms.
|
* sigalrm - handle alarms.
|
||||||
*/
|
*/
|
||||||
static void sigalrm(int sig) { (void)(void)fprintf(stderr, "dlpi: timeout\n"); }
|
static void sigalrm(int sig) { (void)fprintf(stderr, "dlpi: timeout\n"); }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* savestr - save string in dynamic memory.
|
* savestr - save string in dynamic memory.
|
||||||
@@ -595,7 +595,7 @@ static char *savestr(char *s)
|
|||||||
char *t;
|
char *t;
|
||||||
|
|
||||||
if ((t = malloc(strlen(s) + 1)) == NULL) {
|
if ((t = malloc(strlen(s) + 1)) == NULL) {
|
||||||
(void)(void)fprintf(stderr, "%s: out of memory.\n", pname);
|
(void)fprintf(stderr, "%s: out of memory.\n", pname);
|
||||||
(void)exit(1);
|
(void)exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
391
src/dsk.c
391
src/dsk.c
@@ -13,7 +13,7 @@
|
|||||||
#include <fcntl.h> // for O_RDWR, O_CREAT, open, O_RDONLY, O_TRUNC
|
#include <fcntl.h> // for O_RDWR, O_CREAT, open, O_RDONLY, O_TRUNC
|
||||||
#include <stdio.h> // for NULL, sprintf, size_t, rename, SEEK_SET
|
#include <stdio.h> // for NULL, sprintf, size_t, rename, SEEK_SET
|
||||||
#include <stddef.h> // for ptrdiff_t
|
#include <stddef.h> // for ptrdiff_t
|
||||||
#include <stdlib.h> // for strtoul, qsort
|
#include <stdlib.h> // for strtoul
|
||||||
#include <string.h> // for strcpy, strcmp, strlen, strncpy, strchr
|
#include <string.h> // for strcpy, strcmp, strlen, strncpy, strchr
|
||||||
#include <sys/stat.h> // for stat, fstat, mkdir, S_ISREG, st_atime, chmod
|
#include <sys/stat.h> // for stat, fstat, mkdir, S_ISREG, st_atime, chmod
|
||||||
#include <sys/types.h> // for ino_t, time_t, off_t
|
#include <sys/types.h> // for ino_t, time_t, off_t
|
||||||
@@ -38,13 +38,12 @@
|
|||||||
#include <pwd.h> // for getpwuid, passwd
|
#include <pwd.h> // for getpwuid, passwd
|
||||||
#include <sys/param.h> // for MAXPATHLEN
|
#include <sys/param.h> // for MAXPATHLEN
|
||||||
#include <sys/statvfs.h> // for statvfs
|
#include <sys/statvfs.h> // for statvfs
|
||||||
#include <sys/time.h> // for timeval, utimes, futimens
|
#include <sys/time.h> // for timeval, utimes
|
||||||
#else
|
#else
|
||||||
#include <direct.h>
|
#include <direct.h>
|
||||||
#include <dos.h>
|
#include <dos.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <io.h>
|
#include <io.h>
|
||||||
#include <search.h> // for qsort(?)
|
|
||||||
#define MAXPATHLEN _MAX_PATH
|
#define MAXPATHLEN _MAX_PATH
|
||||||
#define MAXNAMLEM _MAX_PATH
|
#define MAXNAMLEM _MAX_PATH
|
||||||
#define alarm(x) 0
|
#define alarm(x) 0
|
||||||
@@ -58,31 +57,25 @@ typedef struct filename_entry {
|
|||||||
unsigned version_no;
|
unsigned version_no;
|
||||||
} FileName;
|
} FileName;
|
||||||
|
|
||||||
/*
|
typedef struct current_varray {
|
||||||
* VA, a structure representing the file names and version numbers
|
char path[MAXPATHLEN]; /* pathname of directory */
|
||||||
* that were present in a directory at a particular moment in time.
|
char file[MAXPATHLEN]; /* file name (down cased name) */
|
||||||
* The {DSK} device presents a case-insensitive (to Medley) but
|
time_t mtime;
|
||||||
* case-preserving (to the host) file system. The VA (Version Array)
|
} CurrentVArray;
|
||||||
*/
|
|
||||||
static struct {
|
static FileName VersionArray[VERSIONARRAYLENGTH];
|
||||||
char name[MAXPATHLEN]; /* lowercase unversioned file name */
|
static CurrentVArray VArrayInfo;
|
||||||
struct timespec lastMTime; /* modification time of the directory */
|
|
||||||
int allocated; /* number of entries in the files array */
|
|
||||||
int lastUsed; /* index of the last entry in use in files array */
|
|
||||||
FileName *files; /* array of files */
|
|
||||||
} VA = {0};
|
|
||||||
|
|
||||||
static int locate_file(char *dir, char *name);
|
static int locate_file(char *dir, char *name);
|
||||||
static int make_directory(char *dir);
|
static int make_directory(char *dir);
|
||||||
static int maintain_version(char *file, int forcep);
|
static int maintain_version(char *file, FileName *varray, int forcep);
|
||||||
static int compare_file_versions(const void *a, const void *b);
|
|
||||||
static int get_versionless(FileName *varray, char *file, char *dir);
|
static int get_versionless(FileName *varray, char *file, char *dir);
|
||||||
static int check_vless_link(char *vless, FileName *varray, char *to_file, int *highest_p);
|
static int check_vless_link(char *vless, FileName *varray, char *to_file, int *highest_p);
|
||||||
static int get_old(char *dir, FileName *varray, char *afile, char *vfile);
|
static int get_old(char *dir, FileName *varray, char *afile, char *vfile);
|
||||||
static int get_oldest(char *dir, FileName *varray, char *afile, char *vfile);
|
static int get_oldest(char *dir, FileName *varray, char *afile, char *vfile);
|
||||||
static int get_new(char *dir, FileName *varray, char *afile, char *vfile);
|
static int get_new(char *dir, FileName *varray, char *afile, char *vfile);
|
||||||
static int get_old_new(char *dir, FileName *varray, char *afile, char *vfile);
|
static int get_old_new(char *dir, FileName *varray, char *afile, char *vfile);
|
||||||
static int get_version_array(char *dir, char *file);
|
static int get_version_array(char *dir, char *file, FileName *varray, CurrentVArray *cache);
|
||||||
|
|
||||||
#ifdef DOS
|
#ifdef DOS
|
||||||
static void separate_drive(char *lfname, char *drive)
|
static void separate_drive(char *lfname, char *drive)
|
||||||
@@ -374,24 +367,24 @@ LispPTR COM_openfile(LispPTR *args)
|
|||||||
if (dskp) {
|
if (dskp) {
|
||||||
if (unpack_filename(file, dir, name, ver, 1) == 0) return (NIL);
|
if (unpack_filename(file, dir, name, ver, 1) == 0) return (NIL);
|
||||||
if (true_name(dir) != -1) return (0);
|
if (true_name(dir) != -1) return (0);
|
||||||
if (get_version_array(dir, name) == 0) return (NIL);
|
if (get_version_array(dir, name, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||||
ConcNameAndVersion(name, ver, file);
|
ConcNameAndVersion(name, ver, file);
|
||||||
|
|
||||||
switch (args[1]) {
|
switch (args[1]) {
|
||||||
case RECOG_OLD:
|
case RECOG_OLD:
|
||||||
if (get_old(dir, VA.files, file, name) == 0) return (NIL);
|
if (get_old(dir, VersionArray, file, name) == 0) return (NIL);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RECOG_OLDEST:
|
case RECOG_OLDEST:
|
||||||
if (get_oldest(dir, VA.files, file, name) == 0) return (NIL);
|
if (get_oldest(dir, VersionArray, file, name) == 0) return (NIL);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RECOG_NEW:
|
case RECOG_NEW:
|
||||||
if (get_new(dir, VA.files, file, name) == 0) return (NIL);
|
if (get_new(dir, VersionArray, file, name) == 0) return (NIL);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RECOG_OLD_NEW:
|
case RECOG_OLD_NEW:
|
||||||
if (get_old_new(dir, VA.files, file, name) == 0) return (NIL);
|
if (get_old_new(dir, VersionArray, file, name) == 0) return (NIL);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default: return (NIL);
|
default: return (NIL);
|
||||||
@@ -446,7 +439,7 @@ LispPTR COM_openfile(LispPTR *args)
|
|||||||
* Actually we are creating a new file. We have to
|
* Actually we are creating a new file. We have to
|
||||||
* maintain a version status.
|
* maintain a version status.
|
||||||
*/
|
*/
|
||||||
if (maintain_version(file, 1) == 0) {
|
if (maintain_version(file, (FileName *)NULL, 1) == 0) {
|
||||||
TIMEOUT(rval = close(fd));
|
TIMEOUT(rval = close(fd));
|
||||||
*Lisp_errno = errno;
|
*Lisp_errno = errno;
|
||||||
return (NIL);
|
return (NIL);
|
||||||
@@ -492,7 +485,7 @@ LispPTR COM_openfile(LispPTR *args)
|
|||||||
* the entirely newly created file, versionless file, should not
|
* the entirely newly created file, versionless file, should not
|
||||||
* be linked to any file.
|
* be linked to any file.
|
||||||
*/
|
*/
|
||||||
if (maintain_version(file, 0) == 0) {
|
if (maintain_version(file, (FileName *)NULL, 0) == 0) {
|
||||||
TIMEOUT(close(fd));
|
TIMEOUT(close(fd));
|
||||||
*Lisp_errno = errno;
|
*Lisp_errno = errno;
|
||||||
return (NIL);
|
return (NIL);
|
||||||
@@ -677,7 +670,7 @@ LispPTR COM_closefile(LispPTR *args)
|
|||||||
*Lisp_errno = errno;
|
*Lisp_errno = errno;
|
||||||
return (NIL);
|
return (NIL);
|
||||||
}
|
}
|
||||||
#ifndef DOS /* effectively NEVER, since we're in an ifdef DOS */
|
#ifndef DOS
|
||||||
TIMEOUT(rval = utimes(file, time));
|
TIMEOUT(rval = utimes(file, time));
|
||||||
if (rval != 0) {
|
if (rval != 0) {
|
||||||
*Lisp_errno = errno;
|
*Lisp_errno = errno;
|
||||||
@@ -688,9 +681,13 @@ LispPTR COM_closefile(LispPTR *args)
|
|||||||
int fd, fatp, dskp, rval;
|
int fd, fatp, dskp, rval;
|
||||||
time_t cdate;
|
time_t cdate;
|
||||||
char lfname[MAXPATHLEN + 5], host[MAXNAMLEN];
|
char lfname[MAXPATHLEN + 5], host[MAXNAMLEN];
|
||||||
char file[MAXPATHLEN];
|
char file[MAXPATHLEN], dir[MAXPATHLEN], name[MAXNAMLEN + 1];
|
||||||
|
char ver[VERSIONLEN];
|
||||||
|
DIR *dirp;
|
||||||
|
struct dirent *dp;
|
||||||
struct stat sbuf;
|
struct stat sbuf;
|
||||||
struct timespec timesp[2];
|
struct timeval time[2];
|
||||||
|
ino_t ino;
|
||||||
|
|
||||||
ERRSETJMP(NIL);
|
ERRSETJMP(NIL);
|
||||||
Lisp_errno = (int *)NativeAligned4FromLAddr(args[3]);
|
Lisp_errno = (int *)NativeAligned4FromLAddr(args[3]);
|
||||||
@@ -755,21 +752,51 @@ LispPTR COM_closefile(LispPTR *args)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* introduction of futimens() allows us to set the times on an open
|
if (!unpack_filename(file, dir, name, ver, 1)) return (NIL);
|
||||||
* file descriptor so a lot of directory manipulation to find the
|
|
||||||
* appropriate name associated with the inode is no longer required
|
if (dskp) {
|
||||||
|
/*
|
||||||
|
* On {DSK}, we have to make sure dir is case sensitively existing
|
||||||
|
* directory.
|
||||||
*/
|
*/
|
||||||
|
if (true_name(dir) != -1) return (NIL);
|
||||||
|
|
||||||
timesp[0].tv_sec = (long)sbuf.st_atime;
|
/*
|
||||||
timesp[0].tv_nsec = 0L;
|
* There is a very troublesome problem here. The file name Lisp
|
||||||
timesp[1].tv_sec = (long)ToUnixTime(cdate);
|
* recognizes is not always the same as the name which COM_openfile
|
||||||
timesp[1].tv_nsec = 0L;
|
* used to open the file. Sometimes COM_openfile uses the versionless
|
||||||
|
* file name to open a file, although Lisp always recognizes with
|
||||||
TIMEOUT(rval = futimens(fd, timesp));
|
* *versioned* file name.
|
||||||
|
* Thus, we compare i-node number of the requested file with ones of all
|
||||||
|
* of files on the directory. This is time spending implementation.
|
||||||
|
* More clean up work is needed.
|
||||||
|
*/
|
||||||
|
TIMEOUT(rval = fstat(fd, &sbuf));
|
||||||
if (rval != 0) {
|
if (rval != 0) {
|
||||||
*Lisp_errno = errno;
|
*Lisp_errno = errno;
|
||||||
return (NIL);
|
return (NIL);
|
||||||
}
|
}
|
||||||
|
ino = sbuf.st_ino;
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
TIMEOUT0(dirp = opendir(dir));
|
||||||
|
if (dirp == (DIR *)NULL) {
|
||||||
|
*Lisp_errno = errno;
|
||||||
|
return (NIL);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (S_TOUT(dp = readdir(dirp)); dp != (struct dirent *)NULL || errno == EINTR;
|
||||||
|
errno = 0, S_TOUT(dp = readdir(dirp)))
|
||||||
|
if (dp) {
|
||||||
|
if (ino == (ino_t)dp->d_ino) sprintf(file, "%s/%s", dir, dp->d_name);
|
||||||
|
}
|
||||||
|
TIMEOUT(closedir(dirp));
|
||||||
|
}
|
||||||
|
|
||||||
|
time[0].tv_sec = (long)sbuf.st_atime;
|
||||||
|
time[0].tv_usec = 0L;
|
||||||
|
time[1].tv_sec = (long)ToUnixTime(cdate);
|
||||||
|
time[1].tv_usec = 0L;
|
||||||
|
|
||||||
TIMEOUT(rval = close(fd));
|
TIMEOUT(rval = close(fd));
|
||||||
if (rval == -1) {
|
if (rval == -1) {
|
||||||
@@ -777,6 +804,12 @@ LispPTR COM_closefile(LispPTR *args)
|
|||||||
return (NIL);
|
return (NIL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TIMEOUT(rval = utimes(file, time));
|
||||||
|
if (rval != 0) {
|
||||||
|
*Lisp_errno = errno;
|
||||||
|
return (NIL);
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* DOS */
|
#endif /* DOS */
|
||||||
|
|
||||||
return (ATOM_T);
|
return (ATOM_T);
|
||||||
@@ -885,10 +918,10 @@ LispPTR DSK_getfilename(LispPTR *args)
|
|||||||
* Recognizing a file on DSK device needs the version information.
|
* Recognizing a file on DSK device needs the version information.
|
||||||
* We gather version information in a version array first.
|
* We gather version information in a version array first.
|
||||||
*/
|
*/
|
||||||
if (get_version_array(dir, name) == 0) return (NIL);
|
if (get_version_array(dir, name, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||||
|
|
||||||
ConcNameAndVersion(name, ver, aname);
|
ConcNameAndVersion(name, ver, aname);
|
||||||
if (get_old(dir, VA.files, aname, vname) == 0) return (NIL);
|
if (get_old(dir, VersionArray, aname, vname) == 0) return (NIL);
|
||||||
|
|
||||||
if ((rval = true_name(aname)) == 0) return (NIL);
|
if ((rval = true_name(aname)) == 0) return (NIL);
|
||||||
if (rval == -1) {
|
if (rval == -1) {
|
||||||
@@ -925,10 +958,10 @@ LispPTR DSK_getfilename(LispPTR *args)
|
|||||||
strcpy(vname, dir);
|
strcpy(vname, dir);
|
||||||
dirp = 1;
|
dirp = 1;
|
||||||
} else {
|
} else {
|
||||||
if (get_version_array(dir, name) == 0) return (NIL);
|
if (get_version_array(dir, name, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||||
|
|
||||||
ConcNameAndVersion(name, ver, aname);
|
ConcNameAndVersion(name, ver, aname);
|
||||||
if (get_oldest(dir, VA.files, aname, vname) == 0) return (NIL);
|
if (get_oldest(dir, VersionArray, aname, vname) == 0) return (NIL);
|
||||||
|
|
||||||
if ((rval = true_name(aname)) == 0) return (NIL);
|
if ((rval = true_name(aname)) == 0) return (NIL);
|
||||||
if (rval == -1) {
|
if (rval == -1) {
|
||||||
@@ -974,10 +1007,10 @@ LispPTR DSK_getfilename(LispPTR *args)
|
|||||||
* Here, dir is an existing directory. We have to perform
|
* Here, dir is an existing directory. We have to perform
|
||||||
* "new" recognition with the version information.
|
* "new" recognition with the version information.
|
||||||
*/
|
*/
|
||||||
if (get_version_array(dir, name) == 0) return (NIL);
|
if (get_version_array(dir, name, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||||
|
|
||||||
ConcNameAndVersion(name, ver, aname);
|
ConcNameAndVersion(name, ver, aname);
|
||||||
if (get_new(dir, VA.files, aname, vname) == 0) return (NIL);
|
if (get_new(dir, VersionArray, aname, vname) == 0) return (NIL);
|
||||||
dirp = 0;
|
dirp = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1000,10 +1033,10 @@ LispPTR DSK_getfilename(LispPTR *args)
|
|||||||
strcpy(vname, aname);
|
strcpy(vname, aname);
|
||||||
dirp = 1;
|
dirp = 1;
|
||||||
} else {
|
} else {
|
||||||
if (get_version_array(dir, name) == 0) return (NIL);
|
if (get_version_array(dir, name, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||||
|
|
||||||
ConcNameAndVersion(name, ver, aname);
|
ConcNameAndVersion(name, ver, aname);
|
||||||
if (get_old_new(dir, VA.files, aname, vname) == 0) return (NIL);
|
if (get_old_new(dir, VersionArray, aname, vname) == 0) return (NIL);
|
||||||
dirp = 0;
|
dirp = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1099,6 +1132,7 @@ LispPTR DSK_deletefile(LispPTR *args)
|
|||||||
char file[MAXPATHLEN], fbuf[MAXPATHLEN], vless[MAXPATHLEN];
|
char file[MAXPATHLEN], fbuf[MAXPATHLEN], vless[MAXPATHLEN];
|
||||||
char dir[MAXPATHLEN], ver[VERSIONLEN];
|
char dir[MAXPATHLEN], ver[VERSIONLEN];
|
||||||
int rval, fatp;
|
int rval, fatp;
|
||||||
|
FileName *varray;
|
||||||
#ifdef DOS
|
#ifdef DOS
|
||||||
char drive[1], rawname[MAXNAMLEN];
|
char drive[1], rawname[MAXNAMLEN];
|
||||||
int extlen; /* len of extension, for making backup filename */
|
int extlen; /* len of extension, for making backup filename */
|
||||||
@@ -1126,9 +1160,10 @@ LispPTR DSK_deletefile(LispPTR *args)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (unpack_filename(file, dir, fbuf, ver, 1) == 0) return (NIL);
|
if (unpack_filename(file, dir, fbuf, ver, 1) == 0) return (NIL);
|
||||||
if (get_version_array(dir, fbuf) == 0) return (NIL);
|
if (get_version_array(dir, fbuf, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||||
|
varray = VersionArray;
|
||||||
|
|
||||||
if (NoFileP(VA.files))
|
if (NoFileP(varray))
|
||||||
return (NIL); /*
|
return (NIL); /*
|
||||||
* If the specified file is deleted from
|
* If the specified file is deleted from
|
||||||
* outside of Lisp during the last time
|
* outside of Lisp during the last time
|
||||||
@@ -1143,9 +1178,9 @@ LispPTR DSK_deletefile(LispPTR *args)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
ConcNameAndVersion(fbuf, ver, file);
|
ConcNameAndVersion(fbuf, ver, file);
|
||||||
if (get_oldest(dir, VA.files, file, fbuf) == 0) return (NIL);
|
if (get_oldest(dir, varray, file, fbuf) == 0) return (NIL);
|
||||||
|
|
||||||
if (get_versionless(VA.files, vless, dir) == 0) {
|
if (get_versionless(varray, vless, dir) == 0) {
|
||||||
/*
|
/*
|
||||||
* There is no versionless file. All we have to do is to simply
|
* There is no versionless file. All we have to do is to simply
|
||||||
* try to unlink the specified file.
|
* try to unlink the specified file.
|
||||||
@@ -1164,7 +1199,7 @@ LispPTR DSK_deletefile(LispPTR *args)
|
|||||||
* file is linked will destroy the consistency of the version status.
|
* file is linked will destroy the consistency of the version status.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (check_vless_link(vless, VA.files, fbuf, &rval) == 0) return (NIL);
|
if (check_vless_link(vless, varray, fbuf, &rval) == 0) return (NIL);
|
||||||
|
|
||||||
if (strcmp(file, vless) == 0 || strcmp(file, fbuf) == 0) {
|
if (strcmp(file, vless) == 0 || strcmp(file, fbuf) == 0) {
|
||||||
if (*fbuf != '\0') {
|
if (*fbuf != '\0') {
|
||||||
@@ -1185,12 +1220,12 @@ LispPTR DSK_deletefile(LispPTR *args)
|
|||||||
/*
|
/*
|
||||||
* Finally, we have to maintain the version status.
|
* Finally, we have to maintain the version status.
|
||||||
*/
|
*/
|
||||||
if (maintain_version(vless, 0) == 0) return (NIL);
|
if (maintain_version(vless, (FileName *)NULL, 0) == 0) return (NIL);
|
||||||
return (ATOM_T);
|
return (ATOM_T);
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* Although the versionfile is specified, it is not linked
|
* Although the versionfile is specified, it is not linked
|
||||||
* to any file in VA.files. We should not maintain the version
|
* to any file in varray. We should not maintain the version
|
||||||
* status after deleting the versionless file, because
|
* status after deleting the versionless file, because
|
||||||
* we cannot say whether the versionless file is actually under
|
* we cannot say whether the versionless file is actually under
|
||||||
* control of the Medley DSK file system or not.
|
* control of the Medley DSK file system or not.
|
||||||
@@ -1245,6 +1280,7 @@ LispPTR DSK_renamefile(LispPTR *args)
|
|||||||
char dir[MAXPATHLEN], ver[VERSIONLEN];
|
char dir[MAXPATHLEN], ver[VERSIONLEN];
|
||||||
int rval, fatp;
|
int rval, fatp;
|
||||||
int need_maintain_flg;
|
int need_maintain_flg;
|
||||||
|
FileName *varray;
|
||||||
#ifdef DOS
|
#ifdef DOS
|
||||||
char drive1[1], drive2[1];
|
char drive1[1], drive2[1];
|
||||||
int extlen1, extlen2; /* len of extension */
|
int extlen1, extlen2; /* len of extension */
|
||||||
@@ -1295,9 +1331,10 @@ LispPTR DSK_renamefile(LispPTR *args)
|
|||||||
* We maintain the destination to handle the link damaged case correctly.
|
* We maintain the destination to handle the link damaged case correctly.
|
||||||
*/
|
*/
|
||||||
ConcDirAndName(dir, fbuf, dst);
|
ConcDirAndName(dir, fbuf, dst);
|
||||||
if (maintain_version(dst, 0) == 0) return (NIL);
|
if (maintain_version(dst, (FileName *)NULL, 0) == 0) return (NIL);
|
||||||
|
|
||||||
if (get_version_array(dir, fbuf) == 0) return (NIL);
|
if (get_version_array(dir, fbuf, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||||
|
varray = VersionArray;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Although the file should have been recognized with "new" mode in Lisp
|
* Although the file should have been recognized with "new" mode in Lisp
|
||||||
@@ -1306,7 +1343,7 @@ LispPTR DSK_renamefile(LispPTR *args)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
ConcNameAndVersion(fbuf, ver, dst);
|
ConcNameAndVersion(fbuf, ver, dst);
|
||||||
if (get_new(dir, VA.files, dst, fbuf) == 0) return (NIL);
|
if (get_new(dir, varray, dst, fbuf) == 0) return (NIL);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* At this point, there are three cases for the destination. If there is
|
* At this point, there are three cases for the destination. If there is
|
||||||
@@ -1316,9 +1353,9 @@ LispPTR DSK_renamefile(LispPTR *args)
|
|||||||
* "real" destination file is the file to which the versionless file is linked,
|
* "real" destination file is the file to which the versionless file is linked,
|
||||||
* we have to unlink the versionless file.
|
* we have to unlink the versionless file.
|
||||||
*/
|
*/
|
||||||
if (!NoFileP(VA.files)) {
|
if (!NoFileP(varray)) {
|
||||||
if (OnlyVersionlessP(VA.files)) {
|
if (OnlyVersionlessP(varray)) {
|
||||||
get_versionless(VA.files, vless, dir);
|
get_versionless(varray, vless, dir);
|
||||||
if (strcmp(dst, vless) != 0) {
|
if (strcmp(dst, vless) != 0) {
|
||||||
ConcNameAndVersion(vless, "1", fbuf);
|
ConcNameAndVersion(vless, "1", fbuf);
|
||||||
TIMEOUT(rval = rename(vless, fbuf));
|
TIMEOUT(rval = rename(vless, fbuf));
|
||||||
@@ -1332,8 +1369,8 @@ LispPTR DSK_renamefile(LispPTR *args)
|
|||||||
* We are sure that the versionless file is linked to one of
|
* We are sure that the versionless file is linked to one of
|
||||||
* the higher versioned file here.
|
* the higher versioned file here.
|
||||||
*/
|
*/
|
||||||
get_versionless(VA.files, vless, dir);
|
get_versionless(varray, vless, dir);
|
||||||
if (check_vless_link(vless, VA.files, fbuf, &rval) == 0) { return (NIL); }
|
if (check_vless_link(vless, varray, fbuf, &rval) == 0) { return (NIL); }
|
||||||
if (strcmp(dst, fbuf) == 0) {
|
if (strcmp(dst, fbuf) == 0) {
|
||||||
TIMEOUT(rval = unlink(vless));
|
TIMEOUT(rval = unlink(vless));
|
||||||
if (rval == -1) {
|
if (rval == -1) {
|
||||||
@@ -1345,9 +1382,9 @@ LispPTR DSK_renamefile(LispPTR *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (unpack_filename(src, dir, fbuf, ver, 1) == 0) return (NIL);
|
if (unpack_filename(src, dir, fbuf, ver, 1) == 0) return (NIL);
|
||||||
if (get_version_array(dir, fbuf) == 0) return (NIL);
|
if (get_version_array(dir, fbuf, varray, &VArrayInfo) == 0) return (NIL);
|
||||||
|
|
||||||
if (NoFileP(VA.files))
|
if (NoFileP(varray))
|
||||||
return (NIL); /*
|
return (NIL); /*
|
||||||
* If the specified file is deleted from
|
* If the specified file is deleted from
|
||||||
* outside of Lisp during the last time
|
* outside of Lisp during the last time
|
||||||
@@ -1361,9 +1398,9 @@ LispPTR DSK_renamefile(LispPTR *args)
|
|||||||
* of it.
|
* of it.
|
||||||
*/
|
*/
|
||||||
ConcNameAndVersion(fbuf, ver, src);
|
ConcNameAndVersion(fbuf, ver, src);
|
||||||
if (get_old(dir, VA.files, src, fbuf) == 0) return (NIL);
|
if (get_old(dir, varray, src, fbuf) == 0) return (NIL);
|
||||||
|
|
||||||
if (get_versionless(VA.files, vless, dir) == 0) {
|
if (get_versionless(varray, vless, dir) == 0) {
|
||||||
/*
|
/*
|
||||||
* There is no versionless file. All we have to do is to simply
|
* There is no versionless file. All we have to do is to simply
|
||||||
* try to rename the specified file.
|
* try to rename the specified file.
|
||||||
@@ -1376,7 +1413,7 @@ LispPTR DSK_renamefile(LispPTR *args)
|
|||||||
* versionless file is linked will destroy the consistency of the
|
* versionless file is linked will destroy the consistency of the
|
||||||
* version status.
|
* version status.
|
||||||
*/
|
*/
|
||||||
if (check_vless_link(vless, VA.files, fbuf, &rval) == 0) return (NIL);
|
if (check_vless_link(vless, varray, fbuf, &rval) == 0) return (NIL);
|
||||||
|
|
||||||
if (strcmp(src, vless) == 0 && *fbuf != '\0') {
|
if (strcmp(src, vless) == 0 && *fbuf != '\0') {
|
||||||
/*
|
/*
|
||||||
@@ -1421,9 +1458,9 @@ LispPTR DSK_renamefile(LispPTR *args)
|
|||||||
* is on.
|
* is on.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (maintain_version(dst, 0) == 0) return (NIL);
|
if (maintain_version(dst, (FileName *)NULL, 0) == 0) return (NIL);
|
||||||
if (need_maintain_flg) {
|
if (need_maintain_flg) {
|
||||||
if (maintain_version(src, 0) == 0) return (NIL);
|
if (maintain_version(src, (FileName *)NULL, 0) == 0) return (NIL);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (ATOM_T);
|
return (ATOM_T);
|
||||||
@@ -1621,9 +1658,9 @@ LispPTR COM_getfileinfo(LispPTR *args)
|
|||||||
*/
|
*/
|
||||||
strcpy(file, dir);
|
strcpy(file, dir);
|
||||||
} else {
|
} else {
|
||||||
if (get_version_array(dir, name) == 0) return (NIL);
|
if (get_version_array(dir, name, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||||
ConcNameAndVersion(name, ver, file);
|
ConcNameAndVersion(name, ver, file);
|
||||||
if (get_old(dir, VA.files, file, name) == 0) return (NIL);
|
if (get_old(dir, VersionArray, file, name) == 0) return (NIL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1810,9 +1847,9 @@ LispPTR COM_setfileinfo(LispPTR *args)
|
|||||||
if (dskp) {
|
if (dskp) {
|
||||||
if (unpack_filename(file, dir, name, ver, 1) == 0) return (NIL);
|
if (unpack_filename(file, dir, name, ver, 1) == 0) return (NIL);
|
||||||
if (true_name(dir) != -1) return (0);
|
if (true_name(dir) != -1) return (0);
|
||||||
if (get_version_array(dir, name) == 0) return (NIL);
|
if (get_version_array(dir, name, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||||
ConcNameAndVersion(name, ver, file);
|
ConcNameAndVersion(name, ver, file);
|
||||||
if (get_old(dir, VA.files, file, name) == 0) return (NIL);
|
if (get_old(dir, VersionArray, file, name) == 0) return (NIL);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (args[1]) {
|
switch (args[1]) {
|
||||||
@@ -2766,25 +2803,33 @@ static int make_directory(char *dir)
|
|||||||
* and highest version number respectively.
|
* and highest version number respectively.
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* Finds the highest versioned entry in varray.
|
|
||||||
*
|
*
|
||||||
* Preconditions:
|
* Find the highest versioned entry in varray. Varray has to include at least
|
||||||
* Varray must include at least one versioned file, satisfying the condition:
|
* one versioned file, that is varray has to satisfy (!NoFileP(varray) &&
|
||||||
* (!NoFileP(varray) && !OnlyVersionlessP(varray))
|
* !OnlyVersionlessP(varray)).
|
||||||
* Varray must be sorted from highest to lowest version
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef DOS
|
#ifdef DOS
|
||||||
#define FindHighestVersion(varray, mentry, max_no) \
|
#define FindHighestVersion(varray, mentry, max_no) \
|
||||||
do { \
|
do { \
|
||||||
(max_no) = varray[0].version_no; \
|
FileName *centry; \
|
||||||
(mentry) = &varray[0]; \
|
for (centry = varray, max_no = -1; centry->version_no != LASTVERSIONARRAY; centry++) { \
|
||||||
|
if (centry->version_no > max_no) { \
|
||||||
|
max_no = centry->version_no; \
|
||||||
|
mentry = centry; \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#else
|
#else
|
||||||
#define FindHighestVersion(varray, mentry, max_no) \
|
#define FindHighestVersion(varray, mentry, max_no) \
|
||||||
do { \
|
do { \
|
||||||
(max_no) = varray[0].version_no; \
|
FileName *centry; \
|
||||||
(mentry) = &varray[0]; \
|
for (centry = (varray), (max_no) = 0; centry->version_no != LASTVERSIONARRAY; centry++) { \
|
||||||
|
if (centry->version_no > (max_no)) { \
|
||||||
|
(max_no) = centry->version_no; \
|
||||||
|
(mentry) = centry; \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* DOS */
|
#endif /* DOS */
|
||||||
|
|
||||||
@@ -2872,19 +2917,6 @@ static int make_directory(char *dir)
|
|||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
/*
|
|
||||||
* comparison function for qsort to sort file versions in descending order
|
|
||||||
*/
|
|
||||||
static int compare_file_versions(const void *a, const void *b)
|
|
||||||
{
|
|
||||||
unsigned a_ver = ((FileName *)a)->version_no;
|
|
||||||
unsigned b_ver = ((FileName *)b)->version_no;
|
|
||||||
|
|
||||||
if (a_ver > b_ver) return (-1);
|
|
||||||
if (a_ver < b_ver) return (1);
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* g e t _ v e r s i o n _ a r r a y */
|
/* g e t _ v e r s i o n _ a r r a y */
|
||||||
@@ -2896,6 +2928,7 @@ static int compare_file_versions(const void *a, const void *b)
|
|||||||
/* guarantee that the directory exists. */
|
/* guarantee that the directory exists. */
|
||||||
/* file File name, optionally including a (unix) version */
|
/* file File name, optionally including a (unix) version */
|
||||||
/* varray Place to put the version array entries. */
|
/* varray Place to put the version array entries. */
|
||||||
|
/* cache Place to hold info about the new version array */
|
||||||
/* */
|
/* */
|
||||||
/* Read thru DIR and gather all files that match FILE into */
|
/* Read thru DIR and gather all files that match FILE into */
|
||||||
/* VARRAY. DIR's case must match existing directory's, but */
|
/* VARRAY. DIR's case must match existing directory's, but */
|
||||||
@@ -2905,15 +2938,15 @@ static int compare_file_versions(const void *a, const void *b)
|
|||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
static int get_version_array(char *dir, char *file)
|
static int get_version_array(char *dir, char *file, FileName *varray, CurrentVArray *cache)
|
||||||
{
|
{
|
||||||
#ifdef DOS
|
#ifdef DOS
|
||||||
/* DOS version-array builder */
|
|
||||||
char lcased_file[MAXPATHLEN];
|
char lcased_file[MAXPATHLEN];
|
||||||
char old_file[MAXPATHLEN];
|
char old_file[MAXPATHLEN];
|
||||||
char name[MAXNAMLEN];
|
char name[MAXNAMLEN];
|
||||||
char ver[VERSIONLEN];
|
char ver[VERSIONLEN];
|
||||||
int varray_index = 0;
|
FileName *svarray;
|
||||||
struct find_t dirp;
|
struct find_t dirp;
|
||||||
struct direct *dp;
|
struct direct *dp;
|
||||||
int rval, drive = 0, isslash = 0;
|
int rval, drive = 0, isslash = 0;
|
||||||
@@ -2954,12 +2987,14 @@ static int get_version_array(char *dir, char *file)
|
|||||||
|
|
||||||
make_old_version(old_file, lcased_file);
|
make_old_version(old_file, lcased_file);
|
||||||
|
|
||||||
|
svarray = varray;
|
||||||
|
|
||||||
TIMEOUT(res = _dos_findfirst(old_file, _A_NORMAL | _A_SUBDIR, &dirp));
|
TIMEOUT(res = _dos_findfirst(old_file, _A_NORMAL | _A_SUBDIR, &dirp));
|
||||||
if (res == 0) {
|
if (res == 0) {
|
||||||
strcpy(name, dirp.name);
|
strcpy(name, dirp.name);
|
||||||
strcpy(VA.files[varray_index].name, name);
|
strcpy(svarray->name, name);
|
||||||
VA.files[varray_index].version_no = 0;
|
svarray->version_no = 0;
|
||||||
varray_index++;
|
svarray++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************/
|
/*******************************/
|
||||||
@@ -2978,48 +3013,34 @@ static int get_version_array(char *dir, char *file)
|
|||||||
separate_version(name, ver, 1);
|
separate_version(name, ver, 1);
|
||||||
DOWNCASE(name);
|
DOWNCASE(name);
|
||||||
|
|
||||||
strcpy(VA.files[varray_index].name, dirp.name);
|
strcpy(svarray->name, dirp.name);
|
||||||
if (*ver == '\0') {
|
if (*ver == '\0') {
|
||||||
/* Versionless file */
|
/* Versionless file */
|
||||||
VA.files[varray_index].version_no = 1;
|
svarray->version_no = 1;
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* separate_version guarantees ver is a numeric string.
|
* separator_version guarantees ver is a numeric
|
||||||
|
* string.
|
||||||
*/
|
*/
|
||||||
VA.files[varray_index].version_no = strtoul(ver, (char **)NULL, 10);
|
svarray->version_no = strtoul(ver, (char **)NULL, 10);
|
||||||
}
|
|
||||||
varray_index++;
|
|
||||||
if (varray_index >= VERSIONARRAYMAXLENGTH) {
|
|
||||||
*Lisp_errno = EIO;
|
|
||||||
return (0);
|
|
||||||
} else if (varray_index >= VA.allocated) {
|
|
||||||
VA.allocated += VERSIONARRAYCHUNKLENGTH;
|
|
||||||
VA.files = realloc(VA.files,
|
|
||||||
sizeof(*VA.files) * VA.allocated);
|
|
||||||
}
|
}
|
||||||
|
svarray++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The last entry of VA.files is indicated by setting LASTVERSIONARRAY into
|
* The last entry of varray is indicated by setting LASTVERSIONARRAY into
|
||||||
* version_no field.
|
* version_no field.
|
||||||
*/
|
*/
|
||||||
VA.files[varray_index].version_no = LASTVERSIONARRAY;
|
svarray->version_no = LASTVERSIONARRAY;
|
||||||
VA.lastUsed = varray_index;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If any files have been stored in VA.files, we store the name
|
* If more than one files have been stored in varray, we store the name
|
||||||
* without version in the last marker entry.
|
* without version in the last marker entry.
|
||||||
*
|
|
||||||
* NOTE: sorting "varray_index" entries will leave the LASTVERSIONARRAY item
|
|
||||||
* untouched by the sort, which is intentional.
|
|
||||||
*/
|
*/
|
||||||
if (!NoFileP(VA.files)) {
|
if (!NoFileP(varray)) {
|
||||||
strcpy(name, VA.files[0].name);
|
strcpy(name, varray->name);
|
||||||
separate_version(name, ver, 1);
|
separate_version(name, ver, 1);
|
||||||
strcpy(VA.files[varray_index].name, name);
|
strcpy(svarray->name, name);
|
||||||
if (varray_index > 1) {
|
|
||||||
qsort(VA.files, varray_index, sizeof(*VA.files), compare_file_versions);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (1);
|
return (1);
|
||||||
@@ -3029,11 +3050,13 @@ static int get_version_array(char *dir, char *file)
|
|||||||
char lcased_file[MAXNAMLEN];
|
char lcased_file[MAXNAMLEN];
|
||||||
char name[MAXNAMLEN];
|
char name[MAXNAMLEN];
|
||||||
char ver[VERSIONLEN];
|
char ver[VERSIONLEN];
|
||||||
int varray_index = 0;
|
FileName *svarray;
|
||||||
DIR *dirp;
|
DIR *dirp;
|
||||||
struct dirent *dp;
|
struct dirent *dp;
|
||||||
|
/* Used in commented out code below:
|
||||||
int rval;
|
int rval;
|
||||||
struct stat sbuf;
|
struct stat sbuf;
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* First of all, prepare a lower cased file name for the case insensitive
|
* First of all, prepare a lower cased file name for the case insensitive
|
||||||
@@ -3043,27 +3066,30 @@ static int get_version_array(char *dir, char *file)
|
|||||||
separate_version(lcased_file, ver, 1);
|
separate_version(lcased_file, ver, 1);
|
||||||
DOWNCASE(lcased_file);
|
DOWNCASE(lcased_file);
|
||||||
|
|
||||||
/* Cache for VA.files reinstated using nanosecond timestamps which many
|
/*
|
||||||
* systems provide for directory modification times.
|
|
||||||
* POSIX defines the struct stat field containing the nanosecond resolution
|
|
||||||
* modification time as "st_mtim". See "version.h" for accomodations
|
|
||||||
* for systems that call it something else (e.g., macOS st_mtimespec).
|
|
||||||
*/
|
|
||||||
|
|
||||||
TIMEOUT(rval = stat(dir, &sbuf));
|
TIMEOUT(rval = stat(dir, &sbuf));
|
||||||
if (rval == -1) {
|
if (rval == -1) {
|
||||||
*Lisp_errno = errno;
|
*Lisp_errno = errno;
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
if (0 == strcmp(lcased_file, VA.name) &&
|
*/
|
||||||
sbuf.st_mtim.tv_sec == VA.lastMTime.tv_sec &&
|
|
||||||
sbuf.st_mtim.tv_nsec == VA.lastMTime.tv_nsec) {
|
|
||||||
return (1);
|
|
||||||
} else {
|
|
||||||
VA.lastMTime = sbuf.st_mtim;
|
|
||||||
strcpy(VA.name, lcased_file);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If the cached version array is still valid, we can return immediately.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Cache mechanism is not used now, because of the bug of Sun OS.
|
||||||
|
* Sometimes just after unlinking a file on a directory, the st_mtime
|
||||||
|
* of the directory does not change. This will make Maiko believe
|
||||||
|
* cached version array is still valid, although it is already invalid.
|
||||||
|
* sync(2) has no effect on such case.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
if ((sbuf.st_mtime == cache->mtime) && strcmp(dir, cache->path) == 0
|
||||||
|
&& strcmp(lcased_file, cache->file) == 0) return(1);
|
||||||
|
*/
|
||||||
errno = 0;
|
errno = 0;
|
||||||
TIMEOUT0(dirp = opendir(dir));
|
TIMEOUT0(dirp = opendir(dir));
|
||||||
if (dirp == NULL) {
|
if (dirp == NULL) {
|
||||||
@@ -3071,13 +3097,7 @@ static int get_version_array(char *dir, char *file)
|
|||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* There is no initialization call for the local file system, so we
|
for (S_TOUT(dp = readdir(dirp)), svarray = varray; dp != NULL || errno == EINTR;
|
||||||
* must ensure there is initial storage allocated for the version array */
|
|
||||||
if (VA.files == NULL) {
|
|
||||||
VA.files = calloc(VERSIONARRAYCHUNKLENGTH, sizeof(*VA.files));
|
|
||||||
VA.allocated = VERSIONARRAYCHUNKLENGTH;
|
|
||||||
}
|
|
||||||
for (S_TOUT(dp = readdir(dirp)); dp != NULL || errno == EINTR;
|
|
||||||
errno = 0, S_TOUT(dp = readdir(dirp)))
|
errno = 0, S_TOUT(dp = readdir(dirp)))
|
||||||
if (dp) {
|
if (dp) {
|
||||||
strcpy(name, dp->d_name);
|
strcpy(name, dp->d_name);
|
||||||
@@ -3087,50 +3107,44 @@ static int get_version_array(char *dir, char *file)
|
|||||||
/*
|
/*
|
||||||
* This file can be regarded as a same file in Lisp sense.
|
* This file can be regarded as a same file in Lisp sense.
|
||||||
*/
|
*/
|
||||||
strcpy(VA.files[varray_index].name, dp->d_name);
|
strcpy(svarray->name, dp->d_name);
|
||||||
if (*ver == '\0') {
|
if (*ver == '\0') {
|
||||||
/* Versionless file */
|
/* Versionless file */
|
||||||
VA.files[varray_index].version_no = 0;
|
svarray->version_no = 0;
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* separate_version guarantees ver is a numeric string.
|
* separator_version guarantees ver is a numeric
|
||||||
|
* string.
|
||||||
*/
|
*/
|
||||||
VA.files[varray_index].version_no = strtoul(ver, (char **)NULL, 10);
|
svarray->version_no = strtoul(ver, (char **)NULL, 10);
|
||||||
}
|
|
||||||
varray_index++;
|
|
||||||
if (varray_index >= VERSIONARRAYMAXLENGTH) {
|
|
||||||
*Lisp_errno = EIO;
|
|
||||||
return (0);
|
|
||||||
} else if (varray_index >= VA.allocated) {
|
|
||||||
VA.allocated += VERSIONARRAYCHUNKLENGTH;
|
|
||||||
VA.files = realloc(VA.files,
|
|
||||||
sizeof(*VA.files) * VA.allocated);
|
|
||||||
}
|
}
|
||||||
|
svarray++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* The last entry of varray is indicated by setting LASTVERSIONARRAY into
|
* The last entry of varray is indicated by setting LASTVERSIONARRAY into
|
||||||
* version_no field.
|
* version_no field.
|
||||||
*/
|
*/
|
||||||
VA.files[varray_index].version_no = LASTVERSIONARRAY;
|
svarray->version_no = LASTVERSIONARRAY;
|
||||||
VA.lastUsed = varray_index;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If any files have been stored in VA.files, we store the name
|
* If more than one files have been stored in varray, we store the name
|
||||||
* without version in the last marker entry.
|
* without version in the last marker entry.
|
||||||
*
|
|
||||||
* NOTE: sorting "varray_index" entries will leave the LASTVERSIONARRAY item
|
|
||||||
* untouched by the sort, which is intentional.
|
|
||||||
*/
|
*/
|
||||||
if (!NoFileP(VA.files)) {
|
if (!NoFileP(varray)) {
|
||||||
strcpy(name, VA.files[0].name);
|
strcpy(name, varray->name);
|
||||||
separate_version(name, ver, 1);
|
separate_version(name, ver, 1);
|
||||||
strcpy(VA.files[varray_index].name, name);
|
strcpy(svarray->name, name);
|
||||||
if (varray_index > 1) {
|
|
||||||
qsort(VA.files, varray_index, sizeof(*VA.files), compare_file_versions);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Update cache information.
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
strcpy(cache->path, dir);
|
||||||
|
strcpy(cache->file, lcased_file);
|
||||||
|
cache->mtime = sbuf.st_mtime;
|
||||||
|
*/
|
||||||
TIMEOUT(closedir(dirp));
|
TIMEOUT(closedir(dirp));
|
||||||
return (1);
|
return (1);
|
||||||
#endif /* DOS */
|
#endif /* DOS */
|
||||||
@@ -3162,7 +3176,7 @@ static int get_version_array(char *dir, char *file)
|
|||||||
* to maintain the directory on which a file is being created.
|
* to maintain the directory on which a file is being created.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int maintain_version(char *file, int forcep)
|
static int maintain_version(char *file, FileName *varray, int forcep)
|
||||||
{
|
{
|
||||||
char dir[MAXPATHLEN], fname[MAXNAMLEN], ver[VERSIONLEN];
|
char dir[MAXPATHLEN], fname[MAXNAMLEN], ver[VERSIONLEN];
|
||||||
char old_file[MAXPATHLEN], vless[MAXPATHLEN];
|
char old_file[MAXPATHLEN], vless[MAXPATHLEN];
|
||||||
@@ -3170,14 +3184,17 @@ static int maintain_version(char *file, int forcep)
|
|||||||
int rval, max_no;
|
int rval, max_no;
|
||||||
FileName *entry;
|
FileName *entry;
|
||||||
|
|
||||||
|
if (varray == (FileName *)NULL) {
|
||||||
if (unpack_filename(file, dir, fname, ver, 1) == 0) return (0);
|
if (unpack_filename(file, dir, fname, ver, 1) == 0) return (0);
|
||||||
/*
|
/*
|
||||||
* We have to make sure that dir is the existing directory.
|
* We have to make sure that dir is the existing directory.
|
||||||
*/
|
*/
|
||||||
if (true_name(dir) != -1) return (0);
|
if (true_name(dir) != -1) return (0);
|
||||||
if (get_version_array(dir, fname) == 0) return (0);
|
if (get_version_array(dir, fname, VersionArray, &VArrayInfo) == 0) return (0);
|
||||||
|
varray = VersionArray;
|
||||||
|
}
|
||||||
|
|
||||||
if (NoFileP(VA.files)) {
|
if (NoFileP(varray)) {
|
||||||
/*
|
/*
|
||||||
* We don't need to care about such case that there is no such file
|
* We don't need to care about such case that there is no such file
|
||||||
* or an only versionless file exists.
|
* or an only versionless file exists.
|
||||||
@@ -3185,14 +3202,14 @@ static int maintain_version(char *file, int forcep)
|
|||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OnlyVersionlessP(VA.files)) {
|
if (OnlyVersionlessP(varray)) {
|
||||||
if (forcep) {
|
if (forcep) {
|
||||||
/*
|
/*
|
||||||
* If forcep, we link the versionless file to the version
|
* If forcep, we link the versionless file to the version
|
||||||
* 1 file.
|
* 1 file.
|
||||||
*/
|
*/
|
||||||
#ifndef DOS
|
#ifndef DOS
|
||||||
get_versionless(VA.files, vless, dir);
|
get_versionless(varray, vless, dir);
|
||||||
ConcNameAndVersion(vless, "1", fname);
|
ConcNameAndVersion(vless, "1", fname);
|
||||||
TIMEOUT(rval = link(vless, fname));
|
TIMEOUT(rval = link(vless, fname));
|
||||||
if (rval == -1) {
|
if (rval == -1) {
|
||||||
@@ -3209,13 +3226,13 @@ static int maintain_version(char *file, int forcep)
|
|||||||
* exists. Thus, FindHighestVersion works fine from now on.
|
* exists. Thus, FindHighestVersion works fine from now on.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (get_versionless(VA.files, vless, dir) == 0) {
|
if (get_versionless(varray, vless, dir) == 0) {
|
||||||
/*
|
/*
|
||||||
* There is not a versionless file, but at least one versioned file.
|
* There is not a versionless file, but at least one versioned file.
|
||||||
* Thus, the thing we have to do is to link a versionless file
|
* Thus, the thing we have to do is to link a versionless file
|
||||||
* to the existing highest versioned file.
|
* to the existing highest versioned file.
|
||||||
*/
|
*/
|
||||||
FindHighestVersion(VA.files, entry, max_no);
|
FindHighestVersion(varray, entry, max_no);
|
||||||
ConcDirAndName(dir, entry->name, old_file);
|
ConcDirAndName(dir, entry->name, old_file);
|
||||||
/*
|
/*
|
||||||
* The versionless file should have the same case name as the old
|
* The versionless file should have the same case name as the old
|
||||||
@@ -3234,15 +3251,15 @@ static int maintain_version(char *file, int forcep)
|
|||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (check_vless_link(vless, VA.files, old_file, &highest_p) == 0) return (0);
|
if (check_vless_link(vless, varray, old_file, &highest_p) == 0) return (0);
|
||||||
|
|
||||||
if (*old_file == '\0') {
|
if (*old_file == '\0') {
|
||||||
/*
|
/*
|
||||||
* The versionless file is not linked to any file in VA.files.
|
* The versionless file is not linked to any file in varray.
|
||||||
* Thus, we have to link the versionless file to the file which
|
* Thus, we have to link the versionless file to the file which
|
||||||
* is versioned one higher than the existing highest version.
|
* is versioned one higher than the existing highest version.
|
||||||
*/
|
*/
|
||||||
FindHighestVersion(VA.files, entry, max_no);
|
FindHighestVersion(varray, entry, max_no);
|
||||||
sprintf(ver, "%u", max_no + 1);
|
sprintf(ver, "%u", max_no + 1);
|
||||||
/*
|
/*
|
||||||
* The old file should have the same case name as the versionless
|
* The old file should have the same case name as the versionless
|
||||||
@@ -3267,7 +3284,7 @@ static int maintain_version(char *file, int forcep)
|
|||||||
return (1);
|
return (1);
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* Although the versionless file is linked to a file in VA.files,
|
* Although the versionless file is linked to a file in varray,
|
||||||
* the file is not the highest versioned file. We have to unlink
|
* the file is not the highest versioned file. We have to unlink
|
||||||
* the wrongly linked versionless file, and link the highest versioned
|
* the wrongly linked versionless file, and link the highest versioned
|
||||||
* file to a versionless file.
|
* file to a versionless file.
|
||||||
@@ -3277,7 +3294,7 @@ static int maintain_version(char *file, int forcep)
|
|||||||
*Lisp_errno = errno;
|
*Lisp_errno = errno;
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
FindHighestVersion(VA.files, entry, max_no);
|
FindHighestVersion(varray, entry, max_no);
|
||||||
ConcDirAndName(dir, entry->name, old_file);
|
ConcDirAndName(dir, entry->name, old_file);
|
||||||
/*
|
/*
|
||||||
* The versionless file should have the same case name as the old
|
* The versionless file should have the same case name as the old
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ void make_dsp_instance(DspInterface dsp, char *lispbitmap, int width_hint, int h
|
|||||||
} else if (VGA_p()) {
|
} else if (VGA_p()) {
|
||||||
VGA_init(dsp, 0, 0, 0, depth_hint);
|
VGA_init(dsp, 0, 0, 0, depth_hint);
|
||||||
} else { /* Can't set *ANY* video mode! */
|
} else { /* Can't set *ANY* video mode! */
|
||||||
(void)(void)fprintf(stderr, "No portable graphics mode supported by this host.\n");
|
(void)fprintf(stderr, "No portable graphics mode supported by this host.\n");
|
||||||
(void)(void)fprintf(stderr, "\n-Expected VESA or VGA.\n");
|
(void)fprintf(stderr, "\n-Expected VESA or VGA.\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -69,7 +69,7 @@ void make_dsp_instance(DspInterface dsp, char *lispbitmap, int width_hint, int h
|
|||||||
#elif XWINDOW
|
#elif XWINDOW
|
||||||
/* lispbitmap is 0 when we call X_init the first time. */
|
/* lispbitmap is 0 when we call X_init the first time. */
|
||||||
if (X_init(dsp, 0, LispDisplayRequestedWidth, LispDisplayRequestedHeight, depth_hint) == NULL) {
|
if (X_init(dsp, 0, LispDisplayRequestedWidth, LispDisplayRequestedHeight, depth_hint) == NULL) {
|
||||||
(void)fprintf(stderr, "Can't open display.");
|
fprintf(stderr, "Can't open display.");
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
#endif /* DOS | XWINDOW */
|
#endif /* DOS | XWINDOW */
|
||||||
@@ -87,7 +87,7 @@ void GenericReturnVoid(void *d) {(void)d; return; }
|
|||||||
void GenericPanic(void *d) {
|
void GenericPanic(void *d) {
|
||||||
(void)d;
|
(void)d;
|
||||||
TPRINT(("Enter GenericPanic\n"));
|
TPRINT(("Enter GenericPanic\n"));
|
||||||
(void)fprintf(stderr, "Panic! Call to uninitialized display slot!");
|
fprintf(stderr, "Panic! Call to uninitialized display slot!");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ LispPTR N_OP_findkey(LispPTR tos, int byte) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (CURRENTFX->alink & 1) { /* slow case */
|
if (CURRENTFX->alink & 1) { /* slow case */
|
||||||
find_end = NativeAligned2FromStackOffset(CURRENTFX->blink - 4);
|
find_end = (DLword *)NativeAligned2FromLAddr(STK_OFFSET | (CURRENTFX->blink - 4));
|
||||||
} else { /* Fast cae */
|
} else { /* Fast cae */
|
||||||
find_end = ((DLword *)CURRENTFX) - 2 - 4;
|
find_end = ((DLword *)CURRENTFX) - 2 - 4;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
#include "emlglob.h"
|
#include "emlglob.h"
|
||||||
#include "fvardefs.h" // for N_OP_fvar_, N_OP_fvarn, N_OP_stkscan, nati...
|
#include "fvardefs.h" // for N_OP_fvar_, N_OP_fvarn, N_OP_stkscan, nati...
|
||||||
#include "gcdata.h" // for GCLOOKUP, ADDREF, DELREF
|
#include "gcdata.h" // for GCLOOKUP, ADDREF, DELREF
|
||||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
|
||||||
#include "lispmap.h" // for ATOMS_HI, STK_HI
|
#include "lispmap.h" // for ATOMS_HI, STK_HI
|
||||||
#include "lspglob.h" // for Stackspace
|
#include "lspglob.h" // for Stackspace
|
||||||
#include "lsptypes.h" // for DLword, LispPTR, GETBASEWORD, state, FRAME...
|
#include "lsptypes.h" // for DLword, LispPTR, GETBASEWORD, state, FRAME...
|
||||||
|
|||||||
1
src/gc.c
1
src/gc.c
@@ -12,7 +12,6 @@
|
|||||||
#include <stdio.h> // for printf
|
#include <stdio.h> // for printf
|
||||||
#include "emlglob.h"
|
#include "emlglob.h"
|
||||||
#include "gcdata.h" // for GCLOOKUPV
|
#include "gcdata.h" // for GCLOOKUPV
|
||||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
|
||||||
#include "gcdefs.h" // for OP_gcref
|
#include "gcdefs.h" // for OP_gcref
|
||||||
#include "lspglob.h"
|
#include "lspglob.h"
|
||||||
#include "lsptypes.h" // for state, ByteCode, PC, TopOfStack, Get_code_...
|
#include "lsptypes.h" // for state, ByteCode, PC, TopOfStack, Get_code_...
|
||||||
|
|||||||
@@ -35,7 +35,6 @@
|
|||||||
#include "commondefs.h" // for error
|
#include "commondefs.h" // for error
|
||||||
#include "gccodedefs.h" // for code_block_size, reclaimcodeblock
|
#include "gccodedefs.h" // for code_block_size, reclaimcodeblock
|
||||||
#include "gcdata.h" // for REC_GCLOOKUP, DELREF, ADDREF
|
#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 "lspglob.h" // for Deleted_Implicit_Hash_Slot_word, UFNTable
|
||||||
#include "lsptypes.h" // for LispPTR, NIL, UFN, Get_code_BYTE, POINTERMASK
|
#include "lsptypes.h" // for LispPTR, NIL, UFN, Get_code_BYTE, POINTERMASK
|
||||||
#include "stack.h" // for fnhead
|
#include "stack.h" // for fnhead
|
||||||
|
|||||||
@@ -49,7 +49,6 @@
|
|||||||
#include "commondefs.h" // for error
|
#include "commondefs.h" // for error
|
||||||
#include "gccodedefs.h" // for reclaimcodeblock
|
#include "gccodedefs.h" // for reclaimcodeblock
|
||||||
#include "gcdata.h" // for DELREF, REC_GCLOOKUP
|
#include "gcdata.h" // for DELREF, REC_GCLOOKUP
|
||||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
|
||||||
#include "gcfinaldefs.h" // for arrayblockmerger, checkarrayblock, deleteblock
|
#include "gcfinaldefs.h" // for arrayblockmerger, checkarrayblock, deleteblock
|
||||||
#include "lispemul.h" // for LispPTR, NIL, T, POINTERMASK, DLword, ATOM_T
|
#include "lispemul.h" // for LispPTR, NIL, T, POINTERMASK, DLword, ATOM_T
|
||||||
#include "llstkdefs.h" // for decusecount68k
|
#include "llstkdefs.h" // for decusecount68k
|
||||||
@@ -157,9 +156,11 @@ LispPTR findptrsbuffer(LispPTR ptr) {
|
|||||||
while (LAddrFromNative(bptr) != NIL) {
|
while (LAddrFromNative(bptr) != NIL) {
|
||||||
if (ptr == bptr->vmempage)
|
if (ptr == bptr->vmempage)
|
||||||
return (LAddrFromNative(bptr));
|
return (LAddrFromNative(bptr));
|
||||||
else
|
else {
|
||||||
|
if (bptr->sysnext & 0xF0000000) printf("findptrsbuffer: would have failed %p 0x%X\n", bptr, bptr->sysnext);
|
||||||
bptr = (struct buf *)NativeAligned4FromLAddr(bptr->sysnext);
|
bptr = (struct buf *)NativeAligned4FromLAddr(bptr->sysnext);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return (NIL);
|
return (NIL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -225,8 +226,9 @@ LispPTR checkarrayblock(LispPTR base, LispPTR free, LispPTR onfreelist) {
|
|||||||
printarrayblock(base);
|
printarrayblock(base);
|
||||||
error("ARRAYBLOCK Trailer INUSE bit set wrong\n");
|
error("ARRAYBLOCK Trailer INUSE bit set wrong\n");
|
||||||
} else if (!onfreelist || (bbase->arlen < MINARRAYBLOCKSIZE))
|
} else if (!onfreelist || (bbase->arlen < MINARRAYBLOCKSIZE))
|
||||||
return (NIL);
|
|
||||||
/* Remaining tests only for free list. */
|
/* Remaining tests only for free list. */
|
||||||
|
return (NIL);
|
||||||
|
|
||||||
bfwd = (struct arrayblock *)NativeAligned4FromLAddr(bbase->fwd);
|
bfwd = (struct arrayblock *)NativeAligned4FromLAddr(bbase->fwd);
|
||||||
bbwd = (struct arrayblock *)NativeAligned4FromLAddr(bbase->bkwd);
|
bbwd = (struct arrayblock *)NativeAligned4FromLAddr(bbase->bkwd);
|
||||||
if ((bbwd->fwd != base) || (bfwd->bkwd != base)) {
|
if ((bbwd->fwd != base) || (bfwd->bkwd != base)) {
|
||||||
@@ -351,6 +353,7 @@ LispPTR makefreearrayblock(LispPTR block, DLword length) {
|
|||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
LispPTR arrayblockmerger(LispPTR base, LispPTR nbase) {
|
LispPTR arrayblockmerger(LispPTR base, LispPTR nbase) {
|
||||||
DLword arlens, narlens, secondbite, minblocksize, shaveback;
|
DLword arlens, narlens, secondbite, minblocksize, shaveback;
|
||||||
struct arrayblock *bbase, *bnbase;
|
struct arrayblock *bbase, *bnbase;
|
||||||
@@ -359,23 +362,12 @@ LispPTR arrayblockmerger(LispPTR base, LispPTR nbase) {
|
|||||||
arlens = bbase->arlen;
|
arlens = bbase->arlen;
|
||||||
narlens = bnbase->arlen;
|
narlens = bnbase->arlen;
|
||||||
secondbite = MAXARRAYBLOCKSIZE - arlens;
|
secondbite = MAXARRAYBLOCKSIZE - arlens;
|
||||||
/* There are three cases for merging the blocks
|
if (narlens > secondbite) {
|
||||||
* (1) the total size of the two blocks is less than max:
|
|
||||||
* merge into a single block
|
|
||||||
* (2) creating a max size block leaves a viable leftover block:
|
|
||||||
* move the boundary to make a max block and a leftover block
|
|
||||||
* (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) {
|
|
||||||
error("Attempt to merge non-adjacent blocks in array space\n");
|
|
||||||
}
|
|
||||||
if (narlens > secondbite) { /* (2) or (3) */
|
|
||||||
arlens = MAXARRAYBLOCKSIZE;
|
arlens = MAXARRAYBLOCKSIZE;
|
||||||
narlens = narlens - secondbite;
|
narlens = narlens - secondbite;
|
||||||
minblocksize =
|
minblocksize =
|
||||||
((*Hunk_word == ATOM_T) ? (ARRAYBLOCKOVERHEADCELLS + MAXCELLSPERHUNK) : MINARRAYBLOCKSIZE);
|
((*Hunk_word == ATOM_T) ? (ARRAYBLOCKOVERHEADCELLS + MAXCELLSPERHUNK) : MINARRAYBLOCKSIZE);
|
||||||
if (narlens < minblocksize) { /* (3) */
|
if (narlens < minblocksize) {
|
||||||
shaveback = narlens - minblocksize;
|
shaveback = narlens - minblocksize;
|
||||||
narlens = minblocksize;
|
narlens = minblocksize;
|
||||||
arlens += shaveback;
|
arlens += shaveback;
|
||||||
@@ -399,10 +391,10 @@ LispPTR mergebackward(LispPTR base) {
|
|||||||
LispPTR pbase;
|
LispPTR pbase;
|
||||||
struct arrayblock *ptrailer;
|
struct arrayblock *ptrailer;
|
||||||
|
|
||||||
|
ptrailer = (struct arrayblock *)NativeAligned4FromLAddr(base - ARRAYBLOCKTRAILERWORDS);
|
||||||
if (base == NIL)
|
if (base == NIL)
|
||||||
return (NIL);
|
return (NIL);
|
||||||
ptrailer = (struct arrayblock *)NativeAligned4FromLAddr(base - ARRAYBLOCKTRAILERWORDS);
|
else if ((*ArrayMerging_word == NIL) ||
|
||||||
if ((*ArrayMerging_word == NIL) ||
|
|
||||||
((base == *ArraySpace_word) || ((base == *ArraySpace2_word) || (ptrailer->inuse == T))))
|
((base == *ArraySpace_word) || ((base == *ArraySpace2_word) || (ptrailer->inuse == T))))
|
||||||
return (linkblock(base));
|
return (linkblock(base));
|
||||||
pbase = base - 2 * ptrailer->arlen;
|
pbase = base - 2 * ptrailer->arlen;
|
||||||
@@ -422,18 +414,16 @@ LispPTR mergebackward(LispPTR base) {
|
|||||||
LispPTR mergeforward(LispPTR base) {
|
LispPTR mergeforward(LispPTR base) {
|
||||||
LispPTR nbase, nbinuse;
|
LispPTR nbase, nbinuse;
|
||||||
struct arrayblock *bbase, *bnbase;
|
struct arrayblock *bbase, *bnbase;
|
||||||
if (*ArrayMerging_word == NIL) return NIL;
|
|
||||||
if (base == NIL) return NIL;
|
|
||||||
if (checkarrayblock(base, T, T)) return NIL;
|
|
||||||
|
|
||||||
bbase = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
bbase = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
||||||
nbase = base + 2 * (bbase->arlen);
|
nbase = base + 2 * (bbase->arlen);
|
||||||
if (nbase == *ArrayFrLst_word || nbase == *ArrayFrLst2_word) return NIL;
|
|
||||||
|
|
||||||
bnbase = (struct arrayblock *)NativeAligned4FromLAddr(nbase);
|
bnbase = (struct arrayblock *)NativeAligned4FromLAddr(nbase);
|
||||||
nbinuse = bnbase->inuse;
|
if ((*ArrayMerging_word == NIL) ||
|
||||||
if (checkarrayblock(nbase, !nbinuse, NIL)) return NIL;
|
((base == NIL) ||
|
||||||
if (nbinuse) return (NIL);
|
(checkarrayblock(base, T, T) ||
|
||||||
|
((nbase == *ArrayFrLst_word) ||
|
||||||
|
((nbase == *ArrayFrLst2_word) ||
|
||||||
|
(checkarrayblock(nbase, (!(nbinuse = bnbase->inuse)), NIL) || nbinuse))))))
|
||||||
|
return (NIL);
|
||||||
deleteblock(nbase);
|
deleteblock(nbase);
|
||||||
deleteblock(base);
|
deleteblock(base);
|
||||||
return (arrayblockmerger(base, nbase));
|
return (arrayblockmerger(base, nbase));
|
||||||
@@ -552,15 +542,15 @@ void printarrayblock(LispPTR base) {
|
|||||||
printf(" Length: %d cells.\n\n", bbase->arlen);
|
printf(" Length: %d cells.\n\n", bbase->arlen);
|
||||||
|
|
||||||
addr = ((LispPTR *)bbase) - 20;
|
addr = ((LispPTR *)bbase) - 20;
|
||||||
for (; addr < (LispPTR *)bbase; addr++) printf("%16p %8x\n", (void *)addr, *addr);
|
for (; addr < (LispPTR *)bbase; addr++) printf("%p %8x\n", (void *)addr, *addr);
|
||||||
printf("%16p %8x <- array header\n", (void *)addr, *addr);
|
printf("%p %8x <- array header\n", (void *)addr, *addr);
|
||||||
addr++;
|
addr++;
|
||||||
for (; addr < (LispPTR *)bbase + 20; addr++) printf("%16p %8x\n", (void *)addr, *addr);
|
for (; addr < (LispPTR *)bbase + 20; addr++) printf("%p %8x\n", (void *)addr, *addr);
|
||||||
printf(". . .\n");
|
printf(". . .\n");
|
||||||
|
|
||||||
addr = ((LispPTR *)btrailer) - 20;
|
addr = ((LispPTR *)btrailer) - 20;
|
||||||
for (; addr < (LispPTR *)btrailer; addr++) printf("%16p %8x\n", (void *)addr, *addr);
|
for (; addr < (LispPTR *)btrailer; addr++) printf("%p %8x\n", (void *)addr, *addr);
|
||||||
printf("%16p %8x <- array trailer\n", (void *)addr, *addr);
|
printf("%p %8x <- array trailer\n", (void *)addr, *addr);
|
||||||
addr++;
|
addr++;
|
||||||
for (; addr < (LispPTR *)btrailer + 20; addr++) printf("%16p %8x\n", (void *)addr, *addr);
|
for (; addr < (LispPTR *)btrailer + 20; addr++) printf("%p %8x\n", (void *)addr, *addr);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -253,7 +253,7 @@ void enter_big_reference_count(LispPTR ptr) {
|
|||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
void modify_big_reference_count(GCENTRY *entry, DLword casep, LispPTR ptr) {
|
void modify_big_reference_count(LispPTR *entry, DLword casep, LispPTR ptr) {
|
||||||
struct gc_ovfl *oventry;
|
struct gc_ovfl *oventry;
|
||||||
LispPTR tmp;
|
LispPTR tmp;
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,6 @@
|
|||||||
#include "commondefs.h" // for error
|
#include "commondefs.h" // for error
|
||||||
#include "emlglob.h"
|
#include "emlglob.h"
|
||||||
#include "gcdata.h" // for GCENTRY, REC_GCLOOKUP, STKREF, hashentry
|
#include "gcdata.h" // for GCENTRY, REC_GCLOOKUP, STKREF, hashentry
|
||||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
|
||||||
#include "gcmain3defs.h" // for gcmapscan, gcmapunscan, gcscanstack
|
#include "gcmain3defs.h" // for gcmapscan, gcmapunscan, gcscanstack
|
||||||
#include "gcrcelldefs.h" // for gcreccell
|
#include "gcrcelldefs.h" // for gcreccell
|
||||||
#include "gcscandefs.h" // for gcscan1, gcscan2
|
#include "gcscandefs.h" // for gcscan1, gcscan2
|
||||||
|
|||||||
@@ -31,7 +31,6 @@
|
|||||||
|
|
||||||
#include "arith.h" // for GetSmalldata
|
#include "arith.h" // for GetSmalldata
|
||||||
#include "gcdata.h" // for htoverflow, REC_GCLOOKUP
|
#include "gcdata.h" // for htoverflow, REC_GCLOOKUP
|
||||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
|
||||||
#include "gcoflowdefs.h" // for gc_handleoverflow, gcmaptable
|
#include "gcoflowdefs.h" // for gc_handleoverflow, gcmaptable
|
||||||
#include "gcrdefs.h" // for doreclaim
|
#include "gcrdefs.h" // for doreclaim
|
||||||
#include "lispemul.h" // for NIL, DLword, LispPTR
|
#include "lispemul.h" // for NIL, DLword, LispPTR
|
||||||
|
|||||||
@@ -71,7 +71,6 @@
|
|||||||
#include "commondefs.h" // for error
|
#include "commondefs.h" // for error
|
||||||
#include "gccodedefs.h" // for reclaimcodeblock
|
#include "gccodedefs.h" // for reclaimcodeblock
|
||||||
#include "gcdata.h" // for DELREF, REC_GCLOOKUPV, ADDREF, REC_GCLOOKUP
|
#include "gcdata.h" // for DELREF, REC_GCLOOKUPV, ADDREF, REC_GCLOOKUP
|
||||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
|
||||||
#include "gcfinaldefs.h" // for reclaimarrayblock, reclaimstackp, releasing...
|
#include "gcfinaldefs.h" // for reclaimarrayblock, reclaimstackp, releasing...
|
||||||
#include "gcrcelldefs.h" // for freelistcell, gcreccell
|
#include "gcrcelldefs.h" // for freelistcell, gcreccell
|
||||||
#include "lispemul.h" // for LispPTR, ConsCell, NIL, POINTERMASK, DLword
|
#include "lispemul.h" // for LispPTR, ConsCell, NIL, POINTERMASK, DLword
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
#include "dbprint.h" // for DEBUGGER
|
#include "dbprint.h" // for DEBUGGER
|
||||||
#include "emlglob.h"
|
#include "emlglob.h"
|
||||||
#include "gcdata.h" // for FRPLPTR
|
#include "gcdata.h" // for FRPLPTR
|
||||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
|
||||||
#include "gvar2defs.h" // for N_OP_gvar_, N_OP_rplptr
|
#include "gvar2defs.h" // for N_OP_gvar_, N_OP_rplptr
|
||||||
#include "lispemul.h" // for LispPTR, DLword, NEWATOM_VALUE_OFFSET, NEWAT...
|
#include "lispemul.h" // for LispPTR, DLword, NEWATOM_VALUE_OFFSET, NEWAT...
|
||||||
#include "lspglob.h" // for AtomSpace
|
#include "lspglob.h" // for AtomSpace
|
||||||
|
|||||||
35
src/inet.c
35
src/inet.c
@@ -26,7 +26,6 @@
|
|||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
/* if using inet_ntop you must #include <arpa/inet.h> */
|
|
||||||
#endif /* DOS */
|
#endif /* DOS */
|
||||||
|
|
||||||
#if (defined(OS5) || defined(__CYGWIN__)) && !defined(O_ASYNC)
|
#if (defined(OS5) || defined(__CYGWIN__)) && !defined(O_ASYNC)
|
||||||
@@ -94,8 +93,7 @@ LispPTR subr_TCP_ops(int op, LispPTR nameConn, LispPTR proto, LispPTR length, Li
|
|||||||
LispStringToCString(nameConn, namestring, 100);
|
LispStringToCString(nameConn, namestring, 100);
|
||||||
host = gethostbyname(namestring);
|
host = gethostbyname(namestring);
|
||||||
if (!host) return (NIL);
|
if (!host) return (NIL);
|
||||||
res = ntohl(*(in_addr_t *)host->h_addr);
|
N_ARITH_SWITCH(ntohl(*(long *)host->h_addr));
|
||||||
N_ARITH_SWITCH(res);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TCPservicelookup:
|
case TCPservicelookup:
|
||||||
@@ -109,20 +107,14 @@ LispPTR subr_TCP_ops(int op, LispPTR nameConn, LispPTR proto, LispPTR length, Li
|
|||||||
addr_class = LispNumToCInt(nameConn);
|
addr_class = LispNumToCInt(nameConn);
|
||||||
protocol = LispNumToCInt(proto);
|
protocol = LispNumToCInt(proto);
|
||||||
result = socket(addr_class, protocol, 0);
|
result = socket(addr_class, protocol, 0);
|
||||||
#ifndef MAIKO_OS_HAIKU
|
|
||||||
fcntl(result, F_SETFL, fcntl(result, F_GETFL, 0) | O_ASYNC | O_NONBLOCK);
|
fcntl(result, F_SETFL, fcntl(result, F_GETFL, 0) | O_ASYNC | O_NONBLOCK);
|
||||||
#else
|
|
||||||
fcntl(result, F_SETFL, fcntl(result, F_GETFL, 0) | O_NONBLOCK);
|
|
||||||
#endif
|
|
||||||
#ifdef F_SETOWN
|
|
||||||
fcntl(result, F_SETOWN, getpid());
|
fcntl(result, F_SETOWN, getpid());
|
||||||
#endif
|
|
||||||
|
|
||||||
return (GetSmallp(result));
|
return (GetSmallp(result));
|
||||||
case TCPconnect: /* args: hostname or (fixp)address, socket# */
|
case TCPconnect: /* args: hostname or (fixp)address, socket# */
|
||||||
memset(&farend, 0, sizeof farend);
|
memset(&farend, 0, sizeof farend);
|
||||||
N_GETNUMBER(nameConn, res, string_host);
|
N_GETNUMBER(nameConn, res, string_host);
|
||||||
farend.sin_addr.s_addr = htonl(res);
|
farend.sin_addr.s_addr = htons(res);
|
||||||
goto host_ok;
|
goto host_ok;
|
||||||
string_host:
|
string_host:
|
||||||
LispStringToCString(nameConn, namestring, 100);
|
LispStringToCString(nameConn, namestring, 100);
|
||||||
@@ -139,9 +131,7 @@ LispPTR subr_TCP_ops(int op, LispPTR nameConn, LispPTR proto, LispPTR length, Li
|
|||||||
return (NIL);
|
return (NIL);
|
||||||
}
|
}
|
||||||
fcntl(result, F_SETFL, fcntl(result, F_GETFL, 0) | O_NONBLOCK);
|
fcntl(result, F_SETFL, fcntl(result, F_GETFL, 0) | O_NONBLOCK);
|
||||||
#ifdef F_SETOWN
|
|
||||||
fcntl(result, F_SETOWN, getpid());
|
fcntl(result, F_SETOWN, getpid());
|
||||||
#endif
|
|
||||||
|
|
||||||
return (GetSmallp(result));
|
return (GetSmallp(result));
|
||||||
|
|
||||||
@@ -207,20 +197,13 @@ LispPTR subr_TCP_ops(int op, LispPTR nameConn, LispPTR proto, LispPTR length, Li
|
|||||||
sigset_t signals;
|
sigset_t signals;
|
||||||
|
|
||||||
sigemptyset(&signals);
|
sigemptyset(&signals);
|
||||||
#ifndef MAIKO_OS_HAIKU
|
|
||||||
sigaddset(&signals, SIGIO);
|
sigaddset(&signals, SIGIO);
|
||||||
#endif
|
|
||||||
sigprocmask(SIG_BLOCK, &signals, NULL);
|
sigprocmask(SIG_BLOCK, &signals, NULL);
|
||||||
|
|
||||||
#ifndef MAIKO_OS_HAIKU
|
|
||||||
fcntl(result, F_SETFL, fcntl(result, F_GETFL, 0) | O_ASYNC | O_NONBLOCK);
|
fcntl(result, F_SETFL, fcntl(result, F_GETFL, 0) | O_ASYNC | O_NONBLOCK);
|
||||||
#else
|
|
||||||
fcntl(result, F_SETFL, fcntl(result, F_GETFL, 0) | O_NONBLOCK);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef F_SETOWN
|
|
||||||
fcntl(result, F_SETOWN, getpid());
|
fcntl(result, F_SETOWN, getpid());
|
||||||
#endif
|
|
||||||
if (listen(result, 5) == -1) {
|
if (listen(result, 5) == -1) {
|
||||||
perror("TCP Listen");
|
perror("TCP Listen");
|
||||||
close(result);
|
close(result);
|
||||||
@@ -242,9 +225,8 @@ LispPTR subr_TCP_ops(int op, LispPTR nameConn, LispPTR proto, LispPTR length, Li
|
|||||||
return (NIL);
|
return (NIL);
|
||||||
}
|
}
|
||||||
fcntl(result, F_SETFL, fcntl(result, F_GETFL, 0) | O_NONBLOCK);
|
fcntl(result, F_SETFL, fcntl(result, F_GETFL, 0) | O_NONBLOCK);
|
||||||
#ifdef F_SETOWN
|
|
||||||
fcntl(result, F_SETOWN, getpid());
|
fcntl(result, F_SETOWN, getpid());
|
||||||
#endif
|
|
||||||
return (GetSmallp(result));
|
return (GetSmallp(result));
|
||||||
|
|
||||||
case INETpeername: /* socket#, buffer for name string */
|
case INETpeername: /* socket#, buffer for name string */
|
||||||
@@ -277,14 +259,9 @@ LispPTR subr_TCP_ops(int op, LispPTR nameConn, LispPTR proto, LispPTR length, Li
|
|||||||
close(result);
|
close(result);
|
||||||
return (NIL);
|
return (NIL);
|
||||||
}
|
}
|
||||||
#ifndef MAIKO_OS_HAIKU
|
|
||||||
fcntl(result, F_SETFL, fcntl(result, F_GETFL, 0) | O_ASYNC | O_NONBLOCK);
|
fcntl(result, F_SETFL, fcntl(result, F_GETFL, 0) | O_ASYNC | O_NONBLOCK);
|
||||||
#else
|
|
||||||
fcntl(result, F_SETFL, fcntl(result, F_GETFL, 0) | O_NONBLOCK);
|
|
||||||
#endif
|
|
||||||
#ifdef F_SETOWN
|
|
||||||
fcntl(result, F_SETOWN, getpid());
|
fcntl(result, F_SETOWN, getpid());
|
||||||
#endif
|
|
||||||
FD_SET(result, &LispIOFds); /* so we get interrupts */
|
FD_SET(result, &LispIOFds); /* so we get interrupts */
|
||||||
FD_SET(result, &LispReadFds);
|
FD_SET(result, &LispReadFds);
|
||||||
DBPRINT(("LispIOFds = %p\n", (void *)&LispIOFds));
|
DBPRINT(("LispIOFds = %p\n", (void *)&LispIOFds));
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ void clear_display(void) {
|
|||||||
#else /* COLOR */
|
#else /* COLOR */
|
||||||
|
|
||||||
void clear_display(void) {
|
void clear_display(void) {
|
||||||
DLword *word;
|
short *word;
|
||||||
int w, h;
|
int w, h;
|
||||||
if (MonoOrColor == MONO_SCREEN) {
|
if (MonoOrColor == MONO_SCREEN) {
|
||||||
#ifndef DISPLAYBUFFER
|
#ifndef DISPLAYBUFFER
|
||||||
@@ -150,7 +150,7 @@ void clear_display(void) {
|
|||||||
0);
|
0);
|
||||||
#endif /* DISPLAYBUFFER */
|
#endif /* DISPLAYBUFFER */
|
||||||
} else { /* MonoOrColo is COLOR_SCREEN */
|
} else { /* MonoOrColo is COLOR_SCREEN */
|
||||||
word = ColorDisplayRegion68k;
|
word = (short *)ColorDisplayRegion68k;
|
||||||
for (h = displayheight; (h--);) {
|
for (h = displayheight; (h--);) {
|
||||||
for (w = DisplayRasterWidth * 8; (w--);) { *word++ = 0; }
|
for (w = DisplayRasterWidth * 8; (w--);) { *word++ = 0; }
|
||||||
} /* end for(h) */
|
} /* end for(h) */
|
||||||
|
|||||||
@@ -375,6 +375,8 @@ static u_char *make_X_keymap(void) {
|
|||||||
table[xcode - 7] = code;
|
table[xcode - 7] = code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XFree(mapping); /* No locking required? */
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf("\n\n\tXGetKeyboardMapping table\n\n");
|
printf("\n\n\tXGetKeyboardMapping table\n\n");
|
||||||
for (i = 0; i < codecount * symspercode; i += symspercode) {
|
for (i = 0; i < codecount * symspercode; i += symspercode) {
|
||||||
@@ -392,8 +394,6 @@ static u_char *make_X_keymap(void) {
|
|||||||
}
|
}
|
||||||
#endif /* DEBUG */
|
#endif /* DEBUG */
|
||||||
|
|
||||||
XFree(mapping); /* No locking required? */
|
|
||||||
|
|
||||||
return (table);
|
return (table);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,10 @@
|
|||||||
#include "etherdefs.h" // for init_ifpage_ether
|
#include "etherdefs.h" // for init_ifpage_ether
|
||||||
#include "gcarraydefs.h" // for get_package_atom
|
#include "gcarraydefs.h" // for get_package_atom
|
||||||
#include "gcdata.h" // for ADDREF, GCLOOKUP
|
#include "gcdata.h" // for ADDREF, GCLOOKUP
|
||||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
|
||||||
#include "ifpage.h" // for IFPAGE, MACHINETYPE_MAIKO
|
#include "ifpage.h" // for IFPAGE, MACHINETYPE_MAIKO
|
||||||
#include "initsoutdefs.h" // for build_lisp_map, fixp_value, init_for_bitblt
|
#include "initsoutdefs.h" // for build_lisp_map, fixp_value, init_for_bitblt
|
||||||
#include "iopage.h" // for IOPAGE
|
#include "iopage.h" // for IOPAGE
|
||||||
#include "lispemul.h" // for LispPTR, DLword, NIL, BYTESPER_DLWORD, POINTERMASK
|
#include "lispemul.h" // for LispPTR, DLword, NIL, BYTESPER_DLWORD
|
||||||
#include "lispmap.h" // for ATMHT_OFFSET, ATOMS_OFFSET, DEFS_OFFSET
|
#include "lispmap.h" // for ATMHT_OFFSET, ATOMS_OFFSET, DEFS_OFFSET
|
||||||
#include "lspglob.h" // for InterfacePage, IOPage, AtomHT, Closure_Cac...
|
#include "lspglob.h" // for InterfacePage, IOPage, AtomHT, Closure_Cac...
|
||||||
#include "lsptypes.h" // for GetDTD, TYPE_FIXP, TYPE_LISTP
|
#include "lsptypes.h" // for GetDTD, TYPE_FIXP, TYPE_LISTP
|
||||||
@@ -125,7 +124,7 @@ void init_ifpage(unsigned sysout_size) {
|
|||||||
new_lastvmem = (sysout_size * PAGES_IN_MBYTE) - 1;
|
new_lastvmem = (sysout_size * PAGES_IN_MBYTE) - 1;
|
||||||
|
|
||||||
if ((!Storage_expanded) && (InterfacePage->dllastvmempage != new_lastvmem)) {
|
if ((!Storage_expanded) && (InterfacePage->dllastvmempage != new_lastvmem)) {
|
||||||
(void)fprintf(stderr, "You can't expand VMEM\n");
|
fprintf(stderr, "You can't expand VMEM\n");
|
||||||
exit(-1);
|
exit(-1);
|
||||||
} else { /* Set value which will be set to \\LASTVMEMFILEPAGE in LISP */
|
} else { /* Set value which will be set to \\LASTVMEMFILEPAGE in LISP */
|
||||||
InterfacePage->dllastvmempage = new_lastvmem;
|
InterfacePage->dllastvmempage = new_lastvmem;
|
||||||
@@ -141,9 +140,9 @@ void init_ifpage(unsigned sysout_size) {
|
|||||||
#endif /* BIGVM */
|
#endif /* BIGVM */
|
||||||
|
|
||||||
/* unfortunately, Lisp only looks at a 16 bit serial number */
|
/* unfortunately, Lisp only looks at a 16 bit serial number */
|
||||||
#if !defined(DOS) && !defined(MAIKO_OS_HAIKU)
|
#ifndef DOS
|
||||||
InterfacePage->serialnumber = 0xffff & gethostid();
|
InterfacePage->serialnumber = 0xffff & gethostid();
|
||||||
#endif /* DOS MAIKO_OS_HAIKU */
|
#endif /* DOS */
|
||||||
|
|
||||||
/* get user name and stuff into vmem; this is the VMEM buffer;
|
/* get user name and stuff into vmem; this is the VMEM buffer;
|
||||||
This is a BCPL string -- it starts with a length count. C strings
|
This is a BCPL string -- it starts with a length count. C strings
|
||||||
@@ -406,9 +405,7 @@ void init_for_keyhandle(void) {
|
|||||||
MOUSECHORDTICKS68k = MakeAtom68k("\\MOUSECHORDTICKS");
|
MOUSECHORDTICKS68k = MakeAtom68k("\\MOUSECHORDTICKS");
|
||||||
LASTUSERACTION68k = MakeAtom68k("\\LASTUSERACTION");
|
LASTUSERACTION68k = MakeAtom68k("\\LASTUSERACTION");
|
||||||
|
|
||||||
#ifndef INIT
|
CLastUserActionCell68k = (LispPTR *)NativeAligned4FromLAddr(*LASTUSERACTION68k & 0xffffff);
|
||||||
CLastUserActionCell68k = (LispPTR *)NativeAligned4FromLAddr(*LASTUSERACTION68k & POINTERMASK);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
DOBUFFEREDTRANSITION_index = MAKEATOM("\\DOBUFFEREDTRANSITIONS");
|
DOBUFFEREDTRANSITION_index = MAKEATOM("\\DOBUFFEREDTRANSITIONS");
|
||||||
INTERRUPTFRAME_index = MAKEATOM("\\INTERRUPTFRAME");
|
INTERRUPTFRAME_index = MAKEATOM("\\INTERRUPTFRAME");
|
||||||
|
|||||||
24
src/lde.html
24
src/lde.html
@@ -1,24 +0,0 @@
|
|||||||
<!doctype html>
|
|
||||||
<!-- Based on https://github.com/timhutton/sdl-canvas-wasm/blob/main/index.html -->
|
|
||||||
<!-- html to set up WebAssembly module for Medley running in a browser -->
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div style="text-align: center;">
|
|
||||||
<canvas id="canvas" oncontextmenu="event.preventDefault()"></canvas>
|
|
||||||
</div>
|
|
||||||
<script type="text/javascript">
|
|
||||||
var width = 32*Math.trunc(Math.min(Math.max(window.innerWidth, 512), 1664)/32);
|
|
||||||
var height = Math.min(Math.max(window.innerHeight, 512), 1260);
|
|
||||||
var Module = {
|
|
||||||
preRun: [ function() {ENV.MEDLEYDIR = "{DSK}<medley>";} ],
|
|
||||||
arguments: ["medley/loadups/full.sysout","-sc", width+"x"+height, "-nh-host", "127.0.0.1"],
|
|
||||||
canvas: (function() { return document.getElementById('canvas'); })()
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
<script src="ldesdl.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -93,7 +93,7 @@ int main(int argc, char *argv[]) {
|
|||||||
for (i = 1; i < argc; i++) {
|
for (i = 1; i < argc; i++) {
|
||||||
if ((strcmp(argv[i], "-d") == 0) || (strcmp(argv[i], "-display") == 0)) {
|
if ((strcmp(argv[i], "-d") == 0) || (strcmp(argv[i], "-display") == 0)) {
|
||||||
if (i == argc - 1) {
|
if (i == argc - 1) {
|
||||||
(void)fprintf(stderr, "Missing argument to -display option.\n");
|
fprintf(stderr, "Missing argument to -display option.\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
displayName = argv[++i];
|
displayName = argv[++i];
|
||||||
@@ -138,7 +138,7 @@ int main(int argc, char *argv[]) {
|
|||||||
filetorun = LDEX;
|
filetorun = LDEX;
|
||||||
goto run;
|
goto run;
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Unable to open X11 display %s\n",
|
fprintf(stderr, "Unable to open X11 display %s\n",
|
||||||
displayName ? displayName : "from DISPLAY");
|
displayName ? displayName : "from DISPLAY");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@@ -147,7 +147,7 @@ int main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
#ifdef USESUNSCREEN
|
#ifdef USESUNSCREEN
|
||||||
if ((FrameBufferFd = open("/dev/fb", O_RDWR)) < 0) {
|
if ((FrameBufferFd = open("/dev/fb", O_RDWR)) < 0) {
|
||||||
(void)fprintf(stderr, "lde: can't open FrameBuffer\n");
|
fprintf(stderr, "lde: can't open FrameBuffer\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (ioctl(FrameBufferFd, FBIOGTYPE, &my_screen) < 0) {
|
if (ioctl(FrameBufferFd, FBIOGTYPE, &my_screen) < 0) {
|
||||||
@@ -187,7 +187,7 @@ int main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
run:
|
run:
|
||||||
if (filetorun == NULL) {
|
if (filetorun == NULL) {
|
||||||
(void)fprintf(stderr, "Unable to determine what display program to run.\n");
|
fprintf(stderr, "Unable to determine what display program to run.\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -201,7 +201,6 @@ int main(int argc, char *argv[]) {
|
|||||||
} else {
|
} else {
|
||||||
/* copy up to and including the final "/" in the path */
|
/* copy up to and including the final "/" in the path */
|
||||||
dirsepp = stpncpy(filetorunpath, argv[0], dirsepp + 1 - argv[0]);
|
dirsepp = stpncpy(filetorunpath, argv[0], dirsepp + 1 - argv[0]);
|
||||||
|
|
||||||
/* dirsepp now points to the trailing null in the copy */
|
/* dirsepp now points to the trailing null in the copy */
|
||||||
strncpy(dirsepp, filetorun, PATH_MAX - (dirsepp - filetorunpath));
|
strncpy(dirsepp, filetorun, PATH_MAX - (dirsepp - filetorunpath));
|
||||||
argv[0] = filetorunpath;
|
argv[0] = filetorunpath;
|
||||||
|
|||||||
21
src/ldsout.c
21
src/ldsout.c
@@ -15,10 +15,7 @@
|
|||||||
#include <stdio.h> // for perror, fprintf, printf, stderr, sprintf
|
#include <stdio.h> // for perror, fprintf, printf, stderr, sprintf
|
||||||
#include <stdlib.h> // for exit, free, malloc
|
#include <stdlib.h> // for exit, free, malloc
|
||||||
#include <string.h> // for memset
|
#include <string.h> // for memset
|
||||||
#include <sys/mman.h> // for mmap, MAP_FAILED
|
#include <sys/mman.h> // for mmap
|
||||||
#ifndef MAP_FAILED
|
|
||||||
#define MAP_FAILED ((void *)-1)
|
|
||||||
#endif
|
|
||||||
#include <sys/stat.h> // for stat, fstat
|
#include <sys/stat.h> // for stat, fstat
|
||||||
#include <sys/types.h> // for off_t
|
#include <sys/types.h> // for off_t
|
||||||
#include <unistd.h> // for lseek, read, close, getpagesize
|
#include <unistd.h> // for lseek, read, close, getpagesize
|
||||||
@@ -124,14 +121,14 @@ unsigned sysout_loader(const char *sysout_file_name, unsigned sys_size) {
|
|||||||
*/
|
*/
|
||||||
#ifndef NOVERSION
|
#ifndef NOVERSION
|
||||||
if (ifpage.lversion < LVERSION) {
|
if (ifpage.lversion < LVERSION) {
|
||||||
(void)fprintf(stderr, "Lisp VM is too old for this emulator.\n");
|
fprintf(stderr, "Lisp VM is too old for this emulator.\n");
|
||||||
(void)fprintf(stderr, "(version is %d, must be at least %d.)\n", ifpage.lversion, LVERSION);
|
fprintf(stderr, "(version is %d, must be at least %d.)\n", ifpage.lversion, LVERSION);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ifpage.minbversion > MINBVERSION) {
|
if (ifpage.minbversion > MINBVERSION) {
|
||||||
(void)fprintf(stderr, "Emulator is too old for this Lisp VM.\n");
|
fprintf(stderr, "Emulator is too old for this Lisp VM.\n");
|
||||||
(void)fprintf(stderr, "(version is %d, must be at least %d.)\n", MINBVERSION, ifpage.minbversion);
|
fprintf(stderr, "(version is %d, must be at least %d.)\n", MINBVERSION, ifpage.minbversion);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
#endif /* NOVERSION */
|
#endif /* NOVERSION */
|
||||||
@@ -160,9 +157,9 @@ unsigned sysout_loader(const char *sysout_file_name, unsigned sys_size) {
|
|||||||
/* Hence we have to observe the display protocol. */
|
/* Hence we have to observe the display protocol. */
|
||||||
VESA_errorexit(tmp);
|
VESA_errorexit(tmp);
|
||||||
#else
|
#else
|
||||||
(void)fprintf(stderr, "sysout_loader: You can't specify the process size.\n");
|
fprintf(stderr, "sysout_loader: You can't specify the process size.\n");
|
||||||
(void)fprintf(stderr, "Because, secondary space is already used.\n");
|
fprintf(stderr, "Because, secondary space is already used.\n");
|
||||||
(void)fprintf(stderr, "(size is %d, you specified %d.)\n", ifpage.process_size, sys_size);
|
fprintf(stderr, "(size is %d, you specified %d.)\n", ifpage.process_size, sys_size);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
#endif /* DOS */
|
#endif /* DOS */
|
||||||
}
|
}
|
||||||
@@ -179,7 +176,7 @@ unsigned sysout_loader(const char *sysout_file_name, unsigned sys_size) {
|
|||||||
|
|
||||||
lispworld_scratch = mmap(0, sys_size * MBYTE, PROT_READ|PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0);
|
lispworld_scratch = mmap(0, sys_size * MBYTE, PROT_READ|PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0);
|
||||||
if (lispworld_scratch == MAP_FAILED) {
|
if (lispworld_scratch == MAP_FAILED) {
|
||||||
(void)fprintf(stderr, "sysout_loader: can't allocate Lisp %dMBytes VM \n", sys_size);
|
fprintf(stderr, "sysout_loader: can't allocate Lisp %dMBytes VM \n", sys_size);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,9 +25,8 @@
|
|||||||
#include "commondefs.h" // for error
|
#include "commondefs.h" // for error
|
||||||
#include "gcarraydefs.h" // for get_package_atom
|
#include "gcarraydefs.h" // for get_package_atom
|
||||||
#include "gcdata.h" // for FRPLPTR
|
#include "gcdata.h" // for FRPLPTR
|
||||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
|
||||||
#include "lispemul.h" // for LispPTR, state, CurrentStackPTR, NIL_PTR, NIL
|
#include "lispemul.h" // for LispPTR, state, CurrentStackPTR, NIL_PTR, NIL
|
||||||
#include "lispmap.h" // for S_POSITIVE
|
#include "lispmap.h" // for S_POSITIVE, STK_OFFSET
|
||||||
#include "loopsopsdefs.h" // for lcfuncall, LCFetchMethod, LCFetchMethodOrHelp
|
#include "loopsopsdefs.h" // for lcfuncall, LCFetchMethod, LCFetchMethodOrHelp
|
||||||
#include "lspglob.h"
|
#include "lspglob.h"
|
||||||
#include "lsptypes.h" // for GetDTD, GetTypeNumber, dtd, Listp, GETWORD
|
#include "lsptypes.h" // for GetDTD, GetTypeNumber, dtd, Listp, GETWORD
|
||||||
@@ -359,7 +358,7 @@ LispPTR lcfuncall(unsigned int atom_index, int argnum, int bytenum)
|
|||||||
CURRENTFX->nextblock = (LAddrFromNative(CurrentStackPTR) & 0x0ffff) - (argnum << 1) + 4 /* +3 */;
|
CURRENTFX->nextblock = (LAddrFromNative(CurrentStackPTR) & 0x0ffff) - (argnum << 1) + 4 /* +3 */;
|
||||||
|
|
||||||
/* Setup IVar */
|
/* Setup IVar */
|
||||||
IVar = NativeAligned2FromStackOffset(CURRENTFX->nextblock);
|
IVar = NativeAligned2FromLAddr((((LispPTR)(CURRENTFX->nextblock)) | STK_OFFSET));
|
||||||
|
|
||||||
/* Set PC to the Next Instruction and save into FX */
|
/* Set PC to the Next Instruction and save into FX */
|
||||||
CURRENTFX->pc = ((UNSIGNED)PC - (UNSIGNED)FuncObj) + bytenum;
|
CURRENTFX->pc = ((UNSIGNED)PC - (UNSIGNED)FuncObj) + bytenum;
|
||||||
|
|||||||
216
src/main.c
216
src/main.c
@@ -229,11 +229,7 @@ int display_max = 65536 * 16 * 2;
|
|||||||
/* diagnostic flag for sysout dumping */
|
/* diagnostic flag for sysout dumping */
|
||||||
extern unsigned maxpages;
|
extern unsigned maxpages;
|
||||||
|
|
||||||
char sysout_name_cl[MAXPATHLEN] = "\0"; /* sysout name as per -sysout command line arg ; Set by read_Xoption, in the X version. */
|
char sysout_name[MAXPATHLEN]; /* Set by read_Xoption, in the X version. */
|
||||||
char sysout_name_xrm[MAXPATHLEN] = "\0"; /* sysout name as per X resource manager, if any */
|
|
||||||
char sysout_name_first_arg[MAXPATHLEN] = "\0"; /* sysout name as per 1st command line arg, if any */
|
|
||||||
char sysout_name[MAXPATHLEN] = "\0"; /* "final" sysout name chosen from above */
|
|
||||||
|
|
||||||
unsigned sysout_size = 0; /* ditto */
|
unsigned sysout_size = 0; /* ditto */
|
||||||
|
|
||||||
int flushing = FALSE; /* see dbprint.h if set, all debug/trace printing will call fflush(stdout) after each printf */
|
int flushing = FALSE; /* see dbprint.h if set, all debug/trace printing will call fflush(stdout) after each printf */
|
||||||
@@ -243,7 +239,7 @@ int flushing = FALSE; /* see dbprint.h if set, all debug/trace printing will cal
|
|||||||
extern DspInterface currentdsp;
|
extern DspInterface currentdsp;
|
||||||
#endif /* DOS || XWINDOW */
|
#endif /* DOS || XWINDOW */
|
||||||
#ifdef SDL
|
#ifdef SDL
|
||||||
#include "sdldefs.h" /* for init_SDL */
|
extern int init_SDL(char*, int, int, int);
|
||||||
#endif
|
#endif
|
||||||
extern const time_t MDate;
|
extern const time_t MDate;
|
||||||
extern int nokbdflag;
|
extern int nokbdflag;
|
||||||
@@ -288,8 +284,6 @@ const char *helpstring =
|
|||||||
-info Print general info about the system\n\
|
-info Print general info about the system\n\
|
||||||
-help Print this message\n\
|
-help Print this message\n\
|
||||||
-pixelscale <n> The amount of pixels to show for one Medley screen pixel.\n\
|
-pixelscale <n> The amount of pixels to show for one Medley screen pixel.\n\
|
||||||
-fg/-foreground <color> Screen foreground color, default Black. X color name or #RRBBGG hex\n\
|
|
||||||
-bg/-background <color> Screen background color, default White. X color name or #RRBBGG hex\n\
|
|
||||||
-sc[reen] <w>x<h>] The Medley screen geometry\n\
|
-sc[reen] <w>x<h>] The Medley screen geometry\n\
|
||||||
-t <title> The window title\n\
|
-t <title> The window title\n\
|
||||||
-title <title> The window title\n";
|
-title <title> The window title\n";
|
||||||
@@ -318,21 +312,6 @@ const char *nethubHelpstring = "";
|
|||||||
extern int insnsCountdownForTimerAsyncEmulation;
|
extern int insnsCountdownForTimerAsyncEmulation;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(XWINDOW) || defined(SDL)
|
|
||||||
char foregroundColorName[64] = {0};
|
|
||||||
extern char foregroundColorName[64];
|
|
||||||
char backgroundColorName[64] = {0};
|
|
||||||
extern char backgroundColorName[64];
|
|
||||||
#endif
|
|
||||||
char windowTitle[255] = "Medley";
|
|
||||||
extern char windowTitle[255];
|
|
||||||
int lispDisplayRequestedWidth = 1024;
|
|
||||||
extern int lispDisplayRequestedWidth;
|
|
||||||
int lispDisplayRequestedHeight = 768;
|
|
||||||
extern int lispDisplayRequestedHeight;
|
|
||||||
int pixelScale = 1;
|
|
||||||
extern int pixelScale;
|
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* M A I N E N T R Y P O I N T */
|
/* M A I N E N T R Y P O I N T */
|
||||||
@@ -347,6 +326,9 @@ int main(int argc, char *argv[])
|
|||||||
extern int TIMER_INTERVAL;
|
extern int TIMER_INTERVAL;
|
||||||
extern fd_set LispReadFds;
|
extern fd_set LispReadFds;
|
||||||
long tmpint;
|
long tmpint;
|
||||||
|
int width = 1024, height = 768;
|
||||||
|
int pixelscale = 1;
|
||||||
|
char *windowtitle = "Medley";
|
||||||
|
|
||||||
#ifdef MAIKO_ENABLE_FOREIGN_FUNCTION_INTERFACE
|
#ifdef MAIKO_ENABLE_FOREIGN_FUNCTION_INTERFACE
|
||||||
if (dld_find_executable(argv[0]) == 0) {
|
if (dld_find_executable(argv[0]) == 0) {
|
||||||
@@ -356,24 +338,6 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
#endif /* MAIKO_ENABLE_FOREIGN_FUNCTION_INTERFACE */
|
#endif /* MAIKO_ENABLE_FOREIGN_FUNCTION_INTERFACE */
|
||||||
|
|
||||||
#ifdef PROFILE
|
|
||||||
moncontrol(0); /* initially stop sampling */
|
|
||||||
#endif /* PROFILE */
|
|
||||||
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// Process Command Line Arguments
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
// First check if the first argument is a sysout name
|
|
||||||
// and save it away if it is in case the X windows
|
|
||||||
// arg processing changes argc/argv
|
|
||||||
if (argc > 1 && argv[1][0] != '-') {
|
|
||||||
strncpy(sysout_name_first_arg, argv[1], MAXPATHLEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef XWINDOW
|
#ifdef XWINDOW
|
||||||
read_Xoption(&argc, argv);
|
read_Xoption(&argc, argv);
|
||||||
#endif /* XWINDOW */
|
#endif /* XWINDOW */
|
||||||
@@ -381,6 +345,17 @@ int main(int argc, char *argv[])
|
|||||||
save_argc = argc;
|
save_argc = argc;
|
||||||
save_argv = argv;
|
save_argv = argv;
|
||||||
|
|
||||||
|
#ifdef PROFILE
|
||||||
|
moncontrol(0); /* initially stop sampling */
|
||||||
|
#endif /* PROFILE */
|
||||||
|
|
||||||
|
/* Sysout is found as follows:
|
||||||
|
If the first argument doesn't begin with '-', assume it's the sysout
|
||||||
|
Look at the environment variable LDESRCESYSOUT if that fails
|
||||||
|
Look for ~/lisp.virtualmem if that fails
|
||||||
|
Barf and print the command line if tha fails
|
||||||
|
*/
|
||||||
|
|
||||||
i = 1;
|
i = 1;
|
||||||
|
|
||||||
if (argv[i] && ((strcmp(argv[i], "-info") == 0) || (strcmp(argv[i], "-INFO") == 0))) {
|
if (argv[i] && ((strcmp(argv[i], "-info") == 0) || (strcmp(argv[i], "-INFO") == 0))) {
|
||||||
@@ -389,38 +364,50 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (argv[i] && ((strcmp(argv[i], "-help") == 0) || (strcmp(argv[i], "-HELP") == 0))) {
|
if (argv[i] && ((strcmp(argv[i], "-help") == 0) || (strcmp(argv[i], "-HELP") == 0))) {
|
||||||
(void)fprintf(stderr, "%s%s", helpstring, nethubHelpstring);
|
fprintf(stderr, "%s%s", helpstring, nethubHelpstring);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (argc > 1 && argv[1][0] != '-') {
|
||||||
|
strncpy(sysout_name, argv[1], MAXPATHLEN);
|
||||||
|
i++;
|
||||||
|
} else if ((envname = getenv("LDESRCESYSOUT")) != NULL) {
|
||||||
|
strncpy(sysout_name, envname, MAXPATHLEN);
|
||||||
|
} else if ((envname = getenv("LDESOURCESYSOUT")) != NULL)
|
||||||
|
strncpy(sysout_name, envname, MAXPATHLEN);
|
||||||
|
else {
|
||||||
|
#ifdef DOS
|
||||||
|
strncpy(sysout_name, "lisp.vm", MAXPATHLEN);
|
||||||
|
#else
|
||||||
|
if ((envname = getenv("HOME")) != NULL) {
|
||||||
|
strncpy(sysout_name, envname, MAXPATHLEN);
|
||||||
|
strncat(sysout_name, "/lisp.virtualmem", MAXPATHLEN - 17);
|
||||||
|
}
|
||||||
|
#endif /* DOS */
|
||||||
|
}
|
||||||
|
if (access(sysout_name, R_OK)) {
|
||||||
|
perror("Couldn't find a sysout to run");
|
||||||
|
fprintf(stderr, "%s%s", helpstring, nethubHelpstring);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
/* OK, sysout name is now in sysout_name, and i is moved past a supplied name */
|
||||||
|
|
||||||
for (; i < argc; i += 1) { /* step by 1 in case of typo */
|
for (; i < argc; i += 1) { /* step by 1 in case of typo */
|
||||||
|
|
||||||
// NOTE: in the case of X Windows, some of the args being checked for in this loop
|
|
||||||
// have already been processed (and removed from argv) by the call to read_Xoption()
|
|
||||||
// above. (See readXoption() in xrdopt.c)
|
|
||||||
|
|
||||||
/* Check for -sysout arg */
|
|
||||||
if (!strcmp(argv[i], "-sysout")) {
|
|
||||||
if (argc > ++i) {
|
|
||||||
strncpy(sysout_name_cl, argv[i], MAXPATHLEN);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -t and -m are undocumented and somewhat dangerous... */
|
/* -t and -m are undocumented and somewhat dangerous... */
|
||||||
|
|
||||||
else if (!strcmp(argv[i], "-t")) { /**** timer interval ****/
|
if (!strcmp(argv[i], "-t")) { /**** timer interval ****/
|
||||||
if (argc > ++i) {
|
if (argc > ++i) {
|
||||||
errno = 0;
|
errno = 0;
|
||||||
tmpint = strtol(argv[i], (char **)NULL, 10);
|
tmpint = strtol(argv[i], (char **)NULL, 10);
|
||||||
if (errno == 0 && tmpint > 0) {
|
if (errno == 0 && tmpint > 0) {
|
||||||
TIMER_INTERVAL = tmpint;
|
TIMER_INTERVAL = tmpint;
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Bad value for -t (integer > 0)\n");
|
fprintf(stderr, "Bad value for -t (integer > 0)\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Missing argument after -t\n");
|
fprintf(stderr, "Missing argument after -t\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -432,11 +419,11 @@ int main(int argc, char *argv[])
|
|||||||
if (errno == 0 && tmpint > 0) {
|
if (errno == 0 && tmpint > 0) {
|
||||||
sysout_size = (unsigned)tmpint;
|
sysout_size = (unsigned)tmpint;
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Bad value for -m (integer > 0)\n");
|
fprintf(stderr, "Bad value for -m (integer > 0)\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Missing argument after -m\n");
|
fprintf(stderr, "Missing argument after -m\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -473,49 +460,36 @@ int main(int argc, char *argv[])
|
|||||||
#ifdef SDL
|
#ifdef SDL
|
||||||
else if ((strcmp(argv[i], "-sc") == 0) || (strcmp(argv[i], "-SC") == 0)) {
|
else if ((strcmp(argv[i], "-sc") == 0) || (strcmp(argv[i], "-SC") == 0)) {
|
||||||
if (argc > ++i) {
|
if (argc > ++i) {
|
||||||
int read = sscanf(argv[i], "%dx%d", &lispDisplayRequestedWidth, &lispDisplayRequestedHeight);
|
int read = sscanf(argv[i], "%dx%d", &width, &height);
|
||||||
if(read != 2) {
|
if(read != 2) {
|
||||||
(void)fprintf(stderr, "Could not parse -sc argument %s\n", argv[i]);
|
fprintf(stderr, "Could not parse -sc argument %s\n", argv[i]);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Missing argument after -sc\n");
|
fprintf(stderr, "Missing argument after -sc\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
} else if ((strcmp(argv[i], "-pixelscale") == 0) || (strcmp(argv[i], "-PIXELSCALE") == 0)) {
|
} else if ((strcmp(argv[i], "-pixelscale") == 0) || (strcmp(argv[i], "-PIXELSCALE") == 0)) {
|
||||||
if (argc > ++i) {
|
if (argc > ++i) {
|
||||||
int read = sscanf(argv[i], "%d", &pixelScale);
|
int read = sscanf(argv[i], "%d", &pixelscale);
|
||||||
if(read != 1) {
|
if(read != 1) {
|
||||||
(void)fprintf(stderr, "Could not parse -pixelscale argument %s\n", argv[i]);
|
fprintf(stderr, "Could not parse -pixelscale argument %s\n", argv[i]);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Missing argument after -pixelscale\n");
|
fprintf(stderr, "Missing argument after -pixelscale\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
} else if ((strcmp(argv[i], "-t") == 0) || (strcmp(argv[i], "-T") == 0)
|
} else if ((strcmp(argv[i], "-t") == 0) || (strcmp(argv[i], "-T") == 0)
|
||||||
|| (strcmp(argv[i], "-title") == 0) || (strcmp(argv[i], "-TITLE") == 0)) {
|
|| (strcmp(argv[i], "-title") == 0) || (strcmp(argv[i], "-TITLE") == 0)) {
|
||||||
if (argc > ++i) {
|
if (argc > ++i) {
|
||||||
strncpy(windowTitle, argv[i], sizeof(windowTitle) - 1);
|
windowtitle = argv[i];
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Missing argument after -title\n");
|
fprintf(stderr, "Missing argument after -title\n");
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
} else if (strcmp(argv[i], "-fg") == 0 || strcmp(argv[i], "-foreground") == 0) {
|
|
||||||
if (argc > ++i) {
|
|
||||||
strncpy(foregroundColorName, argv[i], sizeof(foregroundColorName) - 1);
|
|
||||||
} else {
|
|
||||||
(void)fprintf(stderr, "Missing argument after -fg/-foreground\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
} else if (strcmp(argv[i], "-bg") == 0 || strcmp(argv[i], "-background") == 0) {
|
|
||||||
if (argc > ++i) {
|
|
||||||
strncpy(backgroundColorName, argv[i], sizeof(backgroundColorName) - 1);
|
|
||||||
} else {
|
|
||||||
(void)fprintf(stderr, "Missing argument after -bg/-background\n");
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* SDL */
|
#endif /* SDL */
|
||||||
/* Can only do this under SUNOs, for now */
|
/* Can only do this under SUNOs, for now */
|
||||||
else if (!strcmp(argv[i], "-E")) { /**** ethernet info ****/
|
else if (!strcmp(argv[i], "-E")) { /**** ethernet info ****/
|
||||||
@@ -537,7 +511,7 @@ int main(int argc, char *argv[])
|
|||||||
ether_host[4] = b4;
|
ether_host[4] = b4;
|
||||||
ether_host[5] = b5;
|
ether_host[5] = b5;
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Missing or bogus -E argument\n");
|
fprintf(stderr, "Missing or bogus -E argument\n");
|
||||||
ether_fd = -1;
|
ether_fd = -1;
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@@ -550,7 +524,7 @@ int main(int argc, char *argv[])
|
|||||||
if (argc > ++i) {
|
if (argc > ++i) {
|
||||||
setNethubHost(argv[i]);
|
setNethubHost(argv[i]);
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Missing argument after -nh-host\n");
|
fprintf(stderr, "Missing argument after -nh-host\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -561,11 +535,11 @@ int main(int argc, char *argv[])
|
|||||||
if (errno == 0 && tmpint > 0) {
|
if (errno == 0 && tmpint > 0) {
|
||||||
setNethubPort(tmpint);
|
setNethubPort(tmpint);
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Bad value for -nh-port\n");
|
fprintf(stderr, "Bad value for -nh-port\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Missing argument after -nh-port\n");
|
fprintf(stderr, "Missing argument after -nh-port\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -575,11 +549,11 @@ int main(int argc, char *argv[])
|
|||||||
if (sscanf(argv[i], "%x-%x-%x-%x-%x-%x", &b0, &b1, &b2, &b3, &b4, &b5) == 6) {
|
if (sscanf(argv[i], "%x-%x-%x-%x-%x-%x", &b0, &b1, &b2, &b3, &b4, &b5) == 6) {
|
||||||
setNethubMac(b0, b1, b2, b3, b4, b5);
|
setNethubMac(b0, b1, b2, b3, b4, b5);
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Invalid argument for -nh-mac\n");
|
fprintf(stderr, "Invalid argument for -nh-mac\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Missing argument after -nh-mac\n");
|
fprintf(stderr, "Missing argument after -nh-mac\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -590,11 +564,11 @@ int main(int argc, char *argv[])
|
|||||||
if (errno == 0 && tmpint >= 0) {
|
if (errno == 0 && tmpint >= 0) {
|
||||||
setNethubLogLevel(tmpint);
|
setNethubLogLevel(tmpint);
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Bad value for -nh-loglevel\n");
|
fprintf(stderr, "Bad value for -nh-loglevel\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Missing argument after -nh-loglevel\n");
|
fprintf(stderr, "Missing argument after -nh-loglevel\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -608,11 +582,11 @@ int main(int argc, char *argv[])
|
|||||||
if (errno == 0 && tmpint > 1000) {
|
if (errno == 0 && tmpint > 1000) {
|
||||||
insnsCountdownForTimerAsyncEmulation = tmpint;
|
insnsCountdownForTimerAsyncEmulation = tmpint;
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Bad value for -intr-emu-insns (integer > 1000)\n");
|
fprintf(stderr, "Bad value for -intr-emu-insns (integer > 1000)\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Missing argument after -intr-emu-insns\n");
|
fprintf(stderr, "Missing argument after -intr-emu-insns\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -626,65 +600,24 @@ int main(int argc, char *argv[])
|
|||||||
if (errno == 0 && tmpint > 0) {
|
if (errno == 0 && tmpint > 0) {
|
||||||
maxpages = (unsigned)tmpint;
|
maxpages = (unsigned)tmpint;
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Bad value for -xpages (integer > 0)\n");
|
fprintf(stderr, "Bad value for -xpages (integer > 0)\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
(void)fprintf(stderr, "Missing argument after -xpages\n");
|
fprintf(stderr, "Missing argument after -xpages\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// OK, now we can process the sysout_name
|
|
||||||
// Order of priority:
|
|
||||||
// 1. Value of -sysout command line arg
|
|
||||||
// 2. Value of the first command line arg
|
|
||||||
// 3. Value of LDESRCESYSOUT env variable
|
|
||||||
// 4. Value of LDESOURCESYSOUT env variable
|
|
||||||
// 5. Value as determined by X resource manager, if any
|
|
||||||
// 6. Value of $HOME/lisp.virtualmem (or lisp.vm for DOS)
|
|
||||||
//
|
|
||||||
if (sysout_name_cl[0] != '\0') { strncpy(sysout_name, sysout_name_cl, MAXPATHLEN); }
|
|
||||||
else if (sysout_name_first_arg[0] != '\0') { strncpy(sysout_name, sysout_name_first_arg, MAXPATHLEN); }
|
|
||||||
else if ((envname = getenv("LDESRCESYSOUT")) != NULL) { strncpy(sysout_name, envname, MAXPATHLEN); }
|
|
||||||
else if ((envname = getenv("LDESOURCESYSOUT")) != NULL) { strncpy(sysout_name, envname, MAXPATHLEN); }
|
|
||||||
else if (sysout_name_xrm[0] != '\0') { strncpy(sysout_name, sysout_name_xrm, MAXPATHLEN); }
|
|
||||||
else {
|
|
||||||
#ifdef DOS
|
|
||||||
strncpy(sysout_name, "lisp.vm", MAXPATHLEN);
|
|
||||||
#else
|
|
||||||
if ((envname = getenv("HOME")) != NULL) {
|
|
||||||
strncpy(sysout_name, envname, MAXPATHLEN);
|
|
||||||
strncat(sysout_name, "/lisp.virtualmem", MAXPATHLEN - 17);
|
|
||||||
}
|
|
||||||
#endif /* DOS */
|
|
||||||
}
|
|
||||||
if ((sysout_name[0] == '\0') || (access(sysout_name, R_OK))) {
|
|
||||||
perror("Couldn't find a sysout to run");
|
|
||||||
fprintf(stderr, "Looking for: %s\n", sysout_name);
|
|
||||||
(void)fprintf(stderr, "%s%s", helpstring, nethubHelpstring);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
/* OK, sysout name is now in sysout_name */
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// End of command line arg processing
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
/* Sanity checks. */
|
/* Sanity checks. */
|
||||||
#ifdef DOS
|
#ifdef DOS
|
||||||
probemouse(); /* See if the mouse is connected. */
|
probemouse(); /* See if the mouse is connected. */
|
||||||
#else
|
#else
|
||||||
if (getuid() != geteuid()) {
|
if (getuid() != geteuid()) {
|
||||||
(void)fprintf(stderr, "Effective user is not real user. Resetting uid\n");
|
fprintf(stderr, "Effective user is not real user. Resetting uid\n");
|
||||||
if (setuid(getuid()) == -1) {
|
if (setuid(getuid()) == -1) {
|
||||||
(void)fprintf(stderr, "Unable to reset user id to real user id\n");
|
fprintf(stderr, "Unable to reset user id to real user id\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -708,7 +641,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (FindUnixPipes()) /* must call the routine to allocate storage, */
|
if (FindUnixPipes()) /* must call the routine to allocate storage, */
|
||||||
{ /* in case we're re-starting a savevm w/open ptys */
|
{ /* in case we're re-starting a savevm w/open ptys */
|
||||||
if (please_fork) (void)fprintf(stderr, "Failed to find UNIXCOMM file handles; no processes\n");
|
if (please_fork) fprintf(stderr, "Failed to find UNIXCOMM file handles; no processes\n");
|
||||||
}
|
}
|
||||||
#endif /* DOS */
|
#endif /* DOS */
|
||||||
|
|
||||||
@@ -716,12 +649,13 @@ int main(int argc, char *argv[])
|
|||||||
make_dsp_instance(currentdsp, 0, 0, 0, 1); /* All defaults the first time */
|
make_dsp_instance(currentdsp, 0, 0, 0, 1); /* All defaults the first time */
|
||||||
#endif /* DOS || XWINDOW */
|
#endif /* DOS || XWINDOW */
|
||||||
#if defined(SDL)
|
#if defined(SDL)
|
||||||
init_SDL(windowTitle, lispDisplayRequestedWidth, lispDisplayRequestedHeight, pixelScale);
|
init_SDL(windowtitle, width, height, pixelscale);
|
||||||
#endif /* SDL */
|
#endif /* SDL */
|
||||||
/* Load sysout to VM space and returns real sysout_size(not 0) */
|
/* Load sysout to VM space and returns real sysout_size(not 0) */
|
||||||
sysout_size = sysout_loader(sysout_name, sysout_size);
|
sysout_size = sysout_loader(sysout_name, sysout_size);
|
||||||
|
|
||||||
build_lisp_map(); /* build up map */
|
build_lisp_map(); /* built up map */
|
||||||
|
|
||||||
init_ifpage(sysout_size); /* init interface page */
|
init_ifpage(sysout_size); /* init interface page */
|
||||||
init_iopage();
|
init_iopage();
|
||||||
init_miscstats();
|
init_miscstats();
|
||||||
@@ -731,7 +665,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
/* file system directory enumeration stuff */
|
/* file system directory enumeration stuff */
|
||||||
if (!init_finfo()) {
|
if (!init_finfo()) {
|
||||||
(void)fprintf(stderr, "Cannot allocate internal data.\n");
|
fprintf(stderr, "Cannot allocate internal data.\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
#ifdef RS232
|
#ifdef RS232
|
||||||
@@ -793,9 +727,9 @@ void start_lisp(void) {
|
|||||||
TopOfStack = 0;
|
TopOfStack = 0;
|
||||||
Error_Exit = 0;
|
Error_Exit = 0;
|
||||||
|
|
||||||
PVar = NativeAligned2FromStackOffset(InterfacePage->currentfxp) + FRAMESIZE;
|
PVar = (DLword *)NativeAligned2FromLAddr(STK_OFFSET | InterfacePage->currentfxp) + FRAMESIZE;
|
||||||
|
|
||||||
freeptr = next68k = NativeAligned2FromStackOffset(CURRENTFX->nextblock);
|
freeptr = next68k = NativeAligned2FromLAddr(STK_OFFSET | CURRENTFX->nextblock);
|
||||||
|
|
||||||
if (GETWORD(next68k) != STK_FSB_WORD) error("Starting Lisp: Next stack block isn't free!");
|
if (GETWORD(next68k) != STK_FSB_WORD) error("Starting Lisp: Next stack block isn't free!");
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,6 @@
|
|||||||
#include "commondefs.h" // for error
|
#include "commondefs.h" // for error
|
||||||
#include "emlglob.h"
|
#include "emlglob.h"
|
||||||
#include "gcdata.h" // for DELREF, GCLOOKUP
|
#include "gcdata.h" // for DELREF, GCLOOKUP
|
||||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
|
||||||
#include "lispemul.h" // for LispPTR, DLword, NIL, POINTERMASK, state
|
#include "lispemul.h" // for LispPTR, DLword, NIL, POINTERMASK, state
|
||||||
#include "lispmap.h" // for S_POSITIVE
|
#include "lispmap.h" // for S_POSITIVE
|
||||||
#include "lspglob.h"
|
#include "lspglob.h"
|
||||||
@@ -73,7 +72,7 @@ retry:
|
|||||||
if (917505 == *(LispPTR *)ptr) error("N_OP_createcell E0001 error");
|
if (917505 == *(LispPTR *)ptr) error("N_OP_createcell E0001 error");
|
||||||
/* replace dtd_free with newcell's top DLword (it may keep next chain)*/
|
/* replace dtd_free with newcell's top DLword (it may keep next chain)*/
|
||||||
dtd68k->dtd_free = (*((LispPTR *)ptr)) & POINTERMASK;
|
dtd68k->dtd_free = (*((LispPTR *)ptr)) & POINTERMASK;
|
||||||
if (dtd68k->dtd_free & 0x8000001) error("bad entry on free chain.");
|
if (dtd68k->dtd_free & 0x8000001) error("bad entry on free chain(1).");
|
||||||
|
|
||||||
dtd68k->dtd_oldcnt++;
|
dtd68k->dtd_oldcnt++;
|
||||||
|
|
||||||
@@ -85,7 +84,7 @@ retry:
|
|||||||
return (tos);
|
return (tos);
|
||||||
} else {
|
} else {
|
||||||
dtd68k->dtd_free = initmdspage(alloc_mdspage(dtd68k->dtd_typeentry), dtd68k->dtd_size, NIL);
|
dtd68k->dtd_free = initmdspage(alloc_mdspage(dtd68k->dtd_typeentry), dtd68k->dtd_size, NIL);
|
||||||
if (dtd68k->dtd_free & 0x8000000) error("bad entry on free chain.");
|
if (dtd68k->dtd_free & 0x8000000) error("bad entry on free chain(2).");
|
||||||
goto retry;
|
goto retry;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,7 +119,7 @@ retry:
|
|||||||
|
|
||||||
/* replace dtd_free with newcell's top DLword (it may keep next chain)*/
|
/* replace dtd_free with newcell's top DLword (it may keep next chain)*/
|
||||||
dtd68k->dtd_free = (*((LispPTR *)ptr)) & POINTERMASK;
|
dtd68k->dtd_free = (*((LispPTR *)ptr)) & POINTERMASK;
|
||||||
if (dtd68k->dtd_free & 0x8000000) error("bad entry on free chain.");
|
if (dtd68k->dtd_free & 0x8000000) error("bad entry on free chain(3).");
|
||||||
|
|
||||||
#ifdef DTDDEBUG
|
#ifdef DTDDEBUG
|
||||||
if ((dtd68k->dtd_free != 0) && (type != GetTypeNumber(dtd68k->dtd_free)))
|
if ((dtd68k->dtd_free != 0) && (type != GetTypeNumber(dtd68k->dtd_free)))
|
||||||
@@ -145,7 +144,7 @@ retry:
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
dtd68k->dtd_free = initmdspage(alloc_mdspage(dtd68k->dtd_typeentry), dtd68k->dtd_size, NIL);
|
dtd68k->dtd_free = initmdspage(alloc_mdspage(dtd68k->dtd_typeentry), dtd68k->dtd_size, NIL);
|
||||||
if (dtd68k->dtd_free & 0x8000000) error("bad entry on free chain.");
|
if (dtd68k->dtd_free & 0x8000000) error("bad entry on free chain(4).");
|
||||||
|
|
||||||
#ifdef DTDDEBUG
|
#ifdef DTDDEBUG
|
||||||
check_dtd_chain(type);
|
check_dtd_chain(type);
|
||||||
|
|||||||
@@ -35,7 +35,6 @@
|
|||||||
#ifdef BIGVM
|
#ifdef BIGVM
|
||||||
#define SWA_FNHEAD
|
#define SWA_FNHEAD
|
||||||
#else
|
#else
|
||||||
#include "byteswapdefs.h" // for swapx
|
|
||||||
#define SWA_FNHEAD swapx
|
#define SWA_FNHEAD swapx
|
||||||
#endif /* BIGVM */
|
#endif /* BIGVM */
|
||||||
|
|
||||||
|
|||||||
@@ -25,8 +25,8 @@
|
|||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
void perrorn(char *s, int n) {
|
void perrorn(char *s, int n) {
|
||||||
if (s != NULL && *s != '\0') { (void)fprintf(stderr, "%s: ", s); }
|
if (s != NULL && *s != '\0') { fprintf(stderr, "%s: ", s); }
|
||||||
(void)fprintf(stderr, "%s\n", strerror(n));
|
fprintf(stderr, "%s\n", strerror(n));
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
@@ -42,7 +42,7 @@ void err_mess(char *from, int no) {
|
|||||||
int save_errno = errno; /* Save errno around OSMESSAGE_PRINT */
|
int save_errno = errno; /* Save errno around OSMESSAGE_PRINT */
|
||||||
|
|
||||||
OSMESSAGE_PRINT({
|
OSMESSAGE_PRINT({
|
||||||
(void)fprintf(stderr, "System call error: %s errno=%d ", from, no);
|
fprintf(stderr, "System call error: %s errno=%d ", from, no);
|
||||||
perror("");
|
perror("");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -37,11 +37,9 @@
|
|||||||
|
|
||||||
#include "gcarraydefs.h"
|
#include "gcarraydefs.h"
|
||||||
#include "testtooldefs.h"
|
#include "testtooldefs.h"
|
||||||
#include "lineblt8defs.h"
|
|
||||||
#include "lsthandldefs.h"
|
#include "lsthandldefs.h"
|
||||||
#include "car-cdrdefs.h"
|
#include "car-cdrdefs.h"
|
||||||
#include "keyeventdefs.h"
|
#include "keyeventdefs.h"
|
||||||
#include "rawcolordefs.h"
|
|
||||||
|
|
||||||
#define IMIN(x, y) (((x) > (y)) ? (y) : (x))
|
#define IMIN(x, y) (((x) > (y)) ? (y) : (x))
|
||||||
#define IMAX(x, y) (((x) > (y)) ? (x) : (y))
|
#define IMAX(x, y) (((x) > (y)) ? (x) : (y))
|
||||||
@@ -74,15 +72,6 @@ LispPTR SLOWBLTCHAR_index;
|
|||||||
return; \
|
return; \
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ColorizeFont8(BITMAP *sBM, DLword sXOffset, DLword sYOffset,
|
|
||||||
BITMAP *dBM, DLword dXOffset, DLword dYOffset,
|
|
||||||
DLword width, DLword height, u_char col0, u_char col1,
|
|
||||||
LispPTR sourcetype, LispPTR operation);
|
|
||||||
static void ColorizeFont8_BIGBM(BITMAP *sBM, DLword sXOffset, DLword sYOffset,
|
|
||||||
BIGBM *dBM, DLword dXOffset, DLword dYOffset,
|
|
||||||
DLword width, DLword height, u_char col0, u_char col1,
|
|
||||||
LispPTR sourcetype, LispPTR operation);
|
|
||||||
|
|
||||||
/***********************************************************/
|
/***********************************************************/
|
||||||
/*
|
/*
|
||||||
C_slowbltchar
|
C_slowbltchar
|
||||||
@@ -313,7 +302,7 @@ void C_slowbltchar(LispPTR *args)
|
|||||||
|
|
||||||
u_int ColorizedFont8CACHE[MAXFONTHEIGHT / BITSPERNIBBLE * MAXFONTWIDTH / BITSPERNIBBLE];
|
u_int ColorizedFont8CACHE[MAXFONTHEIGHT / BITSPERNIBBLE * MAXFONTWIDTH / BITSPERNIBBLE];
|
||||||
|
|
||||||
static void ColorizeFont8(BITMAP *sBM, DLword sXOffset, DLword sYOffset, BITMAP *dBM, DLword dXOffset, DLword dYOffset, DLword width, DLword height, u_char col0, u_char col1,
|
void ColorizeFont8(BITMAP *sBM, DLword sXOffset, DLword sYOffset, BITMAP *dBM, DLword dXOffset, DLword dYOffset, DLword width, DLword height, u_char col0, u_char col1,
|
||||||
LispPTR sourcetype, LispPTR operation)
|
LispPTR sourcetype, LispPTR operation)
|
||||||
{
|
{
|
||||||
DLword *nbase;
|
DLword *nbase;
|
||||||
@@ -323,10 +312,10 @@ static void ColorizeFont8(BITMAP *sBM, DLword sXOffset, DLword sYOffset, BITMAP
|
|||||||
sYOffset = sBM->bmheight - (sYOffset + height);
|
sYOffset = sBM->bmheight - (sYOffset + height);
|
||||||
dYOffset = dBM->bmheight - (dYOffset + height);
|
dYOffset = dBM->bmheight - (dYOffset + height);
|
||||||
|
|
||||||
nbase = NativeAligned2FromLAddr(sBM->bmbase) + (sBM->bmrasterwidth * sYOffset);
|
nbase = (DLword *)NativeAligned2FromLAddr(sBM->bmbase) + (sBM->bmrasterwidth * sYOffset);
|
||||||
dbase = (u_char *)NativeAligned2FromLAddr(dBM->bmbase) + (dBM->bmrasterwidth * dYOffset);
|
(DLword *)dbase = (DLword *)NativeAligned2FromLAddr(dBM->bmbase) + (dBM->bmrasterwidth * dYOffset);
|
||||||
for (i = 0, dbase += dXOffset; /* 8bpp */
|
for (i = 0, dbase += dXOffset; /* 8bpp */
|
||||||
i < height; i++, nbase += sBM->bmrasterwidth, dbase += dBM->bmrasterwidth * BYTESPER_DLWORD) {
|
i < height; i++, nbase += sBM->bmrasterwidth, ((DLword *)dbase) += dBM->bmrasterwidth) {
|
||||||
lineBlt8(nbase, (int)sXOffset, dbase, (int)width, col0, col1, sourcetype, operation);
|
lineBlt8(nbase, (int)sXOffset, dbase, (int)width, col0, col1, sourcetype, operation);
|
||||||
} /* for end */
|
} /* for end */
|
||||||
|
|
||||||
@@ -343,7 +332,7 @@ static void ColorizeFont8(BITMAP *sBM, DLword sXOffset, DLword sYOffset, BITMAP
|
|||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
static void ColorizeFont8_BIGBM(BITMAP *sBM, DLword sXOffset, DLword sYOffset, BIGBM *dBM, DLword dXOffset, DLword dYOffset, DLword width, DLword height, u_char col0, u_char col1,
|
void ColorizeFont8_BIGBM(BITMAP *sBM, DLword sXOffset, DLword sYOffset, BIGBM *dBM, DLword dXOffset, DLword dYOffset, DLword width, DLword height, u_char col0, u_char col1,
|
||||||
LispPTR sourcetype, LispPTR operation)
|
LispPTR sourcetype, LispPTR operation)
|
||||||
{
|
{
|
||||||
DLword *nbase;
|
DLword *nbase;
|
||||||
@@ -386,13 +375,14 @@ loop:
|
|||||||
dest_h = dest_fragbottom - (dest_fragtop + dest_yoffset);
|
dest_h = dest_fragbottom - (dest_fragtop + dest_yoffset);
|
||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
dbase = (u_char *)NativeAligned2FromLAddr(dest_frag->bmbase) + (dest_frag->bmrasterwidth * dest_yoffset);
|
dbase =
|
||||||
nbase = NativeAligned2FromLAddr(sBM->bmbase) + (sBM->bmrasterwidth * sYOffset);
|
(DLword *)NativeAligned2FromLAddr(dest_frag->bmbase) + (dest_frag->bmrasterwidth * dest_yoffset);
|
||||||
|
nbase = (DLword *)NativeAligned2FromLAddr(sBM->bmbase) + (sBM->bmrasterwidth * sYOffset);
|
||||||
|
|
||||||
sYOffset += (DLword)dest_h; /* next src yoffset */
|
sYOffset += (DLword)dest_h; /* next src yoffset */
|
||||||
|
|
||||||
for (i = 0, dbase += dXOffset; i < dest_h;
|
for (i = 0, dbase += dXOffset; i < dest_h;
|
||||||
i++, nbase += sBM->bmrasterwidth, dbase += dest_frag->bmrasterwidth * BYTESPER_DLWORD) {
|
i++, nbase += sBM->bmrasterwidth, ((DLword *)dbase) += dest_frag->bmrasterwidth) {
|
||||||
lineBlt8(nbase, (int)sXOffset, dbase, (int)width, col0, col1, sourcetype, operation);
|
lineBlt8(nbase, (int)sXOffset, dbase, (int)width, col0, col1, sourcetype, operation);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -419,14 +409,14 @@ loop:
|
|||||||
/* */
|
/* */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
static void newColorizeFont8(PILOTBBT *pbt, u_char backcolor, u_char forecolor, LispPTR srctype, LispPTR ope)
|
void newColorizeFont8(PILOTBBT *pbt, u_char backcolor, u_char forecolor, LispPTR srctype, LispPTR ope)
|
||||||
{
|
{
|
||||||
DLword *nbase;
|
DLword *nbase;
|
||||||
u_char *dbase;
|
u_char *dbase;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
nbase = NativeAligned2FromLAddr((pbt->pbtsourcehi << 16) | (pbt->pbtsourcelo));
|
nbase = (DLword *)NativeAligned2FromLAddr((pbt->pbtsourcehi << 16) | (pbt->pbtsourcelo));
|
||||||
dbase = (u_char *)NativeAligned2FromLAddr((pbt->pbtdesthi << 16) | (pbt->pbtdestlo));
|
(DLword *)dbase = (DLword *)NativeAligned2FromLAddr((pbt->pbtdesthi << 16) | (pbt->pbtdestlo));
|
||||||
dbase += pbt->pbtdestbit;
|
dbase += pbt->pbtdestbit;
|
||||||
for (i = 0; i < pbt->pbtheight;
|
for (i = 0; i < pbt->pbtheight;
|
||||||
i++, nbase += pbt->pbtsourcebpl / 16, dbase += pbt->pbtdestbpl / 8) {
|
i++, nbase += pbt->pbtsourcebpl / 16, dbase += pbt->pbtdestbpl / 8) {
|
||||||
@@ -504,7 +494,7 @@ void Uncolorize_Bitmap(LispPTR args[])
|
|||||||
|
|
||||||
if ((x & 0xF) != 0) *(d_base++) = word;
|
if ((x & 0xF) != 0) *(d_base++) = word;
|
||||||
|
|
||||||
if (y != (s_height - 1)) { s_base += s_rasterwidth * BYTESPER_DLWORD; } /* end if( y ) */
|
if (y != (s_height - 1)) { (DLword *)s_base += s_rasterwidth; } /* end if( y ) */
|
||||||
|
|
||||||
} /* end for( y ) */
|
} /* end for( y ) */
|
||||||
|
|
||||||
@@ -542,11 +532,11 @@ LispPTR Colorize_Bitmap(LispPTR args[])
|
|||||||
|
|
||||||
s_base = (DLword *)NativeAligned2FromLAddr(s_bitmap->bmbase) +
|
s_base = (DLword *)NativeAligned2FromLAddr(s_bitmap->bmbase) +
|
||||||
s_bitmap->bmrasterwidth * (s_bitmap->bmheight - (s_bottom + height));
|
s_bitmap->bmrasterwidth * (s_bitmap->bmheight - (s_bottom + height));
|
||||||
d_base = (u_char *)NativeAligned2FromLAddr(d_bitmap->bmbase) +
|
(DLword *)d_base = (DLword *)NativeAligned2FromLAddr(d_bitmap->bmbase) +
|
||||||
d_bitmap->bmrasterwidth * (d_bitmap->bmheight - (d_bottom + height));
|
d_bitmap->bmrasterwidth * (d_bitmap->bmheight - (d_bottom + height));
|
||||||
|
|
||||||
for (i = 0, d_base += d_left; i < height;
|
for (i = 0, d_base += d_left; i < height;
|
||||||
i++, s_base += s_bitmap->bmrasterwidth, d_base += d_bitmap->bmrasterwidth * BYTESPER_DLWORD) {
|
i++, s_base += s_bitmap->bmrasterwidth, (DLword *)d_base += d_bitmap->bmrasterwidth) {
|
||||||
lineBlt8(s_base, s_left, d_base, width, (u_char)color0, (u_char)color1, INPUT_atom,
|
lineBlt8(s_base, s_left, d_base, width, (u_char)color0, (u_char)color1, INPUT_atom,
|
||||||
REPLACE_atom);
|
REPLACE_atom);
|
||||||
|
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ void contextsw(DLword fxnum, DLword bytenum, DLword flags)
|
|||||||
|
|
||||||
Midpunt(fxnum); /* exchanging FX */
|
Midpunt(fxnum); /* exchanging FX */
|
||||||
|
|
||||||
next68k = NativeAligned2FromStackOffset(CURRENTFX->nextblock);
|
next68k = (DLword *)NativeAligned2FromLAddr(STK_OFFSET | CURRENTFX->nextblock);
|
||||||
|
|
||||||
if (GETWORD(next68k) != STK_FSB_WORD) error("contextsw(): MP9316");
|
if (GETWORD(next68k) != STK_FSB_WORD) error("contextsw(): MP9316");
|
||||||
freeptr = next68k;
|
freeptr = next68k;
|
||||||
|
|||||||
@@ -29,11 +29,6 @@
|
|||||||
#include "lspglob.h"
|
#include "lspglob.h"
|
||||||
#include "lsptypes.h" // for Listp
|
#include "lsptypes.h" // for Listp
|
||||||
#include "rplconsdefs.h" // for N_OP_rplcons
|
#include "rplconsdefs.h" // for N_OP_rplcons
|
||||||
#ifndef NEWCDRCODING
|
|
||||||
#include "gcdata.h"
|
|
||||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
|
||||||
#include "address.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,6 @@
|
|||||||
#include "commondefs.h" // for error
|
#include "commondefs.h" // for error
|
||||||
#include "conspagedefs.h" // for cons
|
#include "conspagedefs.h" // for cons
|
||||||
#include "gcdata.h" // for ADDREF, GCLOOKUP
|
#include "gcdata.h" // for ADDREF, GCLOOKUP
|
||||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
|
||||||
#include "gcfinaldefs.h" // for makefreearrayblock, mergebackward
|
#include "gcfinaldefs.h" // for makefreearrayblock, mergebackward
|
||||||
#include "ifpage.h" // for IFPAGE, MACHINETYPE_MAIKO
|
#include "ifpage.h" // for IFPAGE, MACHINETYPE_MAIKO
|
||||||
#include "lispemul.h" // for LispPTR, NIL, GETFPTOVP, INTSTAT, ATOM_T
|
#include "lispemul.h" // for LispPTR, NIL, GETFPTOVP, INTSTAT, ATOM_T
|
||||||
|
|||||||
@@ -64,11 +64,6 @@
|
|||||||
#include "uutilsdefs.h" // for suspend_lisp, check_unix_password, unix_fu...
|
#include "uutilsdefs.h" // for suspend_lisp, check_unix_password, unix_fu...
|
||||||
#include "vmemsavedefs.h" // for lisp_finish, vmem_save0
|
#include "vmemsavedefs.h" // for lisp_finish, vmem_save0
|
||||||
|
|
||||||
#ifdef COLOR
|
|
||||||
#include "rawcolordefs.h"
|
|
||||||
#include "llcolordefs.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern LispPTR *PENDINGINTERRUPT68k;
|
extern LispPTR *PENDINGINTERRUPT68k;
|
||||||
|
|
||||||
/***********************************************************/
|
/***********************************************************/
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user