mirror of
https://github.com/adtools/clib2.git
synced 2025-12-08 14:59:05 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6245dccb4b |
File diff suppressed because it is too large
Load Diff
@@ -1,238 +0,0 @@
|
|||||||
#
|
|
||||||
# $Id: GNUmakefile.os4,v 1.116 2008-11-06 14:44:07 obarthel Exp $
|
|
||||||
#
|
|
||||||
# :ts=8
|
|
||||||
#
|
|
||||||
# -*- mode: makefile; -*-
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
.PHONY : all all-targets clean version cvs-tag
|
|
||||||
|
|
||||||
# You may have to change the following sets of macro definitions which will
|
|
||||||
# be used throughout the build makefile. These definitions cover the paths
|
|
||||||
# to look into for the operating system and networking header files, and
|
|
||||||
# the names and parameters passed to the program which actually do the
|
|
||||||
# compilation, library building and cleanup work.
|
|
||||||
#
|
|
||||||
# Note that for either set you still need the GNU make utility to build the
|
|
||||||
# library!
|
|
||||||
|
|
||||||
# These are for the cross compiler, with the operating system header files
|
|
||||||
# stored in "/V/include" and the network header files in a local directory
|
|
||||||
# called "netinclude".
|
|
||||||
SDK_INCLUDE := /V/include
|
|
||||||
NET_INCLUDE := netinclude
|
|
||||||
CC := ppc-amigaos-gcc
|
|
||||||
AR := ppc-amigaos-ar -q
|
|
||||||
RANLIB := ppc-amigaos-ranlib
|
|
||||||
COPY := cp -p
|
|
||||||
DELETE := rm -rf
|
|
||||||
MAKEDIR := mkdir -p
|
|
||||||
LOG_COMMAND := 2>&1 | tee -a compiler.log
|
|
||||||
# You may need to request a specific compiler version in order to
|
|
||||||
# build the baserel versions of the library. At this time of
|
|
||||||
# writing (2008-11-06) GCC 4.0.4 and below support the -mbaserel
|
|
||||||
# feature, but more recent versions, including GCC 4.2.4, do not.
|
|
||||||
#COMPILER_VERSION := -V4.0.2
|
|
||||||
|
|
||||||
# The following are for the native OS4 compiler; note that the
|
|
||||||
# LOG_COMMAND should not be enabled unless you have a shell
|
|
||||||
# installed which supports it.
|
|
||||||
#SDK_INCLUDE := /SDK/Include/include_h
|
|
||||||
#NET_INCLUDE := /SDK/Include/netinclude
|
|
||||||
#CC := distcc gcc
|
|
||||||
#AR := ar -q
|
|
||||||
#RANLIB := ranlib
|
|
||||||
#COPY := copy
|
|
||||||
#DELETE := delete all quiet force
|
|
||||||
#MAKEDIR := makedir all force
|
|
||||||
#COMPILER_VERSION := -V4.0.2
|
|
||||||
#LOG_COMMAND := *>< | tee >>compiler.log
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
WARNINGS := \
|
|
||||||
-Wall -W -Wpointer-arith -Wsign-compare -Wmissing-prototypes \
|
|
||||||
-Wundef -Wbad-function-cast -Wmissing-declarations -Wunused -Wwrite-strings
|
|
||||||
|
|
||||||
# -Wconversion -Wshadow
|
|
||||||
|
|
||||||
INCLUDES := -Iinclude -I. -I$(SDK_INCLUDE)
|
|
||||||
OPTIONS := -DUSE_64_BIT_INTS -D__USE_INLINE__ -Wa,-mregnames -fno-common -std=gnu99 -mcrt=clib2
|
|
||||||
OPTIMIZE := -DNDEBUG -O3
|
|
||||||
|
|
||||||
#DEBUG := -ggdb
|
|
||||||
#MEMDEBUG := -D__USE_MEM_TREES -D__MEM_DEBUG
|
|
||||||
|
|
||||||
CFLAGS := $(COMPILER_VERSION) $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(MEMDEBUG) $(OPTIONS) $(INCLUDES)
|
|
||||||
AFLAGS := $(COMPILER_VERSION) -Wa,-mregnames
|
|
||||||
|
|
||||||
LARGEDATA := -msdata=data
|
|
||||||
SOFTFLOAT := -msdata=data -msoft-float
|
|
||||||
SMALLDATA := -msdata=sysv -DSMALL_DATA
|
|
||||||
BASEREL := -mbaserel -DBASEREL_DATA
|
|
||||||
THREADSAFE := -D__THREAD_SAFE
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# This is the first target: it depends on all the targets
|
|
||||||
|
|
||||||
all: all-targets
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# The LIBS variable is updated by each of the included library makefiles.
|
|
||||||
|
|
||||||
LIBS :=
|
|
||||||
|
|
||||||
include libc.gmk
|
|
||||||
include libunix.gmk
|
|
||||||
include libm.gmk
|
|
||||||
include libnet.gmk
|
|
||||||
include libdebug.gmk
|
|
||||||
include libamiga.gmk
|
|
||||||
include libprofile.gmk
|
|
||||||
|
|
||||||
all-targets: \
|
|
||||||
lib/crt0.o \
|
|
||||||
lib/small-data/crt0.o \
|
|
||||||
lib/soft-float/crt0.o \
|
|
||||||
lib/baserel/crt0.o \
|
|
||||||
lib/crtbegin.o \
|
|
||||||
lib/soft-float/crtbegin.o \
|
|
||||||
lib/small-data/crtbegin.o \
|
|
||||||
lib/baserel/crtbegin.o \
|
|
||||||
lib/crtend.o \
|
|
||||||
lib/soft-float/crtend.o \
|
|
||||||
lib/small-data/crtend.o \
|
|
||||||
lib/baserel/crtend.o \
|
|
||||||
lib.threadsafe/crt0.o \
|
|
||||||
lib.threadsafe/small-data/crt0.o \
|
|
||||||
lib.threadsafe/soft-float/crt0.o \
|
|
||||||
lib.threadsafe/baserel/crt0.o \
|
|
||||||
lib.threadsafe/crtbegin.o \
|
|
||||||
lib.threadsafe/soft-float/crtbegin.o \
|
|
||||||
lib.threadsafe/small-data/crtbegin.o \
|
|
||||||
lib.threadsafe/baserel/crtbegin.o \
|
|
||||||
lib.threadsafe/crtend.o \
|
|
||||||
lib.threadsafe/soft-float/crtend.o \
|
|
||||||
lib.threadsafe/small-data/crtend.o \
|
|
||||||
lib.threadsafe/baserel/crtend.o \
|
|
||||||
$(LIBS)
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# Delete all object files and libraries
|
|
||||||
clean:
|
|
||||||
-$(DELETE) obj
|
|
||||||
-$(DELETE) obj.threadsafe
|
|
||||||
-$(DELETE) lib
|
|
||||||
-$(DELETE) lib.threadsafe
|
|
||||||
-$(DELETE) compiler.log
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# Update the version numbers bound to the individual libraries
|
|
||||||
version:
|
|
||||||
$(COPY) c.lib_rev.rev amiga.lib_rev.rev
|
|
||||||
$(COPY) c.lib_rev.rev debug.lib_rev.rev
|
|
||||||
$(COPY) c.lib_rev.rev m.lib_rev.rev
|
|
||||||
$(COPY) c.lib_rev.rev net.lib_rev.rev
|
|
||||||
$(COPY) c.lib_rev.rev unix.lib_rev.rev
|
|
||||||
$(COPY) c.lib_rev.rev profile.lib_rev.rev
|
|
||||||
bumprev 1 amiga.lib
|
|
||||||
bumprev 1 c.lib
|
|
||||||
bumprev 1 debug.lib
|
|
||||||
bumprev 1 m.lib
|
|
||||||
bumprev 1 net.lib
|
|
||||||
bumprev 1 unix.lib
|
|
||||||
bumprev 1 profile.lib
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# Tag all files with a certain version number
|
|
||||||
cvs-tag:
|
|
||||||
cvs -q tag V1_`cat c.lib_rev.rev`
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# General build rules for all object files and the individual libraries
|
|
||||||
|
|
||||||
lib/%.o : AFLAGS += $(LARGEDATA)
|
|
||||||
lib/%.o : %.S
|
|
||||||
@$(ASSEMBLE)
|
|
||||||
|
|
||||||
lib/%.o : %.c
|
|
||||||
@$(COMPILE)
|
|
||||||
|
|
||||||
lib/small-data/%.o : AFLAGS += $(SMALLDATA)
|
|
||||||
lib/small-data/%.o : %.S
|
|
||||||
@$(ASSEMBLE)
|
|
||||||
|
|
||||||
lib/small-data/%.o : %.c
|
|
||||||
@$(COMPILE)
|
|
||||||
|
|
||||||
lib/soft-float/%.o : AFLAGS += $(SOFTFLOAT)
|
|
||||||
lib/soft-float/%.o : %.S
|
|
||||||
@$(ASSEMBLE)
|
|
||||||
|
|
||||||
lib/soft-float/%.o : %.c
|
|
||||||
@$(COMPILE)
|
|
||||||
|
|
||||||
lib/baserel/%.o : AFLAGS += $(BASEREL)
|
|
||||||
lib/baserel/%.o : %.S
|
|
||||||
@$(ASSEMBLE)
|
|
||||||
|
|
||||||
lib/baserel/%.o : %.c
|
|
||||||
@$(COMPILE)
|
|
||||||
|
|
||||||
lib.threadsafe/%.o : AFLAGS += $(LARGEDATA) $(THREADSAFE)
|
|
||||||
lib.threadsafe/%.o : %.S
|
|
||||||
@$(ASSEMBLE)
|
|
||||||
|
|
||||||
lib.threadsafe/%.o : %.c
|
|
||||||
@$(COMPILE)
|
|
||||||
|
|
||||||
lib.threadsafe/small-data/%.o : AFLAGS += $(SMALLDATA) $(THREADSAFE)
|
|
||||||
lib.threadsafe/small-data/%.o : %.S
|
|
||||||
@$(ASSEMBLE)
|
|
||||||
|
|
||||||
lib.threadsafe/small-data/%.o : %.c
|
|
||||||
@$(COMPILE)
|
|
||||||
|
|
||||||
lib.threadsafe/soft-float/%.o : AFLAGS += $(SOFTFLOAT) $(THREADSAFE)
|
|
||||||
lib.threadsafe/soft-float/%.o : %.S
|
|
||||||
@$(ASSEMBLE)
|
|
||||||
|
|
||||||
lib.threadsafe/soft-float/%.o : %.c
|
|
||||||
@$(COMPILE)
|
|
||||||
|
|
||||||
lib.threadsafe/baserel/%.o : AFLAGS += $(BASEREL) $(THREADSAFE)
|
|
||||||
lib.threadsafe/baserel/%.o : %.S
|
|
||||||
@$(ASSEMBLE)
|
|
||||||
|
|
||||||
lib.threadsafe/baserel/%.o : %.c
|
|
||||||
@$(COMPILE)
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
define COMPILE
|
|
||||||
-$(MAKEDIR) $(@D)
|
|
||||||
echo "Compiling $< [$(@D)]"
|
|
||||||
$(CC) $(CFLAGS) -o $@ -c $< $(LOG_COMMAND)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define ASSEMBLE
|
|
||||||
-$(MAKEDIR) $(@D)
|
|
||||||
echo "Assembling $< [$(@D)]"
|
|
||||||
$(CC) $(AFLAGS) -o $@ -c $< $(LOG_COMMAND)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define MAKELIB
|
|
||||||
-$(MAKEDIR) $@
|
|
||||||
$(DELETE) $@
|
|
||||||
echo "Making $@"
|
|
||||||
$(AR) $@ $^ $(LOG_COMMAND)
|
|
||||||
$(RANLIB) $@ $(LOG_COMMAND)
|
|
||||||
endef
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
C99 math functions:
|
|
||||||
|
|
||||||
fma() and fmaf() should be implemented as a true "fused" multiply
|
|
||||||
and add function rather than the sequential operation implied in the
|
|
||||||
current implementation.
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga.lib_rev.c,v 1.3 2006-01-08 12:04:21 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "amiga.lib_rev.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
char __amiga_lib_version[] = VERSTAG;
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
#define VERSION 1
|
|
||||||
#define REVISION 205
|
|
||||||
#define DATE "21.8.2010"
|
|
||||||
#define VERS "amiga.lib 1.205"
|
|
||||||
#define VSTRING "amiga.lib 1.205 (21.8.2010)\r\n"
|
|
||||||
#define VERSTAG "\0$VER: amiga.lib 1.205 (21.8.2010)"
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
205
|
|
||||||
@@ -1,110 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_acrypt.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define ACrypt __ACrypt
|
|
||||||
|
|
||||||
#include <exec/types.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
#undef ACrypt
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#define OSIZE 12
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
UBYTE * ACrypt(UBYTE * buffer, const UBYTE * password, const UBYTE * user);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
UBYTE *
|
|
||||||
ACrypt(UBYTE * buffer, const UBYTE * password, const UBYTE * user)
|
|
||||||
{
|
|
||||||
UBYTE * result = NULL;
|
|
||||||
LONG buf[OSIZE];
|
|
||||||
LONG i,d,k;
|
|
||||||
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
assert( buffer != NULL && password != NULL && user != NULL );
|
|
||||||
|
|
||||||
SHOWPOINTER(buffer);
|
|
||||||
SHOWSTRING(password);
|
|
||||||
SHOWSTRING(user);
|
|
||||||
|
|
||||||
if(buffer == NULL || password == NULL || user == NULL)
|
|
||||||
{
|
|
||||||
SHOWMSG("invalid parameters");
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(i = 0 ; i < OSIZE ; i++)
|
|
||||||
{
|
|
||||||
if((*password) != '\0')
|
|
||||||
d = (*password++);
|
|
||||||
else
|
|
||||||
d = i;
|
|
||||||
|
|
||||||
if((*user) != '\0')
|
|
||||||
d += (*user++);
|
|
||||||
else
|
|
||||||
d += i;
|
|
||||||
|
|
||||||
buf[i] = 'A' + d;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(i = 0 ; i < OSIZE ; i++)
|
|
||||||
{
|
|
||||||
for(k = 0 ; k < OSIZE ; k++)
|
|
||||||
buf[i] = (buf[i] + buf[OSIZE - k - 1]) % 53;
|
|
||||||
|
|
||||||
buffer[i] = buf[i] + 'A';
|
|
||||||
}
|
|
||||||
|
|
||||||
buffer[OSIZE-1] = '\0';
|
|
||||||
|
|
||||||
SHOWSTRING(buffer);
|
|
||||||
|
|
||||||
result = buffer;
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
RETURN(result);
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_addtof.c,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <exec/interrupts.h>
|
|
||||||
#include <hardware/intbits.h>
|
|
||||||
#include <graphics/graphint.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <proto/graphics.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "macros.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
typedef LONG (* CFUNC)(APTR arg);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
STATIC LONG INTERRUPT ASM
|
|
||||||
call_routine(REG(a1,struct Isrvstr *i))
|
|
||||||
{
|
|
||||||
CFUNC p = (CFUNC)i->ccode;
|
|
||||||
|
|
||||||
(*p)(i->Carg);
|
|
||||||
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
|
||||||
AddTOF(struct Isrvstr *i,CFUNC p,APTR arg)
|
|
||||||
{
|
|
||||||
assert( i != NULL && p != NULL );
|
|
||||||
|
|
||||||
i->code = (long (*)())call_routine;
|
|
||||||
i->Iptr = i;
|
|
||||||
i->ccode = p;
|
|
||||||
i->Carg = arg;
|
|
||||||
|
|
||||||
AddIntServer(INTB_VERTB,(struct Interrupt *)i);
|
|
||||||
}
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_argarraydone.c,v 1.4 2006-09-25 14:05:31 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <workbench/workbench.h>
|
|
||||||
#include <exec/memory.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <proto/icon.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
extern const unsigned char **CXLIB_argarray;
|
|
||||||
|
|
||||||
extern struct DiskObject * CXLIB_disko;
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
|
||||||
ArgArrayDone(VOID)
|
|
||||||
{
|
|
||||||
if(CXLIB_argarray != NULL)
|
|
||||||
{
|
|
||||||
FreeVec(CXLIB_argarray);
|
|
||||||
CXLIB_argarray = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(CXLIB_disko != NULL)
|
|
||||||
{
|
|
||||||
FreeDiskObject(CXLIB_disko);
|
|
||||||
CXLIB_disko = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,107 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_argarrayinit.c,v 1.7 2008-09-30 14:09:00 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <libraries/commodities.h>
|
|
||||||
#include <workbench/workbench.h>
|
|
||||||
#include <workbench/startup.h>
|
|
||||||
#include <exec/memory.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <proto/dos.h>
|
|
||||||
#include <proto/icon.h>
|
|
||||||
#include <proto/commodities.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifdef __amigaos4__
|
|
||||||
#define MEMORY_TYPE MEMF_PRIVATE
|
|
||||||
#else
|
|
||||||
#define MEMORY_TYPE MEMF_ANY
|
|
||||||
#endif /* __amigaos4__ */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
const unsigned char ** CXLIB_argarray;
|
|
||||||
|
|
||||||
struct DiskObject * CXLIB_disko;
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
STRPTR *
|
|
||||||
ArgArrayInit(LONG argc, CONST_STRPTR * argv)
|
|
||||||
{
|
|
||||||
STRPTR * result = NULL;
|
|
||||||
|
|
||||||
if(argc != 0) /* run from CLI */
|
|
||||||
{
|
|
||||||
LONG i;
|
|
||||||
|
|
||||||
if(argc == 1)
|
|
||||||
goto out; /* skip command name */
|
|
||||||
|
|
||||||
CXLIB_argarray = (const unsigned char **)AllocVec(sizeof(char *) * argc,MEMORY_TYPE|MEMF_CLEAR);
|
|
||||||
if(CXLIB_argarray == NULL)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
for(i = 1 ; i < argc ; i++)
|
|
||||||
CXLIB_argarray[i-1] = (unsigned char *)argv[i];
|
|
||||||
|
|
||||||
result = (STRPTR *)CXLIB_argarray;
|
|
||||||
}
|
|
||||||
else if (IconBase != NULL)
|
|
||||||
{
|
|
||||||
struct WBStartup * msg;
|
|
||||||
|
|
||||||
/* run from WB */
|
|
||||||
msg = (struct WBStartup *)argv;
|
|
||||||
|
|
||||||
CXLIB_disko = GetDiskObject(msg->sm_ArgList[0].wa_Name);
|
|
||||||
if(CXLIB_disko == NULL)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
result = (STRPTR *)CXLIB_disko->do_ToolTypes;
|
|
||||||
}
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_argint.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <workbench/workbench.h>
|
|
||||||
#include <exec/memory.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/dos.h>
|
|
||||||
#include <proto/icon.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
LONG
|
|
||||||
ArgInt(CONST_STRPTR *tt,CONST_STRPTR entry,LONG default_val)
|
|
||||||
{
|
|
||||||
STRPTR str;
|
|
||||||
|
|
||||||
if(tt != NULL && IconBase != NULL && ((str = (STRPTR)FindToolType((STRPTR *)tt,(STRPTR)entry))) != NULL)
|
|
||||||
StrToLong(str,&default_val);
|
|
||||||
|
|
||||||
return(default_val);
|
|
||||||
}
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_argstring.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <libraries/commodities.h>
|
|
||||||
#include <workbench/workbench.h>
|
|
||||||
#include <workbench/startup.h>
|
|
||||||
#include <exec/memory.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/icon.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
STRPTR
|
|
||||||
ArgString(CONST_STRPTR *tt,CONST_STRPTR entry,CONST_STRPTR default_string)
|
|
||||||
{
|
|
||||||
STRPTR result;
|
|
||||||
|
|
||||||
if(tt != NULL && IconBase != NULL && ((result = (STRPTR)FindToolType((STRPTR *)tt,(STRPTR)entry))) != NULL)
|
|
||||||
return(result);
|
|
||||||
else
|
|
||||||
return((STRPTR)default_string);
|
|
||||||
}
|
|
||||||
@@ -1,124 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_beginio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <exec/devices.h>
|
|
||||||
#include <exec/io.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef __PPC__
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(__SASC)
|
|
||||||
|
|
||||||
VOID __begin_io(struct IORequest * ior);
|
|
||||||
#pragma libcall DeviceBase __begin_io 01e 901
|
|
||||||
|
|
||||||
#endif /* __SASC */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(__GNUC__)
|
|
||||||
|
|
||||||
#define __begin_io(ior) ({ \
|
|
||||||
struct IORequest * _BeginIO_ior = (ior); \
|
|
||||||
{ \
|
|
||||||
register struct Library * const __BeginIO__bn __asm("a6") = (struct Library *) (DeviceBase);\
|
|
||||||
register struct IORequest * __BeginIO_ior __asm("a1") = (_BeginIO_ior); \
|
|
||||||
__asm volatile ("jsr a6@(-30:W)" \
|
|
||||||
: \
|
|
||||||
: "r"(__BeginIO__bn), "r"(__BeginIO_ior) \
|
|
||||||
: "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
|
|
||||||
} \
|
|
||||||
})
|
|
||||||
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
|
||||||
BeginIO(struct IORequest *ior)
|
|
||||||
{
|
|
||||||
struct Device * DeviceBase;
|
|
||||||
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
assert( ior != NULL && ior->io_Device != NULL );
|
|
||||||
|
|
||||||
DeviceBase = ior->io_Device;
|
|
||||||
__begin_io(ior);
|
|
||||||
|
|
||||||
LEAVE();
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(BeginIO)
|
|
||||||
#undef BeginIO
|
|
||||||
#endif /* BeginIO */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID BeginIO(struct IORequest *ior);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
|
||||||
BeginIO(struct IORequest *ior)
|
|
||||||
{
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
assert( ior != NULL && ior->io_Device != NULL );
|
|
||||||
|
|
||||||
IExec->BeginIO(ior);
|
|
||||||
|
|
||||||
LEAVE();
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* __PPC__ */
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_callhook.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __PPC__
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
CallHook(struct Hook *hook_ptr,Object *obj,...)
|
|
||||||
{
|
|
||||||
ULONG result;
|
|
||||||
va_list arg;
|
|
||||||
|
|
||||||
assert( hook_ptr != NULL );
|
|
||||||
|
|
||||||
va_start(arg,obj);
|
|
||||||
|
|
||||||
result = CallHookA(hook_ptr,obj,(APTR)arg);
|
|
||||||
|
|
||||||
va_end(arg);
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* __PPC__ */
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
*
|
|
||||||
* $Id: amiga_callhooka.asm,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=8
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
|
|
||||||
section text,code
|
|
||||||
|
|
||||||
h_Entry equ 8
|
|
||||||
|
|
||||||
xdef _CallHookA
|
|
||||||
|
|
||||||
****************************************************************************
|
|
||||||
* new hook standard
|
|
||||||
* use struct Hook (with minnode at the top)
|
|
||||||
*
|
|
||||||
* *** register calling convention: ***
|
|
||||||
* A0 - pointer to hook itself
|
|
||||||
* A1 - pointer to parameter packed ("message")
|
|
||||||
* A2 - Hook specific address data ("object," e.g, gadget )
|
|
||||||
*
|
|
||||||
* *** C conventions: ***
|
|
||||||
* Note that parameters are in unusual register order: a0, a2, a1.
|
|
||||||
* This is to provide a performance boost for assembly language
|
|
||||||
* programming (the object in a2 is most frequently untouched).
|
|
||||||
* It is also no problem in "register direct" C function parameters.
|
|
||||||
*
|
|
||||||
* calling through a hook
|
|
||||||
* CallHook( hook, object, msgid, p1, p2, ... );
|
|
||||||
* CallHookA( hook, object, msgpkt );
|
|
||||||
*
|
|
||||||
* using a C function: CFunction( hook, object, message );
|
|
||||||
* hook.h_Entry = HookEntry;
|
|
||||||
* hook.h_SubEntry = CFunction;
|
|
||||||
*
|
|
||||||
****************************************************************************
|
|
||||||
|
|
||||||
* C calling hook interface for prepared message packet
|
|
||||||
_CallHookA:
|
|
||||||
movem.l a2/a6,-(sp)
|
|
||||||
move.l 12(sp),a0
|
|
||||||
move.l 16(sp),a2
|
|
||||||
move.l 20(sp),a1
|
|
||||||
pea.l hook_return(pc)
|
|
||||||
move.l h_Entry(a0),-(sp)
|
|
||||||
rts
|
|
||||||
|
|
||||||
hook_return:
|
|
||||||
|
|
||||||
movem.l (sp)+,a2/a6
|
|
||||||
rts
|
|
||||||
|
|
||||||
end
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_callhooka.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if (defined(__GNUC__) && !defined(__PPC__))
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
asm("
|
|
||||||
|
|
||||||
h_Entry = 8
|
|
||||||
|
|
||||||
.text
|
|
||||||
.even
|
|
||||||
|
|
||||||
|---------------------------------------------------------------------------
|
|
||||||
| new hook standard
|
|
||||||
| use struct Hook (with minnode at the top)
|
|
||||||
|
|
|
||||||
| *** register calling convention: ***
|
|
||||||
| A0 - pointer to hook itself
|
|
||||||
| A1 - pointer to parameter packed ('message')
|
|
||||||
| A2 - Hook specific address data ('object,' e.g, gadget )
|
|
||||||
|
|
|
||||||
| *** C conventions: ***
|
|
||||||
| Note that parameters are in unusual register order: a0, a2, a1.
|
|
||||||
| This is to provide a performance boost for assembly language
|
|
||||||
| programming (the object in a2 is most frequently untouched).
|
|
||||||
| It is also no problem in 'register direct' C function parameters.
|
|
||||||
|
|
|
||||||
| calling through a hook
|
|
||||||
| CallHook( hook, object, msgid, p1, p2, ... );
|
|
||||||
| CallHookA( hook, object, msgpkt );
|
|
||||||
|
|
|
||||||
| using a C function: CFunction( hook, object, message );
|
|
||||||
| hook.h_Entry = HookEntry;
|
|
||||||
| hook.h_SubEntry = CFunction;
|
|
||||||
|
|
|
||||||
|---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
| C calling hook interface for prepared message packet
|
|
||||||
|
|
||||||
.globl _CallHookA
|
|
||||||
|
|
||||||
_CallHookA:
|
|
||||||
|
|
||||||
moveml a2/a6,sp@-
|
|
||||||
moveal sp@(12),a0
|
|
||||||
moveal sp@(16),a2
|
|
||||||
moveal sp@(20),a1
|
|
||||||
pea callhooka_return
|
|
||||||
movel a0@(h_Entry),sp@-
|
|
||||||
rts
|
|
||||||
|
|
||||||
callhooka_return:
|
|
||||||
|
|
||||||
moveml sp@+,a2/a6
|
|
||||||
rts
|
|
||||||
|
|
||||||
");
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* __GNUC__ && !__PPC__ */
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_coercemethod.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __PPC__
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <intuition/intuition.h>
|
|
||||||
#include <intuition/classes.h>
|
|
||||||
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
CoerceMethodA(Class * cl,Object * obj,Msg msg)
|
|
||||||
{
|
|
||||||
ULONG result = 0;
|
|
||||||
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
SHOWPOINTER(cl);
|
|
||||||
SHOWPOINTER(obj);
|
|
||||||
SHOWPOINTER(msg);
|
|
||||||
|
|
||||||
assert( cl != NULL && obj != NULL );
|
|
||||||
|
|
||||||
if(cl != NULL && obj != NULL)
|
|
||||||
result = CallHookA(&cl->cl_Dispatcher,obj,msg);
|
|
||||||
|
|
||||||
RETURN(result);
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
CoerceMethod(Class *cl, Object *obj, ULONG method_id, ...)
|
|
||||||
{
|
|
||||||
ULONG result = 0;
|
|
||||||
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
SHOWPOINTER(cl);
|
|
||||||
SHOWPOINTER(obj);
|
|
||||||
SHOWVALUE(method_id);
|
|
||||||
|
|
||||||
assert( cl != NULL && obj != NULL );
|
|
||||||
|
|
||||||
if(cl != NULL && obj != NULL)
|
|
||||||
result = CoerceMethodA(cl,obj,(Msg)&method_id);
|
|
||||||
|
|
||||||
RETURN(result);
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* __PPC__ */
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_createextio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(CreateExtIO)
|
|
||||||
#undef CreateExtIO
|
|
||||||
#endif /* CreateExtIO */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct IORequest * CreateExtIO(CONST struct MsgPort * port, LONG io_size);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct IORequest *
|
|
||||||
CreateExtIO(CONST struct MsgPort * port, LONG io_size)
|
|
||||||
{
|
|
||||||
struct IORequest * result = NULL;
|
|
||||||
|
|
||||||
assert( port != NULL && io_size > 0 );
|
|
||||||
|
|
||||||
if(port == NULL || io_size < (LONG)sizeof(*result))
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
result = CreateIORequest(port,(ULONG)io_size);
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_createport.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(CreatePort)
|
|
||||||
#undef CreatePort
|
|
||||||
#endif /* CreatePort */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct MsgPort * CreatePort(CONST_STRPTR name, LONG pri);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct MsgPort *
|
|
||||||
CreatePort(CONST_STRPTR name, LONG pri)
|
|
||||||
{
|
|
||||||
struct MsgPort * result = NULL;
|
|
||||||
|
|
||||||
assert( -128 <= pri && pri <= 127 );
|
|
||||||
|
|
||||||
if(pri < -128 || pri > 127)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
result = CreateMsgPort();
|
|
||||||
if(result != NULL && name != NULL)
|
|
||||||
{
|
|
||||||
result->mp_Node.ln_Name = (char *)name;
|
|
||||||
result->mp_Node.ln_Pri = pri;
|
|
||||||
|
|
||||||
AddPort(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_createstdio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(CreateStdIO)
|
|
||||||
#undef CreateStdIO
|
|
||||||
#endif /* CreateStdIO */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct IOStdReq * CreateStdIO(CONST struct MsgPort * port);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct IOStdReq *
|
|
||||||
CreateStdIO(CONST struct MsgPort * port)
|
|
||||||
{
|
|
||||||
struct IOStdReq * result = NULL;
|
|
||||||
|
|
||||||
assert( port != NULL );
|
|
||||||
|
|
||||||
if(port == NULL)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
result = (struct IOStdReq *)CreateIORequest((struct MsgPort *)port,sizeof(*result));
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,246 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_createtask.c,v 1.6 2006-09-25 15:12:47 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <exec/libraries.h>
|
|
||||||
#include <exec/memory.h>
|
|
||||||
#include <exec/tasks.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _STDLIB_PROFILE_H
|
|
||||||
#include "stdlib_profile.h"
|
|
||||||
#endif /* _STDLIB_PROFILE_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "macros.h"
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef __PPC__
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Create a task with given name, priority, and stack size.
|
|
||||||
* It will use the default exception and trap handlers for now.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* the template for the mementries. Unfortunately, this is hard to
|
|
||||||
* do from C: mementries have unions, and they cannot be statically
|
|
||||||
* initialized...
|
|
||||||
*
|
|
||||||
* In the interest of simplicity I recreate the mem entry structures
|
|
||||||
* here with appropriate sizes. We will copy this to a local
|
|
||||||
* variable and set the stack size to what the user specified,
|
|
||||||
* then attempt to actually allocate the memory.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define ME_TASK 0
|
|
||||||
#define ME_STACK 1
|
|
||||||
|
|
||||||
#define NUM_MEM_ENTRIES 2
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct FakeMemEntry
|
|
||||||
{
|
|
||||||
ULONG fme_Reqs;
|
|
||||||
ULONG fme_Size;
|
|
||||||
};
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct FakeMemList
|
|
||||||
{
|
|
||||||
struct Node fml_Node;
|
|
||||||
UWORD fml_NumEntries;
|
|
||||||
struct FakeMemEntry fml_ME[NUM_MEM_ENTRIES];
|
|
||||||
};
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct Task *
|
|
||||||
CreateTask(CONST_STRPTR name,LONG pri,CONST APTR init_pc,ULONG stack_size)
|
|
||||||
{
|
|
||||||
struct Task * new_task;
|
|
||||||
struct FakeMemList fake_mem_list;
|
|
||||||
struct MemList * ml = NULL;
|
|
||||||
APTR result = NULL;
|
|
||||||
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
SHOWSTRING(name);
|
|
||||||
SHOWVALUE(pri);
|
|
||||||
SHOWPOINTER(init_pc);
|
|
||||||
SHOWVALUE(stack_size);
|
|
||||||
|
|
||||||
assert( name != NULL && (-128 <= pri && pri <= 127) && init_pc != NULL && stack_size > 0 );
|
|
||||||
|
|
||||||
if(name == NULL || pri < -128 || pri > 127 || init_pc == NULL || stack_size == 0)
|
|
||||||
{
|
|
||||||
SHOWMSG("invalid parameters");
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* round the stack up to longwords... */
|
|
||||||
stack_size = (stack_size + 3UL) & ~3UL;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This will allocate two chunks of memory: task of PUBLIC
|
|
||||||
* and stack of PRIVATE
|
|
||||||
*/
|
|
||||||
memset(&fake_mem_list,0,sizeof(fake_mem_list));
|
|
||||||
|
|
||||||
fake_mem_list.fml_NumEntries = NUM_MEM_ENTRIES;
|
|
||||||
fake_mem_list.fml_ME[ME_TASK].fme_Reqs = MEMF_PUBLIC | MEMF_CLEAR;
|
|
||||||
fake_mem_list.fml_ME[ME_TASK].fme_Size = sizeof(struct Task);
|
|
||||||
fake_mem_list.fml_ME[ME_STACK].fme_Reqs = MEMF_ANY | MEMF_CLEAR;
|
|
||||||
fake_mem_list.fml_ME[ME_STACK].fme_Size = stack_size;
|
|
||||||
|
|
||||||
ml = (struct MemList *)AllocEntry((struct MemList *)&fake_mem_list);
|
|
||||||
|
|
||||||
/* Did the allocation succeed? */
|
|
||||||
if(((LONG)ml) < 0)
|
|
||||||
{
|
|
||||||
SHOWMSG("memory allocation failed");
|
|
||||||
|
|
||||||
/* Note: if AllocEntry() fails, the entire allocation is
|
|
||||||
* released before the function returns with bit #31
|
|
||||||
* set and the number of the slot that failed being
|
|
||||||
* returned. Thus, the return value is not a valid
|
|
||||||
* address that would need to be freed.
|
|
||||||
*/
|
|
||||||
ml = NULL;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* set the stack accounting stuff */
|
|
||||||
new_task = (struct Task *)ml->ml_ME[ME_TASK].me_Addr;
|
|
||||||
|
|
||||||
new_task->tc_SPLower = ml->ml_ME[ME_STACK].me_Addr;
|
|
||||||
new_task->tc_SPUpper = (APTR)((ULONG)(new_task->tc_SPLower) + stack_size);
|
|
||||||
new_task->tc_SPReg = new_task->tc_SPUpper;
|
|
||||||
|
|
||||||
/* misc task data structures */
|
|
||||||
new_task->tc_Node.ln_Type = NT_TASK;
|
|
||||||
new_task->tc_Node.ln_Pri = pri;
|
|
||||||
new_task->tc_Node.ln_Name = (char *)name;
|
|
||||||
|
|
||||||
/* add it to the tasks memory list */
|
|
||||||
NewList(&new_task->tc_MemEntry);
|
|
||||||
AddHead(&new_task->tc_MemEntry,(struct Node *)ml);
|
|
||||||
|
|
||||||
/* add the task to the system -- use the default final PC */
|
|
||||||
|
|
||||||
PROFILE_OFF();
|
|
||||||
result = AddTask(new_task,init_pc,NULL);
|
|
||||||
PROFILE_ON();
|
|
||||||
|
|
||||||
if(result == NULL)
|
|
||||||
{
|
|
||||||
SHOWMSG("could not add task");
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Gobbled up by task. */
|
|
||||||
ml = NULL;
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
if(ml != NULL)
|
|
||||||
FreeEntry(ml);
|
|
||||||
|
|
||||||
RETURN(result);
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(CreateTask)
|
|
||||||
#undef CreateTask
|
|
||||||
#endif /* CreateTask */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct Task * CreateTask(CONST_STRPTR name,LONG pri,CONST APTR init_pc,ULONG stack_size);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct Task *
|
|
||||||
CreateTask(CONST_STRPTR name,LONG pri,CONST APTR init_pc,ULONG stack_size)
|
|
||||||
{
|
|
||||||
struct Task * result = NULL;
|
|
||||||
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
SHOWSTRING(name);
|
|
||||||
SHOWVALUE(pri);
|
|
||||||
SHOWPOINTER(init_pc);
|
|
||||||
SHOWVALUE(stack_size);
|
|
||||||
|
|
||||||
assert( name != NULL && (-128 <= pri && pri <= 127) && init_pc != NULL && stack_size > 0 );
|
|
||||||
|
|
||||||
if(name == NULL || pri < -128 || pri > 127 || init_pc == NULL || stack_size == 0)
|
|
||||||
{
|
|
||||||
SHOWMSG("invalid parameters");
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
result = IExec->CreateTask(name,pri,init_pc,stack_size,NULL);
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
RETURN(result);
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* __PPC__ */
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_deleteextio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(DeleteExtIO)
|
|
||||||
#undef DeleteExtIO
|
|
||||||
#endif /* DeleteExtIO */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID DeleteExtIO(struct IORequest * io);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
|
||||||
DeleteExtIO(struct IORequest * io)
|
|
||||||
{
|
|
||||||
assert(io != NULL);
|
|
||||||
|
|
||||||
if(io != NULL)
|
|
||||||
DeleteIORequest((struct IORequest *)io);
|
|
||||||
}
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_deleteport.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(DeletePort)
|
|
||||||
#undef DeletePort
|
|
||||||
#endif /* DeletePort */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID DeletePort(struct MsgPort * port);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
|
||||||
DeletePort(struct MsgPort * port)
|
|
||||||
{
|
|
||||||
assert( port != NULL );
|
|
||||||
|
|
||||||
if(port->mp_Node.ln_Name != NULL)
|
|
||||||
RemPort(port);
|
|
||||||
|
|
||||||
DeleteMsgPort(port);
|
|
||||||
}
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_deletestdio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(DeleteStdIO)
|
|
||||||
#undef DeleteStdIO
|
|
||||||
#endif /* DeleteStdIO */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID DeleteStdIO(struct IOStdReq * io);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
|
||||||
DeleteStdIO(struct IOStdReq * io)
|
|
||||||
{
|
|
||||||
if(io != NULL)
|
|
||||||
DeleteIORequest((struct IORequest *)io);
|
|
||||||
}
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_deletetask.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <exec/libraries.h>
|
|
||||||
#include <exec/tasks.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef __PPC__
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
|
||||||
DeleteTask(struct Task *tc)
|
|
||||||
{
|
|
||||||
RemTask(tc);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(DeleteTask)
|
|
||||||
#undef DeleteTask
|
|
||||||
#endif /* DeleteTask */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID DeleteTask(struct Task *tc);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
|
||||||
DeleteTask(struct Task *tc)
|
|
||||||
{
|
|
||||||
IExec->DeleteTask(tc);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* __PPC__ */
|
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_domethod.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __PPC__
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <intuition/intuition.h>
|
|
||||||
#include <intuition/classes.h>
|
|
||||||
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
DoMethodA(Object * obj,Msg msg)
|
|
||||||
{
|
|
||||||
ULONG result = 0;
|
|
||||||
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
SHOWPOINTER(obj);
|
|
||||||
SHOWPOINTER(msg);
|
|
||||||
|
|
||||||
assert(obj != NULL);
|
|
||||||
|
|
||||||
if(obj != NULL)
|
|
||||||
{
|
|
||||||
Class * cl;
|
|
||||||
|
|
||||||
cl = OCLASS(obj);
|
|
||||||
|
|
||||||
assert( cl != NULL );
|
|
||||||
|
|
||||||
if(cl != NULL)
|
|
||||||
result = CallHookA(&cl->cl_Dispatcher,obj,msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
RETURN(result);
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
DoMethod(Object *obj, ULONG method_id, ...)
|
|
||||||
{
|
|
||||||
ULONG result = 0;
|
|
||||||
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
SHOWPOINTER(obj);
|
|
||||||
SHOWVALUE(method_id);
|
|
||||||
|
|
||||||
assert( obj != NULL );
|
|
||||||
|
|
||||||
if(obj != NULL)
|
|
||||||
result = DoMethodA(obj,(Msg)&method_id);
|
|
||||||
|
|
||||||
RETURN(result);
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* __PPC__ */
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_dosupermethod.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __PPC__
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <intuition/intuition.h>
|
|
||||||
#include <intuition/classes.h>
|
|
||||||
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
DoSuperMethodA(Class * cl, Object * obj, Msg msg)
|
|
||||||
{
|
|
||||||
ULONG result = 0;
|
|
||||||
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
SHOWPOINTER(cl);
|
|
||||||
SHOWPOINTER(obj);
|
|
||||||
SHOWPOINTER(msg);
|
|
||||||
|
|
||||||
assert( cl != NULL && obj != NULL );
|
|
||||||
|
|
||||||
if(cl != NULL && obj != NULL)
|
|
||||||
result = CallHookA(&cl->cl_Super->cl_Dispatcher,obj,msg);
|
|
||||||
|
|
||||||
RETURN(result);
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
DoSuperMethod(Class *cl, Object *obj, ULONG method_id, ...)
|
|
||||||
{
|
|
||||||
ULONG result = 0;
|
|
||||||
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
SHOWPOINTER(cl);
|
|
||||||
SHOWPOINTER(obj);
|
|
||||||
SHOWVALUE(method_id);
|
|
||||||
|
|
||||||
assert( cl != NULL && obj != NULL );
|
|
||||||
|
|
||||||
if(cl != NULL && obj != NULL)
|
|
||||||
result = DoSuperMethodA(cl,obj,(Msg)&method_id);
|
|
||||||
|
|
||||||
RETURN(result);
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* __PPC__ */
|
|
||||||
@@ -1,165 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_dotimer.c,v 1.8 2006-04-05 06:43:56 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <exec/errors.h>
|
|
||||||
|
|
||||||
#include <devices/timer.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _STDLIB_PROFILE_H
|
|
||||||
#include "stdlib_profile.h"
|
|
||||||
#endif /* _STDLIB_PROFILE_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "macros.h"
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* A quick workaround for the timeval/timerequest->TimeVal/TimeRequest
|
|
||||||
change in the recent OS4 header files. */
|
|
||||||
|
|
||||||
#if defined(__NEW_TIMEVAL_DEFINITION_USED__)
|
|
||||||
|
|
||||||
#define timeval TimeVal
|
|
||||||
#define tv_secs Seconds
|
|
||||||
#define tv_micro Microseconds
|
|
||||||
|
|
||||||
#define timerequest TimeRequest
|
|
||||||
#define tr_node Request
|
|
||||||
#define tr_time Time
|
|
||||||
|
|
||||||
#endif /* __NEW_TIMEVAL_DEFINITION_USED__ */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
LONG
|
|
||||||
DoTimer(struct timeval *tv,LONG unit,LONG command)
|
|
||||||
{
|
|
||||||
struct timerequest * tr = NULL;
|
|
||||||
struct MsgPort * mp;
|
|
||||||
LONG error;
|
|
||||||
|
|
||||||
assert( tv != NULL );
|
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
|
||||||
{
|
|
||||||
mp = AllocSysObjectTags(ASOT_PORT,
|
|
||||||
ASOPORT_Action, PA_SIGNAL,
|
|
||||||
ASOPORT_AllocSig, FALSE,
|
|
||||||
ASOPORT_Signal, SIGB_SINGLE,
|
|
||||||
ASOPORT_Target, FindTask(NULL),
|
|
||||||
TAG_DONE);
|
|
||||||
|
|
||||||
if(mp == NULL)
|
|
||||||
{
|
|
||||||
error = IOERR_OPENFAIL;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
{
|
|
||||||
mp = AllocVec(sizeof(*mp),MEMF_ANY|MEMF_PUBLIC|MEMF_CLEAR);
|
|
||||||
if(mp == NULL)
|
|
||||||
{
|
|
||||||
error = IOERR_OPENFAIL;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
mp->mp_Node.ln_Type = NT_MSGPORT;
|
|
||||||
mp->mp_Flags = PA_SIGNAL;
|
|
||||||
mp->mp_SigBit = SIGB_SINGLE;
|
|
||||||
mp->mp_SigTask = FindTask(NULL);
|
|
||||||
|
|
||||||
NewList(&mp->mp_MsgList);
|
|
||||||
}
|
|
||||||
#endif /* __amigaos4__ */
|
|
||||||
|
|
||||||
tr = (struct timerequest *)CreateIORequest(mp,sizeof(*tr));
|
|
||||||
if(tr == NULL)
|
|
||||||
{
|
|
||||||
error = IOERR_OPENFAIL;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
error = OpenDevice(TIMERNAME,(ULONG)unit,(struct IORequest *)tr,0);
|
|
||||||
if(error != 0)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
tr->tr_node.io_Command = command;
|
|
||||||
tr->tr_time.tv_secs = tv->tv_secs;
|
|
||||||
tr->tr_time.tv_micro = tv->tv_micro;
|
|
||||||
|
|
||||||
PROFILE_OFF();
|
|
||||||
|
|
||||||
SetSignal(0,(1UL << mp->mp_SigBit));
|
|
||||||
|
|
||||||
error = DoIO((struct IORequest *)tr);
|
|
||||||
|
|
||||||
PROFILE_ON();
|
|
||||||
|
|
||||||
tv->tv_secs = tr->tr_time.tv_secs;
|
|
||||||
tv->tv_micro = tr->tr_time.tv_micro;
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
if(tr != NULL)
|
|
||||||
{
|
|
||||||
if(tr->tr_node.io_Device != NULL)
|
|
||||||
CloseDevice((struct IORequest *)tr);
|
|
||||||
|
|
||||||
DeleteIORequest((struct IORequest *)tr);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
|
||||||
{
|
|
||||||
if(mp != NULL)
|
|
||||||
FreeSysObject(ASOT_PORT,mp);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
{
|
|
||||||
FreeVec(mp);
|
|
||||||
}
|
|
||||||
#endif /* __amigaos4__ */
|
|
||||||
|
|
||||||
return(error);
|
|
||||||
}
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_fastrand.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <exec/types.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
FastRand(ULONG seed)
|
|
||||||
{
|
|
||||||
ULONG value;
|
|
||||||
|
|
||||||
value = seed + seed;
|
|
||||||
if(value < seed)
|
|
||||||
value ^= 0x1D872B41;
|
|
||||||
|
|
||||||
return(value);
|
|
||||||
}
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_freeievents.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <devices/inputevent.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
|
||||||
FreeIEvents(struct InputEvent * ie)
|
|
||||||
{
|
|
||||||
struct InputEvent * next;
|
|
||||||
|
|
||||||
while(ie != NULL)
|
|
||||||
{
|
|
||||||
next = ie->ie_NextEvent;
|
|
||||||
|
|
||||||
FreeVec(ie);
|
|
||||||
|
|
||||||
ie = next;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
*
|
|
||||||
* $Id: amiga_hookentry.asm,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=8
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
|
|
||||||
section text,code
|
|
||||||
|
|
||||||
h_SubEntry equ 12
|
|
||||||
|
|
||||||
xdef _HookEntry
|
|
||||||
|
|
||||||
_HookEntry:
|
|
||||||
|
|
||||||
move.l a1,-(sp)
|
|
||||||
move.l a2,-(sp)
|
|
||||||
move.l a0,-(sp)
|
|
||||||
move.l h_SubEntry(a0),a0
|
|
||||||
jsr (a0)
|
|
||||||
lea 12(sp),sp
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
end
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_hookentry.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if (defined(__GNUC__) && !defined(__PPC__))
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
asm("
|
|
||||||
|
|
||||||
h_SubEntry = 12
|
|
||||||
|
|
||||||
.text
|
|
||||||
.even
|
|
||||||
|
|
||||||
.globl _HookEntry
|
|
||||||
|
|
||||||
_HookEntry:
|
|
||||||
|
|
||||||
movel a1,sp@-
|
|
||||||
movel a2,sp@-
|
|
||||||
movel a0,sp@-
|
|
||||||
movel a0@(h_SubEntry:W),a0
|
|
||||||
jsr a0@
|
|
||||||
lea sp@(12:W),sp
|
|
||||||
rts
|
|
||||||
|
|
||||||
");
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* __GNUC__ && !__PPC__ */
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_hotkey.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <libraries/commodities.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/commodities.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
CxObj *
|
|
||||||
HotKey(CONST_STRPTR descr,struct MsgPort * port,LONG ID)
|
|
||||||
{
|
|
||||||
CxObj * result = NULL;
|
|
||||||
CxObj * filter = NULL;
|
|
||||||
|
|
||||||
assert( descr != NULL && port != NULL );
|
|
||||||
|
|
||||||
if(CxBase == NULL)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
filter = CxFilter(descr);
|
|
||||||
if(filter == NULL)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
AttachCxObj(filter,CxSender(port,ID));
|
|
||||||
AttachCxObj(filter,CxTranslate(NULL));
|
|
||||||
|
|
||||||
if(CxObjError(filter))
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
result = filter;
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
if(result == NULL && filter != NULL)
|
|
||||||
DeleteCxObjAll(filter);
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,208 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_invertstring.c,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <libraries/commodities.h>
|
|
||||||
#include <devices/keymap.h>
|
|
||||||
#include <exec/memory.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <proto/commodities.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
STATIC int
|
|
||||||
do_escape(int cc)
|
|
||||||
{
|
|
||||||
int result;
|
|
||||||
|
|
||||||
switch(cc)
|
|
||||||
{
|
|
||||||
case 'n':
|
|
||||||
case 'r':
|
|
||||||
|
|
||||||
result = '\r';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 't':
|
|
||||||
|
|
||||||
result = '\t';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case '0':
|
|
||||||
|
|
||||||
result = '\0';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case '\\':
|
|
||||||
case '\"':
|
|
||||||
case '\'':
|
|
||||||
case '<':
|
|
||||||
|
|
||||||
result = cc;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
|
|
||||||
result = -1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
STATIC ULONG
|
|
||||||
do_angle(STRPTR * strp, struct InputEvent *ie)
|
|
||||||
{
|
|
||||||
ULONG result;
|
|
||||||
char * cp;
|
|
||||||
IX ix;
|
|
||||||
|
|
||||||
/* find closing angle '>', put a null there */
|
|
||||||
for(cp = (*strp) ; (*cp) ; cp++)
|
|
||||||
{
|
|
||||||
if((*cp) == '>')
|
|
||||||
{
|
|
||||||
(*cp) = '\0';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
result = ParseIX((*strp),&ix);
|
|
||||||
|
|
||||||
if(cp != NULL)
|
|
||||||
{
|
|
||||||
(*cp) = '>'; /* fix it */
|
|
||||||
(*strp) = cp; /* point to char following '>' */
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
(*strp) = cp - 1; /* ++will point to terminating null */
|
|
||||||
}
|
|
||||||
|
|
||||||
if(result == 0)
|
|
||||||
{
|
|
||||||
/* use IX to describe a suitable InputEvent */
|
|
||||||
ie->ie_Class = ix.ix_Class;
|
|
||||||
ie->ie_Code = ix.ix_Code;
|
|
||||||
ie->ie_Qualifier = ix.ix_Qualifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
extern VOID FreeIEvents(struct InputEvent *ie);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct InputEvent *
|
|
||||||
InvertString(CONST_STRPTR str, CONST struct KeyMap *km)
|
|
||||||
{
|
|
||||||
/* bugs:
|
|
||||||
can't escape '>'
|
|
||||||
puts '\0' on closing angles */
|
|
||||||
|
|
||||||
/* allocate input event for each character in string */
|
|
||||||
|
|
||||||
struct InputEvent * result = NULL;
|
|
||||||
struct InputEvent * chain = NULL;
|
|
||||||
struct InputEvent * ie;
|
|
||||||
int cc;
|
|
||||||
|
|
||||||
if(CxBase == NULL || str == NULL || (*str) == '\0')
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
do /* have checked that str is not null */
|
|
||||||
{
|
|
||||||
/* allocate the next ie and link it in */
|
|
||||||
ie = AllocVec(sizeof(*ie),MEMF_ANY|MEMF_CLEAR|MEMF_PUBLIC);
|
|
||||||
if(ie == NULL)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
ie->ie_NextEvent = chain;
|
|
||||||
chain = ie;
|
|
||||||
|
|
||||||
/* now fill in the input event */
|
|
||||||
cc = (*str);
|
|
||||||
switch(cc)
|
|
||||||
{
|
|
||||||
case '<':
|
|
||||||
|
|
||||||
str++;
|
|
||||||
|
|
||||||
if(do_angle((STRPTR*)&str, ie) != 0)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case '\\':
|
|
||||||
|
|
||||||
str++;
|
|
||||||
|
|
||||||
cc = do_escape(*str); /* get escaped character */
|
|
||||||
if(cc < 0)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
/* fall through */
|
|
||||||
|
|
||||||
default:
|
|
||||||
|
|
||||||
InvertKeyMap((ULONG) cc, ie, (struct KeyMap *)km);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
str++;
|
|
||||||
}
|
|
||||||
while((*str) != '\0');
|
|
||||||
|
|
||||||
result = chain;
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
if(result == NULL && chain != NULL)
|
|
||||||
FreeIEvents(chain);
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_newlist.c,v 1.4 2006-09-25 15:12:47 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <exec/lists.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID NewList(struct List *lh);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
|
||||||
NewList(struct List *lh)
|
|
||||||
{
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
SHOWPOINTER(lh);
|
|
||||||
|
|
||||||
assert( lh != NULL );
|
|
||||||
|
|
||||||
lh->lh_Head = (struct Node *)&lh->lh_Tail;
|
|
||||||
lh->lh_Tail = NULL;
|
|
||||||
lh->lh_TailPred = (struct Node *)&lh->lh_Head;
|
|
||||||
|
|
||||||
LEAVE();
|
|
||||||
}
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_rangerand.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <exec/types.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
ULONG RangeSeed;
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
UWORD
|
|
||||||
RangeRand(ULONG max_value)
|
|
||||||
{
|
|
||||||
ULONG next_value;
|
|
||||||
ULONG result;
|
|
||||||
ULONG value;
|
|
||||||
UWORD range;
|
|
||||||
UWORD bits;
|
|
||||||
|
|
||||||
range = (max_value & 0xFFFF);
|
|
||||||
bits = range - 1;
|
|
||||||
|
|
||||||
value = RangeSeed;
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
next_value = value + value;
|
|
||||||
if(next_value <= value)
|
|
||||||
next_value ^= 0x1D872B41;
|
|
||||||
|
|
||||||
value = next_value;
|
|
||||||
|
|
||||||
bits = bits >> 1;
|
|
||||||
}
|
|
||||||
while(bits != 0);
|
|
||||||
|
|
||||||
RangeSeed = value;
|
|
||||||
|
|
||||||
if(range == 0)
|
|
||||||
result = value & 0xFFFF;
|
|
||||||
else
|
|
||||||
result = (range * (value & 0xFFFF)) >> 16;
|
|
||||||
|
|
||||||
return((UWORD)result);
|
|
||||||
}
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_remtof.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <exec/interrupts.h>
|
|
||||||
#include <hardware/intbits.h>
|
|
||||||
#include <graphics/graphint.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/exec.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
|
||||||
RemTOF(struct Isrvstr *i)
|
|
||||||
{
|
|
||||||
assert( i != NULL );
|
|
||||||
|
|
||||||
RemIntServer(INTB_VERTB,(struct Interrupt *)i);
|
|
||||||
}
|
|
||||||
@@ -1,742 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_rexxvars.c,v 1.19 2008-04-18 10:11:59 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* We don't want to pull in <clib/alib_protos.h> */
|
|
||||||
#define CLIB_ALIB_PROTOS_H
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _STDLIB_HEADERS_H
|
|
||||||
#include "stdlib_headers.h"
|
|
||||||
#endif /* _STDLIB_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _STDLIB_CONSTRUCTOR_H
|
|
||||||
#include "stdlib_constructor.h"
|
|
||||||
#endif /* _STDLIB_CONSTRUCTOR_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <rexx/rxslib.h>
|
|
||||||
#include <rexx/errors.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* This is used by the stub function prototypes. The ARexx header files
|
|
||||||
do not define it, though. */
|
|
||||||
struct Environment;
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#define __NOLIBBASE__
|
|
||||||
#include <proto/rexxsyslib.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
static struct Library * RexxSysBase;
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
|
||||||
static struct RexxSysIFace * IRexxSys;
|
|
||||||
#endif /* __amigaos4__ */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
BOOL CheckRexxMsg(struct RexxMsg *message);
|
|
||||||
LONG GetRexxVar(struct RexxMsg *message,STRPTR variable_name,STRPTR *buffer_pointer);
|
|
||||||
LONG SetRexxVar(struct RexxMsg *message,STRPTR variable_name,STRPTR value,LONG length);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
CLIB_CONSTRUCTOR(rexxvars_init)
|
|
||||||
{
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
RexxSysBase = OpenLibrary(RXSNAME,0);
|
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
|
||||||
{
|
|
||||||
if(RexxSysBase != NULL)
|
|
||||||
{
|
|
||||||
IRexxSys = (struct RexxSysIFace *)GetInterface(RexxSysBase, "main", 1, 0);
|
|
||||||
if(IRexxSys == NULL)
|
|
||||||
{
|
|
||||||
CloseLibrary(RexxSysBase);
|
|
||||||
RexxSysBase = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif /* __amigaos4__ */
|
|
||||||
|
|
||||||
LEAVE();
|
|
||||||
|
|
||||||
CONSTRUCTOR_SUCCEED();
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
CLIB_DESTRUCTOR(rexxvars_exit)
|
|
||||||
{
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
|
||||||
{
|
|
||||||
if(IRexxSys != NULL)
|
|
||||||
DropInterface((struct Interface *)IRexxSys);
|
|
||||||
|
|
||||||
IRexxSys = NULL;
|
|
||||||
}
|
|
||||||
#endif /* __amigaos4__ */
|
|
||||||
|
|
||||||
if(RexxSysBase != NULL)
|
|
||||||
{
|
|
||||||
CloseLibrary(RexxSysBase);
|
|
||||||
RexxSysBase = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
LEAVE();
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* This is modeled after the original assembly language code. Except for the
|
|
||||||
fact that we compare the library base against a local, static variable
|
|
||||||
rather then opening the library for each check. */
|
|
||||||
BOOL
|
|
||||||
CheckRexxMsg(struct RexxMsg *message)
|
|
||||||
{
|
|
||||||
BOOL result = FALSE;
|
|
||||||
|
|
||||||
if(RexxSysBase == NULL)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
if(message->rm_LibBase != RexxSysBase)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
if(message->rm_TaskBlock == NULL)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
if(NOT IsRexxMsg(message))
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
result = TRUE;
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <exec/emulation.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
STATIC VOID
|
|
||||||
_FreeSpace(struct Environment * env,APTR mem,LONG size)
|
|
||||||
{
|
|
||||||
STATIC CONST UWORD code[] = { 0x4EAE,0xFF88,0x4E75 }; /* jsr -120(a6) ; rts */
|
|
||||||
|
|
||||||
EmulateTags(code,
|
|
||||||
ET_RegisterA0,env,
|
|
||||||
ET_RegisterA1,mem,
|
|
||||||
ET_RegisterD0,size,
|
|
||||||
ET_RegisterA6,RexxSysBase,
|
|
||||||
TAG_END);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC APTR
|
|
||||||
_GetSpace(struct Environment * env,LONG size)
|
|
||||||
{
|
|
||||||
STATIC CONST UWORD code[] = { 0x4EAE,0xFF8E,0x4E75 }; /* jsr -114(a6) ; rts */
|
|
||||||
APTR result;
|
|
||||||
|
|
||||||
result = (APTR)EmulateTags(code,
|
|
||||||
ET_RegisterA0,env,
|
|
||||||
ET_RegisterD0,size,
|
|
||||||
ET_RegisterA6,RexxSysBase,
|
|
||||||
TAG_END);
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC LONG
|
|
||||||
_IsSymbol(STRPTR name,LONG * symbol_length_ptr)
|
|
||||||
{
|
|
||||||
STATIC CONST UWORD code[] = { 0x4EAE,0xFF9A,0x2481,0x4E75 }; /* jsr -102(a6) ; move.l d1,(a2) ; rts */
|
|
||||||
LONG result;
|
|
||||||
|
|
||||||
result = (LONG)EmulateTags(code,
|
|
||||||
ET_RegisterA0,name,
|
|
||||||
ET_RegisterA2,symbol_length_ptr,
|
|
||||||
ET_RegisterA6,RexxSysBase,
|
|
||||||
TAG_END);
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC VOID
|
|
||||||
_CurrentEnv(struct RexxTask *task,struct Environment ** environment_ptr)
|
|
||||||
{
|
|
||||||
STATIC CONST UWORD code[] = { 0x4EAE,0xFF94,0x2488,0x4E75 }; /* jsr -108(a6) ; move.l a0,(a2) ; rts */
|
|
||||||
|
|
||||||
EmulateTags(code,
|
|
||||||
ET_RegisterA0,task,
|
|
||||||
ET_RegisterA2,environment_ptr,
|
|
||||||
ET_RegisterA6,RexxSysBase,
|
|
||||||
TAG_END);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC struct Node *
|
|
||||||
_FetchValue(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound,struct Node *symbol_table_node,LONG * is_literal_ptr,struct NexxStr ** value_ptr)
|
|
||||||
{
|
|
||||||
STATIC CONST UWORD code[] = { 0x4EAE,0xFFB8,0x2488,0x2681,0x4E75 }; /* jsr -72(a6) ; move.l a0,(a2) ; move.l d1,(a3) ; rts */
|
|
||||||
struct Node * result;
|
|
||||||
|
|
||||||
result = (struct Node *)EmulateTags(code,
|
|
||||||
ET_RegisterA0,env,
|
|
||||||
ET_RegisterA1,stem,
|
|
||||||
ET_RegisterD0,compound,
|
|
||||||
ET_RegisterD1,symbol_table_node,
|
|
||||||
ET_RegisterA2,is_literal_ptr,
|
|
||||||
ET_RegisterA3,value_ptr,
|
|
||||||
ET_RegisterA6,RexxSysBase,
|
|
||||||
TAG_END);
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC struct Node *
|
|
||||||
_EnterSymbol(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound)
|
|
||||||
{
|
|
||||||
STATIC CONST UWORD code[] = { 0x4EAE,0xFFBE,0x4E75 }; /* jsr -66(a6) ; rts */
|
|
||||||
struct Node * result;
|
|
||||||
|
|
||||||
result = (struct Node *)EmulateTags(code,
|
|
||||||
ET_RegisterA0,env,
|
|
||||||
ET_RegisterA1,stem,
|
|
||||||
ET_RegisterD0,compound,
|
|
||||||
ET_RegisterA6,RexxSysBase,
|
|
||||||
TAG_END);
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC VOID
|
|
||||||
_SetValue(struct Environment * env,struct NexxStr * value,struct Node * symbol_table_node)
|
|
||||||
{
|
|
||||||
STATIC CONST UWORD code[] = { 0x4EAE,0xFFAC,0x4E75 }; /* jsr -84(a6) ; rts */
|
|
||||||
struct Node * result;
|
|
||||||
|
|
||||||
result = (struct Node *)EmulateTags(code,
|
|
||||||
ET_RegisterA0,env,
|
|
||||||
ET_RegisterA1,value,
|
|
||||||
ET_RegisterD0,symbol_table_node,
|
|
||||||
ET_RegisterA6,RexxSysBase,
|
|
||||||
TAG_END);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC ULONG
|
|
||||||
_StrcpyN(STRPTR destination,STRPTR source,LONG length)
|
|
||||||
{
|
|
||||||
STATIC CONST UWORD code[] = { 0x4EAE,0xFEF2,0x4E75 }; /* jsr -270(a6) ; rts */
|
|
||||||
ULONG result;
|
|
||||||
|
|
||||||
result = (ULONG)EmulateTags(code,
|
|
||||||
ET_RegisterA0,destination,
|
|
||||||
ET_RegisterA1,source,
|
|
||||||
ET_RegisterD0,length,
|
|
||||||
ET_RegisterA6,RexxSysBase,
|
|
||||||
TAG_END);
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#elif defined(__GNUC__) && !defined(__amigaos4__)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* A selection of lovingly hand-crafted 68k stub functions which call
|
|
||||||
into rexxsyslib.library LVOs that still used to be documented back
|
|
||||||
in 1987. */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(SMALL_DATA)
|
|
||||||
#define A4(x) "a4@(" #x ":W)"
|
|
||||||
#elif defined(SMALL_DATA32)
|
|
||||||
#define A4(x) "a4@(" #x ":L)"
|
|
||||||
#else
|
|
||||||
#define A4(x) #x
|
|
||||||
#endif /* SMALL_DATA */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* struct Environment * a0,APTR block a1,LONG d0 */
|
|
||||||
asm("
|
|
||||||
|
|
||||||
.text
|
|
||||||
.even
|
|
||||||
|
|
||||||
.globl __FreeSpace
|
|
||||||
|
|
||||||
__FreeSpace:
|
|
||||||
|
|
||||||
moveal sp@(4),a0
|
|
||||||
moveal sp@(8),a1
|
|
||||||
movel sp@(12),d0
|
|
||||||
|
|
||||||
movel a6,sp@-
|
|
||||||
moveal "A4(_RexxSysBase)",a6
|
|
||||||
jsr a6@(-120)
|
|
||||||
moveal sp@+,a6
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
");
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* struct Environment * a0,LONG d0 : APTR d0 */
|
|
||||||
asm("
|
|
||||||
|
|
||||||
.text
|
|
||||||
.even
|
|
||||||
|
|
||||||
.globl __GetSpace
|
|
||||||
|
|
||||||
__GetSpace:
|
|
||||||
|
|
||||||
moveal sp@(4),a0
|
|
||||||
movel sp@(8),d0
|
|
||||||
|
|
||||||
movel a6,sp@-
|
|
||||||
moveal "A4(_RexxSysBase)",a6
|
|
||||||
jsr a6@(-114)
|
|
||||||
moveal sp@+,a6
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
");
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* STRPTR a0 : LONG d0, LONG d1 */
|
|
||||||
asm("
|
|
||||||
|
|
||||||
.text
|
|
||||||
.even
|
|
||||||
|
|
||||||
.globl __IsSymbol
|
|
||||||
|
|
||||||
__IsSymbol:
|
|
||||||
|
|
||||||
moveal sp@(4),a0
|
|
||||||
|
|
||||||
movel a6,sp@-
|
|
||||||
moveal "A4(_RexxSysBase)",a6
|
|
||||||
jsr a6@(-102)
|
|
||||||
moveal sp@+,a6
|
|
||||||
|
|
||||||
moveal sp@(8),a1
|
|
||||||
movel d1,a1@
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
");
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* struct RexxTask * a0 : struct Environment * a0 */
|
|
||||||
asm("
|
|
||||||
|
|
||||||
.text
|
|
||||||
.even
|
|
||||||
|
|
||||||
.globl __CurrentEnv
|
|
||||||
|
|
||||||
__CurrentEnv:
|
|
||||||
|
|
||||||
moveal sp@(4),a0
|
|
||||||
|
|
||||||
movel a6,sp@-
|
|
||||||
moveal "A4(_RexxSysBase)",a6
|
|
||||||
jsr a6@(-108)
|
|
||||||
moveal sp@+,a6
|
|
||||||
|
|
||||||
moveal sp@(8),a1
|
|
||||||
movel a0,a1@
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
");
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* struct Environment * a0,struct NexxStr * a1,struct NexxStr * d0,struct Node * d1 : struct NexxStr * a0, LONG d1 */
|
|
||||||
asm("
|
|
||||||
|
|
||||||
.text
|
|
||||||
.even
|
|
||||||
|
|
||||||
.globl __FetchValue
|
|
||||||
|
|
||||||
__FetchValue:
|
|
||||||
|
|
||||||
moveal sp@(4),a0
|
|
||||||
moveal sp@(8),a1
|
|
||||||
movel sp@(12),d0
|
|
||||||
movel sp@(16),d1
|
|
||||||
|
|
||||||
movel a6,sp@-
|
|
||||||
moveal "A4(_RexxSysBase)",a6
|
|
||||||
jsr a6@(-72)
|
|
||||||
moveal sp@+,a6
|
|
||||||
|
|
||||||
moveal sp@(20),a1
|
|
||||||
movel a0,a1@
|
|
||||||
moveal sp@(24),a1
|
|
||||||
movel d1,a1@
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
");
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* struct Environment a0, struct NexxStr *a1, struct NexxStr * d0 : struct Node * d0 */
|
|
||||||
asm("
|
|
||||||
|
|
||||||
.text
|
|
||||||
.even
|
|
||||||
|
|
||||||
.globl __EnterSymbol
|
|
||||||
|
|
||||||
__EnterSymbol:
|
|
||||||
|
|
||||||
moveal sp@(4),a0
|
|
||||||
moveal sp@(8),a1
|
|
||||||
movel sp@(12),d0
|
|
||||||
|
|
||||||
movel a6,sp@-
|
|
||||||
moveal "A4(_RexxSysBase)",a6
|
|
||||||
jsr a6@(-66)
|
|
||||||
moveal sp@+,a6
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
");
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* struct Environment *a0, struct NexxStr *a1, struct Node * d0 */
|
|
||||||
asm("
|
|
||||||
|
|
||||||
.text
|
|
||||||
.even
|
|
||||||
|
|
||||||
.globl __SetValue
|
|
||||||
|
|
||||||
__SetValue:
|
|
||||||
|
|
||||||
moveal sp@(4),a0
|
|
||||||
moveal sp@(8),a1
|
|
||||||
movel sp@(12),d0
|
|
||||||
|
|
||||||
movel a6,sp@-
|
|
||||||
moveal "A4(_RexxSysBase)",a6
|
|
||||||
jsr a6@(-84)
|
|
||||||
moveal sp@+,a6
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
");
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* STRPTR a0,STRPTR a1,LONG d0 : ULONG d0 */
|
|
||||||
asm("
|
|
||||||
|
|
||||||
.text
|
|
||||||
.even
|
|
||||||
|
|
||||||
.globl __StrcpyN
|
|
||||||
|
|
||||||
__StrcpyN:
|
|
||||||
|
|
||||||
moveal sp@(4),a0
|
|
||||||
moveal sp@(8),a1
|
|
||||||
movel sp@(12),d0
|
|
||||||
|
|
||||||
movel a6,sp@-
|
|
||||||
moveal "A4(_RexxSysBase)",a6
|
|
||||||
jsr a6@(-270)
|
|
||||||
moveal sp@+,a6
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
");
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* Function prototypes for the 68k stubs. */
|
|
||||||
extern VOID _FreeSpace(struct Environment * env,APTR mem,LONG size);
|
|
||||||
extern APTR _GetSpace(struct Environment * env,LONG size);
|
|
||||||
extern LONG _IsSymbol(STRPTR name,LONG * symbol_length_ptr);
|
|
||||||
extern VOID _CurrentEnv(struct RexxTask *task,struct Environment ** environment_ptr);
|
|
||||||
extern struct Node * _FetchValue(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound,struct Node *symbol_table_node,LONG * is_literal_ptr,struct NexxStr ** value_ptr);
|
|
||||||
extern struct Node * _EnterSymbol(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound);
|
|
||||||
extern VOID _SetValue(struct Environment * env,struct NexxStr * value,struct Node * symbol_table_node);
|
|
||||||
extern ULONG _StrcpyN(STRPTR destination,STRPTR source,LONG length);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* __GNUC__ && !__amigaos4__ */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* Releases a string structure, if it's not owned at the time. */
|
|
||||||
STATIC VOID
|
|
||||||
FreeString(struct Environment * environment,struct NexxStr * ns)
|
|
||||||
{
|
|
||||||
/* Not currently owned? */
|
|
||||||
if(!(ns->ns_Flags & NSF_KEEP))
|
|
||||||
_FreeSpace(environment,ns,sizeof(*ns) + ns->ns_Length + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* Allocates and initializes a string structure. */
|
|
||||||
STATIC struct NexxStr *
|
|
||||||
MakeString(struct Environment * environment,STRPTR value,LONG length)
|
|
||||||
{
|
|
||||||
struct NexxStr * result = NULL;
|
|
||||||
struct NexxStr * ns;
|
|
||||||
|
|
||||||
/* Allocate memory for the NexxStr and the NUL-terminated string itself. */
|
|
||||||
ns = _GetSpace(environment,sizeof(*ns) + length + 1);
|
|
||||||
if(ns == NULL)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
/* Fill in the NexxStr structure, copy the string and remember the hash value for it. */
|
|
||||||
ns->ns_Ivalue = 0;
|
|
||||||
ns->ns_Length = length;
|
|
||||||
ns->ns_Flags = NSF_STRING;
|
|
||||||
ns->ns_Hash = _StrcpyN((STRPTR)ns->ns_Buff,value,length);
|
|
||||||
|
|
||||||
/* Copying the string did not NUL-terminate it. */
|
|
||||||
ns->ns_Buff[length] = '\0';
|
|
||||||
|
|
||||||
result = ns;
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* Classifies a symbol and returns the stem and compound parts. */
|
|
||||||
STATIC LONG
|
|
||||||
TypeString(STRPTR variable_name,struct Environment * environment,struct NexxStr ** compound_ptr,struct NexxStr ** stem_ptr)
|
|
||||||
{
|
|
||||||
struct NexxStr * compound;
|
|
||||||
struct NexxStr * stem = NULL;
|
|
||||||
LONG error = ERR10_003; /* no memory available */
|
|
||||||
LONG stem_length;
|
|
||||||
LONG symbol_length;
|
|
||||||
STRPTR dot;
|
|
||||||
|
|
||||||
(*compound_ptr) = NULL;
|
|
||||||
(*stem_ptr) = NULL;
|
|
||||||
|
|
||||||
/* The 'compound' part is the entire variable name, including all dots and
|
|
||||||
what's in between them. */
|
|
||||||
compound = MakeString(environment,variable_name,strlen(variable_name));
|
|
||||||
if(compound == NULL)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
/* Find the first dot in the variable name. Everything in front of it
|
|
||||||
and including the dot constitutes the 'stem' part. If there is no dot
|
|
||||||
in the name, then the 'compound' and 'stem' parts are identical. */
|
|
||||||
dot = memchr(compound->ns_Buff,'.',compound->ns_Length);
|
|
||||||
if(dot != NULL)
|
|
||||||
stem_length = ((char *)dot - (char *)compound->ns_Buff) + 1;
|
|
||||||
else
|
|
||||||
stem_length = compound->ns_Length;
|
|
||||||
|
|
||||||
/* Make a copy of the 'stem' part. */
|
|
||||||
stem = MakeString(environment,variable_name,stem_length);
|
|
||||||
if(stem == NULL)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
/* Figure out if this is a symbol after all. */
|
|
||||||
_IsSymbol((STRPTR)stem->ns_Buff,&symbol_length);
|
|
||||||
|
|
||||||
/* The entire name must match the stem part. */
|
|
||||||
if(symbol_length != stem->ns_Length)
|
|
||||||
{
|
|
||||||
error = ERR10_040; /* invalid variable name */
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
(*compound_ptr) = compound;
|
|
||||||
(*stem_ptr) = stem;
|
|
||||||
|
|
||||||
error = 0;
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
if(error != 0)
|
|
||||||
{
|
|
||||||
if(compound != NULL)
|
|
||||||
FreeString(environment,compound);
|
|
||||||
|
|
||||||
if(stem != NULL)
|
|
||||||
FreeString(environment,stem);
|
|
||||||
}
|
|
||||||
|
|
||||||
return(error);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* Retrieves the value of a variable from the current storage environment. */
|
|
||||||
LONG
|
|
||||||
GetRexxVar(struct RexxMsg *context,STRPTR variable_name,STRPTR * return_value)
|
|
||||||
{
|
|
||||||
struct Environment * environment;
|
|
||||||
struct NexxStr * ns;
|
|
||||||
struct NexxStr * compound_string;
|
|
||||||
struct NexxStr * stem_string;
|
|
||||||
LONG is_literal;
|
|
||||||
LONG error;
|
|
||||||
|
|
||||||
(*return_value) = NULL;
|
|
||||||
|
|
||||||
if(!CheckRexxMsg(context))
|
|
||||||
{
|
|
||||||
error = ERR10_010; /* invalid message packet */
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Find the current storage environment. */
|
|
||||||
_CurrentEnv(context->rm_TaskBlock,&environment);
|
|
||||||
|
|
||||||
/* Create the stem and component parts. */
|
|
||||||
error = TypeString(variable_name,environment,&compound_string,&stem_string);
|
|
||||||
if(error != 0)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
/* Look up the value. NOTE: _FetchValue() will free the two 'struct NexxStr *' provided. */
|
|
||||||
_FetchValue(environment,stem_string,compound_string,NULL,&is_literal,&ns);
|
|
||||||
|
|
||||||
/* If this is not a literal, return a pointer to the string. */
|
|
||||||
if(!is_literal)
|
|
||||||
(*return_value) = (STRPTR)ns->ns_Buff;
|
|
||||||
|
|
||||||
error = 0;
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
return(error);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* Assigns a value to a variable in the current storage environment. */
|
|
||||||
LONG
|
|
||||||
SetRexxVar(struct RexxMsg *context,STRPTR variable_name,STRPTR value,LONG length)
|
|
||||||
{
|
|
||||||
struct Environment * environment;
|
|
||||||
struct NexxStr * compound_string;
|
|
||||||
struct NexxStr * stem_string;
|
|
||||||
struct Node * symbol_table_node;
|
|
||||||
struct NexxStr *value_string;
|
|
||||||
LONG error;
|
|
||||||
|
|
||||||
/* Make sure the value string is not too long */
|
|
||||||
if(length > 65535)
|
|
||||||
{
|
|
||||||
error = ERR10_009; /* symbol or string too long */
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!CheckRexxMsg(context))
|
|
||||||
{
|
|
||||||
error = ERR10_010; /* invalid message packet */
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Find the current storage environment. */
|
|
||||||
_CurrentEnv(context->rm_TaskBlock,&environment);
|
|
||||||
|
|
||||||
/* Create the stem and compound parts */
|
|
||||||
error = TypeString(variable_name,environment,&compound_string,&stem_string);
|
|
||||||
if(error != 0)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
/* Locate or create the symbol node. NOTE: _EnterSymbol() will put the two 'struct NexxStr *' into
|
|
||||||
the symbol table. It is not nececessary to free them. */
|
|
||||||
symbol_table_node = _EnterSymbol(environment,stem_string,compound_string);
|
|
||||||
if(symbol_table_node == NULL)
|
|
||||||
{
|
|
||||||
error = ERR10_003; /* no memory available */
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Create the value string. */
|
|
||||||
value_string = MakeString(environment,value,length);
|
|
||||||
if(value_string == NULL)
|
|
||||||
{
|
|
||||||
error = ERR10_003; /* no memory available */
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Install the value string. */
|
|
||||||
_SetValue(environment,value_string,symbol_table_node);
|
|
||||||
|
|
||||||
error = 0;
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
return(error);
|
|
||||||
}
|
|
||||||
@@ -1,101 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_setsuperattrs.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __PPC__
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <intuition/intuition.h>
|
|
||||||
#include <intuition/classes.h>
|
|
||||||
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
STATIC ULONG
|
|
||||||
SetSuperAttrsA(Class * cl,Object * obj,struct TagItem * tags)
|
|
||||||
{
|
|
||||||
ULONG result = 0;
|
|
||||||
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
SHOWPOINTER(cl);
|
|
||||||
SHOWPOINTER(obj);
|
|
||||||
SHOWPOINTER(tags);
|
|
||||||
|
|
||||||
assert( cl != NULL && obj != NULL );
|
|
||||||
|
|
||||||
if(cl != NULL && obj != NULL)
|
|
||||||
{
|
|
||||||
struct opSet ops;
|
|
||||||
|
|
||||||
ops.MethodID = OM_SET;
|
|
||||||
ops.ops_AttrList = tags;
|
|
||||||
ops.ops_GInfo = NULL;
|
|
||||||
|
|
||||||
result = CallHookA(&cl->cl_Super->cl_Dispatcher,obj,&ops);
|
|
||||||
}
|
|
||||||
|
|
||||||
RETURN(result);
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
ULONG
|
|
||||||
SetSuperAttrs(Class * cl,Object * obj,ULONG tag1,...)
|
|
||||||
{
|
|
||||||
ULONG result = 0;
|
|
||||||
|
|
||||||
ENTER();
|
|
||||||
|
|
||||||
SHOWPOINTER(cl);
|
|
||||||
SHOWPOINTER(obj);
|
|
||||||
SHOWVALUE(tag1);
|
|
||||||
|
|
||||||
assert( cl != NULL && obj != NULL );
|
|
||||||
|
|
||||||
if(cl != NULL && obj != NULL)
|
|
||||||
result = SetSuperAttrsA(cl,obj,(struct TagItem *)&tag1);
|
|
||||||
|
|
||||||
RETURN(result);
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* __PPC__ */
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_timedelay.c,v 1.4 2006-04-05 06:43:56 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <devices/timer.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* A quick workaround for the timeval/timerequest->TimeVal/TimeRequest
|
|
||||||
change in the recent OS4 header files. */
|
|
||||||
|
|
||||||
#if defined(__NEW_TIMEVAL_DEFINITION_USED__)
|
|
||||||
|
|
||||||
#define timeval TimeVal
|
|
||||||
#define tv_secs Seconds
|
|
||||||
#define tv_micro Microseconds
|
|
||||||
|
|
||||||
#endif /* __NEW_TIMEVAL_DEFINITION_USED__ */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
LONG
|
|
||||||
TimeDelay(LONG unit,ULONG seconds,ULONG micros)
|
|
||||||
{
|
|
||||||
struct timeval tv;
|
|
||||||
LONG error;
|
|
||||||
|
|
||||||
tv.tv_secs = seconds;
|
|
||||||
tv.tv_micro = micros;
|
|
||||||
|
|
||||||
error = DoTimer(&tv,unit,TR_ADDREQUEST);
|
|
||||||
|
|
||||||
return(error);
|
|
||||||
}
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: amiga_waitbeam.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <exec/interrupts.h>
|
|
||||||
#include <hardware/intbits.h>
|
|
||||||
#include <graphics/graphint.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <proto/graphics.h>
|
|
||||||
#include <clib/alib_protos.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#define DO_NOTHING ((void)0)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
|
||||||
waitbeam(LONG position)
|
|
||||||
{
|
|
||||||
while(position > VBeamPos())
|
|
||||||
DO_NOTHING;
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
; Simple release archive build script for Amiga systems.
|
|
||||||
|
|
||||||
; Set the name of the archive and the directory the
|
|
||||||
; files go into
|
|
||||||
set dir_name clib2-1.`type c.lib_rev.rev`
|
|
||||||
|
|
||||||
; Start with a clean slate
|
|
||||||
delete all quiet ram:$dir_name
|
|
||||||
|
|
||||||
; Create the directory, copy all the libraries, header files
|
|
||||||
; and release note files inside.
|
|
||||||
makedir ram:$dir_name
|
|
||||||
copy lib ram:${dir_name}/lib all clone quiet
|
|
||||||
copy include ram:${dir_name}/include all clone quiet
|
|
||||||
copy changes ram:$dir_name clone
|
|
||||||
|
|
||||||
; Delete the CVS data from the include directory
|
|
||||||
delete ram:${dir_name}/include/CVS ram:${dir_name}/include/sys/CVS ram:${dir_name}/include/arpa/CVS ram:${dir_name}/include/netinet/CVS all quiet
|
|
||||||
|
|
||||||
; Finally, create an lha archive in RAM:
|
|
||||||
pushcd ram:
|
|
||||||
lha -r -x -a a ${dir_name}-gcc-68k.lha ${dir_name}
|
|
||||||
popcd
|
|
||||||
|
|
||||||
; Move the archive back to this directory
|
|
||||||
copy ram:${dir_name}-gcc-68k.lha "" clone
|
|
||||||
|
|
||||||
; Clean up...
|
|
||||||
delete ram:$dir_name all quiet
|
|
||||||
unset dir_name
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Simple release archive build script for Unix systems.
|
|
||||||
# I typically build the library with a cross compiler.
|
|
||||||
|
|
||||||
# Set the name of the archive and the directory the
|
|
||||||
# files go into
|
|
||||||
export dir_name=clib2-1.`cat c.lib_rev.rev`
|
|
||||||
|
|
||||||
# Start with a clean slate
|
|
||||||
rm -rf $dir_name
|
|
||||||
|
|
||||||
# Create the directory, copy all the libraries, header files
|
|
||||||
# and release note files inside.
|
|
||||||
mkdir $dir_name
|
|
||||||
cp -pR lib $dir_name
|
|
||||||
cp -pR lib.threadsafe $dir_name
|
|
||||||
cp -pR include $dir_name
|
|
||||||
cp changes $dir_name
|
|
||||||
|
|
||||||
# Delete the CVS data from the include directory
|
|
||||||
rm -rf ${dir_name}/include/CVS ${dir_name}/include/sys/CVS ${dir_name}/include/arpa/CVS ${dir_name}/include/netinet/CVS
|
|
||||||
|
|
||||||
# Finally, create an lha type 5 archive; the Amiga LhA port
|
|
||||||
# can unpack it.
|
|
||||||
lha ao5q ${dir_name}-gcc-os4.lha ${dir_name}
|
|
||||||
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: c.lib_rev.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "c.lib_rev.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
char __c_lib_version[] = VERSTAG;
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
#define VERSION 1
|
|
||||||
#define REVISION 205
|
|
||||||
#define DATE "21.8.2010"
|
|
||||||
#define VERS "c.lib 1.205"
|
|
||||||
#define VSTRING "c.lib 1.205 (21.8.2010)\r\n"
|
|
||||||
#define VERSTAG "\0$VER: c.lib 1.205 (21.8.2010)"
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
205
|
|
||||||
4617
library/changes
4617
library/changes
File diff suppressed because it is too large
Load Diff
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: complex_carg.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMPLEX_HEADERS_H
|
|
||||||
#include "complex_headers.h"
|
|
||||||
#endif /* _COMPLEX_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(COMPLEX_SUPPORT)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
double
|
|
||||||
carg(double complex z)
|
|
||||||
{
|
|
||||||
return(atan2(IMAG(z),REAL(z)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* COMPLEX_SUPPORT */
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: complex_cargf.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMPLEX_HEADERS_H
|
|
||||||
#include "complex_headers.h"
|
|
||||||
#endif /* _COMPLEX_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(COMPLEX_SUPPORT)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
float
|
|
||||||
cargf(float complex z)
|
|
||||||
{
|
|
||||||
return(atan2(IMAG(z),REAL(z))); /* ZZZ this really needs to call ata2f(). */
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* COMPLEX_SUPPORT */
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: complex_cargl.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMPLEX_HEADERS_H
|
|
||||||
#include "complex_headers.h"
|
|
||||||
#endif /* _COMPLEX_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(COMPLEX_SUPPORT)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
long double
|
|
||||||
cargl(long double complex z)
|
|
||||||
{
|
|
||||||
return(atan2(IMAG(z),REAL(z))); /* ZZZ this really needs to call atan2l(). */
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* COMPLEX_SUPPORT */
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: complex_cimag.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMPLEX_HEADERS_H
|
|
||||||
#include "complex_headers.h"
|
|
||||||
#endif /* _COMPLEX_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(COMPLEX_SUPPORT)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
double
|
|
||||||
cimag(double complex z)
|
|
||||||
{
|
|
||||||
return(IMAG(z));
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* COMPLEX_SUPPORT */
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: complex_cimagf.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMPLEX_HEADERS_H
|
|
||||||
#include "complex_headers.h"
|
|
||||||
#endif /* _COMPLEX_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(COMPLEX_SUPPORT)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
float
|
|
||||||
cimagf(float complex z)
|
|
||||||
{
|
|
||||||
return(IMAG(z));
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* COMPLEX_SUPPORT */
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: complex_cimagl.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMPLEX_HEADERS_H
|
|
||||||
#include "complex_headers.h"
|
|
||||||
#endif /* _COMPLEX_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(COMPLEX_SUPPORT)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
long double
|
|
||||||
cimagl(long double complex z)
|
|
||||||
{
|
|
||||||
return(IMAG(z));
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* COMPLEX_SUPPORT */
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: complex_conj.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMPLEX_HEADERS_H
|
|
||||||
#include "complex_headers.h"
|
|
||||||
#endif /* _COMPLEX_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(COMPLEX_SUPPORT)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
double complex
|
|
||||||
conj(double complex z)
|
|
||||||
{
|
|
||||||
return(CONJ(z));
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* COMPLEX_SUPPORT */
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: complex_conjf.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMPLEX_HEADERS_H
|
|
||||||
#include "complex_headers.h"
|
|
||||||
#endif /* _COMPLEX_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(COMPLEX_SUPPORT)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
float complex
|
|
||||||
conjf(float complex z)
|
|
||||||
{
|
|
||||||
return(CONJ(z));
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* COMPLEX_SUPPORT */
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: complex_conjl.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMPLEX_HEADERS_H
|
|
||||||
#include "complex_headers.h"
|
|
||||||
#endif /* _COMPLEX_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(COMPLEX_SUPPORT)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
long double complex
|
|
||||||
conjl(long double complex z)
|
|
||||||
{
|
|
||||||
return(CONJ(z));
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* COMPLEX_SUPPORT */
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: complex_creal.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMPLEX_HEADERS_H
|
|
||||||
#include "complex_headers.h"
|
|
||||||
#endif /* _COMPLEX_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(COMPLEX_SUPPORT)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
double
|
|
||||||
creal(double complex z)
|
|
||||||
{
|
|
||||||
return(REAL(z));
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* COMPLEX_SUPPORT */
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: complex_crealf.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMPLEX_HEADERS_H
|
|
||||||
#include "complex_headers.h"
|
|
||||||
#endif /* _COMPLEX_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(COMPLEX_SUPPORT)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
float
|
|
||||||
crealf(float complex z)
|
|
||||||
{
|
|
||||||
return(REAL(z));
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* COMPLEX_SUPPORT */
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: complex_creall.c,v 1.2 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMPLEX_HEADERS_H
|
|
||||||
#include "complex_headers.h"
|
|
||||||
#endif /* _COMPLEX_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(COMPLEX_SUPPORT)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
long double
|
|
||||||
creall(long double complex z)
|
|
||||||
{
|
|
||||||
return(REAL(z));
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* COMPLEX_SUPPORT */
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: complex_headers.h,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMPLEX_HEADERS_H
|
|
||||||
#define _COMPLEX_HEADERS_H
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _MATH_FP_SUPPORT_H
|
|
||||||
#include "math_fp_support.h"
|
|
||||||
#endif /* _MATH_FP_SUPPORT_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(FLOATING_POINT_SUPPORT) && defined(__GNUC__) && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <complex.h>
|
|
||||||
#include <math.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#define COMPLEX_SUPPORT
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#define REAL(z) (__real__ (z))
|
|
||||||
#define IMAG(z) (__imag__ (z))
|
|
||||||
#define CONJ(z) (~(z))
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* FLOATING_POINT_SUPPORT && __GNUC__ && __STDC_VERSION__ */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* _COMPLEX_HEADERS_H */
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
This directory contains contributions which have not yet been integrated
|
|
||||||
with the clib2 library build but which should be in the CVS repository
|
|
||||||
both for safekeeping and for you to look at and adapt.
|
|
||||||
@@ -1,183 +0,0 @@
|
|||||||
|
|
||||||
#ifndef __BYTESWAP_H
|
|
||||||
#define __BYTESWAP_H
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#if defined(__GNUC__)
|
|
||||||
#define __CONST_FUNC __attribute__((const))
|
|
||||||
#else
|
|
||||||
#define __CONST_FUNC /* Nothing */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Single value byteswap functions. */
|
|
||||||
|
|
||||||
extern __CONST_FUNC uint16_t bswap16(uint16_t);
|
|
||||||
extern __CONST_FUNC uint32_t bswap24(uint32_t);
|
|
||||||
extern __CONST_FUNC uint32_t bswap32(uint32_t);
|
|
||||||
|
|
||||||
#ifdef INT64_MIN
|
|
||||||
extern __CONST_FUNC uint64_t bswap64(uint64_t);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Block byteswap functions. The swab() function usually resides in unistd.h, so perhaps it should be moved there? */
|
|
||||||
/* NOTE: Contrary to the standard swab(), this version returns the "to" pointer and the pointers are not restrict
|
|
||||||
* qualified - so swapping buffer-contents in-place is supported.
|
|
||||||
* Also, swab24(), swab32() and swab64() are non-standard functions.
|
|
||||||
*/
|
|
||||||
|
|
||||||
extern void *swab(void *from,void *to,ssize_t nbytes);
|
|
||||||
extern void *swab24(void *from,void *to,ssize_t nbytes); /* Same as swab(), but operates on 24-bit words instead. */
|
|
||||||
extern void *swab32(void *from,void *to,ssize_t nbytes); /* Same as swab(), but operates on 32-bit words instead. */
|
|
||||||
extern void *swab64(void *from,void *to,ssize_t nbytes); /* Same as swab(), but operates on 64-bit words instead. */
|
|
||||||
|
|
||||||
#define swab16(x) swab(x)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Optimized inline-versions for the single-value functions follow.
|
|
||||||
* Only GCC+PPC and GCC+m68k support for now.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(__GNUC__)
|
|
||||||
|
|
||||||
/* Select implementation. */
|
|
||||||
|
|
||||||
#define bswap16(x) (__builtin_constant_p(x))?__const_swap16(x):__swap16(x)
|
|
||||||
#define bswap24(x) (__builtin_constant_p(x))?__const_swap24(x):__swap24(x)
|
|
||||||
#define bswap32(x) (__builtin_constant_p(x))?__const_swap32(x):__swap32(x)
|
|
||||||
#define bswap64(x) (__builtin_constant_p(x))?__const_swap64(x):__swap64(x)
|
|
||||||
|
|
||||||
/* Assembler implementations */
|
|
||||||
|
|
||||||
#if defined(__PPC__)
|
|
||||||
|
|
||||||
static __inline__ __CONST_FUNC uint16_t __swap16(uint16_t u16) {
|
|
||||||
uint_fast16_t result;
|
|
||||||
__asm__("\
|
|
||||||
rlwinm %[result],%[u16],8,16,24\n\
|
|
||||||
rlwimi %[result],%[u16],24,24,31\n\
|
|
||||||
":[result]"=&r"(result):[u16]"r"(u16));
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline__ __CONST_FUNC uint32_t __swap24(uint32_t u32) {
|
|
||||||
uint_fast32_t result;
|
|
||||||
__asm__("\
|
|
||||||
rlwinm %[result],%[u32],16,8,31\n\
|
|
||||||
rlwimi %[result],%[u32],0,16,24\n\
|
|
||||||
":[result]"=&r"(result):[u32]"r"(u32));
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline__ __CONST_FUNC uint32_t __swap32(uint32_t u32) {
|
|
||||||
uint_fast32_t result;
|
|
||||||
__asm__("\
|
|
||||||
rlwinm %[result],%[u32],8,8,31\n\
|
|
||||||
rlwimi %[result],%[u32],24,0,7\n\
|
|
||||||
rlwimi %[result],%[u32],24,16,23\n\
|
|
||||||
":[result]"=&r"(result):[u32]"r"(u32));
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Note: __swap64() might perhaps be optimized a bit more by scheduling the
|
|
||||||
* instructions to alternate register-use, but this instead means there
|
|
||||||
* are two less registers free since "u64" and "result" may no longer overlap.
|
|
||||||
* Decisions, decisions....
|
|
||||||
*/
|
|
||||||
|
|
||||||
static __inline__ __CONST_FUNC uint64_t __swap64(uint64_t u64) {
|
|
||||||
uint_fast64_t result;
|
|
||||||
uint_fast32_t tmp;
|
|
||||||
__asm__("\
|
|
||||||
rlwinm %[tmp],%[u64],8,8,31\n\
|
|
||||||
rlwimi %[tmp],%[u64],24,0,7\n\
|
|
||||||
rlwimi %[tmp],%[u64],24,16,23\n\
|
|
||||||
rlwinm %[result],%L[u64],8,8,31\n\
|
|
||||||
rlwimi %[result],%L[u64],24,0,7\n\
|
|
||||||
rlwimi %[result],%L[u64],24,16,23\n\
|
|
||||||
or %L[result],%[tmp],%[tmp]\n\
|
|
||||||
":[result]"=r"(result),[tmp]"=&r"(tmp):[u64]"r"(u64));
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
#elif defined(__mc68020__)
|
|
||||||
|
|
||||||
static __inline__ __CONST_FUNC uint16_t __swap16(uint16_t u16) {
|
|
||||||
__asm__("\
|
|
||||||
rol.w #8,%[u16]\n\
|
|
||||||
":[u16]"+d"(u16)::"cc");
|
|
||||||
return(u16);
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline__ __CONST_FUNC uint32_t __swap24(uint32_t u32) {
|
|
||||||
__asm__("\
|
|
||||||
rol.w #8,%[u32]\n\
|
|
||||||
swap %[u32]\n\
|
|
||||||
rol.w #8,%[u32]\n\
|
|
||||||
ror.l #8,%[u32]\n\
|
|
||||||
":[u32]"+d"(u32)::"cc");
|
|
||||||
return(u32);
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline__ __CONST_FUNC uint32_t __swap32(uint32_t u32) {
|
|
||||||
__asm__("\
|
|
||||||
rol.w #8,%[u32]\n\
|
|
||||||
swap %[u32]\n\
|
|
||||||
rol.w #8,%[u32]\n\
|
|
||||||
":[u32]"+d"(u32)::"cc");
|
|
||||||
return(u32);
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline__ __CONST_FUNC uint64_t __swap64(uint64_t u64) {
|
|
||||||
__asm__("\
|
|
||||||
rol.w #8,%[u64]\n\
|
|
||||||
rol.w #8,%L[u64]\n\
|
|
||||||
swap %[u64]\n\
|
|
||||||
swap %L[u64]\n\
|
|
||||||
rol.w #8,%[u64]\n\
|
|
||||||
rol.w #8,%L[u64]\n\
|
|
||||||
exg %[u64],L%[u64]\n\
|
|
||||||
":[u64]"+d"(u64)::"cc");
|
|
||||||
return(u64);
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
/* Unknown or undefined architecture. Perhaps compiling with "-strict -ansi", but should not use this header then anyway. */
|
|
||||||
#undef bswap16
|
|
||||||
#undef bswap24
|
|
||||||
#undef bswap32
|
|
||||||
#undef bswap64
|
|
||||||
#define bswap16(x) (__builtin_constant_p(x))?__const_swap16(x):bswap16(x)
|
|
||||||
#define bswap24(x) (__builtin_constant_p(x))?__const_swap24(x):bswap24(x)
|
|
||||||
#define bswap32(x) (__builtin_constant_p(x))?__const_swap32(x):bswap32(x)
|
|
||||||
#define bswap64(x) (__builtin_constant_p(x))?__const_swap64(x):bswap64(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* C implementations for constant values */
|
|
||||||
|
|
||||||
static __inline__ uint16_t __const_swap16(uint16_t u16) {
|
|
||||||
return(u16>>8|u16<<8);
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline__ uint32_t __const_swap24(uint32_t u32) {
|
|
||||||
return(((u32&0xff)<<16)|((u32&0xff00))|((u32&0xff0000)>>16));
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline__ uint32_t __const_swap32(uint32_t u32) {
|
|
||||||
return(((u32&0xff)<<24)|((u32&0xff00)<<8)|((u32&0xff0000)>>8)|((u32&0xff000000)>>24));
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline__ uint64_t __const_swap64(uint64_t u64) {
|
|
||||||
return(((u64&0xffLL)<<56)|((u64&0xff00LL)<<40)|((u64&0xff0000LL)<<24)|((u64&0xff000000LL)<<8)|
|
|
||||||
((u64&0xff00000000LL)>>8)|((u64&0xff0000000000LL)>>24)|((u64&0xff000000000000LL)>>40)|((u64&0xff00000000000000LL)>>56));
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* __BYTESWAP_H */
|
|
||||||
|
|
||||||
/* vi:set ts=3: */
|
|
||||||
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
|
|
||||||
#if defined(__PPC__) && defined(__GNUC__)
|
|
||||||
|
|
||||||
asm("\
|
|
||||||
.text\n\
|
|
||||||
.align 2\n\
|
|
||||||
.globl bswap16\n\
|
|
||||||
.type bswap16, @function\n\
|
|
||||||
bswap16:\n\
|
|
||||||
# rlwinm %r4,%r3,8,16,24\n\
|
|
||||||
# rlwimi %r4,%r3,24,24,31\n\
|
|
||||||
# or %r3,%r4,%r4\n\
|
|
||||||
rlwimi %r3,%r3,16,8,15\n\
|
|
||||||
srwi %r3,%r3,8\n\
|
|
||||||
blr\n\
|
|
||||||
");
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
uint16_t bswap16(uint16_t u16)
|
|
||||||
{
|
|
||||||
return(u16>>8|u16<<8);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
|
|
||||||
#if defined(__PPC__) && defined(__GNUC__)
|
|
||||||
|
|
||||||
asm(" .text\n\
|
|
||||||
.align 2\n\
|
|
||||||
.globl bswap24\n\
|
|
||||||
.type bswap24, @function\n\
|
|
||||||
bswap32:\n\
|
|
||||||
rlwinm %r4,%r3,16,8,31\n\
|
|
||||||
rlwimi %r4,%r3,0,16,24\n\
|
|
||||||
or %r3,%r4,%r4\n\
|
|
||||||
blr\n\
|
|
||||||
");
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
uint32_t bswap24(uint32_t u32)
|
|
||||||
{
|
|
||||||
return(
|
|
||||||
((u32&0xff)<<16)|
|
|
||||||
((u32&0xff00))|
|
|
||||||
((u32&0xff0000)>>16)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
|
|
||||||
#if defined(__PPC__) && defined(__GNUC__)
|
|
||||||
|
|
||||||
asm(" .text\n\
|
|
||||||
.align 2\n\
|
|
||||||
.globl bswap32\n\
|
|
||||||
.type bswap32, @function\n\
|
|
||||||
bswap32:\n\
|
|
||||||
rlwinm %r4,%r3,8,8,31\n\
|
|
||||||
rlwimi %r4,%r3,24,0,7\n\
|
|
||||||
rlwimi %r4,%r3,24,16,23\n\
|
|
||||||
or %r3,%r4,%r4\n\
|
|
||||||
blr\n\
|
|
||||||
");
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
uint32_t bswap32(uint32_t u32)
|
|
||||||
{
|
|
||||||
return(
|
|
||||||
((u32&0xff)<<24)|
|
|
||||||
((u32&0xff00)<<8)|
|
|
||||||
((u32&0xff0000)>>8)|
|
|
||||||
((u32&0xff000000)>>24)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
|
|
||||||
#if defined(USE_64_BIT_INTS)
|
|
||||||
|
|
||||||
#if defined(__PPC__) && defined(__GNUC__)
|
|
||||||
|
|
||||||
asm(" .text\n\
|
|
||||||
.align 2\n\
|
|
||||||
.globl bswap64\n\
|
|
||||||
.type bswap64, @function\n\
|
|
||||||
bswap64:\n\
|
|
||||||
rlwinm %r5,%r3,8,8,31\n\
|
|
||||||
rlwimi %r5,%r3,24,0,7\n\
|
|
||||||
rlwimi %r5,%r3,24,16,23\n\
|
|
||||||
rlwinm %r3,%r4,8,8,31\n\
|
|
||||||
rlwimi %r3,%r4,24,0,7\n\
|
|
||||||
rlwimi %r3,%r4,24,16,23\n\
|
|
||||||
or %r4,%r5,%r5\n\
|
|
||||||
blr\n\
|
|
||||||
");
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
uint64_t bswap64(uint64_t u64)
|
|
||||||
{
|
|
||||||
union {
|
|
||||||
uint64_t ll;
|
|
||||||
uint32_t l[2];
|
|
||||||
} v={.ll=u64};
|
|
||||||
uint32_t tmp;
|
|
||||||
tmp=v.l[0];
|
|
||||||
v.l[0]=((v.l[1]&0xff)<<24)|
|
|
||||||
((v.l[1]&0xff00)<<8)|
|
|
||||||
((v.l[1]&0xff0000)>>8)|
|
|
||||||
((v.l[1]&0xff000000)>>24);
|
|
||||||
v.l[1]=((tmp&0xff)<<24)|
|
|
||||||
((tmp&0xff00)<<8)|
|
|
||||||
((tmp&0xff0000)>>8)|
|
|
||||||
((tmp&0xff000000)>>24);
|
|
||||||
return(v.ll);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
|
|
||||||
#if defined(__GNUC__) && defined(__PPC__)
|
|
||||||
|
|
||||||
/* r3=from, r4=to, r5=len/count, r6=index, r7=load/store/temp */
|
|
||||||
|
|
||||||
asm("\
|
|
||||||
.text\n\
|
|
||||||
.align 2\n\
|
|
||||||
.globl swab\n\
|
|
||||||
.type swab,@function\n\
|
|
||||||
swab:\n\
|
|
||||||
dcbt 0,%r3\n\
|
|
||||||
srawi. %r5,%r5,1\n\
|
|
||||||
bc 4,gt,.exit\n\
|
|
||||||
andi. %r7,%r3,3 # Check if we start on an address evenly divisible by 4.\n\
|
|
||||||
li %r6,0\n\
|
|
||||||
bc 4,gt,.preploop\n\
|
|
||||||
lhbrx %r7,%r6,%r3 # Fix alignment if needed.\n\
|
|
||||||
sthx %r7,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,2\n\
|
|
||||||
subi %r5,%r5,1\n\
|
|
||||||
.preploop:\n\
|
|
||||||
andi. %r7,%r5,1 # Check if even or odd number of 16-bit words.\n\
|
|
||||||
srawi %r5,%r5,1 # Number of 32-bit words to half-swap.\n\
|
|
||||||
mtctr %r5\n\
|
|
||||||
bc 12,gt,.oddloop # Jump to loop for odd number of 16-bit words.\n\
|
|
||||||
.loop: # Loop is 'unrolled' by reading/writing 32-bit words.\n\
|
|
||||||
lwbrx %r7,%r6,%r3\n\
|
|
||||||
rotlwi %r7,%r7,16\n\
|
|
||||||
stwx %r7,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
bc 0,lt,.loop\n\
|
|
||||||
.exit:\n\
|
|
||||||
or %r3,%r4,%r4\n\
|
|
||||||
blr\n\
|
|
||||||
.oddloop:\n\
|
|
||||||
lwbrx %r7,%r6,%r3\n\
|
|
||||||
rotlwi %r7,%r7,16\n\
|
|
||||||
stwx %r7,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
bc 0,lt,.oddloop\n\
|
|
||||||
sub %r6,%r6,2\n\
|
|
||||||
lhbrx %r7,%r6,%r3 # Fix last 16-bit word.\n\
|
|
||||||
sthx %r7,%r6,%r4\n\
|
|
||||||
or %r3,%r4,%r4\n\
|
|
||||||
blr\n\
|
|
||||||
");
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
void *swab(void *from,void *to,ssize_t len)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
uint16_t u16,*u16in=from,*u16out=to;
|
|
||||||
|
|
||||||
for(i=0;i<(len>>1);i++) {
|
|
||||||
u16=u16in[i];
|
|
||||||
u16out[i]=u16>>8|u16<<8;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(u16out);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
|
|
||||||
#if defined(__GNUC__) && defined(__PPC__)
|
|
||||||
|
|
||||||
/* r3=from, r4=to, r5=len/remaining, r6/r7=index & r7=temp, r8/r9/r10=read/write temp */
|
|
||||||
|
|
||||||
asm("\
|
|
||||||
.text\n\
|
|
||||||
.align 2\n\
|
|
||||||
.globl swab24\n\
|
|
||||||
.type swab24,@function\n\
|
|
||||||
swab24:\n\
|
|
||||||
dcbt 0,%r3\n\
|
|
||||||
li %r7,3\n\
|
|
||||||
divwu %r5,%r5,%r7\n\
|
|
||||||
andi. %r7,%r5,3\n\
|
|
||||||
srawi. %r5,%r5,2\n\
|
|
||||||
mtctr %r5\n\
|
|
||||||
or %r5,%r7,%r7\n\
|
|
||||||
li %r6,0\n\
|
|
||||||
bc 4,gt,.postfix\n\
|
|
||||||
.loop:\n\
|
|
||||||
lwbrx %r8,%r6,%r3\n\
|
|
||||||
addi %r7,%r6,4\n\
|
|
||||||
lwzx %r9,%r7,%r3\n\
|
|
||||||
addi %r7,%r6,8\n\
|
|
||||||
lwbrx %r10,%r7,%r3\n\
|
|
||||||
rotlwi %r8,%r8,8\n\
|
|
||||||
or %r7,%r9,%r9\n\
|
|
||||||
rlwimi %r9,%r8,16,8,15\n\
|
|
||||||
rlwimi %r9,%r10,8,16,23\n\
|
|
||||||
rlwimi %r8,%r7,16,24,31\n\
|
|
||||||
rotrwi %r10,%r10,8\n\
|
|
||||||
rlwimi %r10,%r7,16,0,7\n\
|
|
||||||
stwx %r8,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
stwx %r9,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
stwx %r10,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
bc 0,lt,.loop\n\
|
|
||||||
.postfix: # Fix any remaining 24-bit words (number of remaining words in r5).\n\
|
|
||||||
or. %r5,%r5,%r5\n\
|
|
||||||
bc 4,gt,.exit\n\
|
|
||||||
mtctr %r5\n\
|
|
||||||
add %r3,%r3,%r6\n\
|
|
||||||
add %r6,%r4,%r6\n\
|
|
||||||
subi %r3,%r3,1\n\
|
|
||||||
.fixloop:\n\
|
|
||||||
lbzu %r7,1(%r3)\n\
|
|
||||||
lbzu %r8,1(%r3)\n\
|
|
||||||
lbzu %r9,1(%r3)\n\
|
|
||||||
stb %r7,2(%r6)\n\
|
|
||||||
stb %r8,1(%r6)\n\
|
|
||||||
stb %r9,0(%r6)\n\
|
|
||||||
addi %r6,%r6,3\n\
|
|
||||||
bc 0,lt,.fixloop\n\
|
|
||||||
.exit:\n\
|
|
||||||
or %r3,%r4,%r4\n\
|
|
||||||
blr\n\
|
|
||||||
");
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Ugh, this is really very, very ineffiecient.
|
|
||||||
* (But simple, understandable and safe)
|
|
||||||
*/
|
|
||||||
|
|
||||||
void *swab24(void *from,void *to,ssize_t len)
|
|
||||||
{
|
|
||||||
uint8_t *src=from,B0,B1,B2,*dst=to;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for(i=0;i<len;i+=3) {
|
|
||||||
B0=src[i];
|
|
||||||
B1=src[i+1];
|
|
||||||
B2=src[i+2];
|
|
||||||
dst[i]=B2;
|
|
||||||
dst[i+1]=B1;
|
|
||||||
dst[i+2]=B0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(to);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,112 +0,0 @@
|
|||||||
|
|
||||||
#if defined(__GNUC__) && defined(__PPC__)
|
|
||||||
|
|
||||||
/* r3=from, r4=to, r5=len, r6=index, r7=load/store temp */
|
|
||||||
|
|
||||||
asm("\
|
|
||||||
.text\n\
|
|
||||||
.align 2\n\
|
|
||||||
.globl swab32\n\
|
|
||||||
.type swab32,@function\n\
|
|
||||||
swab32:\n\
|
|
||||||
srawi. %r5,%r5,2\n\
|
|
||||||
li %r6,0\n\
|
|
||||||
bc 4,gt,.exit\n\
|
|
||||||
mtctr %r5\n\
|
|
||||||
.loop:\n\
|
|
||||||
lwbrx %r7,%r6,%r3\n\
|
|
||||||
stwx %r7,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
bc 0,lt,.loop\n\
|
|
||||||
.exit:\n\
|
|
||||||
or %r3,%r4,%r4\n\
|
|
||||||
blr\n\
|
|
||||||
");
|
|
||||||
|
|
||||||
/* r3=from, r4=to, r5=len/temp, r6=index, r7=load/store temp, r8=cache hint
|
|
||||||
*
|
|
||||||
* The unrolled, cache-hinting version appears to be about 4.5% faster, but
|
|
||||||
* in this case I opted for the smaller implementation. swab64() appears to
|
|
||||||
* gain more from cache-hinting - probably because of it using more registers
|
|
||||||
* for intermediate storage.
|
|
||||||
asm("\
|
|
||||||
.text\n\
|
|
||||||
.align 2\n\
|
|
||||||
.globl swab32\n\
|
|
||||||
.type swab32,@function\n\
|
|
||||||
swab32:\n\
|
|
||||||
dcbt 0,%r3\n\
|
|
||||||
andi. %r8,%r5,31 # The number of bytes handled in '.pre'. Used for prefetch hint.\n\
|
|
||||||
srawi %r5,%r5,2 # Convert bytes-># of 32-bit words\n\
|
|
||||||
andi. %r7,%r5,7\n\
|
|
||||||
li %r6,0\n\
|
|
||||||
bc 4,gt,.preploop\n\
|
|
||||||
mtctr %r7\n\
|
|
||||||
.pre: # One 32-bit word at a time until we have (nLeft%8)==0 \n\
|
|
||||||
lwbrx %r7,%r6,%r3\n\
|
|
||||||
stwx %r7,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
bc 0,lt,.pre\n\
|
|
||||||
.preploop:\n\
|
|
||||||
srawi. %r5,%r5,3 # Divide by 8 again to get number of loops.\n\
|
|
||||||
addi %r8,%r8,32 # Start address for next loop (from r3).\n\
|
|
||||||
bc 4,gt,.exit\n\
|
|
||||||
mtctr %r5\n\
|
|
||||||
.loop: # Loop unrolled 8 times = 32 bytes = 1 cache-line (except on the 970).\n\
|
|
||||||
dcbt %r8,%r3 # Cache hint (prefetch) for the next loop\n\
|
|
||||||
lwbrx %r7,%r6,%r3\n\
|
|
||||||
stwx %r7,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
lwbrx %r7,%r6,%r3\n\
|
|
||||||
stwx %r7,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
lwbrx %r7,%r6,%r3\n\
|
|
||||||
stwx %r7,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
lwbrx %r7,%r6,%r3\n\
|
|
||||||
stwx %r7,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
lwbrx %r7,%r6,%r3\n\
|
|
||||||
stwx %r7,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
lwbrx %r7,%r6,%r3\n\
|
|
||||||
stwx %r7,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
lwbrx %r7,%r6,%r3\n\
|
|
||||||
stwx %r7,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
lwbrx %r7,%r6,%r3\n\
|
|
||||||
stwx %r7,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,4\n\
|
|
||||||
addi %r8,%r8,32 # Update cache-hint offset\n\
|
|
||||||
bc 0,lt,.loop\n\
|
|
||||||
.exit:\n\
|
|
||||||
or %r3,%r4,%r4\n\
|
|
||||||
blr\n\
|
|
||||||
");
|
|
||||||
*/
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
void *swab32(void *from,void *to,ssize_t len)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
uint32_t *u32in=from,*u32out=to,tmp;
|
|
||||||
|
|
||||||
for(i=0;i<(len>>2);i++) {
|
|
||||||
tmp=u32in[i];
|
|
||||||
u32out[i]=((tmp&0xff)<<24)|
|
|
||||||
((tmp&0xff00)<<8)|
|
|
||||||
((tmp&0xff0000)>>8)|
|
|
||||||
((tmp&0xff000000)>>24);
|
|
||||||
}
|
|
||||||
|
|
||||||
return(to);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,101 +0,0 @@
|
|||||||
|
|
||||||
#if defined(__GNUC__) && defined(__PPC__)
|
|
||||||
|
|
||||||
/* r3=from, r4=to, r5=len/temp, r6/r7=index, r8/r9=load/store temp, r10=cache hint */
|
|
||||||
|
|
||||||
/* This version is unrolled and uses cache-hinting. It appears to gain about 10%
|
|
||||||
* over a non-unrolled, non-hinting version.
|
|
||||||
*/
|
|
||||||
|
|
||||||
asm("\
|
|
||||||
.text\n\
|
|
||||||
.align 2\n\
|
|
||||||
.globl swab64\n\
|
|
||||||
.type swab64,@function\n\
|
|
||||||
swab64:\n\
|
|
||||||
dcbt 0,%r3\n\
|
|
||||||
andi. %r10,%r5,31 # The number of bytes handled in '.pre'. Used for prefetch hint.\n\
|
|
||||||
srawi %r5,%r5,3 # Convert bytes-># of 64-bit words\n\
|
|
||||||
andi. %r7,%r5,3\n\
|
|
||||||
li %r6,0\n\
|
|
||||||
bc 4,gt,.preploop\n\
|
|
||||||
mtctr %r7\n\
|
|
||||||
.pre: # One 64-bit word at a time until we have (nLeft%4)==0 \n\
|
|
||||||
lwbrx %r8,%r6,%r3\n\
|
|
||||||
addi %r7,%r6,4\n\
|
|
||||||
lwbrx %r9,%r7,%r3\n\
|
|
||||||
stwx %r8,%r7,%r4\n\
|
|
||||||
stwx %r9,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,8\n\
|
|
||||||
bc 0,lt,.pre\n\
|
|
||||||
.preploop:\n\
|
|
||||||
srawi. %r5,%r5,2 # Divide by 4 again to get number of loops.\n\
|
|
||||||
addi %r10,%r10,32 # Start address for next loop.\n\
|
|
||||||
bc 4,gt,.exit\n\
|
|
||||||
mtctr %r5\n\
|
|
||||||
.loop: # Loop unrolled 4 times = 32 bytes = 1 cache-line (except on the 970).\n\
|
|
||||||
dcbt %r10,%r3 # Cache hint (prefetch) for the next iteration\n\
|
|
||||||
lwbrx %r8,%r6,%r3\n\
|
|
||||||
addi %r7,%r6,4\n\
|
|
||||||
lwbrx %r9,%r7,%r3\n\
|
|
||||||
stwx %r8,%r7,%r4\n\
|
|
||||||
stwx %r9,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,8\n\
|
|
||||||
lwbrx %r8,%r6,%r3\n\
|
|
||||||
addi %r7,%r6,4\n\
|
|
||||||
lwbrx %r9,%r7,%r3\n\
|
|
||||||
stwx %r8,%r7,%r4\n\
|
|
||||||
stwx %r9,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,8\n\
|
|
||||||
lwbrx %r8,%r6,%r3\n\
|
|
||||||
addi %r7,%r6,4\n\
|
|
||||||
lwbrx %r9,%r7,%r3\n\
|
|
||||||
stwx %r8,%r7,%r4\n\
|
|
||||||
stwx %r9,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,8\n\
|
|
||||||
lwbrx %r8,%r6,%r3\n\
|
|
||||||
addi %r7,%r6,4\n\
|
|
||||||
lwbrx %r9,%r7,%r3\n\
|
|
||||||
stwx %r8,%r7,%r4\n\
|
|
||||||
stwx %r9,%r6,%r4\n\
|
|
||||||
addi %r6,%r6,8\n\
|
|
||||||
addi %r10,%r10,32 # Update cache-hint offset\n\
|
|
||||||
bc 0,lt,.loop\n\
|
|
||||||
.exit:\n\
|
|
||||||
or %r3,%r4,%r4\n\
|
|
||||||
blr\n\
|
|
||||||
");
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
void *swab64(void *from,void *to,ssize_t len)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
struct {
|
|
||||||
uint32_t u32[2];
|
|
||||||
} *u64in=from,*u64out=to;
|
|
||||||
uint32_t tmp1,tmp2;
|
|
||||||
|
|
||||||
for(i=0;i<(len>>3);i++) {
|
|
||||||
tmp1=u64in[i].u32[0];
|
|
||||||
tmp2=u64in[i].u32[1];
|
|
||||||
u64out[i].u32[0]=((tmp2&0xff)<<24)|
|
|
||||||
((tmp2&0xff00)<<8)|
|
|
||||||
((tmp2&0xff0000)>>8)|
|
|
||||||
((tmp2&0xff000000)>>24);
|
|
||||||
u64out[i].u32[1]=((tmp1&0xff)<<24)|
|
|
||||||
((tmp1&0xff00)<<8)|
|
|
||||||
((tmp1&0xff0000)>>8)|
|
|
||||||
((tmp1&0xff000000)>>24);
|
|
||||||
}
|
|
||||||
|
|
||||||
return(to);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* vi:set ts=3: */
|
|
||||||
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
//
|
|
||||||
// $Id: crt0.S,v 1.6 2005-10-11 09:28:29 obarthel Exp $
|
|
||||||
//
|
|
||||||
// :ts=4
|
|
||||||
//
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
.globl main /* This enforces linkage against the main() function */
|
|
||||||
.globl _main
|
|
||||||
.globl _start
|
|
||||||
|
|
||||||
_start:
|
|
||||||
|
|
||||||
#if defined(SMALL_DATA)
|
|
||||||
/* Don't do a function call here, since that
|
|
||||||
means LR has to be saved */
|
|
||||||
lis r13, _SDA_BASE_@ha
|
|
||||||
addi r13, r13, _SDA_BASE_@l
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(BASEREL_DATA)
|
|
||||||
/* We also need to set up the data segment pointer */
|
|
||||||
lis r2, _DATA_BASE_@ha
|
|
||||||
addi r2, r2, _DATA_BASE_@l
|
|
||||||
#endif
|
|
||||||
|
|
||||||
b _main
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: crtbegin.c,v 1.13 2010-08-21 11:37:03 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Handles global constructors and destructors for the OS4 GCC build.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef EXEC_TYPES_H
|
|
||||||
#include <exec/types.h>
|
|
||||||
#endif /* EXEC_TYPES_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Dummy constructor and destructor array. The linker script will put these at the
|
|
||||||
* very beginning of section ".ctors" and ".dtors". crtend.o contains a similar entry
|
|
||||||
* with a NULL pointer entry and is put at the end of the sections. This way, the init
|
|
||||||
* code can find the global constructor/destructor pointers
|
|
||||||
*/
|
|
||||||
static void (*__CTOR_LIST__[1]) (void) __attribute__(( used, section(".ctors"), aligned(sizeof(void (*)(void))) ));
|
|
||||||
static void (*__DTOR_LIST__[1]) (void) __attribute__(( used, section(".dtors"), aligned(sizeof(void (*)(void))) ));
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
void _init(void);
|
|
||||||
void _fini(void);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
void
|
|
||||||
_init(void)
|
|
||||||
{
|
|
||||||
extern void shared_obj_init(void);
|
|
||||||
int num_ctors,i;
|
|
||||||
int j;
|
|
||||||
|
|
||||||
/* The shared objects need to be set up before any local
|
|
||||||
constructors are invoked. */
|
|
||||||
shared_obj_init();
|
|
||||||
|
|
||||||
for(i = 1, num_ctors = 0 ; __CTOR_LIST__[i] != NULL ; i++)
|
|
||||||
num_ctors++;
|
|
||||||
|
|
||||||
for(j = 0 ; j < num_ctors ; j++)
|
|
||||||
__CTOR_LIST__[num_ctors - j]();
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
void
|
|
||||||
_fini(void)
|
|
||||||
{
|
|
||||||
extern void shared_obj_exit(void);
|
|
||||||
int num_dtors,i;
|
|
||||||
static int j;
|
|
||||||
|
|
||||||
for(i = 1, num_dtors = 0 ; __DTOR_LIST__[i] != NULL ; i++)
|
|
||||||
num_dtors++;
|
|
||||||
|
|
||||||
while(j++ < num_dtors)
|
|
||||||
__DTOR_LIST__[j]();
|
|
||||||
|
|
||||||
/* The shared objects need to be cleaned up after all local
|
|
||||||
destructors have been invoked. */
|
|
||||||
shared_obj_exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /*__amigaos4__ */
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: crtend.c,v 1.2 2005-03-09 21:07:25 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* End markers for the CTOR and DTOR list.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
static void (*__CTOR_LIST__[1]) (void) __attribute__((used, section(".ctors"), aligned(sizeof(void (*)(void))) ));
|
|
||||||
static void (*__DTOR_LIST__[1]) (void) __attribute__((used, section(".dtors"), aligned(sizeof(void (*)(void))) ));
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /*__amigaos4__ */
|
|
||||||
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_headers.h,v 1.6 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#define _CTYPE_HEADERS_H
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _LOCALE_HEADERS_H
|
|
||||||
#include "locale_headers.h"
|
|
||||||
#endif /* _LOCALE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _STDLIB_LOCALEBASE_H
|
|
||||||
#include "stdlib_localebase.h"
|
|
||||||
#endif /* _STDLIB_LOCALEBASE_H */
|
|
||||||
|
|
||||||
#ifndef _STDLIB_UTILITYBASE_H
|
|
||||||
#include "stdlib_utilitybase.h"
|
|
||||||
#endif /* _STDLIB_UTILITYBASE_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _MACROS_H
|
|
||||||
#include "macros.h"
|
|
||||||
#endif /* _MACROS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <locale.h>
|
|
||||||
#include <assert.h>
|
|
||||||
#include <limits.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_isalnum.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#undef isalnum
|
|
||||||
#undef isalpha
|
|
||||||
#undef isdigit
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
isalnum(int c)
|
|
||||||
{
|
|
||||||
DECLARE_LOCALEBASE();
|
|
||||||
int result;
|
|
||||||
|
|
||||||
__locale_lock();
|
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
|
||||||
{
|
|
||||||
assert( LocaleBase != NULL );
|
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
|
||||||
'unsigned char'. If it's not, then the behaviour is
|
|
||||||
undefined. */
|
|
||||||
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
|
||||||
result = IsAlNum(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
|
||||||
else
|
|
||||||
result = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = isalpha(c) || isdigit(c);
|
|
||||||
}
|
|
||||||
|
|
||||||
__locale_unlock();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_isalpha.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#undef isalpha
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
isalpha(int c)
|
|
||||||
{
|
|
||||||
DECLARE_LOCALEBASE();
|
|
||||||
int result;
|
|
||||||
|
|
||||||
__locale_lock();
|
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
|
||||||
{
|
|
||||||
assert( LocaleBase != NULL );
|
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
|
||||||
'unsigned char'. If it's not, then the behaviour is
|
|
||||||
undefined. */
|
|
||||||
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
|
||||||
result = IsAlpha(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
|
||||||
else
|
|
||||||
result = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = (('a' <= c && c <= 'z') ||
|
|
||||||
('A' <= c && c <= 'Z'));
|
|
||||||
}
|
|
||||||
|
|
||||||
__locale_unlock();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_isascii.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#undef isascii
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int isascii(int c);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
isascii(int c)
|
|
||||||
{
|
|
||||||
int result;
|
|
||||||
|
|
||||||
result = (0 <= c && c <= 127);
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_isblank.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#undef isblank
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
isblank(int c)
|
|
||||||
{
|
|
||||||
int result;
|
|
||||||
|
|
||||||
result = (c == '\t' || c == ' ');
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_iscntrl.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#undef iscntrl
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
iscntrl(int c)
|
|
||||||
{
|
|
||||||
DECLARE_LOCALEBASE();
|
|
||||||
int result;
|
|
||||||
|
|
||||||
__locale_lock();
|
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
|
||||||
{
|
|
||||||
assert( LocaleBase != NULL );
|
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
|
||||||
'unsigned char'. If it's not, then the behaviour is
|
|
||||||
undefined. */
|
|
||||||
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
|
||||||
result = IsCntrl(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
|
||||||
else
|
|
||||||
result = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = (('\0' <= c && c < ' ') || (c == 127));
|
|
||||||
}
|
|
||||||
|
|
||||||
__locale_unlock();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_isdigit.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#undef isdigit
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
isdigit(int c)
|
|
||||||
{
|
|
||||||
DECLARE_LOCALEBASE();
|
|
||||||
int result;
|
|
||||||
|
|
||||||
__locale_lock();
|
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
|
||||||
{
|
|
||||||
assert( LocaleBase != NULL );
|
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
|
||||||
'unsigned char'. If it's not, then the behaviour is
|
|
||||||
undefined. */
|
|
||||||
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
|
||||||
result = IsDigit(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
|
||||||
else
|
|
||||||
result = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = ('0' <= c && c <= '9');
|
|
||||||
}
|
|
||||||
|
|
||||||
__locale_unlock();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_isgraph.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#undef isgraph
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
isgraph(int c)
|
|
||||||
{
|
|
||||||
DECLARE_LOCALEBASE();
|
|
||||||
int result;
|
|
||||||
|
|
||||||
__locale_lock();
|
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
|
||||||
{
|
|
||||||
assert( LocaleBase != NULL );
|
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
|
||||||
'unsigned char'. If it's not, then the behaviour is
|
|
||||||
undefined. */
|
|
||||||
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
|
||||||
result = IsGraph(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
|
||||||
else
|
|
||||||
result = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = (' ' < c && c < 127);
|
|
||||||
}
|
|
||||||
|
|
||||||
__locale_unlock();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_islower.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#undef islower
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
islower(int c)
|
|
||||||
{
|
|
||||||
DECLARE_LOCALEBASE();
|
|
||||||
int result;
|
|
||||||
|
|
||||||
__locale_lock();
|
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
|
||||||
{
|
|
||||||
assert( LocaleBase != NULL );
|
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
|
||||||
'unsigned char'. If it's not, then the behaviour is
|
|
||||||
undefined. */
|
|
||||||
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
|
||||||
result = IsLower(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
|
||||||
else
|
|
||||||
result = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = ('a' <= c && c <= 'z');
|
|
||||||
}
|
|
||||||
|
|
||||||
__locale_unlock();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_isprint.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#undef isprint
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
isprint(int c)
|
|
||||||
{
|
|
||||||
DECLARE_LOCALEBASE();
|
|
||||||
int result;
|
|
||||||
|
|
||||||
__locale_lock();
|
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
|
||||||
{
|
|
||||||
assert( LocaleBase != NULL );
|
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
|
||||||
'unsigned char'. If it's not, then the behaviour is
|
|
||||||
undefined. */
|
|
||||||
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
|
||||||
result = IsPrint(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
|
||||||
else
|
|
||||||
result = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = (' ' <= c && c <= '~');
|
|
||||||
}
|
|
||||||
|
|
||||||
__locale_unlock();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_ispunct.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#undef ispunct
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
ispunct(int c)
|
|
||||||
{
|
|
||||||
DECLARE_LOCALEBASE();
|
|
||||||
int result;
|
|
||||||
|
|
||||||
__locale_lock();
|
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
|
||||||
{
|
|
||||||
assert( LocaleBase != NULL );
|
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
|
||||||
'unsigned char'. If it's not, then the behaviour is
|
|
||||||
undefined. */
|
|
||||||
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
|
||||||
result = IsPunct(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
|
||||||
else
|
|
||||||
result = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = (('!' <= c && c <= '/') ||
|
|
||||||
(':' <= c && c <= '@') ||
|
|
||||||
('[' <= c && c <= '`') ||
|
|
||||||
('{' <= c && c <= '~'));
|
|
||||||
}
|
|
||||||
|
|
||||||
__locale_unlock();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_isspace.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#undef isspace
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
isspace(int c)
|
|
||||||
{
|
|
||||||
DECLARE_LOCALEBASE();
|
|
||||||
int result;
|
|
||||||
|
|
||||||
__locale_lock();
|
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
|
||||||
{
|
|
||||||
assert( LocaleBase != NULL );
|
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
|
||||||
'unsigned char'. If it's not, then the behaviour is
|
|
||||||
undefined. */
|
|
||||||
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
|
||||||
result = IsSpace(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
|
||||||
else
|
|
||||||
result = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = (c == '\t' ||
|
|
||||||
c == '\r' ||
|
|
||||||
c == '\n' ||
|
|
||||||
c == '\v' ||
|
|
||||||
c == '\f' ||
|
|
||||||
c == ' ');
|
|
||||||
}
|
|
||||||
|
|
||||||
__locale_unlock();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_isupper.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#undef isupper
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
isupper(int c)
|
|
||||||
{
|
|
||||||
DECLARE_LOCALEBASE();
|
|
||||||
int result;
|
|
||||||
|
|
||||||
__locale_lock();
|
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
|
||||||
{
|
|
||||||
assert( LocaleBase != NULL );
|
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
|
||||||
'unsigned char'. If it's not, then the behaviour is
|
|
||||||
undefined. */
|
|
||||||
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
|
||||||
result = IsUpper(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
|
||||||
else
|
|
||||||
result = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = ('A' <= c && c <= 'Z');
|
|
||||||
}
|
|
||||||
|
|
||||||
__locale_unlock();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_isxdigit.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#undef isxdigit
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
isxdigit(int c)
|
|
||||||
{
|
|
||||||
DECLARE_LOCALEBASE();
|
|
||||||
int result;
|
|
||||||
|
|
||||||
__locale_lock();
|
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
|
||||||
{
|
|
||||||
assert( LocaleBase != NULL );
|
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
|
||||||
'unsigned char'. If it's not, then the behaviour is
|
|
||||||
undefined. */
|
|
||||||
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
|
||||||
result = IsXDigit(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
|
||||||
else
|
|
||||||
result = FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = (('0' <= c && c <= '9') ||
|
|
||||||
('a' <= c && c <= 'f') ||
|
|
||||||
('A' <= c && c <= 'F'));
|
|
||||||
}
|
|
||||||
|
|
||||||
__locale_unlock();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,178 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_table.c,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define __C_MACROS__
|
|
||||||
#include <ctype.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
const unsigned char __ctype_table[2 * 128] =
|
|
||||||
{
|
|
||||||
/* 0 */ __CTYPE_CONTROL,
|
|
||||||
/* 1 */ __CTYPE_CONTROL,
|
|
||||||
/* 2 */ __CTYPE_CONTROL,
|
|
||||||
/* 3 */ __CTYPE_CONTROL,
|
|
||||||
/* 4 */ __CTYPE_CONTROL,
|
|
||||||
/* 5 */ __CTYPE_CONTROL,
|
|
||||||
/* 6 */ __CTYPE_CONTROL,
|
|
||||||
/* 7 */ __CTYPE_CONTROL,
|
|
||||||
/* 8 */ __CTYPE_CONTROL,
|
|
||||||
/* 9 */ __CTYPE_CONTROL|__CTYPE_WHITE_SPACE,
|
|
||||||
/* 10 */ __CTYPE_CONTROL|__CTYPE_WHITE_SPACE,
|
|
||||||
/* 11 */ __CTYPE_CONTROL|__CTYPE_WHITE_SPACE,
|
|
||||||
/* 12 */ __CTYPE_CONTROL|__CTYPE_WHITE_SPACE,
|
|
||||||
/* 13 */ __CTYPE_CONTROL|__CTYPE_WHITE_SPACE,
|
|
||||||
/* 14 */ __CTYPE_CONTROL,
|
|
||||||
/* 15 */ __CTYPE_CONTROL,
|
|
||||||
/* 16 */ __CTYPE_CONTROL,
|
|
||||||
/* 17 */ __CTYPE_CONTROL,
|
|
||||||
/* 18 */ __CTYPE_CONTROL,
|
|
||||||
/* 19 */ __CTYPE_CONTROL,
|
|
||||||
/* 20 */ __CTYPE_CONTROL,
|
|
||||||
/* 21 */ __CTYPE_CONTROL,
|
|
||||||
/* 22 */ __CTYPE_CONTROL,
|
|
||||||
/* 23 */ __CTYPE_CONTROL,
|
|
||||||
/* 24 */ __CTYPE_CONTROL,
|
|
||||||
/* 25 */ __CTYPE_CONTROL,
|
|
||||||
/* 26 */ __CTYPE_CONTROL,
|
|
||||||
/* 27 */ __CTYPE_CONTROL,
|
|
||||||
/* 28 */ __CTYPE_CONTROL,
|
|
||||||
/* 29 */ __CTYPE_CONTROL,
|
|
||||||
/* 30 */ __CTYPE_CONTROL,
|
|
||||||
/* 31 */ __CTYPE_CONTROL,
|
|
||||||
/* 32, ' ' */ __CTYPE_PRINTABLE|__CTYPE_WHITE_SPACE,
|
|
||||||
/* 33, '!' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 34, '"' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 35, '#' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 36, '$' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 37, '%' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 38, '&' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 39, ''' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 40, '(' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 41, ')' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 42, '*' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 43, '+' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 44, ',' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 45, '-' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 46, '.' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 47, '/' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 48, '0' */ __CTYPE_DIGIT|__CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE,
|
|
||||||
/* 49, '1' */ __CTYPE_DIGIT|__CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE,
|
|
||||||
/* 50, '2' */ __CTYPE_DIGIT|__CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE,
|
|
||||||
/* 51, '3' */ __CTYPE_DIGIT|__CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE,
|
|
||||||
/* 52, '4' */ __CTYPE_DIGIT|__CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE,
|
|
||||||
/* 53, '5' */ __CTYPE_DIGIT|__CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE,
|
|
||||||
/* 54, '6' */ __CTYPE_DIGIT|__CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE,
|
|
||||||
/* 55, '7' */ __CTYPE_DIGIT|__CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE,
|
|
||||||
/* 56, '8' */ __CTYPE_DIGIT|__CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE,
|
|
||||||
/* 57, '9' */ __CTYPE_DIGIT|__CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE,
|
|
||||||
/* 58, ':' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 59, ';' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 60, '<' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 61, '=' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 62, '>' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 63, '?' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 64, '@' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 65, 'A' */ __CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 66, 'B' */ __CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 67, 'C' */ __CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 68, 'D' */ __CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 69, 'E' */ __CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 70, 'F' */ __CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 71, 'G' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 72, 'H' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 73, 'I' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 74, 'J' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 75, 'K' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 76, 'L' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 77, 'M' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 78, 'N' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 79, 'O' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 80, 'P' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 81, 'Q' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 82, 'R' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 83, 'S' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 84, 'T' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 85, 'U' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 86, 'V' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 87, 'W' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 88, 'X' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 89, 'Y' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 90, 'Z' */ __CTYPE_PRINTABLE|__CTYPE_UPPER_CASE,
|
|
||||||
/* 91, '[' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 92, '\' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 93, ']' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 94, '^' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 95, '_' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 96, '`' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 97, 'a' */ __CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 98, 'b' */ __CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 99, 'c' */ __CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 100, 'd' */ __CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 101, 'e' */ __CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 102, 'f' */ __CTYPE_HEX_DIGIT|__CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 103, 'g' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 104, 'h' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 105, 'i' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 106, 'j' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 107, 'k' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 108, 'l' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 109, 'm' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 110, 'n' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 111, 'o' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 112, 'p' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 113, 'q' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 114, 'r' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 115, 's' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 116, 't' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 117, 'u' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 118, 'v' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 119, 'w' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 120, 'x' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 121, 'y' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 122, 'z' */ __CTYPE_PRINTABLE|__CTYPE_LOWER_CASE,
|
|
||||||
/* 123, '{' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 124, '|' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 125, '}' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 126, '~' */ __CTYPE_PUNCTUATION|__CTYPE_PRINTABLE,
|
|
||||||
/* 127 */ __CTYPE_CONTROL,
|
|
||||||
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
||||||
};
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_tolower.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
tolower(int c)
|
|
||||||
{
|
|
||||||
DECLARE_LOCALEBASE();
|
|
||||||
int result;
|
|
||||||
|
|
||||||
__locale_lock();
|
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
|
||||||
{
|
|
||||||
assert( LocaleBase != NULL );
|
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
|
||||||
'unsigned char'. If it's not, then the behaviour is
|
|
||||||
undefined. */
|
|
||||||
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
|
||||||
result = ConvToLower(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
|
||||||
else
|
|
||||||
result = c;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = ('A' <= c && c <= 'Z') ? (c + ('a' - 'A')) : c;
|
|
||||||
}
|
|
||||||
|
|
||||||
__locale_unlock();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: ctype_toupper.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _CTYPE_HEADERS_H
|
|
||||||
#include "ctype_headers.h"
|
|
||||||
#endif /* _CTYPE_HEADERS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
toupper(int c)
|
|
||||||
{
|
|
||||||
DECLARE_LOCALEBASE();
|
|
||||||
int result;
|
|
||||||
|
|
||||||
__locale_lock();
|
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
|
||||||
{
|
|
||||||
assert( LocaleBase != NULL );
|
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
|
||||||
'unsigned char'. If it's not, then the behaviour is
|
|
||||||
undefined. */
|
|
||||||
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
|
||||||
result = ConvToUpper(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
|
||||||
else
|
|
||||||
result = c;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result = ('a' <= c && c <= 'z') ? (c - ('a' - 'A')) : c;
|
|
||||||
}
|
|
||||||
|
|
||||||
__locale_unlock();
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
342
library/debug.c
342
library/debug.c
@@ -1,342 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: debug.c,v 1.6 2006-09-25 14:51:15 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=8
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#define NULL ((void *)0L)
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef DEBUG
|
|
||||||
#define DEBUG 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
extern void KPrintF(const char * format,...);
|
|
||||||
extern void KPutFmt(const char * format,va_list arg);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#define DEBUGLEVEL_OnlyAsserts 0
|
|
||||||
#define DEBUGLEVEL_Reports 1
|
|
||||||
#define DEBUGLEVEL_CallTracing 2
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
extern int __debug_level;
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
static int indent_level = 0;
|
|
||||||
|
|
||||||
static char program_name[40];
|
|
||||||
static int program_name_len = 0;
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
void
|
|
||||||
_SETPROGRAMNAME(char *name)
|
|
||||||
{
|
|
||||||
if(name != NULL && name[0] != '\0')
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for(i = 0 ; name[i] != '\0' && i < (int)sizeof(program_name)-1 ; i++)
|
|
||||||
program_name[i] = name[i];
|
|
||||||
|
|
||||||
program_name[i] = '\0';
|
|
||||||
|
|
||||||
program_name_len = i;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
program_name_len = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
_SETDEBUGLEVEL(int level)
|
|
||||||
{
|
|
||||||
int old_level = __debug_level;
|
|
||||||
|
|
||||||
__debug_level = level;
|
|
||||||
|
|
||||||
return(old_level);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
int
|
|
||||||
_GETDEBUGLEVEL(void)
|
|
||||||
{
|
|
||||||
return(__debug_level);
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
static int previous_debug_level = -1;
|
|
||||||
|
|
||||||
void
|
|
||||||
_PUSHDEBUGLEVEL(int level)
|
|
||||||
{
|
|
||||||
previous_debug_level = _SETDEBUGLEVEL(level);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_POPDEBUGLEVEL(void)
|
|
||||||
{
|
|
||||||
if(previous_debug_level != -1)
|
|
||||||
{
|
|
||||||
_SETDEBUGLEVEL(previous_debug_level);
|
|
||||||
|
|
||||||
previous_debug_level = -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
STATIC VOID
|
|
||||||
_INDENT(void)
|
|
||||||
{
|
|
||||||
if(program_name_len > 0)
|
|
||||||
KPrintF("(%s) ",program_name);
|
|
||||||
|
|
||||||
if(__debug_level >= DEBUGLEVEL_CallTracing)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for(i = 0 ; i < indent_level ; i++)
|
|
||||||
KPrintF(" ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
void
|
|
||||||
_SHOWVALUE(
|
|
||||||
unsigned long value,
|
|
||||||
int size,
|
|
||||||
const char *name,
|
|
||||||
const char *file,
|
|
||||||
int line)
|
|
||||||
{
|
|
||||||
if(__debug_level >= DEBUGLEVEL_Reports)
|
|
||||||
{
|
|
||||||
const char *fmt;
|
|
||||||
|
|
||||||
switch(size)
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
|
|
||||||
fmt = "%s:%ld:%s = %ld, 0x%02lx";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
|
|
||||||
fmt = "%s:%ld:%s = %ld, 0x%04lx";
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
|
|
||||||
fmt = "%s:%ld:%s = %ld, 0x%08lx";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
_INDENT();
|
|
||||||
|
|
||||||
KPrintF(fmt,file,line,name,value,value);
|
|
||||||
|
|
||||||
if(size == 1 && value < 256)
|
|
||||||
{
|
|
||||||
if(value < ' ' || (value >= 127 && value < 160))
|
|
||||||
KPrintF(", '\\x%02lx'",value);
|
|
||||||
else
|
|
||||||
KPrintF(", '%lc'",value);
|
|
||||||
}
|
|
||||||
|
|
||||||
KPrintF("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
void
|
|
||||||
_SHOWPOINTER(
|
|
||||||
const void *pointer,
|
|
||||||
const char *name,
|
|
||||||
const char *file,
|
|
||||||
int line)
|
|
||||||
{
|
|
||||||
if(__debug_level >= DEBUGLEVEL_Reports)
|
|
||||||
{
|
|
||||||
const char *fmt;
|
|
||||||
|
|
||||||
_INDENT();
|
|
||||||
|
|
||||||
if(pointer != NULL)
|
|
||||||
fmt = "%s:%ld:%s = 0x%08lx\n";
|
|
||||||
else
|
|
||||||
fmt = "%s:%ld:%s = NULL\n";
|
|
||||||
|
|
||||||
KPrintF(fmt,file,line,name,pointer);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
void
|
|
||||||
_SHOWSTRING(
|
|
||||||
const char *string,
|
|
||||||
const char *name,
|
|
||||||
const char *file,
|
|
||||||
int line)
|
|
||||||
{
|
|
||||||
if(__debug_level >= DEBUGLEVEL_Reports)
|
|
||||||
{
|
|
||||||
_INDENT();
|
|
||||||
KPrintF("%s:%ld:%s = 0x%08lx \"%s\"\n",file,line,name,string,string);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
void
|
|
||||||
_SHOWMSG(
|
|
||||||
const char *string,
|
|
||||||
const char *file,
|
|
||||||
int line)
|
|
||||||
{
|
|
||||||
if(__debug_level >= DEBUGLEVEL_Reports)
|
|
||||||
{
|
|
||||||
_INDENT();
|
|
||||||
KPrintF("%s:%ld:%s\n",file,line,string);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
void
|
|
||||||
_DPRINTF_HEADER(
|
|
||||||
const char *file,
|
|
||||||
int line)
|
|
||||||
{
|
|
||||||
if(__debug_level >= DEBUGLEVEL_Reports)
|
|
||||||
{
|
|
||||||
_INDENT();
|
|
||||||
KPrintF("%s:%ld:",file,line);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_DPRINTF(const char *fmt,...)
|
|
||||||
{
|
|
||||||
if(__debug_level >= DEBUGLEVEL_Reports)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
|
|
||||||
va_start(args,fmt);
|
|
||||||
KPutFmt(fmt,args);
|
|
||||||
va_end(args);
|
|
||||||
|
|
||||||
KPrintF("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_DLOG(const char *fmt,...)
|
|
||||||
{
|
|
||||||
if(__debug_level >= DEBUGLEVEL_Reports)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
|
|
||||||
va_start(args,fmt);
|
|
||||||
KPutFmt(fmt,args);
|
|
||||||
va_end(args);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
void
|
|
||||||
_ENTER(
|
|
||||||
const char *file,
|
|
||||||
int line,
|
|
||||||
const char *function)
|
|
||||||
{
|
|
||||||
if(__debug_level >= DEBUGLEVEL_CallTracing)
|
|
||||||
{
|
|
||||||
_INDENT();
|
|
||||||
KPrintF("%s:%ld:Entering %s\n",file,line,function);
|
|
||||||
}
|
|
||||||
|
|
||||||
indent_level++;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_LEAVE(
|
|
||||||
const char *file,
|
|
||||||
int line,
|
|
||||||
const char *function)
|
|
||||||
{
|
|
||||||
indent_level--;
|
|
||||||
|
|
||||||
if(__debug_level >= DEBUGLEVEL_CallTracing)
|
|
||||||
{
|
|
||||||
_INDENT();
|
|
||||||
KPrintF("%s:%ld: Leaving %s\n",file,line,function);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_RETURN(
|
|
||||||
const char *file,
|
|
||||||
int line,
|
|
||||||
const char *function,
|
|
||||||
unsigned long result)
|
|
||||||
{
|
|
||||||
indent_level--;
|
|
||||||
|
|
||||||
if(__debug_level >= DEBUGLEVEL_CallTracing)
|
|
||||||
{
|
|
||||||
_INDENT();
|
|
||||||
KPrintF("%s:%ld: Leaving %s (result 0x%08lx, %ld)\n",file,line,function,result,result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
199
library/debug.h
199
library/debug.h
@@ -1,199 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: debug.h,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=8
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _DEBUG_H
|
|
||||||
#define _DEBUG_H
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* IMPORTANT: If DEBUG is redefined, it must happen only here. This
|
|
||||||
* will cause all modules to depend upon it to be rebuilt
|
|
||||||
* by the smakefile (that is, provided the smakefile has
|
|
||||||
* all the necessary dependency lines in place).
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*#define DEBUG*/
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#define PUSH_REPORTS() PUSHDEBUGLEVEL(1)
|
|
||||||
#define PUSH_CALLS() PUSHDEBUGLEVEL(2)
|
|
||||||
#define PUSH_ALL() PUSHDEBUGLEVEL(2)
|
|
||||||
#define POP() POPDEBUGLEVEL()
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(DEBUG)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _STDLIB_H
|
|
||||||
#include <stdlib.h>
|
|
||||||
#endif /* _STDLIB_H */
|
|
||||||
|
|
||||||
#ifndef _DOS_H
|
|
||||||
#include <dos.h>
|
|
||||||
#endif /* _DOS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
extern void kprintf(const char *format,...);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
void _SHOWVALUE(unsigned long value,int size,const char *name,const char *file,int line);
|
|
||||||
void _SHOWPOINTER(const void *p,const char *name,const char *file,int line);
|
|
||||||
void _SHOWSTRING(const char *string,const char *name,const char *file,int line);
|
|
||||||
void _SHOWMSG(const char *msg,const char *file,int line);
|
|
||||||
void _ENTER(const char *file,int line,const char *function);
|
|
||||||
void _LEAVE(const char *file,int line,const char *function);
|
|
||||||
void _RETURN(const char *file,int line,const char *function,unsigned long result);
|
|
||||||
void _DPRINTF_HEADER(const char *file,int line);
|
|
||||||
void _DPRINTF(const char *format,...);
|
|
||||||
void _DLOG(const char *format,...);
|
|
||||||
int _SETDEBUGLEVEL(int level);
|
|
||||||
void _PUSHDEBUGLEVEL(int level);
|
|
||||||
void _POPDEBUGLEVEL(void);
|
|
||||||
int _GETDEBUGLEVEL(void);
|
|
||||||
void _SETPROGRAMNAME(char *name);
|
|
||||||
|
|
||||||
#if defined(__SASC)
|
|
||||||
#define ENTER() _ENTER(__FILE__,__LINE__,__FUNC__)
|
|
||||||
#define LEAVE() _LEAVE(__FILE__,__LINE__,__FUNC__)
|
|
||||||
#define RETURN(r) _RETURN(__FILE__,__LINE__,__FUNC__,(unsigned long)r)
|
|
||||||
#define SHOWVALUE(v) _SHOWVALUE((unsigned long)v,sizeof(v),#v,__FILE__,__LINE__)
|
|
||||||
#define SHOWPOINTER(p) _SHOWPOINTER(p,#p,__FILE__,__LINE__)
|
|
||||||
#define SHOWSTRING(s) _SHOWSTRING(s,#s,__FILE__,__LINE__)
|
|
||||||
#define SHOWMSG(s) _SHOWMSG(s,__FILE__,__LINE__)
|
|
||||||
#define D(s) do { _DPRINTF_HEADER(__FILE__,__LINE__); _DPRINTF s; } while(0)
|
|
||||||
#define PRINTHEADER() _DPRINTF_HEADER(__FILE__,__LINE__)
|
|
||||||
#define PRINTF(s) _DLOG s
|
|
||||||
#define LOG(s) do { _DPRINTF_HEADER(__FILE__,__LINE__); _DLOG("<%s()>:",__FUNC__); _DLOG s; } while(0)
|
|
||||||
#define SETDEBUGLEVEL(l) _SETDEBUGLEVEL(l)
|
|
||||||
#define PUSHDEBUGLEVEL(l) _PUSHDEBUGLEVEL(l)
|
|
||||||
#define POPDEBUGLEVEL() _POPDEBUGLEVEL()
|
|
||||||
#define SETPROGRAMNAME(n) _SETPROGRAMNAME(n)
|
|
||||||
#define GETDEBUGLEVEL() _GETDEBUGLEVEL()
|
|
||||||
#elif defined(__GNUC__)
|
|
||||||
#define ENTER() _ENTER(__FILE__,__LINE__,__FUNCTION__)
|
|
||||||
#define LEAVE() _LEAVE(__FILE__,__LINE__,__FUNCTION__)
|
|
||||||
#define RETURN(r) _RETURN(__FILE__,__LINE__,__FUNCTION__,(unsigned long)r)
|
|
||||||
#define SHOWVALUE(v) _SHOWVALUE((unsigned long)v,sizeof(v),#v,__FILE__,__LINE__)
|
|
||||||
#define SHOWPOINTER(p) _SHOWPOINTER(p,#p,__FILE__,__LINE__)
|
|
||||||
#define SHOWSTRING(s) _SHOWSTRING(s,#s,__FILE__,__LINE__)
|
|
||||||
#define SHOWMSG(s) _SHOWMSG(s,__FILE__,__LINE__)
|
|
||||||
#define D(s) do { _DPRINTF_HEADER(__FILE__,__LINE__); _DPRINTF s; } while(0)
|
|
||||||
#define PRINTHEADER() _DPRINTF_HEADER(__FILE__,__LINE__)
|
|
||||||
#define PRINTF(s) _DLOG s
|
|
||||||
#define LOG(s) do { _DPRINTF_HEADER(__FILE__,__LINE__); _DLOG("<%s()>:",__FUNCTION__); _DLOG s; } while(0)
|
|
||||||
#define SETDEBUGLEVEL(l) _SETDEBUGLEVEL(l)
|
|
||||||
#define PUSHDEBUGLEVEL(l) _PUSHDEBUGLEVEL(l)
|
|
||||||
#define POPDEBUGLEVEL() _POPDEBUGLEVEL()
|
|
||||||
#define SETPROGRAMNAME(n) _SETPROGRAMNAME(n)
|
|
||||||
#define GETDEBUGLEVEL() _GETDEBUGLEVEL()
|
|
||||||
#else
|
|
||||||
#define __FUNC__ ""
|
|
||||||
#define ENTER() _ENTER(__FILE__,__LINE__,__FUNC__)
|
|
||||||
#define LEAVE() _LEAVE(__FILE__,__LINE__,__FUNC__)
|
|
||||||
#define RETURN(r) _RETURN(__FILE__,__LINE__,__FUNC__,(unsigned long)r)
|
|
||||||
#define SHOWVALUE(v) _SHOWVALUE((unsigned long)v,sizeof(v),#v,__FILE__,__LINE__)
|
|
||||||
#define SHOWPOINTER(p) _SHOWPOINTER(p,#p,__FILE__,__LINE__)
|
|
||||||
#define SHOWSTRING(s) _SHOWSTRING(s,#s,__FILE__,__LINE__)
|
|
||||||
#define SHOWMSG(s) _SHOWMSG(s,__FILE__,__LINE__)
|
|
||||||
#define D(s) do { _DPRINTF_HEADER(__FILE__,__LINE__); _DPRINTF s; } while(0)
|
|
||||||
#define PRINTHEADER() _DPRINTF_HEADER(__FILE__,__LINE__)
|
|
||||||
#define PRINTF(s) _DLOG s
|
|
||||||
#define LOG(s) do { _DPRINTF_HEADER(__FILE__,__LINE__); _DLOG("<%s()>:",__FUNC__); _DLOG s; } while(0)
|
|
||||||
#define SETDEBUGLEVEL(l) _SETDEBUGLEVEL(l)
|
|
||||||
#define PUSHDEBUGLEVEL(l) _PUSHDEBUGLEVEL(l)
|
|
||||||
#define POPDEBUGLEVEL() _POPDEBUGLEVEL()
|
|
||||||
#define SETPROGRAMNAME(n) _SETPROGRAMNAME(n)
|
|
||||||
#define GETDEBUGLEVEL() _GETDEBUGLEVEL()
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef DEBUG
|
|
||||||
#define DEBUG 1
|
|
||||||
|
|
||||||
#define assert(expression) \
|
|
||||||
((void) \
|
|
||||||
((expression) ? 0 : \
|
|
||||||
( \
|
|
||||||
*(char *)0 = 0, /* Enforcer hit */ \
|
|
||||||
_SETDEBUGLEVEL(2), \
|
|
||||||
kprintf("[%s] " \
|
|
||||||
"%s:%ld: failed assertion '%s'\n", \
|
|
||||||
__program_name, \
|
|
||||||
__FILE__, \
|
|
||||||
__LINE__, \
|
|
||||||
#expression), \
|
|
||||||
abort(), \
|
|
||||||
0 \
|
|
||||||
) \
|
|
||||||
) \
|
|
||||||
)
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifdef NDEBUG
|
|
||||||
#define assert(expression) ((void)0)
|
|
||||||
#else
|
|
||||||
#include <assert.h>
|
|
||||||
#endif /* NDEBUG */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#define ENTER() ((void)0)
|
|
||||||
#define LEAVE() ((void)0)
|
|
||||||
#define RETURN(r) ((void)0)
|
|
||||||
#define SHOWVALUE(v) ((void)0)
|
|
||||||
#define SHOWPOINTER(p) ((void)0)
|
|
||||||
#define SHOWSTRING(s) ((void)0)
|
|
||||||
#define SHOWMSG(s) ((void)0)
|
|
||||||
#define D(s) ((void)0)
|
|
||||||
#define PRINTHEADER() ((void)0)
|
|
||||||
#define PRINTF(s) ((void)0)
|
|
||||||
#define LOG(s) ((void)0)
|
|
||||||
#define SETDEBUGLEVEL(l) ((void)0)
|
|
||||||
#define PUSHDEBUGLEVEL(l) ((void)0)
|
|
||||||
#define POPDEBUGLEVEL() ((void)0)
|
|
||||||
#define SETPROGRAMNAME(n) ((void)0)
|
|
||||||
#define GETDEBUGLEVEL() (0)
|
|
||||||
|
|
||||||
#define DEBUG 0
|
|
||||||
#endif /* DEBUG */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* _DEBUG_H */
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: debug.lib_rev.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "debug.lib_rev.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
char __debug_lib_version[] = VERSTAG;
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
#define VERSION 1
|
|
||||||
#define REVISION 205
|
|
||||||
#define DATE "21.8.2010"
|
|
||||||
#define VERS "debug.lib 1.205"
|
|
||||||
#define VSTRING "debug.lib 1.205 (21.8.2010)\r\n"
|
|
||||||
#define VERSTAG "\0$VER: debug.lib 1.205 (21.8.2010)"
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
205
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: debug_cmpstrexec.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "debug_headers.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
LONG
|
|
||||||
cmpstrexec(const char * source1,const char * source2)
|
|
||||||
{
|
|
||||||
LONG result = 0;
|
|
||||||
|
|
||||||
assert( source1 != NULL && source2 != NULL );
|
|
||||||
|
|
||||||
if(source1 != NULL && source2 != NULL)
|
|
||||||
{
|
|
||||||
while((*source1) == (*source2))
|
|
||||||
{
|
|
||||||
if((*source1) == '\0')
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
source1++;
|
|
||||||
source2++;
|
|
||||||
}
|
|
||||||
|
|
||||||
result = (*source1) - (*source2);
|
|
||||||
}
|
|
||||||
|
|
||||||
out:
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,158 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: debug_headers.h,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _DEBUG_HEADERS_H
|
|
||||||
#define _DEBUG_HEADERS_H
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef EXEC_LIBRARIES_H
|
|
||||||
#include <exec/libraries.h>
|
|
||||||
#endif /* EXEC_LIBRARIES_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(__SASC)
|
|
||||||
|
|
||||||
#include <clib/exec_protos.h>
|
|
||||||
#include <pragmas/exec_pragmas.h>
|
|
||||||
|
|
||||||
LONG RawMayGetChar(VOID);
|
|
||||||
VOID RawPutChar(UBYTE c);
|
|
||||||
|
|
||||||
#pragma libcall SysBase RawMayGetChar 1fe 00
|
|
||||||
#pragma libcall SysBase RawPutChar 204 001
|
|
||||||
|
|
||||||
#endif /* __SASC */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
|
||||||
|
|
||||||
#ifndef EXEC_EMULATION_H
|
|
||||||
#include <exec/emulation.h>
|
|
||||||
#endif /* EXEC_EMULATION_H */
|
|
||||||
|
|
||||||
#endif /* __amigaos4__ */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(__GNUC__)
|
|
||||||
|
|
||||||
#define __NOLIBBASE__
|
|
||||||
#include <proto/exec.h>
|
|
||||||
|
|
||||||
#ifndef __PPC__
|
|
||||||
|
|
||||||
#define RawMayGetChar() ({ \
|
|
||||||
UBYTE _RawMayGetChar__re = \
|
|
||||||
({ \
|
|
||||||
register struct Library * const __RawMayGetChar__bn __asm("a6") = SysBase;\
|
|
||||||
register UBYTE __RawMayGetChar__re __asm("d0"); \
|
|
||||||
__asm volatile ("jsr a6@(-510:W)" \
|
|
||||||
: "=r"(__RawMayGetChar__re) \
|
|
||||||
: "r"(__RawMayGetChar__bn) \
|
|
||||||
: "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
|
|
||||||
__RawMayGetChar__re; \
|
|
||||||
}); \
|
|
||||||
_RawMayGetChar__re; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define RawPutChar(c) ({ \
|
|
||||||
ULONG _RawPutChar_c = (c); \
|
|
||||||
{ \
|
|
||||||
register struct Library * const __RawPutChar__bn __asm("a6") = SysBase;\
|
|
||||||
register ULONG __RawPutChar_c __asm("d0") = (_RawPutChar_c); \
|
|
||||||
__asm volatile ("jsr a6@(-516:W)" \
|
|
||||||
: \
|
|
||||||
: "r"(__RawPutChar__bn), "r"(__RawPutChar_c) \
|
|
||||||
: "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
|
|
||||||
} \
|
|
||||||
})
|
|
||||||
|
|
||||||
#endif /* __PPC___ */
|
|
||||||
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#define SysBase (*(struct Library **)4)
|
|
||||||
#define IExec ((struct ExecIFace *)((struct ExecBase *)SysBase)->MainInterface)
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _MACROS_H
|
|
||||||
#include "macros.h"
|
|
||||||
#endif /* _MACROS_H */
|
|
||||||
|
|
||||||
#ifndef _DEBUG_H
|
|
||||||
#include "debug.h"
|
|
||||||
#endif /* _DEBUG_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
extern LONG cmpstrexec(const char *source1, const char *source2);
|
|
||||||
extern LONG KCmpStr(const char *source1, const char *source2);
|
|
||||||
extern LONG KMayGetCh(VOID);
|
|
||||||
extern LONG KMayGetChar(VOID);
|
|
||||||
extern LONG kgetc(VOID);
|
|
||||||
extern LONG kgetchar(VOID);
|
|
||||||
extern LONG kgetch(VOID);
|
|
||||||
extern LONG KGetCh(VOID);
|
|
||||||
extern LONG KGetChar(VOID);
|
|
||||||
extern LONG kgetnum(VOID);
|
|
||||||
extern LONG KGetNum(void);
|
|
||||||
extern VOID KDoFmt(const char *format_string, APTR data_stream, APTR put_char_routine, APTR put_char_data);
|
|
||||||
extern VOID KPutFmt(const char *format, va_list arg);
|
|
||||||
extern VOID KVPrintF(const char * format, va_list arg);
|
|
||||||
extern VOID kvprintf(const char *format, va_list arg);
|
|
||||||
extern VOID kprintf(const char *format, ...);
|
|
||||||
extern VOID KPrintF(const char *format, ...);
|
|
||||||
extern VOID kputc(UBYTE c);
|
|
||||||
extern VOID kputchar(UBYTE c);
|
|
||||||
extern VOID kputch(UBYTE c);
|
|
||||||
extern VOID KPutCh(UBYTE c);
|
|
||||||
extern VOID KPutChar(UBYTE c);
|
|
||||||
extern VOID kputstr(const UBYTE *s);
|
|
||||||
extern VOID KPutS(const UBYTE *s);
|
|
||||||
extern VOID kputs(const UBYTE *s);
|
|
||||||
extern VOID KPutStr(const UBYTE *s);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /* _DEBUG_HEADERS_H */
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: debug_kcmpstr.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "debug_headers.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
LONG
|
|
||||||
KCmpStr(const char * source1,const char * source2)
|
|
||||||
{
|
|
||||||
LONG result;
|
|
||||||
|
|
||||||
result = cmpstrexec(source1,source2);
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: debug_kdofmt.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "debug_headers.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
|
||||||
KDoFmt(const char * format_string,APTR data_stream,APTR put_char_routine,APTR put_char_data)
|
|
||||||
{
|
|
||||||
assert( format_string != NULL );
|
|
||||||
|
|
||||||
if(format_string != NULL)
|
|
||||||
RawDoFmt((STRPTR)format_string,data_stream,(VOID (*)())put_char_routine,put_char_data);
|
|
||||||
}
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
/*
|
|
||||||
* $Id: debug_kgetc.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
|
||||||
*
|
|
||||||
* :ts=4
|
|
||||||
*
|
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* - Neither the name of Olaf Barthel nor the names of contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "debug_headers.h"
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
LONG
|
|
||||||
kgetc(VOID)
|
|
||||||
{
|
|
||||||
LONG result;
|
|
||||||
|
|
||||||
do
|
|
||||||
result = KMayGetChar();
|
|
||||||
while(result < 0);
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user