mirror of
https://github.com/adtools/clib2.git
synced 2025-12-08 14:59:05 +00:00
Compare commits
1 Commits
V1_206
...
BEFORE_CON
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b35f5e0fdb |
@@ -1,36 +1,18 @@
|
|||||||
#
|
#
|
||||||
# $Id: GNUmakefile.68k,v 1.107 2010-10-20 13:50:16 obarthel Exp $
|
# $Id: GNUmakefile.68k,v 1.40 2005-03-11 09:37:27 obarthel Exp $
|
||||||
#
|
#
|
||||||
# :ts=8
|
# :ts=8
|
||||||
#
|
#
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
############################################
|
|
||||||
# find out the HOST operating system
|
|
||||||
# on which this makefile is run (default to AmigaOS)
|
|
||||||
HOST ?= $(shell uname)
|
|
||||||
ifeq ($(HOST),)
|
|
||||||
HOST = AmigaOS
|
|
||||||
endif
|
|
||||||
|
|
||||||
CC = gcc
|
CC = gcc
|
||||||
AR = ar -q
|
AR = ar -q
|
||||||
RANLIB = ranlib
|
RANLIB = ranlib
|
||||||
COPY = copy clone buf=0
|
COPY = copy clone buf=0
|
||||||
DELETE = delete all quiet
|
DELETE = delete all quiet
|
||||||
MAKEDIR = makedir
|
MAKEDIR = makedir
|
||||||
MAKE = $(MAKE_COMMAND) -f GNUmakefile.68k
|
MAKE = make -f GNUmakefile.68k
|
||||||
|
|
||||||
# override certain things for non-native builds
|
|
||||||
ifneq ($(HOST), AmigaOS)
|
|
||||||
CC = m68k-amigaos-gcc
|
|
||||||
AR = m68k-amigaos-ar -q
|
|
||||||
RANLIB = m68k-amigaos-ranlib
|
|
||||||
COPY = cp
|
|
||||||
DELETE = rm -rf
|
|
||||||
MAKEDIR = mkdir -p
|
|
||||||
endif
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
@@ -39,6 +21,7 @@ LIBC_OBJS = libc_objs
|
|||||||
LIBUNIX_OBJS = libunix_objs
|
LIBUNIX_OBJS = libunix_objs
|
||||||
LIBM_OBJS = libm_objs
|
LIBM_OBJS = libm_objs
|
||||||
LIBM881_OBJS = libm881_objs
|
LIBM881_OBJS = libm881_objs
|
||||||
|
LIBSTACK_OBJS = libstack_objs
|
||||||
LIBNET_OBJS = libnet_objs
|
LIBNET_OBJS = libnet_objs
|
||||||
LIBDEBUG_OBJS = libdebug_objs
|
LIBDEBUG_OBJS = libdebug_objs
|
||||||
LIBAMIGA_OBJS = libamiga_objs
|
LIBAMIGA_OBJS = libamiga_objs
|
||||||
@@ -47,6 +30,7 @@ LIBC_OBJS = $(TYPE)/libc_objs
|
|||||||
LIBUNIX_OBJS = $(TYPE)/libunix_objs
|
LIBUNIX_OBJS = $(TYPE)/libunix_objs
|
||||||
LIBM_OBJS = $(TYPE)/libm_objs
|
LIBM_OBJS = $(TYPE)/libm_objs
|
||||||
LIBM881_OBJS = $(TYPE)/libm881_objs
|
LIBM881_OBJS = $(TYPE)/libm881_objs
|
||||||
|
LIBSTACK_OBJS = $(TYPE)/libstack_objs
|
||||||
LIBNET_OBJS = $(TYPE)/libnet_objs
|
LIBNET_OBJS = $(TYPE)/libnet_objs
|
||||||
LIBDEBUG_OBJS = $(TYPE)/libdebug_objs
|
LIBDEBUG_OBJS = $(TYPE)/libdebug_objs
|
||||||
LIBAMIGA_OBJS = $(TYPE)/libamiga_objs
|
LIBAMIGA_OBJS = $(TYPE)/libamiga_objs
|
||||||
@@ -68,11 +52,15 @@ $(LIBUNIX_OBJS)/%.o : %.c
|
|||||||
|
|
||||||
$(LIBM_OBJS)/%.o : %.c
|
$(LIBM_OBJS)/%.o : %.c
|
||||||
@echo "Compiling $< [$(TYPE):m]"
|
@echo "Compiling $< [$(TYPE):m]"
|
||||||
@$(CC) -o $(LIBM_OBJS)/$*.o -c $(CFLAGS) -msoft-float -DIEEE_FLOATING_POINT_SUPPORT $<
|
@$(CC) -o $(LIBM_OBJS)/$*.o -c $(CFLAGS) -DIEEE_FLOATING_POINT_SUPPORT $<
|
||||||
|
|
||||||
$(LIBM881_OBJS)/%.o : %.c
|
$(LIBM881_OBJS)/%.o : %.c
|
||||||
@echo "Compiling $< [$(TYPE):m881]"
|
@echo "Compiling $< [$(TYPE):m881]"
|
||||||
@$(CC) -o $(LIBM881_OBJS)/$*.o -c $(CFLAGS) -m68881 -DM68881_FLOATING_POINT_SUPPORT $<
|
@$(CC) -o $(LIBM881_OBJS)/$*.o -c $(CFLAGS) -DM68881_FLOATING_POINT_SUPPORT -m68881 $<
|
||||||
|
|
||||||
|
$(LIBSTACK_OBJS)/%.o : %.c
|
||||||
|
@echo "Compiling $< [$(TYPE):stack]"
|
||||||
|
@$(CC) -o $(LIBSTACK_OBJS)/$*.o -c $(CFLAGS) -DSTACK_EXTENSION $<
|
||||||
|
|
||||||
$(LIBNET_OBJS)/%.o : %.c
|
$(LIBNET_OBJS)/%.o : %.c
|
||||||
@echo "Compiling $< [$(TYPE):net]"
|
@echo "Compiling $< [$(TYPE):net]"
|
||||||
@@ -90,7 +78,7 @@ $(LIBAMIGA_OBJS)/%.o : %.c
|
|||||||
|
|
||||||
ifeq (small_data_020,$(TYPE))
|
ifeq (small_data_020,$(TYPE))
|
||||||
CODE_TYPE := -m68020-60
|
CODE_TYPE := -m68020-60
|
||||||
CODE_FLAGS := -fbaserel -DSMALL_DATA -DM68020 -DUSE_64_BIT_INTS
|
CODE_FLAGS := -fbaserel -DSMALL_DATA -DM68020
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (small_data,$(TYPE))
|
ifeq (small_data,$(TYPE))
|
||||||
@@ -100,12 +88,12 @@ endif
|
|||||||
|
|
||||||
ifeq (small_data32,$(TYPE))
|
ifeq (small_data32,$(TYPE))
|
||||||
CODE_TYPE := -m68020-60
|
CODE_TYPE := -m68020-60
|
||||||
CODE_FLAGS := -fbaserel32 -DSMALL_DATA32 -DM68020 -DUSE_64_BIT_INTS
|
CODE_FLAGS := -fbaserel32 -DSMALL_DATA32 -DM68020
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (large_data_020,$(TYPE))
|
ifeq (large_data_020,$(TYPE))
|
||||||
CODE_TYPE := -m68020-60
|
CODE_TYPE := -m68020-60
|
||||||
CODE_FLAGS := -DM68020 -DUSE_64_BIT_INTS
|
CODE_FLAGS := -DM68020
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (large_data,$(TYPE))
|
ifeq (large_data,$(TYPE))
|
||||||
@@ -122,19 +110,14 @@ WARNINGS = \
|
|||||||
# -Wconversion -Wshadow
|
# -Wconversion -Wshadow
|
||||||
|
|
||||||
INCLUDES = -Iinclude -I. -Inetinclude
|
INCLUDES = -Iinclude -I. -Inetinclude
|
||||||
#OPTIONS = -fno-builtin -fno-common -DDEBUG
|
OPTIONS = -DNDEBUG -fno-builtin
|
||||||
OPTIONS = -fno-builtin -fno-common -DNDEBUG
|
#OPTIONS = -D__MEM_DEBUG -fno-builtin
|
||||||
#OPTIONS = -fno-builtin -fno-common -DNDEBUG -D__THREAD_SAFE
|
#OPTIONS = -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG -fno-builtin
|
||||||
#OPTIONS = -fno-builtin -fno-common -D__MEM_DEBUG
|
|
||||||
#OPTIONS = -fno-builtin -fno-common -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG
|
|
||||||
#OPTIMIZE = -O3 -fomit-frame-pointer -funroll-loops -finline-functions
|
|
||||||
OPTIMIZE = -O -fomit-frame-pointer -fstrength-reduce -finline-functions
|
OPTIMIZE = -O -fomit-frame-pointer -fstrength-reduce -finline-functions
|
||||||
#OPTIMIZE = -O2 -fomit-frame-pointer
|
#OPTIMIZE = -O2 -fomit-frame-pointer
|
||||||
#DEBUG = -g
|
#DEBUG = -g2
|
||||||
|
|
||||||
CFLAGS = \
|
CFLAGS = $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(CODE_FLAGS) $(CODE_TYPE) $(INCLUDES)
|
||||||
$(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) \
|
|
||||||
$(CODE_FLAGS) $(INCLUDES) $(CODE_TYPE)
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
@@ -143,7 +126,6 @@ C_LIB = \
|
|||||||
ctype_isalnum.o \
|
ctype_isalnum.o \
|
||||||
ctype_isalpha.o \
|
ctype_isalpha.o \
|
||||||
ctype_isascii.o \
|
ctype_isascii.o \
|
||||||
ctype_isblank.o \
|
|
||||||
ctype_iscntrl.o \
|
ctype_iscntrl.o \
|
||||||
ctype_isdigit.o \
|
ctype_isdigit.o \
|
||||||
ctype_isgraph.o \
|
ctype_isgraph.o \
|
||||||
@@ -172,10 +154,6 @@ C_LIB = \
|
|||||||
fcntl_write.o \
|
fcntl_write.o \
|
||||||
ftw_ftw.o \
|
ftw_ftw.o \
|
||||||
ftw_nftw.o \
|
ftw_nftw.o \
|
||||||
inttypes_imaxdiv.o \
|
|
||||||
inttypes_imaxabs.o \
|
|
||||||
inttypes_strtoimax.o \
|
|
||||||
inttypes_strtoumax.o \
|
|
||||||
libgen_basename.o \
|
libgen_basename.o \
|
||||||
libgen_dirname.o \
|
libgen_dirname.o \
|
||||||
locale_init_exit.o \
|
locale_init_exit.o \
|
||||||
@@ -188,7 +166,6 @@ C_LIB = \
|
|||||||
signal_checkabort.o \
|
signal_checkabort.o \
|
||||||
signal_data.o \
|
signal_data.o \
|
||||||
signal_kill.o \
|
signal_kill.o \
|
||||||
signal_mask.o \
|
|
||||||
signal_raise.o \
|
signal_raise.o \
|
||||||
signal_sigaddset.o \
|
signal_sigaddset.o \
|
||||||
signal_sigblock.o \
|
signal_sigblock.o \
|
||||||
@@ -202,14 +179,11 @@ C_LIB = \
|
|||||||
stat_fchmod.o \
|
stat_fchmod.o \
|
||||||
stat_fstat.o \
|
stat_fstat.o \
|
||||||
stat_lstat.o \
|
stat_lstat.o \
|
||||||
stat_lock.o \
|
|
||||||
stat_mkdir.o \
|
stat_mkdir.o \
|
||||||
stat_rmdir.o \
|
stat_rmdir.o \
|
||||||
stat_stat.o \
|
stat_stat.o \
|
||||||
stat_umask.o \
|
stat_umask.o \
|
||||||
stdio_asprintf.o \
|
stdio_asprintf.o \
|
||||||
stdio_change_fd_action.o \
|
|
||||||
stdio_change_fd_user_data.o \
|
|
||||||
stdio_clearerr.o \
|
stdio_clearerr.o \
|
||||||
stdio_dropiobreadbuffer.o \
|
stdio_dropiobreadbuffer.o \
|
||||||
stdio_duplicate_fd.o \
|
stdio_duplicate_fd.o \
|
||||||
@@ -227,7 +201,6 @@ C_LIB = \
|
|||||||
stdio_findvacantiobentry.o \
|
stdio_findvacantiobentry.o \
|
||||||
stdio_flockfile.o \
|
stdio_flockfile.o \
|
||||||
stdio_flush.o \
|
stdio_flush.o \
|
||||||
stdio_flush_all_files.o \
|
|
||||||
stdio_flushiobwritebuffer.o \
|
stdio_flushiobwritebuffer.o \
|
||||||
stdio_fopen.o \
|
stdio_fopen.o \
|
||||||
stdio_fprintf.o \
|
stdio_fprintf.o \
|
||||||
@@ -237,10 +210,8 @@ C_LIB = \
|
|||||||
stdio_freopen.o \
|
stdio_freopen.o \
|
||||||
stdio_fscanf.o \
|
stdio_fscanf.o \
|
||||||
stdio_fseek.o \
|
stdio_fseek.o \
|
||||||
stdio_fseeko.o \
|
|
||||||
stdio_fsetpos.o \
|
stdio_fsetpos.o \
|
||||||
stdio_ftell.o \
|
stdio_ftell.o \
|
||||||
stdio_ftello.o \
|
|
||||||
stdio_ftrylockfile.o \
|
stdio_ftrylockfile.o \
|
||||||
stdio_funlockfile.o \
|
stdio_funlockfile.o \
|
||||||
stdio_fwrite.o \
|
stdio_fwrite.o \
|
||||||
@@ -249,7 +220,6 @@ C_LIB = \
|
|||||||
stdio_getchar.o \
|
stdio_getchar.o \
|
||||||
stdio_getchar_unlocked.o \
|
stdio_getchar_unlocked.o \
|
||||||
stdio_gets.o \
|
stdio_gets.o \
|
||||||
stdio_get_fd.o \
|
|
||||||
stdio_get_file_descriptor.o \
|
stdio_get_file_descriptor.o \
|
||||||
stdio_growfdtable.o \
|
stdio_growfdtable.o \
|
||||||
stdio_growiobtable.o \
|
stdio_growiobtable.o \
|
||||||
@@ -275,7 +245,6 @@ C_LIB = \
|
|||||||
stdio_remove.o \
|
stdio_remove.o \
|
||||||
stdio_remove_fd_alias.o \
|
stdio_remove_fd_alias.o \
|
||||||
stdio_rename.o \
|
stdio_rename.o \
|
||||||
stdio_resolve_fd_file.o \
|
|
||||||
stdio_rewind.o \
|
stdio_rewind.o \
|
||||||
stdio_scanf.o \
|
stdio_scanf.o \
|
||||||
stdio_setbuf.o \
|
stdio_setbuf.o \
|
||||||
@@ -298,13 +267,9 @@ C_LIB = \
|
|||||||
stdio_vsnprintf_hook_entry.o \
|
stdio_vsnprintf_hook_entry.o \
|
||||||
stdio_vsprintf.o \
|
stdio_vsprintf.o \
|
||||||
stdio_vsprintf_hook_entry.o \
|
stdio_vsprintf_hook_entry.o \
|
||||||
stdio_vsscanf.o \
|
|
||||||
stdio_vscanf.o \
|
|
||||||
stdlib_abort.o \
|
stdlib_abort.o \
|
||||||
stdlib_abs.o \
|
stdlib_abs.o \
|
||||||
stdlib_alloca.o \
|
stdlib_alloca.o \
|
||||||
stdlib_alloca_cleanup.o \
|
|
||||||
stdlib_alloca_trap.o \
|
|
||||||
stdlib_assertion_failure.o \
|
stdlib_assertion_failure.o \
|
||||||
stdlib_atexit.o \
|
stdlib_atexit.o \
|
||||||
stdlib_atoi.o \
|
stdlib_atoi.o \
|
||||||
@@ -328,19 +293,13 @@ C_LIB = \
|
|||||||
stdlib_free.o \
|
stdlib_free.o \
|
||||||
stdlib_getdefstacksize.o \
|
stdlib_getdefstacksize.o \
|
||||||
stdlib_getenv.o \
|
stdlib_getenv.o \
|
||||||
stdlib_getmemstats.o \
|
|
||||||
stdlib_getsp.o \
|
stdlib_getsp.o \
|
||||||
stdlib_get_errno.o \
|
stdlib_get_errno.o \
|
||||||
|
stdlib_init_exit.o \
|
||||||
stdlib_isresident.o \
|
stdlib_isresident.o \
|
||||||
stdlib_labs.o \
|
stdlib_labs.o \
|
||||||
stdlib_llabs.o \
|
|
||||||
stdlib_ldiv.o \
|
stdlib_ldiv.o \
|
||||||
stdlib_lldiv.o \
|
|
||||||
stdlib_lib_main.o \
|
|
||||||
stdlib_lib_startup.o \
|
|
||||||
stdlib_machine_test.o \
|
stdlib_machine_test.o \
|
||||||
stdlib_main.o \
|
|
||||||
stdlib_main_stub.o \
|
|
||||||
stdlib_malloc.o \
|
stdlib_malloc.o \
|
||||||
stdlib_math.o \
|
stdlib_math.o \
|
||||||
stdlib_mkdtemp.o \
|
stdlib_mkdtemp.o \
|
||||||
@@ -353,14 +312,12 @@ C_LIB = \
|
|||||||
stdlib_oslibversion.o \
|
stdlib_oslibversion.o \
|
||||||
stdlib_priority.o \
|
stdlib_priority.o \
|
||||||
stdlib_process_name.o \
|
stdlib_process_name.o \
|
||||||
stdlib_program_name.o \
|
|
||||||
stdlib_putenv.o \
|
stdlib_putenv.o \
|
||||||
stdlib_qsort.o \
|
stdlib_qsort.o \
|
||||||
stdlib_rand.o \
|
stdlib_rand.o \
|
||||||
stdlib_rand_r.o \
|
stdlib_rand_r.o \
|
||||||
stdlib_realloc.o \
|
stdlib_realloc.o \
|
||||||
stdlib_red_black.o \
|
stdlib_red_black.o \
|
||||||
stdlib_resetmemstats.o \
|
|
||||||
stdlib_semaphore.o \
|
stdlib_semaphore.o \
|
||||||
stdlib_setenv.o \
|
stdlib_setenv.o \
|
||||||
stdlib_setjmp.o \
|
stdlib_setjmp.o \
|
||||||
@@ -368,7 +325,12 @@ C_LIB = \
|
|||||||
stdlib_set_process_window.o \
|
stdlib_set_process_window.o \
|
||||||
stdlib_shell_escape.o \
|
stdlib_shell_escape.o \
|
||||||
stdlib_showerror.o \
|
stdlib_showerror.o \
|
||||||
|
stdlib_socket.o \
|
||||||
stdlib_srand.o \
|
stdlib_srand.o \
|
||||||
|
stdlib_stackargbytes.o \
|
||||||
|
stdlib_stackcheck.o \
|
||||||
|
stdlib_stackoverflow.o \
|
||||||
|
stdlib_stacksafezone.o \
|
||||||
stdlib_stacksize.o \
|
stdlib_stacksize.o \
|
||||||
stdlib_stack_usage.o \
|
stdlib_stack_usage.o \
|
||||||
stdlib_arg.o \
|
stdlib_arg.o \
|
||||||
@@ -382,11 +344,11 @@ C_LIB = \
|
|||||||
stdlib_system.o \
|
stdlib_system.o \
|
||||||
stdlib_termination_message.o \
|
stdlib_termination_message.o \
|
||||||
stdlib_threshold.o \
|
stdlib_threshold.o \
|
||||||
stdlib_utilitybase.o \
|
|
||||||
stdlib_udivsi3.o \
|
stdlib_udivsi3.o \
|
||||||
stdlib_udivsi4.o \
|
stdlib_udivsi4.o \
|
||||||
stdlib_umodsi3.o \
|
stdlib_umodsi3.o \
|
||||||
stdlib_unsetenv.o \
|
stdlib_unsetenv.o \
|
||||||
|
stdlib_wildcard_expand.o \
|
||||||
strings_ffs.o \
|
strings_ffs.o \
|
||||||
strings_strcasecmp.o \
|
strings_strcasecmp.o \
|
||||||
strings_strncasecmp.o \
|
strings_strncasecmp.o \
|
||||||
@@ -408,7 +370,6 @@ C_LIB = \
|
|||||||
string_strcspn.o \
|
string_strcspn.o \
|
||||||
string_strdup.o \
|
string_strdup.o \
|
||||||
string_strerror.o \
|
string_strerror.o \
|
||||||
string_strerror_r.o \
|
|
||||||
string_strlcat.o \
|
string_strlcat.o \
|
||||||
string_strlcpy.o \
|
string_strlcpy.o \
|
||||||
string_strlen.o \
|
string_strlen.o \
|
||||||
@@ -442,9 +403,6 @@ C_LIB = \
|
|||||||
time_strftime.o \
|
time_strftime.o \
|
||||||
time_time.o \
|
time_time.o \
|
||||||
time_weekday.o \
|
time_weekday.o \
|
||||||
uio_readv.o \
|
|
||||||
uio_writev.o \
|
|
||||||
ulimit_ulimit.o \
|
|
||||||
unistd_access.o \
|
unistd_access.o \
|
||||||
unistd_chdir.o \
|
unistd_chdir.o \
|
||||||
unistd_chdir_exit.o \
|
unistd_chdir_exit.o \
|
||||||
@@ -465,7 +423,6 @@ C_LIB = \
|
|||||||
unistd_isatty.o \
|
unistd_isatty.o \
|
||||||
unistd_lchown.o \
|
unistd_lchown.o \
|
||||||
unistd_link.o \
|
unistd_link.o \
|
||||||
unistd_lockf.o \
|
|
||||||
unistd_readlink.o \
|
unistd_readlink.o \
|
||||||
unistd_realpath.o \
|
unistd_realpath.o \
|
||||||
unistd_sleep.o \
|
unistd_sleep.o \
|
||||||
@@ -475,7 +432,6 @@ C_LIB = \
|
|||||||
unistd_time_delay.o \
|
unistd_time_delay.o \
|
||||||
unistd_truncate.o \
|
unistd_truncate.o \
|
||||||
unistd_unlink.o \
|
unistd_unlink.o \
|
||||||
unistd_unlink_retries.o \
|
|
||||||
unistd_usleep.o \
|
unistd_usleep.o \
|
||||||
utime_utime.o \
|
utime_utime.o \
|
||||||
utsname_uname.o
|
utsname_uname.o
|
||||||
@@ -490,19 +446,14 @@ UNIX_LIB = \
|
|||||||
fcntl_fcntl.o \
|
fcntl_fcntl.o \
|
||||||
fcntl_open.o \
|
fcntl_open.o \
|
||||||
fcntl_get_default_file.o \
|
fcntl_get_default_file.o \
|
||||||
getopt_getopt_long.o \
|
|
||||||
mount_convertinfo.o \
|
mount_convertinfo.o \
|
||||||
mount_statfs.o \
|
mount_statfs.o \
|
||||||
resource_getrlimit.o \
|
|
||||||
resource_setrlimit.o \
|
|
||||||
stat_chmod.o \
|
stat_chmod.o \
|
||||||
stat_fstat.o \
|
stat_fstat.o \
|
||||||
stat_lstat.o \
|
stat_lstat.o \
|
||||||
stat_lock.o \
|
|
||||||
stat_mkdir.o \
|
stat_mkdir.o \
|
||||||
stat_rmdir.o \
|
stat_rmdir.o \
|
||||||
stat_stat.o \
|
stat_stat.o \
|
||||||
stdio_ctermid.o \
|
|
||||||
stdio_fdhookentry.o \
|
stdio_fdhookentry.o \
|
||||||
stdio_fflush.o \
|
stdio_fflush.o \
|
||||||
stdio_fopen.o \
|
stdio_fopen.o \
|
||||||
@@ -514,225 +465,64 @@ UNIX_LIB = \
|
|||||||
stdio_record_locking.o \
|
stdio_record_locking.o \
|
||||||
stdio_remove.o \
|
stdio_remove.o \
|
||||||
stdio_rename.o \
|
stdio_rename.o \
|
||||||
stdlib_alloca.o \
|
|
||||||
stdlib_alloca_cleanup.o \
|
|
||||||
stdlib_alloca_trap.o \
|
|
||||||
stdlib_arg.o \
|
|
||||||
stdlib_expand_wildcard.o \
|
|
||||||
stdlib_expand_wildcard_check.o \
|
|
||||||
stdlib_getmemstats.o \
|
|
||||||
stdlib_main.o \
|
|
||||||
stdlib_main_stub.o \
|
|
||||||
stdlib_mkdtemp.o \
|
stdlib_mkdtemp.o \
|
||||||
stdlib_mkstemp.o \
|
stdlib_mkstemp.o \
|
||||||
stdlib_mktemp.o \
|
stdlib_mktemp.o \
|
||||||
stdlib_malloc.o \
|
|
||||||
stdlib_realloc.o \
|
|
||||||
stdlib_resetmemstats.o \
|
|
||||||
stdlib_system.o \
|
stdlib_system.o \
|
||||||
systeminfo_sysinfo.o \
|
|
||||||
termios_cfgetispeed.o \
|
|
||||||
termios_cfgetospeed.o \
|
|
||||||
termios_cfmakeraw.o \
|
|
||||||
termios_cfsetispeed.o \
|
|
||||||
termios_cfsetospeed.o \
|
|
||||||
termios_console_fdhookentry.o \
|
|
||||||
termios_tcdrain.o \
|
|
||||||
termios_tcflow.o \
|
|
||||||
termios_tcflush.o \
|
|
||||||
termios_tcgetattr.o \
|
|
||||||
termios_tcsendbreak.o \
|
|
||||||
termios_tcsetattr.o \
|
|
||||||
timeb_ftime.o \
|
|
||||||
uio_readv.o \
|
|
||||||
uio_writev.o \
|
|
||||||
unistd_access.o \
|
unistd_access.o \
|
||||||
unistd_chdir.o \
|
unistd_chdir.o \
|
||||||
unistd_chdir_exit.o \
|
unistd_chdir_exit.o \
|
||||||
unistd_chown.o \
|
unistd_chown.o \
|
||||||
unistd_common_pathconf.o \
|
|
||||||
unistd_def_path.o \
|
|
||||||
unistd_def_path_delimiter.o \
|
|
||||||
unistd_environ.o \
|
|
||||||
unistd_execl.o \
|
|
||||||
unistd_execle.o \
|
|
||||||
unistd_execlp.o \
|
|
||||||
unistd_execv.o \
|
|
||||||
unistd_execve.o \
|
|
||||||
unistd_execve_env_exit.o \
|
|
||||||
unistd_execve_env_init.o \
|
|
||||||
unistd_execve_exit.o \
|
|
||||||
unistd_execvp.o \
|
|
||||||
unistd_fpathconf.o \
|
|
||||||
unistd_getcwd.o \
|
unistd_getcwd.o \
|
||||||
unistd_lchown.o \
|
unistd_lchown.o \
|
||||||
unistd_link.o \
|
unistd_link.o \
|
||||||
unistd_lockf.o \
|
|
||||||
unistd_pathconf.o \
|
|
||||||
unistd_readlink.o \
|
unistd_readlink.o \
|
||||||
unistd_realpath.o \
|
unistd_realpath.o \
|
||||||
unistd_restorepathname.o \
|
unistd_restorepathname.o \
|
||||||
unistd_setcurrentpath.o \
|
unistd_setcurrentpath.o \
|
||||||
unistd_strip_double_slash.o \
|
unistd_strip_double_slash.o \
|
||||||
unistd_symlink.o \
|
|
||||||
unistd_translatea2u.o \
|
unistd_translatea2u.o \
|
||||||
unistd_translaterel.o \
|
unistd_translaterel.o \
|
||||||
unistd_translateu2a.o \
|
unistd_translateu2a.o \
|
||||||
unistd_truncate.o \
|
unistd_truncate.o \
|
||||||
unistd_ttyname.o \
|
|
||||||
unistd_ttyname_r.o \
|
|
||||||
unistd_unix_path_semantics.o \
|
unistd_unix_path_semantics.o \
|
||||||
unistd_unlink.o \
|
unistd_unlink.o \
|
||||||
unistd_wildcard_expand.o \
|
unistd_wildcard_expand.o \
|
||||||
utime_utime.o
|
utime_utime.o
|
||||||
|
|
||||||
MATH_LIB = \
|
MATH_LIB = \
|
||||||
complex_carg.o \
|
|
||||||
complex_cargf.o \
|
|
||||||
complex_cargl.o \
|
|
||||||
complex_cimag.o \
|
|
||||||
complex_cimagf.o \
|
|
||||||
complex_cimagl.o \
|
|
||||||
complex_conj.o \
|
|
||||||
complex_conjf.o \
|
|
||||||
complex_conjl.o \
|
|
||||||
complex_creal.o \
|
|
||||||
complex_crealf.o \
|
|
||||||
complex_creall.o \
|
|
||||||
fenv_feclearexcept.o \
|
|
||||||
fenv_fegetenv.o \
|
|
||||||
fenv_fegetexceptflag.o \
|
|
||||||
fenv_fegetround.o \
|
|
||||||
fenv_feholdexcept.o \
|
|
||||||
fenv_feraiseexcept.o \
|
|
||||||
fenv_fesetenv.o \
|
|
||||||
fenv_fesetexceptflag.o \
|
|
||||||
fenv_fetestexcept.o \
|
|
||||||
fenv_fetestround.o \
|
|
||||||
fenv_feupdateenv.o \
|
|
||||||
math_acos.o \
|
math_acos.o \
|
||||||
math_acosf.o \
|
|
||||||
math_acosh.o \
|
|
||||||
math_acoshf.o \
|
|
||||||
math_asin.o \
|
math_asin.o \
|
||||||
math_asinf.o \
|
|
||||||
math_asinh.o \
|
|
||||||
math_asinhf.o \
|
|
||||||
math_atan.o \
|
math_atan.o \
|
||||||
math_atan2.o \
|
math_atan2.o \
|
||||||
math_atan2f.o \
|
|
||||||
math_atanf.o \
|
|
||||||
math_atanh.o \
|
|
||||||
math_atanhf.o \
|
|
||||||
math_cbrt.o \
|
|
||||||
math_cbrtf.o \
|
|
||||||
math_ceil.o \
|
math_ceil.o \
|
||||||
math_ceilf.o \
|
|
||||||
math_copysign.o \
|
|
||||||
math_copysignf.o \
|
|
||||||
math_cos.o \
|
math_cos.o \
|
||||||
math_cosf.o \
|
|
||||||
math_cosh.o \
|
math_cosh.o \
|
||||||
math_coshf.o \
|
|
||||||
math_erf.o \
|
|
||||||
math_erfc.o \
|
|
||||||
math_erfcf.o \
|
|
||||||
math_erff.o \
|
|
||||||
math_exp.o \
|
math_exp.o \
|
||||||
math_exp2.o \
|
|
||||||
math_exp2f.o \
|
|
||||||
math_expf.o \
|
|
||||||
math_expm1.o \
|
|
||||||
math_expm1f.o \
|
|
||||||
math_fabs.o \
|
math_fabs.o \
|
||||||
math_fabsf.o \
|
|
||||||
math_fdim.o \
|
|
||||||
math_fdimf.o \
|
|
||||||
math_floor.o \
|
math_floor.o \
|
||||||
math_floorf.o \
|
|
||||||
math_fma.o \
|
|
||||||
math_fmaf.o \
|
|
||||||
math_fmax.o \
|
|
||||||
math_fmaxf.o \
|
|
||||||
math_fmin.o \
|
|
||||||
math_fminf.o \
|
|
||||||
math_fmod.o \
|
math_fmod.o \
|
||||||
math_fmodf.o \
|
|
||||||
math_fpclassify.o \
|
|
||||||
math_frexp.o \
|
math_frexp.o \
|
||||||
math_frexpf.o \
|
|
||||||
math_huge_val.o \
|
math_huge_val.o \
|
||||||
math_huge_valf.o \
|
|
||||||
math_hypot.o \
|
math_hypot.o \
|
||||||
math_hypotf.o \
|
|
||||||
math_ilogb.o \
|
|
||||||
math_ilogbf.o \
|
|
||||||
math_inf.o \
|
|
||||||
math_inff.o \
|
|
||||||
math_init_exit.o \
|
math_init_exit.o \
|
||||||
math_isfinite.o \
|
math_isinf.o \
|
||||||
math_isunordered.o \
|
math_isnan.o \
|
||||||
math_kernel_cosf.o \
|
|
||||||
math_kernel_sinf.o \
|
|
||||||
math_kernel_tanf.o \
|
|
||||||
math_ldexp.o \
|
math_ldexp.o \
|
||||||
math_ldexpf.o \
|
|
||||||
math_lgamma.o \
|
|
||||||
math_lgammaf.o \
|
|
||||||
math_llrint.o \
|
|
||||||
math_log.o \
|
math_log.o \
|
||||||
math_log10.o \
|
math_log10.o \
|
||||||
math_log10f.o \
|
|
||||||
math_log1p.o \
|
|
||||||
math_log1pf.o \
|
|
||||||
math_log2.o \
|
|
||||||
math_log2f.o \
|
|
||||||
math_logb.o \
|
math_logb.o \
|
||||||
math_logbf.o \
|
|
||||||
math_logf.o \
|
|
||||||
math_lrint.o \
|
|
||||||
math_lrintf.o \
|
|
||||||
math_lround.o \
|
|
||||||
math_lroundf.o \
|
|
||||||
math_modf.o \
|
math_modf.o \
|
||||||
math_modff.o \
|
|
||||||
math_nan.o \
|
|
||||||
math_nanf.o \
|
|
||||||
math_nearbyint.o \
|
|
||||||
math_nearbyintf.o \
|
|
||||||
math_nextafter.o \
|
|
||||||
math_nextafterf.o \
|
|
||||||
math_pow.o \
|
math_pow.o \
|
||||||
math_powf.o \
|
|
||||||
math_remainder.o \
|
|
||||||
math_remainderf.o \
|
|
||||||
math_remquo.o \
|
|
||||||
math_remquof.o \
|
|
||||||
math_rem_pio2f.o \
|
|
||||||
math_rint.o \
|
math_rint.o \
|
||||||
math_rintf.o \
|
math_rintf.o \
|
||||||
math_round.o \
|
|
||||||
math_roundf.o \
|
|
||||||
math_scalbn.o \
|
|
||||||
math_scalbnf.o \
|
|
||||||
math_signbit.o \
|
|
||||||
math_sin.o \
|
math_sin.o \
|
||||||
math_sinf.o \
|
|
||||||
math_sinh.o \
|
math_sinh.o \
|
||||||
math_sinhf.o \
|
|
||||||
math_sqrt.o \
|
math_sqrt.o \
|
||||||
math_sqrtf.o \
|
|
||||||
math_tan.o \
|
math_tan.o \
|
||||||
math_tanf.o \
|
|
||||||
math_tanh.o \
|
math_tanh.o \
|
||||||
math_tanhf.o \
|
|
||||||
math_tgamma.o \
|
|
||||||
math_tgammaf.o \
|
|
||||||
math_trunc.o \
|
|
||||||
math_truncf.o \
|
|
||||||
stdio_asprintf.o \
|
stdio_asprintf.o \
|
||||||
stdio_flush.o \
|
stdio_flush.o \
|
||||||
stdio_flush_all_files.o \
|
|
||||||
stdio_fprintf.o \
|
stdio_fprintf.o \
|
||||||
stdio_fscanf.o \
|
stdio_fscanf.o \
|
||||||
stdio_printf.o \
|
stdio_printf.o \
|
||||||
@@ -743,18 +533,16 @@ MATH_LIB = \
|
|||||||
stdio_vasprintf.o \
|
stdio_vasprintf.o \
|
||||||
stdio_vfprintf.o \
|
stdio_vfprintf.o \
|
||||||
stdio_vfscanf.o \
|
stdio_vfscanf.o \
|
||||||
stdio_vsscanf.o \
|
|
||||||
stdio_vscanf.o \
|
|
||||||
stdio_vprintf.o \
|
stdio_vprintf.o \
|
||||||
stdio_vsnprintf.o \
|
stdio_vsnprintf.o \
|
||||||
stdio_vsprintf.o \
|
stdio_vsprintf.o \
|
||||||
stdlib_atof.o \
|
stdlib_atof.o \
|
||||||
stdlib_strtod.o \
|
stdlib_strtod.o \
|
||||||
stdlib_strtof.o \
|
|
||||||
time_difftime.o
|
time_difftime.o
|
||||||
|
|
||||||
MATH_LIB_881 = \
|
MATH_LIB_881 = \
|
||||||
m881.lib_rev.o \
|
m881.lib_rev.o \
|
||||||
|
stdlib_machine_test.o \
|
||||||
$(MATH_LIB)
|
$(MATH_LIB)
|
||||||
|
|
||||||
MATH_LIB_IEEE = \
|
MATH_LIB_IEEE = \
|
||||||
@@ -791,11 +579,18 @@ MATH_LIB_IEEE = \
|
|||||||
math_subsf3.o \
|
math_subsf3.o \
|
||||||
math_truncdfsf2.o
|
math_truncdfsf2.o
|
||||||
|
|
||||||
|
STACK_LIB = \
|
||||||
|
stack.lib_rev.o \
|
||||||
|
stdlib_setjmp.o \
|
||||||
|
stdlib_stackextension.o \
|
||||||
|
stdlib_stackminframe.o \
|
||||||
|
stdlib_stackoverflow.o \
|
||||||
|
stdlib_stacksafezone.o
|
||||||
|
|
||||||
NET_LIB = \
|
NET_LIB = \
|
||||||
net.lib_rev.o \
|
net.lib_rev.o \
|
||||||
socket_accept.o \
|
socket_accept.o \
|
||||||
socket_bind.o \
|
socket_bind.o \
|
||||||
socket_check_daemon.o \
|
|
||||||
socket_connect.o \
|
socket_connect.o \
|
||||||
socket_gethostbyaddr.o \
|
socket_gethostbyaddr.o \
|
||||||
socket_gethostbyname.o \
|
socket_gethostbyname.o \
|
||||||
@@ -822,13 +617,10 @@ NET_LIB = \
|
|||||||
socket_ioctl.o \
|
socket_ioctl.o \
|
||||||
socket_isdaemon.o \
|
socket_isdaemon.o \
|
||||||
socket_listen.o \
|
socket_listen.o \
|
||||||
socket_obtain_daemon.o \
|
|
||||||
socket_recv.o \
|
socket_recv.o \
|
||||||
socket_recvfrom.o \
|
socket_recvfrom.o \
|
||||||
socket_recvmsg.o \
|
socket_recvmsg.o \
|
||||||
socket_select_signal.o \
|
|
||||||
socket_select.o \
|
socket_select.o \
|
||||||
socket_wait_select.o \
|
|
||||||
socket_send.o \
|
socket_send.o \
|
||||||
socket_sendmsg.o \
|
socket_sendmsg.o \
|
||||||
socket_sendto.o \
|
socket_sendto.o \
|
||||||
@@ -837,10 +629,7 @@ NET_LIB = \
|
|||||||
socket_socket.o \
|
socket_socket.o \
|
||||||
socket_hook_entry.o \
|
socket_hook_entry.o \
|
||||||
socket_hstrerror.o \
|
socket_hstrerror.o \
|
||||||
socket_get_h_errno.o \
|
|
||||||
socket_set_h_errno.o \
|
|
||||||
stat_umask.o \
|
stat_umask.o \
|
||||||
systeminfo_sysinfo.o \
|
|
||||||
usergroup_crypt.o \
|
usergroup_crypt.o \
|
||||||
usergroup_data.o \
|
usergroup_data.o \
|
||||||
usergroup_endgrent.o \
|
usergroup_endgrent.o \
|
||||||
@@ -952,7 +741,7 @@ MEMDEBUG_LIB = \
|
|||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
LIBS_68K := $(LIBC_OBJS)/libc.a $(LIBUNIX_OBJS)/libunix.a \
|
LIBS_68K := $(LIBC_OBJS)/libc.a $(LIBSTACK_OBJS)/libstack.a $(LIBUNIX_OBJS)/libunix.a \
|
||||||
$(LIBNET_OBJS)/libnet.a $(LIBDEBUG_OBJS)/libdebug.a $(LIBAMIGA_OBJS)/libamiga.a \
|
$(LIBNET_OBJS)/libnet.a $(LIBDEBUG_OBJS)/libdebug.a $(LIBAMIGA_OBJS)/libamiga.a \
|
||||||
$(LIBM_OBJS)/libm.a
|
$(LIBM_OBJS)/libm.a
|
||||||
LIBS_020 := $(LIBM881_OBJS)/libm881.a $(LIBS_68K)
|
LIBS_020 := $(LIBM881_OBJS)/libm881.a $(LIBS_68K)
|
||||||
@@ -968,7 +757,7 @@ endif
|
|||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
STARTUPS := nrcrt0.o nbcrt0.o nr32crt0.o nb32crt0.o ncrt0.o
|
STARTUPS := nrcrt0.o nbcrt0.o nr32crt0.o nb32crt0.o ncrt0.o mainnb.o mainb.o mainb32.o
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
@@ -978,6 +767,9 @@ all: \
|
|||||||
lib/ncrt0.o \
|
lib/ncrt0.o \
|
||||||
lib/n32bcrt0.o \
|
lib/n32bcrt0.o \
|
||||||
lib/n32rcrt0.o \
|
lib/n32rcrt0.o \
|
||||||
|
lib/mainnb.o \
|
||||||
|
lib/mainb.o \
|
||||||
|
lib/mainb32.o \
|
||||||
lib/libm020/libm.a \
|
lib/libm020/libm.a \
|
||||||
lib/libm.a \
|
lib/libm.a \
|
||||||
lib/libb/libm.a \
|
lib/libb/libm.a \
|
||||||
@@ -989,7 +781,7 @@ all: \
|
|||||||
clean:
|
clean:
|
||||||
-$(DELETE) $(TYPE) $(LIBS_020) $(STARTUPS) \
|
-$(DELETE) $(TYPE) $(LIBS_020) $(STARTUPS) \
|
||||||
$(LIBC_OBJS) $(LIBUNIX_OBJS) $(LIBM_OBJS) \
|
$(LIBC_OBJS) $(LIBUNIX_OBJS) $(LIBM_OBJS) \
|
||||||
$(LIBM881_OBJS) $(LIBNET_OBJS) $(LIBDEBUG_OBJS) \
|
$(LIBM881_OBJS) $(LIBSTACK_OBJS) $(LIBNET_OBJS) $(LIBDEBUG_OBJS) \
|
||||||
$(LIBAMIGA_OBJS)
|
$(LIBAMIGA_OBJS)
|
||||||
|
|
||||||
realclean:
|
realclean:
|
||||||
@@ -1005,6 +797,7 @@ version:
|
|||||||
copy clone c.lib_rev.rev m.lib_rev.rev
|
copy clone c.lib_rev.rev m.lib_rev.rev
|
||||||
copy clone c.lib_rev.rev m881.lib_rev.rev
|
copy clone c.lib_rev.rev m881.lib_rev.rev
|
||||||
copy clone c.lib_rev.rev net.lib_rev.rev
|
copy clone c.lib_rev.rev net.lib_rev.rev
|
||||||
|
copy clone c.lib_rev.rev stack.lib_rev.rev
|
||||||
copy clone c.lib_rev.rev unix.lib_rev.rev
|
copy clone c.lib_rev.rev unix.lib_rev.rev
|
||||||
bumprev 1 amiga.lib
|
bumprev 1 amiga.lib
|
||||||
bumprev 1 c.lib
|
bumprev 1 c.lib
|
||||||
@@ -1012,6 +805,7 @@ version:
|
|||||||
bumprev 1 m.lib
|
bumprev 1 m.lib
|
||||||
bumprev 1 m881.lib
|
bumprev 1 m881.lib
|
||||||
bumprev 1 net.lib
|
bumprev 1 net.lib
|
||||||
|
bumprev 1 stack.lib
|
||||||
bumprev 1 unix.lib
|
bumprev 1 unix.lib
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@@ -1085,6 +879,15 @@ lib/n32bcrt0.o : lib nb32crt0.o
|
|||||||
lib/n32rcrt0.o : lib nr32crt0.o
|
lib/n32rcrt0.o : lib nr32crt0.o
|
||||||
@$(COPY) nr32crt0.o lib
|
@$(COPY) nr32crt0.o lib
|
||||||
|
|
||||||
|
lib/mainnb.o : lib mainnb.o
|
||||||
|
@$(COPY) mainnb.o lib
|
||||||
|
|
||||||
|
lib/mainb.o : lib mainb.o
|
||||||
|
@$(COPY) mainb.o lib
|
||||||
|
|
||||||
|
lib/mainb32.o : lib mainb32.o
|
||||||
|
@$(COPY) mainb32.o lib
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
$(LIBAMIGA_OBJS)/amiga_hookentry.o : amiga_hookentry.c
|
$(LIBAMIGA_OBJS)/amiga_hookentry.o : amiga_hookentry.c
|
||||||
@@ -1095,6 +898,8 @@ $(LIBC_OBJS)/stdlib_swapstack.o : stdlib_swapstack.c
|
|||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_setjmp.o : stdlib_setjmp.c
|
$(LIBC_OBJS)/stdlib_setjmp.o : stdlib_setjmp.c
|
||||||
|
|
||||||
|
$(LIBSTACK_OBJS)/stdlib_setjmp.o : stdlib_setjmp.c
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
$(LIBC_OBJS)/c.lib_rev.o : c.lib_rev.c c.lib_rev.h
|
$(LIBC_OBJS)/c.lib_rev.o : c.lib_rev.c c.lib_rev.h
|
||||||
@@ -1105,6 +910,8 @@ $(LIBM_OBJS)/m.lib_rev.o : m.lib_rev.c m.lib_rev.h
|
|||||||
|
|
||||||
$(LIBM881_OBJS)/m881.lib_rev.o : m881.lib_rev.c m881.lib_rev.h
|
$(LIBM881_OBJS)/m881.lib_rev.o : m881.lib_rev.c m881.lib_rev.h
|
||||||
|
|
||||||
|
$(LIBSTACK_OBJS)/stack.lib_rev.o : stack.lib_rev.c stack.lib_rev.h
|
||||||
|
|
||||||
$(LIBNET_OBJS)/net.lib_rev.o : net.lib_rev.c net.lib_rev.h
|
$(LIBNET_OBJS)/net.lib_rev.o : net.lib_rev.c net.lib_rev.h
|
||||||
|
|
||||||
$(LIBDEBUG_OBJS)/debug.lib_rev.o : debug.lib_rev.c debug.lib_rev.h
|
$(LIBDEBUG_OBJS)/debug.lib_rev.o : debug.lib_rev.c debug.lib_rev.h
|
||||||
@@ -1115,47 +922,43 @@ $(LIBAMIGA_OBJS)/amiga.lib_rev.o : amiga.lib_rev.c amiga.lib_rev.h
|
|||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_stacksize.o : stdlib_stacksize.c stdlib_gcc_help.h
|
$(LIBC_OBJS)/stdlib_stacksize.o : stdlib_stacksize.c stdlib_gcc_help.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_getdefstacksize.o : stdlib_getdefstacksize.c stdlib_gcc_help.h
|
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_shell_escape.o : stdlib_shell_escape.c stdlib_gcc_help.h
|
$(LIBC_OBJS)/stdlib_shell_escape.o : stdlib_shell_escape.c stdlib_gcc_help.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_alloca.o : stdlib_alloca.c stdlib_memory.h
|
$(LIBC_OBJS)/stdlib_alloca.o : stdlib_alloca.c stdlib_mem_debug.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_calloc.o : stdlib_calloc.c stdlib_memory.h
|
$(LIBC_OBJS)/stdlib_calloc.o : stdlib_calloc.c stdlib_mem_debug.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_free.o : stdlib_free.c stdlib_memory.h
|
$(LIBC_OBJS)/stdlib_free.o : stdlib_free.c stdlib_mem_debug.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_malloc.o : stdlib_malloc.c stdlib_memory.h
|
$(LIBC_OBJS)/stdlib_init_exit.o : stdlib_init_exit.c stdlib_mem_debug.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_realloc.o : stdlib_realloc.c stdlib_memory.h
|
$(LIBC_OBJS)/stdlib_malloc.o : stdlib_malloc.c stdlib_mem_debug.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_red_black.o : stdlib_red_black.c stdlib_memory.h
|
$(LIBC_OBJS)/stdlib_realloc.o : stdlib_realloc.c stdlib_mem_debug.h
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdlib_red_black.o : stdlib_red_black.c stdlib_mem_debug.h
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
# The -fbaserel32 option requires the CPU type to be 68020, too.
|
# The -fbaserel32 option requires the CPU type to be 68010/68020, too.
|
||||||
ifneq (,$(findstring fbaserel32,$(CODE_FLAGS)))
|
ifneq (,$(findstring fbaserel32,$(CODE_FLAGS)))
|
||||||
LOCAL_CODE_FLAGS := $(CODE_FLAGS) $(CODE_TYPE)
|
LOCAL_CODE_FLAGS := $(CODE_FLAGS) $(CODE_TYPE)
|
||||||
else
|
else
|
||||||
LOCAL_CODE_FLAGS := $(CODE_FLAGS)
|
LOCAL_CODE_FLAGS := $(CODE_FLAGS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(LIBM881_OBJS)/math_init_exit.o : math_init_exit.c
|
|
||||||
@echo "Compiling $< [$(TYPE):m881]"
|
|
||||||
@$(CC) -o $(LIBM881_OBJS)/math_init_exit.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) -DM68881_FLOATING_POINT_SUPPORT $(INCLUDES) $<
|
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_machine_test.o : stdlib_machine_test.c
|
$(LIBC_OBJS)/stdlib_machine_test.o : stdlib_machine_test.c
|
||||||
@echo "Compiling $< [$(TYPE):c]"
|
@echo "Compiling $< [$(TYPE):c]"
|
||||||
@$(CC) -o $(LIBC_OBJS)/stdlib_machine_test.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) $<
|
@$(CC) -o $(LIBC_OBJS)/stdlib_machine_test.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) $<
|
||||||
|
|
||||||
|
$(LIBM881_OBJS)/stdlib_machine_test.o : stdlib_machine_test.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c]"
|
||||||
|
@$(CC) -o $(LIBM881_OBJS)/stdlib_machine_test.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) -DM68881_FLOATING_POINT_SUPPORT $<
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_showerror.o : stdlib_showerror.c
|
$(LIBC_OBJS)/stdlib_showerror.o : stdlib_showerror.c
|
||||||
@echo "Compiling $< [$(TYPE):c]"
|
@echo "Compiling $< [$(TYPE):c]"
|
||||||
@$(CC) -o $(LIBC_OBJS)/stdlib_showerror.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) $<
|
@$(CC) -o $(LIBC_OBJS)/stdlib_showerror.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) $<
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_main.o : stdlib_main.c
|
|
||||||
@echo "Compiling $< [$(TYPE):c]"
|
|
||||||
@$(CC) -o $(LIBC_OBJS)/stdlib_main.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) stdlib_main.c
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_alloca_debug.o : stdlib_alloca.c
|
$(LIBC_OBJS)/stdlib_alloca_debug.o : stdlib_alloca.c
|
||||||
@@ -1244,6 +1047,16 @@ $(LIBM881_OBJS)/libm881.a : $(LIBM881_OBJS) $(foreach file,$(MATH_LIB_881),$(LIB
|
|||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
$(LIBSTACK_OBJS) :
|
||||||
|
$(MAKEDIR) $@
|
||||||
|
|
||||||
|
$(LIBSTACK_OBJS)/libstack.a : $(LIBSTACK_OBJS) $(foreach file,$(STACK_LIB),$(LIBSTACK_OBJS)/$(file))
|
||||||
|
-$(DELETE) $@
|
||||||
|
@$(AR) $@ $(foreach file,$(STACK_LIB),$(LIBSTACK_OBJS)/$(file))
|
||||||
|
$(RANLIB) $@
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
$(LIBNET_OBJS) :
|
$(LIBNET_OBJS) :
|
||||||
$(MAKEDIR) $@
|
$(MAKEDIR) $@
|
||||||
|
|
||||||
@@ -1294,6 +1107,18 @@ ncrt0.o : ncrt0.S
|
|||||||
@echo "Assembling $< [large_data]"
|
@echo "Assembling $< [large_data]"
|
||||||
@$(CC) -traditional -o $@ -c ncrt0.S
|
@$(CC) -traditional -o $@ -c ncrt0.S
|
||||||
|
|
||||||
|
mainb32.o : stdlib_main.c
|
||||||
|
@echo "Compiling $< [small_data32]"
|
||||||
|
@$(CC) -o mainb32.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -fbaserel32 -DSMALL_DATA32 -m68020-60 -DM68020 stdlib_main.c
|
||||||
|
|
||||||
|
mainb.o : stdlib_main.c
|
||||||
|
@echo "Compiling $< [small_data]"
|
||||||
|
@$(CC) -o mainb.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -fbaserel -DSMALL_DATA -m68000 stdlib_main.c
|
||||||
|
|
||||||
|
mainnb.o : stdlib_main.c
|
||||||
|
@echo "Compiling $< [large_data]"
|
||||||
|
@$(CC) -o mainnb.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -m68000 stdlib_main.c
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
CONSTRUCTOR_FILES = \
|
CONSTRUCTOR_FILES = \
|
||||||
@@ -1301,15 +1126,12 @@ CONSTRUCTOR_FILES = \
|
|||||||
dirent_closedir.c \
|
dirent_closedir.c \
|
||||||
locale_init_exit.c \
|
locale_init_exit.c \
|
||||||
math_init_exit.c \
|
math_init_exit.c \
|
||||||
sas_profile.c \
|
|
||||||
socket_init_exit.c \
|
socket_init_exit.c \
|
||||||
stdio_file_init.c \
|
stdio_file_init.c \
|
||||||
stdio_init_exit.c \
|
stdio_init_exit.c \
|
||||||
stdlib_alloca.c \
|
stdlib_alloca.c \
|
||||||
stdlib_arg.c \
|
|
||||||
stdlib_malloc.c \
|
|
||||||
stdlib_program_name.c \
|
|
||||||
stdlib_setenv.c \
|
stdlib_setenv.c \
|
||||||
|
stdlib_stackextension.c \
|
||||||
time_clock.c \
|
time_clock.c \
|
||||||
unistd_chdir_exit.c \
|
unistd_chdir_exit.c \
|
||||||
unistd_init_exit.c \
|
unistd_init_exit.c \
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -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,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga.lib_rev.c,v 1.3 2006-01-08 12:04:21 obarthel Exp $
|
* $Id: amiga.lib_rev.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#define VERSION 1
|
#define VERSION 1
|
||||||
#define REVISION 205
|
#define REVISION 189
|
||||||
#define DATE "21.8.2010"
|
#define DATE "5.3.2005"
|
||||||
#define VERS "amiga.lib 1.205"
|
#define VERS "amiga.lib 1.189"
|
||||||
#define VSTRING "amiga.lib 1.205 (21.8.2010)\r\n"
|
#define VSTRING "amiga.lib 1.189 (5.3.2005)\r\n"
|
||||||
#define VERSTAG "\0$VER: amiga.lib 1.205 (21.8.2010)"
|
#define VERSTAG "\0$VER: amiga.lib 1.189 (5.3.2005)"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
205
|
189
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_acrypt.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
* $Id: amiga_acrypt.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -31,14 +31,10 @@
|
|||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define ACrypt __ACrypt
|
|
||||||
|
|
||||||
#include <exec/types.h>
|
#include <exec/types.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <clib/alib_protos.h>
|
#include <clib/alib_protos.h>
|
||||||
|
|
||||||
#undef ACrypt
|
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
@@ -49,10 +45,6 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
UBYTE * ACrypt(UBYTE * buffer, const UBYTE * password, const UBYTE * user);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
UBYTE *
|
UBYTE *
|
||||||
ACrypt(UBYTE * buffer, const UBYTE * password, const UBYTE * user)
|
ACrypt(UBYTE * buffer, const UBYTE * password, const UBYTE * user)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_addtof.c,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_addtof.c,v 1.3 2005-02-25 10:14:20 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_argarraydone.c,v 1.4 2006-09-25 14:05:31 obarthel Exp $
|
* $Id: amiga_argarraydone.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
extern const unsigned char **CXLIB_argarray;
|
extern char **CXLIB_argarray;
|
||||||
|
|
||||||
extern struct DiskObject * CXLIB_disko;
|
extern struct DiskObject * CXLIB_disko;
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_argarrayinit.c,v 1.7 2008-09-30 14:09:00 obarthel Exp $
|
* $Id: amiga_argarrayinit.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -52,14 +52,6 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#ifdef __amigaos4__
|
|
||||||
#define MEMORY_TYPE MEMF_PRIVATE
|
|
||||||
#else
|
|
||||||
#define MEMORY_TYPE MEMF_ANY
|
|
||||||
#endif /* __amigaos4__ */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
const unsigned char ** CXLIB_argarray;
|
const unsigned char ** CXLIB_argarray;
|
||||||
|
|
||||||
struct DiskObject * CXLIB_disko;
|
struct DiskObject * CXLIB_disko;
|
||||||
@@ -69,23 +61,23 @@ struct DiskObject * CXLIB_disko;
|
|||||||
STRPTR *
|
STRPTR *
|
||||||
ArgArrayInit(LONG argc, CONST_STRPTR * argv)
|
ArgArrayInit(LONG argc, CONST_STRPTR * argv)
|
||||||
{
|
{
|
||||||
STRPTR * result = NULL;
|
unsigned char ** result = NULL;
|
||||||
|
|
||||||
if(argc != 0) /* run from CLI */
|
if(argc != 0) /* run from CLI */
|
||||||
{
|
{
|
||||||
LONG i;
|
int i;
|
||||||
|
|
||||||
if(argc == 1)
|
if(argc == 1)
|
||||||
goto out; /* skip command name */
|
goto out; /* skip command name */
|
||||||
|
|
||||||
CXLIB_argarray = (const unsigned char **)AllocVec(sizeof(char *) * argc,MEMORY_TYPE|MEMF_CLEAR);
|
CXLIB_argarray = (const unsigned char **)AllocVec(sizeof(char *) * argc,MEMF_ANY|MEMF_CLEAR);
|
||||||
if(CXLIB_argarray == NULL)
|
if(CXLIB_argarray == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
for(i = 1 ; i < argc ; i++)
|
for(i = 1 ; i < argc ; i++)
|
||||||
CXLIB_argarray[i-1] = (unsigned char *)argv[i];
|
CXLIB_argarray[i-1] = argv[i];
|
||||||
|
|
||||||
result = (STRPTR *)CXLIB_argarray;
|
result = (unsigned char **)CXLIB_argarray;
|
||||||
}
|
}
|
||||||
else if (IconBase != NULL)
|
else if (IconBase != NULL)
|
||||||
{
|
{
|
||||||
@@ -98,7 +90,7 @@ ArgArrayInit(LONG argc, CONST_STRPTR * argv)
|
|||||||
if(CXLIB_disko == NULL)
|
if(CXLIB_disko == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
result = (STRPTR *)CXLIB_disko->do_ToolTypes;
|
result = (unsigned char **)CXLIB_disko->do_ToolTypes;
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_argint.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_argint.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_argstring.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_argstring.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_beginio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
* $Id: amiga_beginio.c,v 1.3 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -103,10 +103,6 @@ BeginIO(struct IORequest *ior)
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
VOID BeginIO(struct IORequest *ior);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
BeginIO(struct IORequest *ior)
|
BeginIO(struct IORequest *ior)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_callhook.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_callhook.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
*
|
*
|
||||||
* $Id: amiga_callhooka.asm,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_callhooka.asm,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=8
|
* :ts=8
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_callhooka.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_callhooka.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_coercemethod.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_coercemethod.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_createextio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
* $Id: amiga_createextio.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -50,10 +50,6 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
struct IORequest * CreateExtIO(CONST struct MsgPort * port, LONG io_size);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct IORequest *
|
struct IORequest *
|
||||||
CreateExtIO(CONST struct MsgPort * port, LONG io_size)
|
CreateExtIO(CONST struct MsgPort * port, LONG io_size)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_createport.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
* $Id: amiga_createport.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -50,10 +50,6 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
struct MsgPort * CreatePort(CONST_STRPTR name, LONG pri);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct MsgPort *
|
struct MsgPort *
|
||||||
CreatePort(CONST_STRPTR name, LONG pri)
|
CreatePort(CONST_STRPTR name, LONG pri)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_createstdio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
* $Id: amiga_createstdio.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -50,10 +50,6 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
struct IOStdReq * CreateStdIO(CONST struct MsgPort * port);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
struct IOStdReq *
|
struct IOStdReq *
|
||||||
CreateStdIO(CONST struct MsgPort * port)
|
CreateStdIO(CONST struct MsgPort * port)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_createtask.c,v 1.6 2006-09-25 15:12:47 obarthel Exp $
|
* $Id: amiga_createtask.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -46,12 +46,6 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#ifndef _STDLIB_PROFILE_H
|
|
||||||
#include "stdlib_profile.h"
|
|
||||||
#endif /* _STDLIB_PROFILE_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|
||||||
@@ -209,10 +203,6 @@ 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 *
|
struct Task *
|
||||||
CreateTask(CONST_STRPTR name,LONG pri,CONST APTR init_pc,ULONG stack_size)
|
CreateTask(CONST_STRPTR name,LONG pri,CONST APTR init_pc,ULONG stack_size)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_deleteextio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
* $Id: amiga_deleteextio.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -50,10 +50,6 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
VOID DeleteExtIO(struct IORequest * io);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
DeleteExtIO(struct IORequest * io)
|
DeleteExtIO(struct IORequest * io)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_deleteport.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
* $Id: amiga_deleteport.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -50,10 +50,6 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
VOID DeletePort(struct MsgPort * port);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
DeletePort(struct MsgPort * port)
|
DeletePort(struct MsgPort * port)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_deletestdio.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
* $Id: amiga_deletestdio.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -50,10 +50,6 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
VOID DeleteStdIO(struct IOStdReq * io);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
DeleteStdIO(struct IOStdReq * io)
|
DeleteStdIO(struct IOStdReq * io)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_deletetask.c,v 1.5 2006-09-25 15:12:47 obarthel Exp $
|
* $Id: amiga_deletetask.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -63,10 +63,6 @@ DeleteTask(struct Task *tc)
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
VOID DeleteTask(struct Task *tc);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
DeleteTask(struct Task *tc)
|
DeleteTask(struct Task *tc)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_domethod.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_domethod.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_dosupermethod.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_dosupermethod.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_dotimer.c,v 1.8 2006-04-05 06:43:56 obarthel Exp $
|
* $Id: amiga_dotimer.c,v 1.3 2005-03-06 09:00:16 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -44,34 +44,11 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#ifndef _STDLIB_PROFILE_H
|
|
||||||
#include "stdlib_profile.h"
|
|
||||||
#endif /* _STDLIB_PROFILE_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
#include "debug.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
|
LONG
|
||||||
DoTimer(struct timeval *tv,LONG unit,LONG command)
|
DoTimer(struct timeval *tv,LONG unit,LONG command)
|
||||||
{
|
{
|
||||||
@@ -85,7 +62,6 @@ DoTimer(struct timeval *tv,LONG unit,LONG command)
|
|||||||
{
|
{
|
||||||
mp = AllocSysObjectTags(ASOT_PORT,
|
mp = AllocSysObjectTags(ASOT_PORT,
|
||||||
ASOPORT_Action, PA_SIGNAL,
|
ASOPORT_Action, PA_SIGNAL,
|
||||||
ASOPORT_AllocSig, FALSE,
|
|
||||||
ASOPORT_Signal, SIGB_SINGLE,
|
ASOPORT_Signal, SIGB_SINGLE,
|
||||||
ASOPORT_Target, FindTask(NULL),
|
ASOPORT_Target, FindTask(NULL),
|
||||||
TAG_DONE);
|
TAG_DONE);
|
||||||
@@ -131,7 +107,7 @@ DoTimer(struct timeval *tv,LONG unit,LONG command)
|
|||||||
|
|
||||||
PROFILE_OFF();
|
PROFILE_OFF();
|
||||||
|
|
||||||
SetSignal(0,(1UL << mp->mp_SigBit));
|
SetSignal(0,SIGF_SINGLE);
|
||||||
|
|
||||||
error = DoIO((struct IORequest *)tr);
|
error = DoIO((struct IORequest *)tr);
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_fastrand.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_fastrand.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_freeievents.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_freeievents.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
*
|
*
|
||||||
* $Id: amiga_hookentry.asm,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_hookentry.asm,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=8
|
* :ts=8
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_hookentry.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_hookentry.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_hotkey.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_hotkey.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_invertstring.c,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_invertstring.c,v 1.3 2005-02-25 10:14:20 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_newlist.c,v 1.4 2006-09-25 15:12:47 obarthel Exp $
|
* $Id: amiga_newlist.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -43,10 +43,6 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
VOID NewList(struct List *lh);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
NewList(struct List *lh)
|
NewList(struct List *lh)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_rangerand.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_rangerand.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_remtof.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_remtof.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_rexxvars.c,v 1.19 2008-04-18 10:11:59 obarthel Exp $
|
* $Id: amiga_rexxvars.c,v 1.3 2005-01-09 10:10:40 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -34,31 +34,17 @@
|
|||||||
/* We don't want to pull in <clib/alib_protos.h> */
|
/* We don't want to pull in <clib/alib_protos.h> */
|
||||||
#define CLIB_ALIB_PROTOS_H
|
#define CLIB_ALIB_PROTOS_H
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _STDLIB_HEADERS_H
|
#ifndef _STDLIB_HEADERS_H
|
||||||
#include "stdlib_headers.h"
|
#include "stdlib_headers.h"
|
||||||
#endif /* _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/rxslib.h>
|
||||||
#include <rexx/errors.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__
|
#define __NOLIBBASE__
|
||||||
#include <proto/rexxsyslib.h>
|
#include <proto/rexxsyslib.h>
|
||||||
|
|
||||||
@@ -74,13 +60,7 @@ static struct RexxSysIFace * IRexxSys;
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
BOOL CheckRexxMsg(struct RexxMsg *message);
|
CLIB_CONSTRUCTOR(__rexxvars_init)
|
||||||
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();
|
ENTER();
|
||||||
|
|
||||||
@@ -100,14 +80,12 @@ CLIB_CONSTRUCTOR(rexxvars_init)
|
|||||||
}
|
}
|
||||||
#endif /* __amigaos4__ */
|
#endif /* __amigaos4__ */
|
||||||
|
|
||||||
LEAVE();
|
|
||||||
|
|
||||||
CONSTRUCTOR_SUCCEED();
|
CONSTRUCTOR_SUCCEED();
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
CLIB_DESTRUCTOR(rexxvars_exit)
|
CLIB_DESTRUCTOR(__rexxvars_exit)
|
||||||
{
|
{
|
||||||
ENTER();
|
ENTER();
|
||||||
|
|
||||||
@@ -160,412 +138,29 @@ CheckRexxMsg(struct RexxMsg *message)
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
/* The following function works in about like the original, except that it's
|
||||||
|
not reentrant, does not fill in a pointer to the variable itself and
|
||||||
/****************************************************************************/
|
requires rexxsyslib.library V45. */
|
||||||
|
LONG
|
||||||
#include <exec/emulation.h>
|
GetRexxVar(struct RexxMsg *message,STRPTR variable_name,STRPTR *buffer_pointer)
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
STATIC VOID
|
|
||||||
_FreeSpace(struct Environment * env,APTR mem,LONG size)
|
|
||||||
{
|
{
|
||||||
STATIC CONST UWORD code[] = { 0x4EAE,0xFF88,0x4E75 }; /* jsr -120(a6) ; rts */
|
static UBYTE buffer[256];
|
||||||
|
|
||||||
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;
|
LONG result;
|
||||||
|
|
||||||
result = (LONG)EmulateTags(code,
|
/* The following uses a function which was added to rexxsyslib.library V45.
|
||||||
ET_RegisterA0,name,
|
We therefore have a minimum library version requirement. */
|
||||||
ET_RegisterA2,symbol_length_ptr,
|
if(RexxSysBase == NULL || RexxSysBase->lib_Version < 45 || NOT IsRexxMsg(message))
|
||||||
ET_RegisterA6,RexxSysBase,
|
{
|
||||||
TAG_END);
|
result = ERR10_010; /* invalid message packet */
|
||||||
|
goto out;
|
||||||
return(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC VOID
|
/* The 256 character limit isn't good. This should be done differently. */
|
||||||
_CurrentEnv(struct RexxTask *task,struct Environment ** environment_ptr)
|
result = GetRexxVarFromMsg(variable_name,buffer,message);
|
||||||
{
|
if(result != 0)
|
||||||
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;
|
goto out;
|
||||||
|
|
||||||
/* Fill in the NexxStr structure, copy the string and remember the hash value for it. */
|
(*buffer_pointer) = buffer;
|
||||||
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:
|
out:
|
||||||
|
|
||||||
@@ -574,169 +169,25 @@ out:
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
/* Classifies a symbol and returns the stem and compound parts. */
|
/* The following function works in about like the original, except that it
|
||||||
STATIC LONG
|
ignores the length parameter (the value needs to be a NUL-terminated string)
|
||||||
TypeString(STRPTR variable_name,struct Environment * environment,struct NexxStr ** compound_ptr,struct NexxStr ** stem_ptr)
|
and requires rexxsyslib.library V45. */
|
||||||
{
|
|
||||||
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
|
LONG
|
||||||
GetRexxVar(struct RexxMsg *context,STRPTR variable_name,STRPTR * return_value)
|
SetRexxVar(struct RexxMsg *message,STRPTR variable_name,STRPTR value,ULONG length)
|
||||||
{
|
{
|
||||||
struct Environment * environment;
|
LONG result;
|
||||||
struct NexxStr * ns;
|
|
||||||
struct NexxStr * compound_string;
|
|
||||||
struct NexxStr * stem_string;
|
|
||||||
LONG is_literal;
|
|
||||||
LONG error;
|
|
||||||
|
|
||||||
(*return_value) = NULL;
|
/* The following uses a function which was added to rexxsyslib.library V45.
|
||||||
|
We therefore have a minimum library version requirement. */
|
||||||
if(!CheckRexxMsg(context))
|
if(RexxSysBase == NULL || RexxSysBase->lib_Version < 45 || NOT IsRexxMsg(message))
|
||||||
{
|
{
|
||||||
error = ERR10_010; /* invalid message packet */
|
result = ERR10_010; /* invalid message packet */
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Find the current storage environment. */
|
result = SetRexxVarFromMsg(variable_name,value,message);
|
||||||
_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:
|
out:
|
||||||
|
|
||||||
return(error);
|
return(result);
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* 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,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_setsuperattrs.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_setsuperattrs.c,v 1.4 2005-02-25 10:14:20 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_timedelay.c,v 1.4 2006-04-05 06:43:56 obarthel Exp $
|
* $Id: amiga_timedelay.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -39,19 +39,6 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
/* 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
|
LONG
|
||||||
TimeDelay(LONG unit,ULONG seconds,ULONG micros)
|
TimeDelay(LONG unit,ULONG seconds,ULONG micros)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_waitbeam.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: amiga_waitbeam.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -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,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: c.lib_rev.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: c.lib_rev.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#define VERSION 1
|
#define VERSION 1
|
||||||
#define REVISION 206
|
#define REVISION 189
|
||||||
#define DATE "24.4.2015"
|
#define DATE "5.3.2005"
|
||||||
#define VERS "c.lib 1.206"
|
#define VERS "c.lib 1.189"
|
||||||
#define VSTRING "c.lib 1.206 (24.4.2015)\r\n"
|
#define VSTRING "c.lib 1.189 (5.3.2005)\r\n"
|
||||||
#define VERSTAG "\0$VER: c.lib 1.206 (24.4.2015)"
|
#define VERSTAG "\0$VER: c.lib 1.189 (5.3.2005)"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
206
|
189
|
||||||
|
|||||||
950
library/changes
950
library/changes
@@ -1,879 +1,3 @@
|
|||||||
m.lib 1.206 (24.4.2015)
|
|
||||||
|
|
||||||
- The fscanf() family failed to parse and convert %f parameters correctly
|
|
||||||
if the respective number did not begin with a digit, but a decimal
|
|
||||||
point. Hence ".7" would not be processed, but "0.7" would.
|
|
||||||
|
|
||||||
c.lib 1.206 (24.4.2015)
|
|
||||||
|
|
||||||
- Reworked the __putc() and putc() macros to reference the 'c' input
|
|
||||||
parameter only once, and to be free of side-effects when tinkering
|
|
||||||
with the buffer position.
|
|
||||||
|
|
||||||
- isatty() had the __fd_lock() call in the wrong place, which could have
|
|
||||||
led to cleanup problems later.
|
|
||||||
|
|
||||||
- The close action in the stdio, socket and termios hook code now
|
|
||||||
also zaps the fd pointer itself after cleaning up the file descriptor
|
|
||||||
table entry.
|
|
||||||
|
|
||||||
- Removed the remains of all the stack extension and stack overflow/underflow
|
|
||||||
checking code. It never actually worked. The bit that does work is the stack
|
|
||||||
usage measurement code, plus the bit that sets up the the custom stack
|
|
||||||
according to local setting or by calling a query function.
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.205 (21.8.2010)
|
|
||||||
|
|
||||||
- Added dlclose(), dlerror(), dlopen() and dlsym() functions, which are
|
|
||||||
available only under OS4. There is a variant of dlopen() in libunix.a
|
|
||||||
which will perform a path name conversion. Note that these functions
|
|
||||||
will not work in the thread-safe variant of the library because it
|
|
||||||
would be unwise to tinker with the currently running program's binary.
|
|
||||||
|
|
||||||
- Added support for ELF shared objects and libraries. This is implemented through
|
|
||||||
constructor/destructor functions, which means that you can use this
|
|
||||||
functionality even in Amiga Exec style shared libraries, with the proper
|
|
||||||
library initialization code to invoke the constructor/destructor functions
|
|
||||||
for you.
|
|
||||||
|
|
||||||
- Updated uname() to recognize AmigaOS 4.1.
|
|
||||||
|
|
||||||
- The translation from Unix to Amiga path names did not properly process
|
|
||||||
multiple occurences of "/./" in the path name. Thanks go to Steven Solie
|
|
||||||
for finding the issue.
|
|
||||||
|
|
||||||
- The detection of "/./" and "/../" patterns in Unix path names to be
|
|
||||||
translated into Amiga path names did not test if it was overrunning
|
|
||||||
the end of the string.
|
|
||||||
|
|
||||||
- If strcmp(), strncmp() and memcmp() detect a pair of different
|
|
||||||
characters, then the function result must be calculated as if the
|
|
||||||
characters were of type "unsigned char". This is a requirement
|
|
||||||
according to the ISO 'C' (1994) standard. Thanks go to Georg Steger
|
|
||||||
for finding the issue.
|
|
||||||
|
|
||||||
- The definitions for INT_MIN, INT_MAX and UINT_MAX in <limits.h> no
|
|
||||||
longer use long integer types, as prompted by Steven Solie.
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.204 (11.11.2008)
|
|
||||||
|
|
||||||
- The memory allocated by malloc() and friends is now of type MEMF_PRIVATE
|
|
||||||
under OS4 and beyond. The AmigaOS 2.x/3.x compatible code will still
|
|
||||||
use MEMF_ANY in the same situation, though. Other uses of MEMF_ANY have
|
|
||||||
been replaced as well where MEMF_PRIVATE would have made better sense.
|
|
||||||
|
|
||||||
- I/O buffers allocated are now aligned according to the CPU cache line size,
|
|
||||||
if the operating system can supply such detailed information.
|
|
||||||
|
|
||||||
- unsetenv() now returns a status value.
|
|
||||||
|
|
||||||
- Corrected the function prototype for wcspbrk().
|
|
||||||
|
|
||||||
- Added function prototypes for mbrtowc_l(), wcscoll_l(), wcscspn() and wcsrchr().
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.203 (28.4.2008)
|
|
||||||
|
|
||||||
- Added 68k stubs to amiga_rexxvars.c for the OS4 build to use. The new code now
|
|
||||||
works just about exactly like the amiga.lib RVI code used to do, which means
|
|
||||||
that there is no artificial length limit for the number of characters a string
|
|
||||||
retrieved may have, and the code is largely reentrant.
|
|
||||||
|
|
||||||
- To work around a bug in the Roadshow TCP/IP stack (since fixed), the waitselect()
|
|
||||||
function now substitutes a 10 microsecond timeout for a zero length timeout.
|
|
||||||
|
|
||||||
- isatty() no longer crashes if passed a socket rather than a file.
|
|
||||||
|
|
||||||
- Rewrote the GetRexxVar()/SetRexxVar() functions (mostly) in 'C', using available
|
|
||||||
code as a reference. The 68k stubs currently only work for the 68k version of
|
|
||||||
the library, and a solution for the OS4 build still needs to be found. The code
|
|
||||||
is currently untested, but it should be complete.
|
|
||||||
|
|
||||||
- The printf() family now ignores argument specifications, as in "%2$d %1$d",
|
|
||||||
which are used for localization on some platforms. This is a non-standard
|
|
||||||
feature and the way clib2 treats it for now is just intended to avoid
|
|
||||||
trouble while performing the conversion.
|
|
||||||
|
|
||||||
- [tboeckel]: when compiling amiga_rexxvars.c for m68k/OS3 the GetRexxVarFromMsg()
|
|
||||||
and SetRexxVarFromMsg() can no longer cause linkage errors if the header files
|
|
||||||
predate the SDK for OS 3.5.
|
|
||||||
|
|
||||||
- [jlangner]: the log() and log10() functions always returned -inf() even if the
|
|
||||||
arguments was within the valid range for a log() function. Using DBL_EPSILON as
|
|
||||||
the threshold was not correct as EPSILON is 2.2204460492503131E-16 whereas
|
|
||||||
values like 1E-200 are still valid double values for a log().
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.202 (16.1.2007)
|
|
||||||
|
|
||||||
- Added llrint() function contributed by Henning Nielsen Lund. Thank you
|
|
||||||
very much!
|
|
||||||
|
|
||||||
- <unistd.h> now also include <stdio.h>, so that the SEEK_SET, etc. macros
|
|
||||||
are defined for lseek() to use.
|
|
||||||
|
|
||||||
- Added a wrapper function which handles the thread-safe stdio stream
|
|
||||||
resolution.
|
|
||||||
|
|
||||||
- In tcflush() a break signal can no longer cause the read flush loop
|
|
||||||
to be quit with two semaphores still locked.
|
|
||||||
|
|
||||||
- In __obtain_daemon_message() the test to verify if the bsdsocket.library API
|
|
||||||
would support the server API functionality checked the wrong feature. Fixed.
|
|
||||||
|
|
||||||
- Switched over the fd->fd_DefaultFile references to fd->fd_Socket where
|
|
||||||
sockets are used rather than file handles.
|
|
||||||
|
|
||||||
- Added functions which modify the callback function and the userdata pointer
|
|
||||||
stored in a low level unbuffered file/socket data structure. These function
|
|
||||||
perform the proper locking and are thus safe to use in a thread-safe environment.
|
|
||||||
|
|
||||||
- The low level unbuffered file/socket now has a public equivalent, which
|
|
||||||
is defined (along with the typedefs and flags) in <sys/clib2_io.h>. Functions
|
|
||||||
for tinkering with it are still to come.
|
|
||||||
|
|
||||||
- The math kernel code no longer uses its own private scalbn() function.
|
|
||||||
|
|
||||||
- Added a function prototype for the _exit() function. Note that _exit() is
|
|
||||||
not an ISO 'C' function.
|
|
||||||
|
|
||||||
- Corrected the getopt() function prototype, as prompted by Henning Nielsen Lund.
|
|
||||||
|
|
||||||
- The printf() family no longer adds a 0 or 0x prefix if the alternate
|
|
||||||
conversion modifier is present for the %o and %x conversions and the
|
|
||||||
value to be converted is 0 already. Put another way, printf("%#x %#o",0,0);
|
|
||||||
now prints "0 0". This required another change so that %p always includes
|
|
||||||
the 0x prefix even if the pointer involved is a NULL pointer.
|
|
||||||
|
|
||||||
- readlink() no longer sort-of-works for files and directories. It now only
|
|
||||||
works for soft linked objects and returns an error for everything else.
|
|
||||||
This is based upon a fix by Peter Bengtsson. Thank you very much!
|
|
||||||
|
|
||||||
- Moved the lstat() local Lock() function into its own separate file.
|
|
||||||
|
|
||||||
- uname() now returns correct and robust information for OS version
|
|
||||||
numbers > 36. This integrates a fix by Peter Bengtsson. Thank you
|
|
||||||
very much!
|
|
||||||
|
|
||||||
- Moved the crtbegin.o/crtend.o files out of the link libraries. Moving
|
|
||||||
them in was intended to work as a fix for the shared library build, but
|
|
||||||
now it seems that this has to be done at the link stage through the
|
|
||||||
GCC specs file...
|
|
||||||
|
|
||||||
- Integrated a fix for __rem_pio2() which affects sin(), tan() and cos(),
|
|
||||||
contributed by Steven Solie. Thank you very much!
|
|
||||||
|
|
||||||
- The internal 'struct fd' file descriptor table entry data structure
|
|
||||||
now has a user data field entry.
|
|
||||||
|
|
||||||
- Rearranged the contents of the 'struct fd' file descriptor table entry
|
|
||||||
data structure in preparation for making it public. Also added a version
|
|
||||||
field so that user code can handle changes to it gracefully. The default
|
|
||||||
file is no longer a BCPL pointer to a file handle by default, but
|
|
||||||
both a BPTR and a socket identifier, wrapped into a union.
|
|
||||||
|
|
||||||
- Added experimental tilde expansion in Unix path names. This still needs
|
|
||||||
some more work.
|
|
||||||
|
|
||||||
- __get_default_file() called __fd_unlock() without having called
|
|
||||||
__fd_lock() first. Ouch.
|
|
||||||
|
|
||||||
- Removed an unnecessary pair of __fd_lock()..__fd_unlock() calls from
|
|
||||||
ttyname_r().
|
|
||||||
|
|
||||||
- The libunix.a unlink() function is now reentrant, or at least thread-safe.
|
|
||||||
|
|
||||||
- You can now make unlink() stop after a failed deletion attempt which
|
|
||||||
failed because the object to be deleted was reported as being "in use".
|
|
||||||
The libunix.a variant defaults to report the deletion to have succeeded
|
|
||||||
under these circumstances and later tries to delete the files marked
|
|
||||||
for deletion. See <dos.h> for a brief documentation of how to change
|
|
||||||
the behaviour.
|
|
||||||
|
|
||||||
- basename() and dirname() can no longer return NULL. They truncate the
|
|
||||||
resulting path name instead. This is done so because some code that
|
|
||||||
calls basename() or dirname() does not check if the function's return
|
|
||||||
value is NULL.
|
|
||||||
|
|
||||||
- The SetOwner() fall-back code for Kickstart 2.04 was passing the wrong
|
|
||||||
parameters to the file system. The first (dp_Arg1) should have been
|
|
||||||
zero. Ouch.
|
|
||||||
|
|
||||||
- basename() is not supposed to modify the string it is passed and should
|
|
||||||
return a pointer to a string which can be modified. Now it does. Same
|
|
||||||
thing for dirname().
|
|
||||||
|
|
||||||
- asctime_r() now returns NULL if the buffer is too short to hold even a single
|
|
||||||
byte of data.
|
|
||||||
|
|
||||||
- ttyname() now calls ttyname_r(). Also, the libunix.a version of ttyname_r()
|
|
||||||
will produce "/CONSOLE" rather than "CONSOLE:".
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.201 (21.9.2006)
|
|
||||||
|
|
||||||
- If defined, the local environment variable "DISABLE_COMMANDLINE_WILDCARD_EXPANSION"
|
|
||||||
will disable expansion of wildcard patterns passed on the command line.
|
|
||||||
Note that if the variable is not set then the global variable
|
|
||||||
'__expand_wildcard_args' will provide the defaults for the switch that
|
|
||||||
controls whether the wildcard expansion takes place. And after the
|
|
||||||
environment variable has been checked, the '__expand_wildcard_args_check'
|
|
||||||
function pointer can still be used to override the switch.
|
|
||||||
|
|
||||||
- fstat() now works with "NIL:" and "/dev/null", respectively. Not that
|
|
||||||
it returns much useful information, though.
|
|
||||||
|
|
||||||
- The _PC_MAX_INPUT query for file handles now returns the default
|
|
||||||
buffer size.
|
|
||||||
|
|
||||||
- Integrated the new OS4 build makefile collection, as contributed by
|
|
||||||
Steven Solie. Thank you very much!
|
|
||||||
|
|
||||||
- Added the missing strerror_r() function.
|
|
||||||
|
|
||||||
- fpathconf() should work with the stdio streams, even in the thread-safe
|
|
||||||
library version, again.
|
|
||||||
|
|
||||||
- Updated m68k specs file in /documentation to contain an own __CLIB2__
|
|
||||||
define so that existing m68k compilers also have this define. In addition,
|
|
||||||
the common "-noixemul" option can now also be specified but will do a NOP
|
|
||||||
so that Makefiles sharing multiple runtime lib setups work without
|
|
||||||
a warning.
|
|
||||||
|
|
||||||
- Added a new callback function which can be used in programs which want
|
|
||||||
to avoid that the command line wildcard expansion takes place.
|
|
||||||
|
|
||||||
- __get_default_file() now dynamically fills in file handles for the
|
|
||||||
stdin/stdout/stderr streams if it's part of the thread-safe library.
|
|
||||||
|
|
||||||
- fpathconf() now checks if the file descriptor is really referring to a file.
|
|
||||||
|
|
||||||
- The termios hook entry code could file descriptor's embedded file handle
|
|
||||||
rather than what the thread safe library had dynamically bound to the
|
|
||||||
stdin/stdout/stderr streams.
|
|
||||||
|
|
||||||
- execve() now finds commands in the current directory again, even if you
|
|
||||||
omit the leading "./" path name.
|
|
||||||
|
|
||||||
- The execve() code that looks for the command/script file now begins by
|
|
||||||
checking if the file name includes path separators. If it does not,
|
|
||||||
then the search for the command begins with the resident command list;
|
|
||||||
otherwise the local directories are checked. The new code also properly
|
|
||||||
cleans up after itself (a FreeDeviceProc() was missing) and the "PROGDIR:"
|
|
||||||
lock now always refers to the directory in which the command/script
|
|
||||||
file is found.
|
|
||||||
|
|
||||||
- Added the missing fdim() and fdimf() functions to the build
|
|
||||||
makefiles. The OS4 build makefile was missing lrint() and
|
|
||||||
lrintf(). Ouch.
|
|
||||||
|
|
||||||
- Added the POSIX exec() family functions, based upon code contributed
|
|
||||||
by Henning Nielsen Lund. Thank you very much!
|
|
||||||
|
|
||||||
- atoll() no longer sets 'errno' directly but now calls __set_errno()
|
|
||||||
instead.
|
|
||||||
|
|
||||||
- Added pathconf(), fpathconf(), sysinfo(), ftime(), ulimit(), getrlimit()
|
|
||||||
and setrlimit() as contributed by Peter Bengtsson. Thank you very much!
|
|
||||||
|
|
||||||
- Added the missing S_ISSOCKET() macro to <sys/stat.h>. Note that this
|
|
||||||
is not actually a POSIX feature.
|
|
||||||
|
|
||||||
- Added fmin(), fminf(), fmax() and fmaxf() to the build makefiles.
|
|
||||||
Somehow I must have forgotten about them :-(
|
|
||||||
|
|
||||||
- select() and waitselect() can now be called without any file descriptor
|
|
||||||
sets to work with, as some software does which uses select() in place
|
|
||||||
of sleep().
|
|
||||||
|
|
||||||
- The <sys/ioctl.h> header file now includes both <sys/select.h> and
|
|
||||||
<sys/filio.h> for better compatibility with the TCP/IP stack header
|
|
||||||
files.
|
|
||||||
|
|
||||||
- Added the global variable __expand_wildcard_args which can be used
|
|
||||||
to disable wildcard pattern expansion of command line parameters when
|
|
||||||
linked against "libunix.a". Note that this has no effect on the "regular"
|
|
||||||
libc.a behaviour.
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.200 (17.4.2006)
|
|
||||||
|
|
||||||
- The default break signal mask (SIGBREAKF_CTRL_C) is no longer
|
|
||||||
hard-coded. You can override it at link time with a different
|
|
||||||
variable value for __break_signal_mask. This may have to be
|
|
||||||
augmented by an API for changing the value.
|
|
||||||
|
|
||||||
- Added a waitselect() function which works very much like the
|
|
||||||
bsdsocket.library/WaitSelect() function.
|
|
||||||
|
|
||||||
- Added <sys/time.h> include to <sys/socket.h> due to latest "TimeVal" change
|
|
||||||
in the OS4 SDK. Otherwise "struct timeval" will not be defined at the time
|
|
||||||
the <net/if.h> of the netincludes will be included by <proto/bsdsocket.h>.
|
|
||||||
|
|
||||||
- The strftime() hook function had the locale and character parameters
|
|
||||||
switched, which made 'setlocale(LC_ALL,""); strftime(..);' unusable.
|
|
||||||
Fixed.
|
|
||||||
|
|
||||||
- fchown() and chown() now accept owner and group ID values of -1, which
|
|
||||||
indicate that the respective information should not be changed.
|
|
||||||
|
|
||||||
- The OS4 library build now includes the crtbegin.o and crtend.o object
|
|
||||||
files in the libc.a library, which solves a problem with the thread-safe
|
|
||||||
shared library support code.
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.199 (6.3.2006)
|
|
||||||
|
|
||||||
- In <stdio.h> MAXPATHLEN is now equivalent to PATH_MAX (from <limits.h>),
|
|
||||||
as suggested by Henning Nielsen Lund.
|
|
||||||
|
|
||||||
- Added lockf() support, as supplied by Henning Nielsen Lund.
|
|
||||||
Thank you very much!
|
|
||||||
|
|
||||||
- symlink() now also works for absolute and relative links, and is
|
|
||||||
part of "libunix.a". This patch was supplied by Henning Nielsen Lund.
|
|
||||||
Thank you very much!
|
|
||||||
|
|
||||||
- The __main() stub function expected by the 68k GCC build is no
|
|
||||||
longer part of "stdlib_main.c". This helps the C++ support, since the
|
|
||||||
__main symbol definition no longer clashes with the definition in
|
|
||||||
"libgcc.a".
|
|
||||||
|
|
||||||
- The printf() family stripped trailing zeroes from the integer part
|
|
||||||
of %g output. Fixed.
|
|
||||||
|
|
||||||
- Moved an allocation size roundup operation in realloc().
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.198 (11.12.2005)
|
|
||||||
|
|
||||||
- Added <fenv.h> for C99, and the (yet unimplemented) functions
|
|
||||||
feclearexcept(), fegetenv(), fegetexceptflag(), fegetround(),
|
|
||||||
feholdexcept(), feraiseexcept(), fesetenv(), fesetexceptflag(),
|
|
||||||
fetestexcept(), fetestround() and feupdateenv().
|
|
||||||
|
|
||||||
- Replaced the old pow() implementation. However, powf() may need to
|
|
||||||
be changed to set a domain error.
|
|
||||||
|
|
||||||
- In libunix.a malloc(), calloc() and realloc() no longer treat a
|
|
||||||
request to allocate 0 bytes as an error, returning NULL. They all
|
|
||||||
return a pointer sized memory chunk (= four bytes) initialized to
|
|
||||||
NULL (= 0) instead.
|
|
||||||
|
|
||||||
- The alloca() implementation which allocates memory from the system
|
|
||||||
rather than the local stack frame is thread-safe now. It also
|
|
||||||
interacts with the realloc(), calloc(), free() and malloc() functions
|
|
||||||
in that the alloca() cleanup routine is called once alloca() has
|
|
||||||
done its job. If all the memory allocated through alloca() has been
|
|
||||||
released no further calls to the cleanup function will be made.
|
|
||||||
|
|
||||||
- In the thread-safe library, realloc() permitted two different overlapping
|
|
||||||
calls to succeed in trying to reallocate the same chunk of memory due to
|
|
||||||
a race condition. Fixed.
|
|
||||||
|
|
||||||
- Added a new function __get_mem_stats() (the prototype is in <dos.h>) which
|
|
||||||
can be used to query the current and maximum memory usage, counting the
|
|
||||||
allocations performed through malloc(), free() and all other functions which
|
|
||||||
use them.
|
|
||||||
|
|
||||||
- Added another function called __reset_max_mem_stats() which will reset the
|
|
||||||
counters for "maximum amount of memory used" and "maximum number of chunks
|
|
||||||
allocated" to the current figures for these values.
|
|
||||||
|
|
||||||
- Fixed the alloca() declaration in <stdlib.h> so that software which keys
|
|
||||||
off the fact whether or not the alloca preprocessor symbol is defined
|
|
||||||
will do the right thing.
|
|
||||||
|
|
||||||
- Added an optional call-back function which can be called if alloca()
|
|
||||||
is about to return NULL, which some software does not consider.
|
|
||||||
Rather than letting such software drop into an illegal memory access
|
|
||||||
or worse, that call-back function will be invoked instead, which can
|
|
||||||
print an error message and eventually call abort().
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.197 (4.11.2005)
|
|
||||||
|
|
||||||
- Updated math_hypot.c to a newer (e_hypot.c 1.3 95/01/18) version from
|
|
||||||
fdlibm which uses macros for manipulating the high and low words of a
|
|
||||||
double, like the rest of fdlibm functions in clib2. The previous version
|
|
||||||
would give bogus results when compiled with -O3 in clib2 which lead to
|
|
||||||
"interesting" results (and lots of fun while searching for the problem)
|
|
||||||
in Ghostscript. Wish I managed to track this down yesterday for 1.196
|
|
||||||
release... <aantonijevic>
|
|
||||||
|
|
||||||
- Implemented atanh() and atanhf() which were not listed in the TODO
|
|
||||||
file but were still unimplemented up until now.
|
|
||||||
|
|
||||||
- Replaced ldexp() and modf().
|
|
||||||
|
|
||||||
- Added __set_h_errno() and __get_h_errno() functions.
|
|
||||||
|
|
||||||
- The thread-safe library now tries to enable bsdsocket.library base
|
|
||||||
sharing and attempts to make the TCP/IP stack call the local
|
|
||||||
__set_errno() and __set_h_errno(), so that any Process calling
|
|
||||||
the library functions will get a chance to see proper error
|
|
||||||
codes. Whether any of these features could be enabled can be tested
|
|
||||||
through two global variables __can_share_socket_library_base and
|
|
||||||
__thread_safe_errno_h_errno which are defined in <dos.h>. Note that
|
|
||||||
for both features to work you will need the Roadshow bsdsocket.library
|
|
||||||
version 4.275 or higher.
|
|
||||||
|
|
||||||
- In <stdbool.h> the preprocessor definition should read
|
|
||||||
"__bool_true_false_are_defined" rather than "__bool_true_and_false_are_defined".
|
|
||||||
Thanks go to Peter Bengtsson for finding and fixing it.
|
|
||||||
|
|
||||||
- The network startup code no longer checks for the presence of a possible
|
|
||||||
daemon startup message by default. You now have to enable this feature
|
|
||||||
by declaring a global variable called "__check_daemon_startup" which is
|
|
||||||
described in <dos.h>.
|
|
||||||
|
|
||||||
- Moved the code which rebinds the standard I/O streams to the server
|
|
||||||
socket into a separate function which can be overridden by user code.
|
|
||||||
|
|
||||||
- Updated the new __obtain_daemon_message() function to call a
|
|
||||||
bsdsocket.library API function to determine if what appears to be
|
|
||||||
a valid daemon startup message is sound.
|
|
||||||
|
|
||||||
- Replaced the OS4 specific build makefile with an updated version
|
|
||||||
prepared by Steven Solie. Thank you very much!
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.196 (11.10.2005)
|
|
||||||
|
|
||||||
- Removed the various workarounds associated with <unistd.h>, required
|
|
||||||
for building code that references the networking API. It is now possible,
|
|
||||||
provided you build your code with an existing TCP/IP API header file
|
|
||||||
set (such as from the "Roadshow" SDK) without running into data type
|
|
||||||
or function prototype declaration conflicts. I have added local versions
|
|
||||||
of <arpa/inet.h>, <netinet/in.h>, <netdb.h>, <sys/filio.h>, <sys/ioccom.h>,
|
|
||||||
<sys/ioctl.h>, <sys/select.h> and <sys/socket.h> and updated <unistd.h>,
|
|
||||||
<pwd.h> and <grp.h> accordingly. Note that some of the function prototypes
|
|
||||||
will conflict with the bsdsocket.library/usergroup.library API, which is
|
|
||||||
why you can disable the declarations through the __NO_NET_API preprocessor
|
|
||||||
symbol: if defined, none of the function prototypes will be defined.
|
|
||||||
|
|
||||||
- Implemented lrintf(), lrint(), lroundf(), lround(), nearbyintf(),
|
|
||||||
nearbyint(), remquof(), remquo(), roundf(), round(), tgammaf(),
|
|
||||||
tgamma(), truncf(), trunc(). Sort of implemented fmaf() and fma(),
|
|
||||||
which really ought to be done in "SIMD" fashion.
|
|
||||||
|
|
||||||
This completes the "real" floating point math library (ignoring
|
|
||||||
for a moment that the floating point environment code is still
|
|
||||||
not implemented).
|
|
||||||
|
|
||||||
- accept() now calls the bsdsocket.library accept() function first
|
|
||||||
and then hooks up the socket with the clib2 data structures. This
|
|
||||||
makes it possible to have several Processes calling the accept()
|
|
||||||
stub at the same time.
|
|
||||||
|
|
||||||
- When the main() function returns directly or indirectly by way of
|
|
||||||
calling exit(), the IoErr() value set at this time will now be
|
|
||||||
preserved until the program really returns control to the shell.
|
|
||||||
This turned out to be easier to implement than I had originally
|
|
||||||
thought, thanks to the fact that the atexit() functions are all
|
|
||||||
invoked straight after the exit() call.
|
|
||||||
|
|
||||||
- strtoimax(), strtoumax(), strtod(), strtof(), strtol(), strtoll(),
|
|
||||||
strtoul() and strtoull() now count how many digits were converted.
|
|
||||||
If that number is zero, then the conversion is considered to have
|
|
||||||
failed: 0 is returned and the 'ptr' parameter reference is initialized
|
|
||||||
with a pointer to the string to be converted. This has two consequences:
|
|
||||||
|
|
||||||
1) A floating point number that has no digits in the significand
|
|
||||||
is no longer converted to zero. For example ".e10" can no longer
|
|
||||||
result in a successful conversion.
|
|
||||||
|
|
||||||
2) You can detect if a conversion is successful by comparing pointers
|
|
||||||
after the conversion function has returned:
|
|
||||||
|
|
||||||
char * str;
|
|
||||||
char * ptr;
|
|
||||||
long n;
|
|
||||||
|
|
||||||
n = strtol(str,&ptr,10);
|
|
||||||
if(n == 0 && str == ptr)
|
|
||||||
printf("conversion has failed");
|
|
||||||
|
|
||||||
- Following detection of a stack overflow, the startup code eventually
|
|
||||||
called _exit(). It should have called exit() instead.
|
|
||||||
|
|
||||||
- tmpnam() wrote more than L_tmpnam bytes to the name buffer. Also, the
|
|
||||||
TMP_MAX value was off by one.
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.195 (3.9.2005)
|
|
||||||
|
|
||||||
- In __time_delay() the CheckIO() test was wrong and should have
|
|
||||||
tested for a request still in progress. Fixed.
|
|
||||||
|
|
||||||
- Modified select() to support plain files, too. The new code now
|
|
||||||
compares the current file position against the current file size,
|
|
||||||
if that file is on a file system, or simply checks if there is
|
|
||||||
any data in the file (which works for the default PIPE: device).
|
|
||||||
|
|
||||||
- The raw file descriptor structure member fd_Position is now
|
|
||||||
always updated, regardless of whether the file supports random
|
|
||||||
access or not.
|
|
||||||
|
|
||||||
- The wildcard escape character used in __wildcard_expand_init() was
|
|
||||||
wrong. It should have been "'" but it was "`". Fixed.
|
|
||||||
|
|
||||||
- The startup code now references the linker symbol generated for
|
|
||||||
the user-supplied main() function.
|
|
||||||
|
|
||||||
- log(+/-0), logb(+/-0), log10(+/-0) now return -infinity.
|
|
||||||
|
|
||||||
- getcwd() now considers a buffer size of 0 an error, and it sets
|
|
||||||
the errno code to ERANGE if the buffer is too small.
|
|
||||||
|
|
||||||
- With Unix path semantics enabled, rename() now fails if either
|
|
||||||
the old or the new name are empty strings. Same thing for
|
|
||||||
opendir(), utime(), unlink(), chown(), link(), readlink(),
|
|
||||||
realpath(), chdir(), access(), stat(), rmdir(), lstat(),
|
|
||||||
chmod(), statfs() and open()/fopen().
|
|
||||||
|
|
||||||
- Fixed several issues with the formatted output of strftime()
|
|
||||||
for the "C" locale: "%p" could return " PM", "%c" is now
|
|
||||||
equivalent to "%a %b %e %T %Y", "%x" is equivalent to "%m/%d/%y"
|
|
||||||
and "%X" is now equivalent to "%T".
|
|
||||||
|
|
||||||
- The 68020/030/040/060 versions of the library now include the
|
|
||||||
64 bit integer conversion code. The plain 68000 version does not.
|
|
||||||
|
|
||||||
- The 64 bit integer conversion code used in by the scanf() family
|
|
||||||
was broken due to a misplaced overflow check, which had the cruel
|
|
||||||
effect of triggering for 32 bit integers as well. Fixed.
|
|
||||||
|
|
||||||
- DoTimer() did not allocate the local MsgPort correctly. Fixed.
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.194 (15.7.2005)
|
|
||||||
|
|
||||||
- Added getopt_long to libunix.a <tfrieden>
|
|
||||||
|
|
||||||
- Added new libprofile.a which implements gprof gmon.out output <tfrieden>
|
|
||||||
|
|
||||||
- Added the function profil() to libc.a <tfrieden>
|
|
||||||
|
|
||||||
- Added ftello() and fseeko() which both merely call the equivalent (at
|
|
||||||
least for clib2) ftell() and fseek() functions, respectively.
|
|
||||||
|
|
||||||
- statfs() never stated that a disk was mounted for read-only access
|
|
||||||
because the wrong InfoData structure member was tested. Fixed.
|
|
||||||
|
|
||||||
- lstat would overwrite the name parameter via ReadLink(..., name, ...)
|
|
||||||
instead of ReadLink(..., new_name, ...) <tfrieden>
|
|
||||||
|
|
||||||
- Implemented exp2()/exp2f() and log2()/log2f() as suggested by
|
|
||||||
Henning Nielsen Lund. Thank you very much!
|
|
||||||
|
|
||||||
- The pattern matching code which expands command line arguments, as part
|
|
||||||
of libunix.a, now translates the "*" wildcard into "#?" unless you prefix
|
|
||||||
it with a backtick ("'"), which is the wildcard pattern escape character
|
|
||||||
used on AmigaOS.
|
|
||||||
|
|
||||||
- Repaired the pattern matching code which expands command line arguments:
|
|
||||||
it no longer requires that any parameters are quoted and it is automatically
|
|
||||||
enabled if you link against libunix.a, without libc.a standing a chance to
|
|
||||||
accidentally override it.
|
|
||||||
|
|
||||||
- Fixed a bug in vfprintf that would surface when the buffer was enlarged
|
|
||||||
if the pattern was too large to fit the static internal buffer <tfrieden>
|
|
||||||
|
|
||||||
- Added file system names to statfs <tfrieden>
|
|
||||||
|
|
||||||
- Moved all the constructor code out of "stdlib_init_exit.c" and into the
|
|
||||||
files which initialize global data, such as the new "stdlib_program_name.c"
|
|
||||||
and "stdlib_malloc.c".
|
|
||||||
|
|
||||||
- Until I can find a way to invoke it from within the library, the
|
|
||||||
__machine_test() function is no longer invoked.
|
|
||||||
|
|
||||||
- Tagged global data with NOCOMMON attributes.
|
|
||||||
|
|
||||||
- Added the __lib_init() and __lib_exit() functions, which are part of the
|
|
||||||
thread-safe library and which can be used to hook up clib2 with standard
|
|
||||||
Amiga shared library/device code. Some documentation on how to use them
|
|
||||||
can be found in the <dos.h> header file.
|
|
||||||
|
|
||||||
- Added a complete shared library skeleton example to demonstrate how the
|
|
||||||
clib2 shared library initialization/cleanup functions should be used.
|
|
||||||
This is a dual-build library which will both work with the plain 68k
|
|
||||||
AmigaOS and the PowerPC native AmigaOS4. The example source code can be
|
|
||||||
found in the "skeleton_library" subdirectory.
|
|
||||||
|
|
||||||
- The thread-safe version of isatty() should now work for stdio
|
|
||||||
file descriptors, too.
|
|
||||||
|
|
||||||
- Retrofitted thread-safety into the termios code.
|
|
||||||
|
|
||||||
- The socket/usergroup API function and data type definitions that used to
|
|
||||||
be defined in <unistd.h> have been moved into a separate header file
|
|
||||||
<sys/clib2_net.h> which, for backwards compatibility, can be include
|
|
||||||
from within <unistd.h> if the preprocessor symbol __USE_CLIB2_NETLIB
|
|
||||||
is defined early on. Eventually, <sys/clib2_net.h> should be removed
|
|
||||||
from the general header files and become a local library build header
|
|
||||||
file altogether. Note that in this case you would have to build your
|
|
||||||
own software using common TCP/IP SDK header files.
|
|
||||||
|
|
||||||
- <sys/types.h> now also includes <time.h> and <stddef.h>.
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.193 (4.6.2005)
|
|
||||||
|
|
||||||
- fpclassify() now returns FP_ZERO both for 0 and -0.
|
|
||||||
|
|
||||||
- nan() and nanf() now return quiet NaNs.
|
|
||||||
|
|
||||||
- Added internal __inf() and __inff() functions.
|
|
||||||
|
|
||||||
- strtof() now calls nanf() and __inff(), respectively, to produce
|
|
||||||
the special floating point values for nan/inf/infinity.
|
|
||||||
|
|
||||||
- strtod() now calls nan() and __inf(), respectively, to produce
|
|
||||||
the special floating point values for nan/inf/infinity.
|
|
||||||
|
|
||||||
- The scanf() family now calls nan() and __inf(), respectively, to
|
|
||||||
produce the special floating point values for nan/inf/infinity.
|
|
||||||
|
|
||||||
- Added %D, %e, %F, %g, %G and %h for strftime(); repaired %I.
|
|
||||||
|
|
||||||
- Documented __strip_double_slash() and plugged in a memmove()
|
|
||||||
in place of the copying loop.
|
|
||||||
|
|
||||||
- Modified __translate_unix_to_amiga_path_name() and
|
|
||||||
__translate_amiga_to_unix_path_name() to not to call strlen()
|
|
||||||
on the results of __strip_double_slash().
|
|
||||||
|
|
||||||
- For %C strtime() should return the century number, not the
|
|
||||||
year number mod 100.
|
|
||||||
|
|
||||||
- The record locking code in fcntl() is no longer part of the
|
|
||||||
regular libc.a, but only of libunix.a.
|
|
||||||
|
|
||||||
- Changed the definition of the D_S() macro to cast the pointer
|
|
||||||
address to an unsigned 32 bit integer.
|
|
||||||
|
|
||||||
- Modified the locale-aware isalnum(), isalpha(), iscntrl(),
|
|
||||||
isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(),
|
|
||||||
isupper(), isxdigit(), tolower() and toupper() functions
|
|
||||||
to clamp the input parameter to the "unsigned char" range before
|
|
||||||
it is submitted to the respective locale.library function. This
|
|
||||||
should be in sync with what the specs demand, which state that
|
|
||||||
if the input parameter is neither EOF nor in the range of an
|
|
||||||
"unsigned char" variable, then the results are undefined.
|
|
||||||
|
|
||||||
- ungetc() now returns the input character, clamped to an unsigned
|
|
||||||
char value, upon success. Previously, if the input parameter was
|
|
||||||
negative and not EOF, the result was identical to the input, which
|
|
||||||
could have had negative side-effects.
|
|
||||||
|
|
||||||
- Added NAN, INFINITY, FLT_EVAL_METHOD, float_t and double_t to
|
|
||||||
<math.h> (C99).
|
|
||||||
|
|
||||||
- Added skeleton code for acosf(), acosh(), acoshf(), asinf(), asinh(),
|
|
||||||
asinhf(), atan2f(), atanf(), atanh(), atanhf(), cbrt(), cbrtf(),
|
|
||||||
ceilf(), cosf(), coshf(), erf(), erfc(), erfcf(), erff(),
|
|
||||||
exp2(), exp2f(), expf(), expm1(), expm1f(), fdim(), fdimf(),
|
|
||||||
floorf(), fma(), fmaf(), fmax(), fmaxf(), fmin(), fminf(),
|
|
||||||
fmodf(), frexpf(), hypotf(), ilogb(), ilogbf(), ldexpf(), lgamma(),
|
|
||||||
lgammaf(), log10f(), log1p(), log1pf(), log2(), log2f(), logbf(),
|
|
||||||
logf(), lrint(), lrintf(), lround(), lroundf(), modff(), nearbyint(),
|
|
||||||
nearbyintf(), powf(), remainder(), remainderf(), remquo(), remquof(), round(),
|
|
||||||
roundf(), scalbn(), scalbnf(), sinf(), sinhf(), sqrtf(), tanf(),
|
|
||||||
tanhf(), tgamma(), tgammaf(), trunc() and truncf(), to be filled in
|
|
||||||
later...
|
|
||||||
|
|
||||||
- Implemented fmin()/fminf(), fmax()/fmaxf(), fdim()/fdimf() for C99.
|
|
||||||
|
|
||||||
- Ported acosf(), asinf(), atan2f(), atanf(), ceilf(), expf(), floorf(),
|
|
||||||
fmodf(), frexpf(), ldexpf(), log10f(), logbf(), logf(), modff(), powf(), sqrtf(),
|
|
||||||
scalbn() and scalbnf() for C99.
|
|
||||||
|
|
||||||
- Ported cbrt(), cbrtf(), erf(), erff(), erfc(), erfcf(), expm1(),
|
|
||||||
expm1f(), ilogb(), ilogbf(), log1p() and log1pf() for C99.
|
|
||||||
|
|
||||||
- Ported cosf(), coshf(), sinf(), sinhf(), tanf(), tanhf()
|
|
||||||
and hypotf() for C99.
|
|
||||||
|
|
||||||
- Ported acosh(), acoshf(), asinh(), asinhf(), lgamma(), lgammaf(),
|
|
||||||
remainder() and remainderf() for C99.
|
|
||||||
|
|
||||||
- The scanf() family now supports character ranges for the %[
|
|
||||||
conversion. Note that this is a non-standard feature!
|
|
||||||
|
|
||||||
- Integrated Peter Bengtsson's termios code. Thank you very much! I chose
|
|
||||||
to add it to libunix.a rather than keeping it in a separate libtermios.a
|
|
||||||
library.
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.192 (12.5.2005)
|
|
||||||
|
|
||||||
- Changed how errors are detected, as returned by Write(), Read() and
|
|
||||||
Seek(). Seek() is particularly challenging because the value it
|
|
||||||
returns might be a valid file position and not an error.
|
|
||||||
|
|
||||||
- Replaced numeric function return codes of 0 and -1 with macros OK,
|
|
||||||
SEEK_ERROR/ERROR to clarify the respective purposes.
|
|
||||||
|
|
||||||
- Changed how ftell() and fseek() are used, double-checking the return
|
|
||||||
value and the errno code.
|
|
||||||
|
|
||||||
- The record locking semaphore could wind up getting added to the public
|
|
||||||
list twice. Fixed.
|
|
||||||
|
|
||||||
- Fixed two linker errors which were caused by duplicate symbol definitions.
|
|
||||||
|
|
||||||
- Added code to the startup routine which allows you to monitor where a command
|
|
||||||
was started from and which parameters it was invoked with.
|
|
||||||
|
|
||||||
- If fread()/fwrite() fail to read/write any data because either the number
|
|
||||||
of records or the size of each record is zero, both now call clearerr() to
|
|
||||||
avoid giving the caller the wrong impression that an EOF or error occured.
|
|
||||||
|
|
||||||
- The libunix.a flavour of system() no longer attempts to translate the name
|
|
||||||
of a command unless it contains path separator characters.
|
|
||||||
|
|
||||||
- Added strtof(), llabs(), lldiv(), vsscanf() and vscanf() for C99.
|
|
||||||
|
|
||||||
- strftime() now supports %C, %n, %r, %R, %t, %T, %u, %V, and %z for C99.
|
|
||||||
And it ignores the E and O modifiers.
|
|
||||||
|
|
||||||
- The printf() family now supports the %hh, %j, %t and %z modifiers and the
|
|
||||||
%a/%A conversions for C99. The %j is treated like %ll; %t and %z are treated
|
|
||||||
like %l. Also, the "infinity"/"not a number" signals now come out as the
|
|
||||||
strings "inf" and "nan".
|
|
||||||
|
|
||||||
- Added HUGE_VALF to <math.h>.
|
|
||||||
|
|
||||||
- For the printf() "%a" conversion the exponent now comes out as a binary
|
|
||||||
number rather than a decimal one. Now how odd is that?
|
|
||||||
|
|
||||||
- strtod() and strtof() now support "inf"/"infinity"/"nan"/"nan(..)" and
|
|
||||||
hexadecimal floating point numbers, for C99.
|
|
||||||
|
|
||||||
- Added the fpclassify(), isfinite(), isnormal() and signbit() macros for C99.
|
|
||||||
|
|
||||||
- Reimplemented isnan() and isinf() as macros for C99. The corresponding
|
|
||||||
functions will be dropped from the library. Note that the isinf() macro
|
|
||||||
does not return -1, 0 or 1 like the old function did, but only 0 or 1
|
|
||||||
depending upon whether the parameter represents +/- infinity or not.
|
|
||||||
|
|
||||||
- Added fabsf() for C99.
|
|
||||||
|
|
||||||
- The scanf() family now supports the %hh, %j, %t and %z modifiers and the
|
|
||||||
%a/%A conversions for C99. The %j is treated like %ll; %t and %z are treated
|
|
||||||
like %l. Also, the "inf"/"infinity"/"nan"/"nan()" keywords are processed.
|
|
||||||
|
|
||||||
- The strftime() %z conversion now prints the time zone difference as a
|
|
||||||
"decimal" number. That is, if the difference is 5 hours and 30 minutes,
|
|
||||||
then %z will now print "530" rather than "330".
|
|
||||||
|
|
||||||
- mktime() now handles one leap second gracefully.
|
|
||||||
|
|
||||||
- Added isblank().
|
|
||||||
|
|
||||||
- Added isunordered(), isgreater(), isgreaterequal(), isless(),
|
|
||||||
islessequal() and islessgreater() to <math.h> for C99.
|
|
||||||
|
|
||||||
- The wchar_t type is now an 'unsigned short' integer (16 bits wide).
|
|
||||||
|
|
||||||
- Added PTRDIFF_MIN/PTRDIFF_MAX, WCHAR_MIN/WCHAR_MAX and
|
|
||||||
WINT_MIN/WINT_MAX to <stdint.h> for C99.
|
|
||||||
|
|
||||||
- Added imaxdiv() and imaxabs() for C99.
|
|
||||||
|
|
||||||
- Added strtoimax() and strtoumax() for C99.
|
|
||||||
|
|
||||||
- Added nextafter() and nextafterf() for C99.
|
|
||||||
|
|
||||||
- Added copysign() and copysignf() for C99.
|
|
||||||
|
|
||||||
- Unless I missed something, clib2 should now be functionally complete
|
|
||||||
with regard to C99, except for the floating point operations covered.
|
|
||||||
These are a major challenge all by themselves, and I wonder both
|
|
||||||
whether they are worth the effort and how one could implement them
|
|
||||||
correctly.
|
|
||||||
|
|
||||||
- fflush() now consistently supports a NULL parameter, causing all
|
|
||||||
streams to be flushed for which this behaviour is defined.
|
|
||||||
|
|
||||||
- The printf() family can now produce output for floating point
|
|
||||||
numbers with more than about 77 characters, provided sufficient
|
|
||||||
memory is available. C99 calls for a minimum of 4095 characters,
|
|
||||||
but we're trying to allocate the space required dynamically.
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.191 (9.4.2005)
|
|
||||||
|
|
||||||
- The name of the public record locking semaphore has to be preallocated
|
|
||||||
for OS4 if the AllocSysObject() function is used to create it.
|
|
||||||
|
|
||||||
- Moved the signal block mask and the signal function table out of
|
|
||||||
signal_data.c and into signal_raise.c where they are actually used.
|
|
||||||
This makes it possible to override the default definition of the
|
|
||||||
__check_abort_enabled variable in your own programs.
|
|
||||||
|
|
||||||
- raise() no longer resets the signal handler before it invokes the one
|
|
||||||
currently configured. It merely blocks the delivery of the respective
|
|
||||||
signal to prevent recursion.
|
|
||||||
|
|
||||||
- raise() now drops into abort() if a signal handler is set to
|
|
||||||
SIG_DFL. The exception is in SIGINT delivery, which has the
|
|
||||||
effect of printing a different termination message but otherwise
|
|
||||||
program flow takes the same path as abort().
|
|
||||||
|
|
||||||
- Moved the __UtilityBase/__IUtility variable declarations into
|
|
||||||
a separate file.
|
|
||||||
|
|
||||||
- Simplified the library/open close code in "stdlib_main.c".
|
|
||||||
|
|
||||||
- File descriptors produced by dup() or dup2() now work exactly like
|
|
||||||
the original file descriptors they are duplicates of. I modified the
|
|
||||||
function which maps file descriptor numbers to file descriptor
|
|
||||||
table entries to return the table entries of the original files.
|
|
||||||
|
|
||||||
- In the thread-safe library, duplicated stdin/stdout/stderr
|
|
||||||
descriptors now work like the "real" ones. This is true even if
|
|
||||||
the "real" ones were closed and only their former aliases remain.
|
|
||||||
|
|
||||||
- Invoking fstat() on what maps to a con-handler stream now produces
|
|
||||||
information identifying it as a character special file.
|
|
||||||
|
|
||||||
- Added more code and changes contributed by Peter Bengtsson, thank you
|
|
||||||
very much! This includes the following:
|
|
||||||
|
|
||||||
- Added SSIZE_MAX to <limits.h>.
|
|
||||||
|
|
||||||
- Added <sys/uio.h>, readv() and writev().
|
|
||||||
|
|
||||||
- Cut back the soft link resolution code in lstat().
|
|
||||||
|
|
||||||
- In <fcntl.h> O_NDELAY is now an alias for O_NONBLOCK.
|
|
||||||
|
|
||||||
- Added <complex.h>, carg(), cargf(), cargl(), cimag(), cimagf(),
|
|
||||||
cimagl(), conj(), conjf(), conjl(), creal(), crealf() and creall().
|
|
||||||
|
|
||||||
Note that the C99 support for the complex floating point data
|
|
||||||
types is limited to GCC 3.x for now.
|
|
||||||
|
|
||||||
- Added va_copy() to <stdarg.h>.
|
|
||||||
|
|
||||||
- Added _Exit() to <stdlib.h>.
|
|
||||||
|
|
||||||
- Added <stdbool.h>.
|
|
||||||
|
|
||||||
- Added vfscanf() to <stdio.h>.
|
|
||||||
|
|
||||||
- The stdio locking in fcntl() wasn't working correctly. Fixed.
|
|
||||||
|
|
||||||
- Made the clearerr(), feof() and ferror() macros thread-safe.
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.190 (25.3.2005)
|
|
||||||
|
|
||||||
- DoTimer() now calls AllocSysObject() rather than making up
|
- DoTimer() now calls AllocSysObject() rather than making up
|
||||||
a MsgPort locally.
|
a MsgPort locally.
|
||||||
|
|
||||||
@@ -938,80 +62,6 @@ c.lib 1.190 (25.3.2005)
|
|||||||
- Introduced new constructor types and changed the overall priority
|
- Introduced new constructor types and changed the overall priority
|
||||||
order.
|
order.
|
||||||
|
|
||||||
- Switched over the startup code and the library itself to use
|
|
||||||
constructor/destructor functions for initialization and cleanup
|
|
||||||
purposes.
|
|
||||||
|
|
||||||
- The destructor function invocation code no longer calls
|
|
||||||
setjmp(). This is now done within stdlib_main.c prior to
|
|
||||||
calling the destructor function invocation code.
|
|
||||||
|
|
||||||
- Fixed the SAS/C destructor function prototypes and verified
|
|
||||||
that the constructors/destructors are called in the proper
|
|
||||||
order, too.
|
|
||||||
|
|
||||||
- Aliases of file descriptors are now using the signal semaphore
|
|
||||||
of the original file descriptor.
|
|
||||||
|
|
||||||
- close() did not return 0 if the file descriptor in question
|
|
||||||
was really just an alias. Fixed.
|
|
||||||
|
|
||||||
- Added a feature which makes it possible to have several clients
|
|
||||||
use the standard I/O streams (stdin/stdout/stderr) and have these
|
|
||||||
referring to their process' Input()/Output()/ErrorOutput()
|
|
||||||
streams. This is intended to support the upcoming shared
|
|
||||||
library feature.
|
|
||||||
|
|
||||||
- Turns out that the 68k GCC port does not sort constructor and
|
|
||||||
destructor functions in any way at all. I reimplemented the
|
|
||||||
entire library constructor/destructor functionality to use the
|
|
||||||
same approach as libnix.
|
|
||||||
|
|
||||||
- ftruncate() ended up changing the current file position, contrary
|
|
||||||
to what it is supposed to do. Fixed.
|
|
||||||
|
|
||||||
- fcntl() did not work for sockets. Fixed.
|
|
||||||
|
|
||||||
- Reorganized the local header files, removing redundancies.
|
|
||||||
|
|
||||||
- Dropped unused stub code which is now redundant because of
|
|
||||||
the constructor/destructor mechanism.
|
|
||||||
|
|
||||||
- Moved the call chain printing out of stdlib_main.c and into
|
|
||||||
separate files.
|
|
||||||
|
|
||||||
- Removed some more redundant data from stdlib_main.c.
|
|
||||||
|
|
||||||
- Added the first "real" C99 function: _Exit() ;-)
|
|
||||||
|
|
||||||
- assertion failures early on during program initialization
|
|
||||||
should no longer spell big trouble on account of the stdio
|
|
||||||
data structures possibly not being in a well-defined and
|
|
||||||
initialized state.
|
|
||||||
|
|
||||||
- Turns out that the constructor/destructor calling sequence
|
|
||||||
was still wrongish for the OS4 library. So I had to change
|
|
||||||
it *again*. Which probably means that the 68k library will
|
|
||||||
need further changes...
|
|
||||||
|
|
||||||
- Moved stdlib_main.o into the regular libc.a, at least for
|
|
||||||
the 68k build. The PowerPC build may follow later, provided
|
|
||||||
I manage to get the specs file fixed. Actually, stdlib_main.o
|
|
||||||
is in the libc.a library already. Now about that specs file...
|
|
||||||
|
|
||||||
- Moved the check for the presence of an FPU into the
|
|
||||||
math_init.c code. I am far from certain whether this will
|
|
||||||
have the desired effect, though. Due to how the GNU ld linker
|
|
||||||
works, libraries are scanned once only. And the FPU check will
|
|
||||||
be pulled in only if something references the HUGE_VAL
|
|
||||||
constant.
|
|
||||||
|
|
||||||
- Activated the dormant thread-safe standard input/output/error
|
|
||||||
handling code.
|
|
||||||
|
|
||||||
- Small fixes to fcntl() and select() to cover the thread-safe
|
|
||||||
fd->fd_DefaultFile == ZERO case.
|
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.189 (5.3.2005)
|
c.lib 1.189 (5.3.2005)
|
||||||
|
|
||||||
|
|||||||
@@ -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,12 +1,11 @@
|
|||||||
//
|
//
|
||||||
// $Id: crt0.S,v 1.6 2005-10-11 09:28:29 obarthel Exp $
|
// $Id: crt0.S,v 1.2 2004-11-28 12:31:27 tfrieden Exp $
|
||||||
//
|
//
|
||||||
// :ts=4
|
// :ts=4
|
||||||
//
|
//
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
.globl main /* This enforces linkage against the main() function */
|
|
||||||
.globl _main
|
.globl _main
|
||||||
.globl _start
|
.globl _start
|
||||||
|
|
||||||
@@ -26,3 +25,16 @@ _start:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
b _main
|
b _main
|
||||||
|
|
||||||
|
#if defined(BASEREL_DATA)
|
||||||
|
.section .rodata
|
||||||
|
|
||||||
|
.globl __data_segment_descriptor
|
||||||
|
__data_segment_descriptor:
|
||||||
|
.long __data_start
|
||||||
|
.long __data_end
|
||||||
|
.long _DATA_BASE_
|
||||||
|
|
||||||
|
.section .dend, "wa", @nobits
|
||||||
|
.space 4
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: crtbegin.c,v 1.13 2010-08-21 11:37:03 obarthel Exp $
|
* $Id: crtbegin.c,v 1.8 2005-03-10 13:30:11 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
@@ -10,9 +10,12 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#ifndef EXEC_TYPES_H
|
|
||||||
#include <exec/types.h>
|
#include <exec/types.h>
|
||||||
#endif /* EXEC_TYPES_H */
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <setjmp.h>
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
@@ -27,22 +30,12 @@ static void (*__DTOR_LIST__[1]) (void) __attribute__(( used, section(".dtors"),
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
void _init(void);
|
|
||||||
void _fini(void);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
void
|
void
|
||||||
_init(void)
|
_init(void)
|
||||||
{
|
{
|
||||||
extern void shared_obj_init(void);
|
|
||||||
int num_ctors,i;
|
int num_ctors,i;
|
||||||
int j;
|
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++)
|
for(i = 1, num_ctors = 0 ; __CTOR_LIST__[i] != NULL ; i++)
|
||||||
num_ctors++;
|
num_ctors++;
|
||||||
|
|
||||||
@@ -55,19 +48,21 @@ _init(void)
|
|||||||
void
|
void
|
||||||
_fini(void)
|
_fini(void)
|
||||||
{
|
{
|
||||||
extern void shared_obj_exit(void);
|
extern jmp_buf __exit_jmp_buf;
|
||||||
|
|
||||||
int num_dtors,i;
|
int num_dtors,i;
|
||||||
static int j;
|
static int j;
|
||||||
|
|
||||||
|
/* If one of the destructors drops into
|
||||||
|
exit(), processing will continue with
|
||||||
|
the next following destructor. */
|
||||||
|
(void)setjmp(__exit_jmp_buf);
|
||||||
|
|
||||||
for(i = 1, num_dtors = 0 ; __DTOR_LIST__[i] != NULL ; i++)
|
for(i = 1, num_dtors = 0 ; __DTOR_LIST__[i] != NULL ; i++)
|
||||||
num_dtors++;
|
num_dtors++;
|
||||||
|
|
||||||
while(j++ < num_dtors)
|
while(j++ < num_dtors)
|
||||||
__DTOR_LIST__[j]();
|
__DTOR_LIST__[j]();
|
||||||
|
|
||||||
/* The shared objects need to be cleaned up after all local
|
|
||||||
destructors have been invoked. */
|
|
||||||
shared_obj_exit();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_headers.h,v 1.6 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_headers.h,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -42,25 +42,18 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#ifndef _STDLIB_LOCALEBASE_H
|
#ifndef _STDLIB_LOCALE_UTILITY_H
|
||||||
#include "stdlib_localebase.h"
|
#include "stdlib_locale_utility.h"
|
||||||
#endif /* _STDLIB_LOCALEBASE_H */
|
#endif /* _STDLIB_LOCALE_UTILITY_H */
|
||||||
|
|
||||||
#ifndef _STDLIB_UTILITYBASE_H
|
|
||||||
#include "stdlib_utilitybase.h"
|
|
||||||
#endif /* _STDLIB_UTILITYBASE_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#ifndef _MACROS_H
|
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
#endif /* _MACROS_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <limits.h>
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isalnum.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_isalnum.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -55,13 +55,7 @@ isalnum(int c)
|
|||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
result = IsAlNum(__locale_table[LC_CTYPE],(ULONG)c);
|
||||||
'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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isalpha.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_isalpha.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -53,13 +53,7 @@ isalpha(int c)
|
|||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
result = IsAlpha(__locale_table[LC_CTYPE],(ULONG)c);
|
||||||
'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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isascii.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_isascii.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -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,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_iscntrl.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_iscntrl.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -53,13 +53,7 @@ iscntrl(int c)
|
|||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
result = IsCntrl(__locale_table[LC_CTYPE],(ULONG)c);
|
||||||
'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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isdigit.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_isdigit.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -53,13 +53,7 @@ isdigit(int c)
|
|||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
result = IsDigit(__locale_table[LC_CTYPE],(ULONG)c);
|
||||||
'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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isgraph.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_isgraph.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -53,13 +53,7 @@ isgraph(int c)
|
|||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
result = IsGraph(__locale_table[LC_CTYPE],(ULONG)c);
|
||||||
'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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_islower.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_islower.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -53,13 +53,7 @@ islower(int c)
|
|||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
result = IsLower(__locale_table[LC_CTYPE],(ULONG)c);
|
||||||
'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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isprint.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_isprint.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -53,13 +53,7 @@ isprint(int c)
|
|||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
result = IsPrint(__locale_table[LC_CTYPE],(ULONG)c);
|
||||||
'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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_ispunct.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_ispunct.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -53,13 +53,7 @@ ispunct(int c)
|
|||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
result = IsPunct(__locale_table[LC_CTYPE],(ULONG)c);
|
||||||
'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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isspace.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_isspace.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -53,13 +53,7 @@ isspace(int c)
|
|||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
result = IsSpace(__locale_table[LC_CTYPE],(ULONG)c);
|
||||||
'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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isupper.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_isupper.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -53,13 +53,7 @@ isupper(int c)
|
|||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
result = IsUpper(__locale_table[LC_CTYPE],(ULONG)c);
|
||||||
'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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isxdigit.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_isxdigit.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -53,13 +53,7 @@ isxdigit(int c)
|
|||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
result = IsXDigit(__locale_table[LC_CTYPE],(ULONG)c);
|
||||||
'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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_table.c,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_table.c,v 1.3 2005-01-09 15:20:31 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_tolower.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_tolower.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -49,13 +49,7 @@ tolower(int c)
|
|||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
result = ConvToLower(__locale_table[LC_CTYPE],(ULONG)c);
|
||||||
'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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_toupper.c,v 1.5 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: ctype_toupper.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -49,13 +49,7 @@ toupper(int c)
|
|||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
/* The parameter must be either EOF or in the range of an
|
result = ConvToUpper(__locale_table[LC_CTYPE],(ULONG)c);
|
||||||
'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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: debug.c,v 1.6 2006-09-25 14:51:15 obarthel Exp $
|
* $Id: debug.c,v 1.3 2005-02-25 10:14:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=8
|
* :ts=8
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -160,7 +160,7 @@ _SHOWVALUE(
|
|||||||
{
|
{
|
||||||
if(__debug_level >= DEBUGLEVEL_Reports)
|
if(__debug_level >= DEBUGLEVEL_Reports)
|
||||||
{
|
{
|
||||||
const char *fmt;
|
char *fmt;
|
||||||
|
|
||||||
switch(size)
|
switch(size)
|
||||||
{
|
{
|
||||||
@@ -207,7 +207,7 @@ _SHOWPOINTER(
|
|||||||
{
|
{
|
||||||
if(__debug_level >= DEBUGLEVEL_Reports)
|
if(__debug_level >= DEBUGLEVEL_Reports)
|
||||||
{
|
{
|
||||||
const char *fmt;
|
char *fmt;
|
||||||
|
|
||||||
_INDENT();
|
_INDENT();
|
||||||
|
|
||||||
@@ -273,7 +273,7 @@ _DPRINTF(const char *fmt,...)
|
|||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
va_start(args,fmt);
|
va_start(args,fmt);
|
||||||
KPutFmt(fmt,args);
|
KPutFmt((char *)fmt,args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
|
||||||
KPrintF("\n");
|
KPrintF("\n");
|
||||||
@@ -288,7 +288,7 @@ _DLOG(const char *fmt,...)
|
|||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
va_start(args,fmt);
|
va_start(args,fmt);
|
||||||
KPutFmt(fmt,args);
|
KPutFmt((char *)fmt,args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: debug.h,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: debug.h,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=8
|
* :ts=8
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: debug.lib_rev.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: debug.lib_rev.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#define VERSION 1
|
#define VERSION 1
|
||||||
#define REVISION 205
|
#define REVISION 189
|
||||||
#define DATE "21.8.2010"
|
#define DATE "5.3.2005"
|
||||||
#define VERS "debug.lib 1.205"
|
#define VERS "debug.lib 1.189"
|
||||||
#define VSTRING "debug.lib 1.205 (21.8.2010)\r\n"
|
#define VSTRING "debug.lib 1.189 (5.3.2005)\r\n"
|
||||||
#define VERSTAG "\0$VER: debug.lib 1.205 (21.8.2010)"
|
#define VERSTAG "\0$VER: debug.lib 1.189 (5.3.2005)"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
205
|
189
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: debug_cmpstrexec.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: debug_cmpstrexec.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: debug_headers.h,v 1.4 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: debug_headers.h,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -36,15 +36,14 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#ifndef EXEC_LIBRARIES_H
|
|
||||||
#include <exec/libraries.h>
|
#include <exec/libraries.h>
|
||||||
#endif /* EXEC_LIBRARIES_H */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#if defined(__SASC)
|
#if defined(__SASC)
|
||||||
|
|
||||||
#include <clib/exec_protos.h>
|
#include <clib/exec_protos.h>
|
||||||
|
/*#include <pragmas/exec_sysbase_pragmas.h>*/
|
||||||
#include <pragmas/exec_pragmas.h>
|
#include <pragmas/exec_pragmas.h>
|
||||||
|
|
||||||
LONG RawMayGetChar(VOID);
|
LONG RawMayGetChar(VOID);
|
||||||
@@ -58,11 +57,7 @@ VOID RawPutChar(UBYTE c);
|
|||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
#if defined(__amigaos4__)
|
||||||
|
|
||||||
#ifndef EXEC_EMULATION_H
|
|
||||||
#include <exec/emulation.h>
|
#include <exec/emulation.h>
|
||||||
#endif /* EXEC_EMULATION_H */
|
|
||||||
|
|
||||||
#endif /* __amigaos4__ */
|
#endif /* __amigaos4__ */
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
@@ -111,13 +106,11 @@ VOID RawPutChar(UBYTE c);
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#ifndef _MACROS_H
|
|
||||||
#include "macros.h"
|
|
||||||
#endif /* _MACROS_H */
|
|
||||||
|
|
||||||
#ifndef _DEBUG_H
|
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#endif /* _DEBUG_H */
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#include "macros.h"
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: debug_kcmpstr.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: debug_kcmpstr.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: debug_kdofmt.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: debug_kdofmt.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: debug_kgetc.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: debug_kgetc.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: debug_kgetch1.c,v 1.3 2006-01-08 12:04:22 obarthel Exp $
|
* $Id: debug_kgetch1.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2006 by Olaf Barthel <olsen (at) sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user