1
0
mirror of https://github.com/adtools/clib2.git synced 2025-12-08 14:59:05 +00:00

1 Commits

Author SHA1 Message Date
Olaf Barthel
b35f5e0fdb This commit was manufactured by cvs2svn to create tag
'BEFORE_CONSTRUCTOR_CHANGE'.

git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/tags/BEFORE_CONSTRUCTOR_CHANGE@14881 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2005-03-11 11:35:32 +00:00
535 changed files with 4203 additions and 27358 deletions

View File

@@ -1,5 +1,5 @@
# #
# $Id: GNUmakefile.68k,v 1.73 2005-10-20 07:19:15 obarthel Exp $ # $Id: GNUmakefile.68k,v 1.40 2005-03-11 09:37:27 obarthel Exp $
# #
# :ts=8 # :ts=8
# #
@@ -12,7 +12,7 @@ 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
############################################################################## ##############################################################################
@@ -78,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))
@@ -88,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))
@@ -110,17 +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 -D__MEM_DEBUG #OPTIONS = -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG -fno-builtin
#OPTIONS = -fno-builtin -fno-common -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG
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) $(CODE_TYPE) $(INCLUDES)
############################################################################## ##############################################################################
@@ -129,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 \
@@ -158,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 \
@@ -209,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 \
@@ -219,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 \
@@ -278,8 +267,6 @@ 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 \
@@ -308,15 +295,11 @@ C_LIB = \
stdlib_getenv.o \ stdlib_getenv.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_malloc.o \ stdlib_malloc.o \
stdlib_math.o \ stdlib_math.o \
stdlib_mkdtemp.o \ stdlib_mkdtemp.o \
@@ -329,7 +312,6 @@ 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 \
@@ -343,6 +325,7 @@ 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_stackargbytes.o \
stdlib_stackcheck.o \ stdlib_stackcheck.o \
@@ -361,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 \
@@ -420,8 +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 \
unistd_access.o \ unistd_access.o \
unistd_chdir.o \ unistd_chdir.o \
unistd_chdir_exit.o \ unistd_chdir_exit.o \
@@ -465,7 +446,6 @@ 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 \
stat_chmod.o \ stat_chmod.o \
@@ -474,7 +454,6 @@ UNIX_LIB = \
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 \
@@ -486,26 +465,10 @@ UNIX_LIB = \
stdio_record_locking.o \ stdio_record_locking.o \
stdio_remove.o \ stdio_remove.o \
stdio_rename.o \ stdio_rename.o \
stdlib_arg.o \
stdlib_main.o \
stdlib_mkdtemp.o \ stdlib_mkdtemp.o \
stdlib_mkstemp.o \ stdlib_mkstemp.o \
stdlib_mktemp.o \ stdlib_mktemp.o \
stdlib_system.o \ stdlib_system.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 \
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 \
@@ -522,142 +485,44 @@ UNIX_LIB = \
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 \
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_floor.o \ math_floor.o \
math_floorf.o \
math_fma.o \
math_fmaf.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_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 \
@@ -668,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 = \
@@ -728,7 +591,6 @@ 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 \
@@ -755,7 +617,6 @@ 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 \
@@ -768,8 +629,6 @@ 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 \
usergroup_crypt.o \ usergroup_crypt.o \
usergroup_data.o \ usergroup_data.o \
@@ -898,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
############################################################################## ##############################################################################
@@ -908,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 \
@@ -1017,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
@@ -1051,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
@@ -1240,23 +1107,30 @@ 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 = \
amiga_rexxvars.c \ amiga_rexxvars.c \
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_stackcheck.c \
stdlib_stackextension.c \ stdlib_stackextension.c \
time_clock.c \ time_clock.c \
unistd_chdir_exit.c \ unistd_chdir_exit.c \

File diff suppressed because it is too large Load Diff

View File

@@ -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.

View File

@@ -1,6 +1,6 @@
#define VERSION 1 #define VERSION 1
#define REVISION 197 #define REVISION 189
#define DATE "4.11.2005" #define DATE "5.3.2005"
#define VERS "amiga.lib 1.197" #define VERS "amiga.lib 1.189"
#define VSTRING "amiga.lib 1.197 (4.11.2005)\r\n" #define VSTRING "amiga.lib 1.189 (5.3.2005)\r\n"
#define VERSTAG "\0$VER: amiga.lib 1.197 (4.11.2005)" #define VERSTAG "\0$VER: amiga.lib 1.189 (5.3.2005)"

View File

@@ -1 +1 @@
197 189

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: amiga_acrypt.c,v 1.3 2005-05-30 14:01:20 obarthel Exp $ * $Id: amiga_acrypt.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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"

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: amiga_argarrayinit.c,v 1.3 2005-10-27 08:58:41 obarthel Exp $ * $Id: amiga_argarrayinit.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -61,11 +61,11 @@ 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 */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: amiga_createtask.c,v 1.4 2005-03-18 12:38:21 obarthel Exp $ * $Id: amiga_createtask.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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"

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: amiga_dotimer.c,v 1.6 2005-09-03 14:45:14 obarthel Exp $ * $Id: amiga_dotimer.c,v 1.3 2005-03-06 09:00:16 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -44,12 +44,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"
@@ -67,10 +61,9 @@ DoTimer(struct timeval *tv,LONG unit,LONG command)
#if defined(__amigaos4__) #if defined(__amigaos4__)
{ {
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);
if(mp == NULL) if(mp == NULL)
@@ -114,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);

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: amiga_rexxvars.c,v 1.6 2005-03-18 12:38:21 obarthel Exp $ * $Id: amiga_rexxvars.c,v 1.3 2005-01-09 10:10:40 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -34,20 +34,12 @@
/* 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>
@@ -68,7 +60,7 @@ static struct RexxSysIFace * IRexxSys;
/****************************************************************************/ /****************************************************************************/
CLIB_CONSTRUCTOR(rexxvars_init) CLIB_CONSTRUCTOR(__rexxvars_init)
{ {
ENTER(); ENTER();
@@ -88,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();

View File

@@ -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

View File

@@ -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 -a lib $dir_name
cp -a lib.threadsafe $dir_name
cp -a 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}

View File

@@ -1,6 +1,6 @@
#define VERSION 1 #define VERSION 1
#define REVISION 197 #define REVISION 189
#define DATE "4.11.2005" #define DATE "5.3.2005"
#define VERS "c.lib 1.197" #define VERS "c.lib 1.189"
#define VSTRING "c.lib 1.197 (4.11.2005)\r\n" #define VSTRING "c.lib 1.189 (5.3.2005)\r\n"
#define VERSTAG "\0$VER: c.lib 1.197 (4.11.2005)" #define VERSTAG "\0$VER: c.lib 1.189 (5.3.2005)"

View File

@@ -1 +1 @@
197 189

View File

@@ -1,484 +1,3 @@
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.
@@ -543,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)
@@ -899,7 +344,7 @@ c.lib 1.185 (2.1.2005)
normal versions. Let's see how well this works out in the GCC normal versions. Let's see how well this works out in the GCC
version. SAS/C does not seem to like it... version. SAS/C does not seem to like it...
- Changed the definition of alloca() for GCC, which now defaults - Changed the definition of alloca() for GCC, which now defaults
to the built-in function. to the built-in function.
- Updated the stdio.h, stdlib.h, string.h and unistd.h header files - Updated the stdio.h, stdlib.h, string.h and unistd.h header files
@@ -1985,7 +1430,7 @@ c.lib 1.117 (26.5.2004)
- The size of the physical memory allocation chunks is now taken into - The size of the physical memory allocation chunks is now taken into
account when making memory allocations. This means that allocations account when making memory allocations. This means that allocations
are rounded up to multiples of 8 bytes each. are rounded up to multiples of 8 bytes each.
c.lib 1.116 (26.5.2004) c.lib 1.116 (26.5.2004)
@@ -2074,7 +1519,7 @@ c.lib 1.110 (10.4.2004)
c.lib 1.109 (9.4.2004) c.lib 1.109 (9.4.2004)
- Fixed a bug in the PPC version of setjmp that would trash floating - Fixed a bug in the PPC version of setjmp that would trash floating
point registers. point registers.
- Fixed a bug in dup2: If the second fd didn't exist, it would return -1, - Fixed a bug in dup2: If the second fd didn't exist, it would return -1,
@@ -2672,7 +2117,7 @@ c.lib 1.60 (5.10.2003)
- Renamed the source code files which implement the strtod(), strtol(), - Renamed the source code files which implement the strtod(), strtol(),
strtoul(), atof(), atoi() and atol() functions. strtoul(), atof(), atoi() and atol() functions.
- Moved main() out of libc.a and made it into a startup object file - Moved main() out of libc.a and made it into a startup object file
which needs to be added to the GCC specs file in the "*startfile" which needs to be added to the GCC specs file in the "*startfile"
section, right at the end of the list. This solves practically all section, right at the end of the list. This solves practically all
linking problems I encountered so far. Which means that -lunix linking problems I encountered so far. Which means that -lunix
@@ -2832,7 +2277,7 @@ c.lib 1.47 (31.7.2003)
- Fixed vfscanf() and strtol() again to accept very small negative - Fixed vfscanf() and strtol() again to accept very small negative
integers (-2147483648). The previous check to avoid overflows integers (-2147483648). The previous check to avoid overflows
was too strict. was too strict.
c.lib 1.46 (31.7.2003) c.lib 1.46 (31.7.2003)

View File

@@ -1,52 +0,0 @@
/*
* $Id: complex_carg.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 */

View File

@@ -1,52 +0,0 @@
/*
* $Id: complex_cargf.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 */

View File

@@ -1,52 +0,0 @@
/*
* $Id: complex_cargl.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 */

View File

@@ -1,52 +0,0 @@
/*
* $Id: complex_cimag.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 */

View File

@@ -1,52 +0,0 @@
/*
* $Id: complex_cimagf.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 */

View File

@@ -1,52 +0,0 @@
/*
* $Id: complex_cimagl.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 */

View File

@@ -1,52 +0,0 @@
/*
* $Id: complex_conj.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 */

View File

@@ -1,52 +0,0 @@
/*
* $Id: complex_conjf.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 */

View File

@@ -1,52 +0,0 @@
/*
* $Id: complex_conjl.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 */

View File

@@ -1,52 +0,0 @@
/*
* $Id: complex_creal.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 */

View File

@@ -1,52 +0,0 @@
/*
* $Id: complex_crealf.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 */

View File

@@ -1,52 +0,0 @@
/*
* $Id: complex_creall.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 */

View File

@@ -1,68 +0,0 @@
/*
* $Id: complex_headers.h,v 1.3 2005-05-12 14:50:06 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 */

View File

@@ -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

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: crtbegin.c,v 1.10 2005-03-18 12:38:22 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>
/****************************************************************************/ /****************************************************************************/
@@ -45,9 +48,16 @@ _init(void)
void void
_fini(void) _fini(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++;

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype_headers.h,v 1.5 2005-05-29 09:56:09 obarthel Exp $ * $Id: ctype_headers.h,v 1.2 2005-01-02 09:07:07 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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>
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype_isalnum.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $ * $Id: ctype_isalnum.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype_isalpha.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $ * $Id: ctype_isalpha.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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
{ {

View File

@@ -1,52 +0,0 @@
/*
* $Id: ctype_isblank.c,v 1.2 2005-05-29 08:19:36 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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);
}

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype_iscntrl.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $ * $Id: ctype_iscntrl.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype_isdigit.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $ * $Id: ctype_isdigit.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype_isgraph.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $ * $Id: ctype_isgraph.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype_islower.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $ * $Id: ctype_islower.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype_isprint.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $ * $Id: ctype_isprint.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype_ispunct.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $ * $Id: ctype_ispunct.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype_isspace.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $ * $Id: ctype_isspace.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype_isupper.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $ * $Id: ctype_isupper.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype_isxdigit.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $ * $Id: ctype_isxdigit.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype_tolower.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $ * $Id: ctype_tolower.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype_toupper.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $ * $Id: ctype_toupper.c,v 1.3 2005-02-27 21:58:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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
{ {

View File

@@ -1,6 +1,6 @@
#define VERSION 1 #define VERSION 1
#define REVISION 197 #define REVISION 189
#define DATE "4.11.2005" #define DATE "5.3.2005"
#define VERS "debug.lib 1.197" #define VERS "debug.lib 1.189"
#define VSTRING "debug.lib 1.197 (4.11.2005)\r\n" #define VSTRING "debug.lib 1.189 (5.3.2005)\r\n"
#define VERSTAG "\0$VER: debug.lib 1.197 (4.11.2005)" #define VERSTAG "\0$VER: debug.lib 1.189 (5.3.2005)"

View File

@@ -1 +1 @@
197 189

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: debug_headers.h,v 1.3 2005-03-18 12:38:22 obarthel Exp $ * $Id: debug_headers.h,v 1.2 2005-01-02 09:07:07 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -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"
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: dirent_closedir.c,v 1.14 2005-07-03 10:36:46 obarthel Exp $ * $Id: dirent_closedir.c,v 1.8 2005-03-09 10:48:59 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -31,24 +31,18 @@
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef _STDLIB_MEM_DEBUG_H
#include "stdlib_mem_debug.h"
#endif /* _STDLIB_MEM_DEBUG_H */
/****************************************************************************/
#ifndef _DIRENT_HEADERS_H #ifndef _DIRENT_HEADERS_H
#include "dirent_headers.h" #include "dirent_headers.h"
#endif /* _DIRENT_HEADERS_H */ #endif /* _DIRENT_HEADERS_H */
/****************************************************************************/ /****************************************************************************/
#ifndef _STDLIB_MEMORY_H
#include "stdlib_memory.h"
#endif /* _STDLIB_MEMORY_H */
/****************************************************************************/
#ifndef _STDLIB_CONSTRUCTOR_H
#include "stdlib_constructor.h"
#endif /* _STDLIB_CONSTRUCTOR_H */
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/
@@ -88,7 +82,7 @@ __dirent_unlock(void)
/****************************************************************************/ /****************************************************************************/
CLIB_CONSTRUCTOR(dirent_init) CLIB_CONSTRUCTOR(__dirent_init)
{ {
BOOL success = FALSE; BOOL success = FALSE;
@@ -108,8 +102,7 @@ CLIB_CONSTRUCTOR(dirent_init)
out: out:
SHOWVALUE(success); RETURN(success);
LEAVE();
if(success) if(success)
CONSTRUCTOR_SUCCEED(); CONSTRUCTOR_SUCCEED();
@@ -119,7 +112,7 @@ CLIB_CONSTRUCTOR(dirent_init)
/****************************************************************************/ /****************************************************************************/
CLIB_DESTRUCTOR(dirent_exit) CLIB_DESTRUCTOR(__dirent_exit)
{ {
ENTER(); ENTER();
@@ -145,7 +138,7 @@ int
closedir(DIR * directory_pointer) closedir(DIR * directory_pointer)
{ {
struct DirectoryHandle * dh; struct DirectoryHandle * dh;
int result = ERROR; int result = -1;
ENTER(); ENTER();
@@ -204,7 +197,7 @@ closedir(DIR * directory_pointer)
free(dh); free(dh);
result = OK; result = 0;
out: out:

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: dirent_headers.h,v 1.8 2005-03-18 12:38:22 obarthel Exp $ * $Id: dirent_headers.h,v 1.7 2005-02-28 10:07:30 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -48,12 +48,6 @@
/****************************************************************************/ /****************************************************************************/
#ifndef _STDLIB_PROFILE_H
#include "stdlib_profile.h"
#endif /* _STDLIB_PROFILE_H */
/****************************************************************************/
#ifndef _MACROS_H #ifndef _MACROS_H
#include "macros.h" #include "macros.h"
#endif /* _MACROS_H */ #endif /* _MACROS_H */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: dirent_opendir.c,v 1.10 2005-08-26 12:39:33 obarthel Exp $ * $Id: dirent_opendir.c,v 1.8 2005-02-27 21:58:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -37,15 +37,15 @@
/****************************************************************************/ /****************************************************************************/
#ifndef _DIRENT_HEADERS_H #ifndef _STDLIB_MEM_DEBUG_H
#include "dirent_headers.h" #include "stdlib_mem_debug.h"
#endif /* _DIRENT_HEADERS_H */ #endif /* _STDLIB_MEM_DEBUG_H */
/****************************************************************************/ /****************************************************************************/
#ifndef _STDLIB_MEMORY_H #ifndef _DIRENT_HEADERS_H
#include "stdlib_memory.h" #include "dirent_headers.h"
#endif /* _STDLIB_MEMORY_H */ #endif /* _DIRENT_HEADERS_H */
/****************************************************************************/ /****************************************************************************/
@@ -128,14 +128,6 @@ opendir(const char * path_name)
if(__unix_path_semantics) if(__unix_path_semantics)
{ {
if(path_name[0] == '\0')
{
SHOWMSG("no name given");
__set_errno(ENOENT);
goto out;
}
if(__translate_unix_to_amiga_path_name(&path_name,&path_name_nti) != 0) if(__translate_unix_to_amiga_path_name(&path_name,&path_name_nti) != 0)
goto out; goto out;

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: dirent_readdir.c,v 1.8 2005-10-27 08:58:41 obarthel Exp $ * $Id: dirent_readdir.c,v 1.7 2005-02-03 16:56:15 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -96,7 +96,7 @@ readdir(DIR * directory_pointer)
if(dh->dh_VolumeNode == NULL && NOT IsListEmpty((struct List *)&dh->dh_VolumeList)) if(dh->dh_VolumeNode == NULL && NOT IsListEmpty((struct List *)&dh->dh_VolumeList))
dh->dh_VolumeNode = (struct Node *)dh->dh_VolumeList.mlh_Head; dh->dh_VolumeNode = (struct Node *)dh->dh_VolumeList.mlh_Head;
strcpy((char *)name,"\1:"); /* BSTR for ":" */ strcpy(name,"\1:"); /* BSTR for ":" */
while(result == NULL && dh->dh_VolumeNode != NULL && dh->dh_VolumeNode->ln_Succ != NULL) while(result == NULL && dh->dh_VolumeNode != NULL && dh->dh_VolumeNode->ln_Succ != NULL)
{ {

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_close.c,v 1.12 2005-04-24 08:46:37 obarthel Exp $ * $Id: fcntl_close.c,v 1.10 2005-02-20 15:46:52 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -46,7 +46,7 @@ close(int file_descriptor)
{ {
struct file_action_message fam; struct file_action_message fam;
struct fd * fd; struct fd * fd;
int result = ERROR; int result = -1;
ENTER(); ENTER();
@@ -59,9 +59,7 @@ close(int file_descriptor)
if(__check_abort_enabled) if(__check_abort_enabled)
__check_abort(); __check_abort();
/* We want to affect this very file descriptor and not the fd = __get_file_descriptor(file_descriptor);
original one associated with an alias of it. */
fd = __get_file_descriptor_dont_resolve(file_descriptor);
if(fd == NULL) if(fd == NULL)
{ {
__set_errno(EBADF); __set_errno(EBADF);
@@ -78,7 +76,7 @@ close(int file_descriptor)
goto out; goto out;
} }
result = OK; result = 0;
out: out:

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_creat.c,v 1.5 2005-04-24 08:46:37 obarthel Exp $ * $Id: fcntl_creat.c,v 1.4 2005-02-03 16:56:15 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -50,7 +50,7 @@
int int
creat(const char * path_name, mode_t mode) creat(const char * path_name, mode_t mode)
{ {
int result = ERROR; int result = -1;
ENTER(); ENTER();

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_fcntl.c,v 1.18 2005-05-27 13:19:30 obarthel Exp $ * $Id: fcntl_fcntl.c,v 1.12 2005-03-04 09:07:09 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -47,7 +47,7 @@ fcntl(int file_descriptor, int cmd, ... /* int arg */ )
struct file_action_message fam; struct file_action_message fam;
struct flock * l; struct flock * l;
int vacant_slot; int vacant_slot;
int result = ERROR; int result = -1;
struct fd * fd = NULL; struct fd * fd = NULL;
va_list arg; va_list arg;
int error; int error;
@@ -67,12 +67,6 @@ fcntl(int file_descriptor, int cmd, ... /* int arg */ )
if(__check_abort_enabled) if(__check_abort_enabled)
__check_abort(); __check_abort();
/* F_DUPFD will need to modify the file descriptor table, which is why
the stdio lock needs to be obtained here, before the individual
file descriptor lock is held. */
if(cmd == F_DUPFD)
__stdio_lock();
fd = __get_file_descriptor(file_descriptor); fd = __get_file_descriptor(file_descriptor);
if(fd == NULL) if(fd == NULL)
{ {
@@ -84,7 +78,6 @@ fcntl(int file_descriptor, int cmd, ... /* int arg */ )
switch(cmd) switch(cmd)
{ {
#if defined(UNIX_PATH_SEMANTICS)
case F_GETLK: case F_GETLK:
case F_SETLK: case F_SETLK:
case F_SETLKW: case F_SETLKW:
@@ -97,12 +90,6 @@ fcntl(int file_descriptor, int cmd, ... /* int arg */ )
goto out; goto out;
} }
if(fd->fd_DefaultFile == ZERO)
{
__set_errno(EBADF);
goto out;
}
va_start(arg,cmd); va_start(arg,cmd);
l = va_arg(arg,struct flock *); l = va_arg(arg,struct flock *);
va_end(arg); va_end(arg);
@@ -131,22 +118,27 @@ fcntl(int file_descriptor, int cmd, ... /* int arg */ )
goto out; goto out;
} }
result = OK; result = 0;
break; break;
#endif /* UNIX_PATH_SEMANTICS */
case F_GETFL: case F_GETFL:
SHOWMSG("cmd=F_GETFL"); SHOWMSG("cmd=F_GETFL");
if(FLAG_IS_SET(fd->fd_Flags,FDF_IS_SOCKET))
{
__set_errno(EINVAL);
goto out;
}
if(FLAG_IS_SET(fd->fd_Flags,FDF_NON_BLOCKING)) if(FLAG_IS_SET(fd->fd_Flags,FDF_NON_BLOCKING))
SET_FLAG(result,O_NONBLOCK); SET_FLAG(result,O_NONBLOCK);
if(FLAG_IS_SET(fd->fd_Flags,FDF_ASYNC_IO)) if(FLAG_IS_SET(fd->fd_Flags,FDF_ASYNC_IO))
SET_FLAG(result,O_ASYNC); SET_FLAG(result,O_ASYNC);
result = OK; result = 0;
break; break;
@@ -154,10 +146,9 @@ fcntl(int file_descriptor, int cmd, ... /* int arg */ )
SHOWMSG("cmd=F_SETFL"); SHOWMSG("cmd=F_SETFL");
/* If this is a file, make sure that we don't hit a zero file handle. */ if(FLAG_IS_SET(fd->fd_Flags,FDF_IS_SOCKET))
if(FLAG_IS_CLEAR(fd->fd_Flags,FDF_IS_SOCKET) && fd->fd_DefaultFile == ZERO)
{ {
__set_errno(EBADF); __set_errno(EINVAL);
goto out; goto out;
} }
@@ -207,7 +198,7 @@ fcntl(int file_descriptor, int cmd, ... /* int arg */ )
CLEAR_FLAG(fd->fd_Flags,FDF_ASYNC_IO); CLEAR_FLAG(fd->fd_Flags,FDF_ASYNC_IO);
} }
result = OK; result = 0;
break; break;
@@ -276,9 +267,6 @@ fcntl(int file_descriptor, int cmd, ... /* int arg */ )
__fd_unlock(fd); __fd_unlock(fd);
if(cmd == F_DUPFD)
__stdio_unlock();
RETURN(result); RETURN(result);
return(result); return(result);
} }

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_get_default_file.c,v 1.4 2005-04-24 08:46:37 obarthel Exp $ * $Id: fcntl_get_default_file.c,v 1.3 2005-02-03 16:56:15 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -45,7 +45,7 @@ int
__get_default_file(int file_descriptor,long * file_ptr) __get_default_file(int file_descriptor,long * file_ptr)
{ {
struct fd * fd; struct fd * fd;
int result = ERROR; int result = -1;
assert( file_descriptor >= 0 && file_descriptor < __num_fd ); assert( file_descriptor >= 0 && file_descriptor < __num_fd );
assert( __fd[file_descriptor] != NULL ); assert( __fd[file_descriptor] != NULL );

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_headers.h,v 1.4 2005-03-18 12:38:22 obarthel Exp $ * $Id: fcntl_headers.h,v 1.3 2005-02-03 16:56:15 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -48,10 +48,4 @@
/****************************************************************************/ /****************************************************************************/
#ifndef _STDLIB_PROFILE_H
#include "stdlib_profile.h"
#endif /* _STDLIB_PROFILE_H */
/****************************************************************************/
#endif /* _FCNTL_HEADERS_H */ #endif /* _FCNTL_HEADERS_H */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_lock.c,v 1.3 2005-04-01 18:46:37 obarthel Exp $ * $Id: fcntl_lock.c,v 1.1 2005-02-28 13:22:53 obarthel Exp $
* *
* :ts=4 * :ts=4
* *

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_lseek.c,v 1.10 2005-07-06 18:48:53 obarthel Exp $ * $Id: fcntl_lseek.c,v 1.7 2005-02-20 15:46:52 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -45,9 +45,9 @@ off_t
lseek(int file_descriptor, off_t offset, int mode) lseek(int file_descriptor, off_t offset, int mode)
{ {
struct file_action_message fam; struct file_action_message fam;
off_t result = SEEK_ERROR; off_t result = -1;
struct fd * fd = NULL;
off_t position; off_t position;
struct fd * fd;
ENTER(); ENTER();
@@ -62,8 +62,6 @@ lseek(int file_descriptor, off_t offset, int mode)
if(__check_abort_enabled) if(__check_abort_enabled)
__check_abort(); __check_abort();
__stdio_lock();
fd = __get_file_descriptor(file_descriptor); fd = __get_file_descriptor(file_descriptor);
if(fd == NULL) if(fd == NULL)
{ {
@@ -71,8 +69,6 @@ lseek(int file_descriptor, off_t offset, int mode)
goto out; goto out;
} }
__fd_lock(fd);
if(mode < SEEK_SET || mode > SEEK_END) if(mode < SEEK_SET || mode > SEEK_END)
{ {
SHOWMSG("seek mode is invalid"); SHOWMSG("seek mode is invalid");
@@ -87,31 +83,17 @@ lseek(int file_descriptor, off_t offset, int mode)
assert( fd->fd_Action != NULL ); assert( fd->fd_Action != NULL );
/* Note that a return value of -1 (= SEEK_ERROR) may be a
valid file position in files larger than 2 GBytes. Just
to be sure, we therefore also check the secondary error
to verify that what could be a file position is really
an error indication. */
position = (*fd->fd_Action)(fd,&fam); position = (*fd->fd_Action)(fd,&fam);
if(position == SEEK_ERROR && fam.fam_Error != OK) if(position < 0)
{ {
__set_errno(fam.fam_Error); __set_errno(fam.fam_Error);
goto out; goto out;
} }
/* If this is a valid file position, clear 'errno' so that
it cannot be mistaken for an error. */
if(position < 0)
__set_errno(OK);
result = position; result = position;
out: out:
__fd_unlock(fd);
__stdio_unlock();
RETURN(result); RETURN(result);
return(result); return(result);
} }

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_open.c,v 1.17 2005-08-26 12:39:33 obarthel Exp $ * $Id: fcntl_open.c,v 1.14 2005-03-04 09:07:09 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -37,15 +37,15 @@
/****************************************************************************/ /****************************************************************************/
#ifndef _FCNTL_HEADERS_H #ifndef _STDLIB_MEM_DEBUG_H
#include "fcntl_headers.h" #include "stdlib_mem_debug.h"
#endif /* _FCNTL_HEADERS_H */ #endif /* _STDLIB_MEM_DEBUG_H */
/****************************************************************************/ /****************************************************************************/
#ifndef _STDLIB_MEMORY_H #ifndef _FCNTL_HEADERS_H
#include "stdlib_memory.h" #include "fcntl_headers.h"
#endif /* _STDLIB_MEMORY_H */ #endif /* _FCNTL_HEADERS_H */
/****************************************************************************/ /****************************************************************************/
@@ -104,7 +104,7 @@ open(const char *path_name, int open_flag, ... /* mode_t mode */ )
int fd_slot_number; int fd_slot_number;
struct fd * fd; struct fd * fd;
int access_mode; int access_mode;
int result = ERROR; int result = -1;
int i; int i;
ENTER(); ENTER();
@@ -158,14 +158,6 @@ open(const char *path_name, int open_flag, ... /* mode_t mode */ )
{ {
if(__unix_path_semantics) if(__unix_path_semantics)
{ {
if(path_name[0] == '\0')
{
SHOWMSG("no name given");
__set_errno(ENOENT);
goto out;
}
if(__translate_unix_to_amiga_path_name(&path_name,&path_name_nti) != 0) if(__translate_unix_to_amiga_path_name(&path_name,&path_name_nti) != 0)
goto out; goto out;
@@ -464,7 +456,7 @@ open(const char *path_name, int open_flag, ... /* mode_t mode */ )
handle = ZERO; handle = ZERO;
assert( result != ERROR ); assert( result != -1 );
out: out:

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_read.c,v 1.9 2005-07-06 18:48:53 obarthel Exp $ * $Id: fcntl_read.c,v 1.7 2005-02-28 10:07:30 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -51,8 +51,8 @@ ssize_t
read(int file_descriptor, void * buffer, size_t num_bytes) read(int file_descriptor, void * buffer, size_t num_bytes)
{ {
ssize_t num_bytes_read; ssize_t num_bytes_read;
struct fd * fd = NULL; ssize_t result = -1;
ssize_t result = EOF; struct fd * fd;
ENTER(); ENTER();
@@ -66,8 +66,6 @@ read(int file_descriptor, void * buffer, size_t num_bytes)
if(__check_abort_enabled) if(__check_abort_enabled)
__check_abort(); __check_abort();
__stdio_lock();
#if defined(CHECK_FOR_NULL_POINTERS) #if defined(CHECK_FOR_NULL_POINTERS)
{ {
if(buffer == NULL) if(buffer == NULL)
@@ -91,8 +89,6 @@ read(int file_descriptor, void * buffer, size_t num_bytes)
goto out; goto out;
} }
__fd_lock(fd);
if(FLAG_IS_CLEAR(fd->fd_Flags,FDF_READ)) if(FLAG_IS_CLEAR(fd->fd_Flags,FDF_READ))
{ {
SHOWMSG("this descriptor is not read-enabled"); SHOWMSG("this descriptor is not read-enabled");
@@ -114,7 +110,7 @@ read(int file_descriptor, void * buffer, size_t num_bytes)
assert( fd->fd_Action != NULL ); assert( fd->fd_Action != NULL );
num_bytes_read = (*fd->fd_Action)(fd,&fam); num_bytes_read = (*fd->fd_Action)(fd,&fam);
if(num_bytes_read == EOF) if(num_bytes_read < 0)
{ {
__set_errno(fam.fam_Error); __set_errno(fam.fam_Error);
goto out; goto out;
@@ -129,10 +125,6 @@ read(int file_descriptor, void * buffer, size_t num_bytes)
out: out:
__fd_unlock(fd);
__stdio_unlock();
RETURN(result); RETURN(result);
return(result); return(result);
} }

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl_write.c,v 1.9 2005-07-06 18:48:53 obarthel Exp $ * $Id: fcntl_write.c,v 1.7 2005-02-28 10:07:30 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -51,8 +51,8 @@ ssize_t
write(int file_descriptor, const void * buffer, size_t num_bytes) write(int file_descriptor, const void * buffer, size_t num_bytes)
{ {
ssize_t num_bytes_written; ssize_t num_bytes_written;
struct fd * fd = NULL; ssize_t result = -1;
ssize_t result = EOF; struct fd * fd;
ENTER(); ENTER();
@@ -66,8 +66,6 @@ write(int file_descriptor, const void * buffer, size_t num_bytes)
if(__check_abort_enabled) if(__check_abort_enabled)
__check_abort(); __check_abort();
__stdio_lock();
#if defined(CHECK_FOR_NULL_POINTERS) #if defined(CHECK_FOR_NULL_POINTERS)
{ {
if(buffer == NULL) if(buffer == NULL)
@@ -91,8 +89,6 @@ write(int file_descriptor, const void * buffer, size_t num_bytes)
goto out; goto out;
} }
__fd_lock(fd);
if(FLAG_IS_CLEAR(fd->fd_Flags,FDF_WRITE)) if(FLAG_IS_CLEAR(fd->fd_Flags,FDF_WRITE))
{ {
SHOWMSG("file descriptor is not write-enabled"); SHOWMSG("file descriptor is not write-enabled");
@@ -114,7 +110,7 @@ write(int file_descriptor, const void * buffer, size_t num_bytes)
assert( fd->fd_Action != NULL ); assert( fd->fd_Action != NULL );
num_bytes_written = (*fd->fd_Action)(fd,&fam); num_bytes_written = (*fd->fd_Action)(fd,&fam);
if(num_bytes_written == EOF) if(num_bytes_written < 0)
{ {
__set_errno(fam.fam_Error); __set_errno(fam.fam_Error);
goto out; goto out;
@@ -129,10 +125,6 @@ write(int file_descriptor, const void * buffer, size_t num_bytes)
out: out:
__fd_unlock(fd);
__stdio_unlock();
RETURN(result); RETURN(result);
return(result); return(result);
} }

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ftw_ftw.c,v 1.4 2005-04-24 08:46:37 obarthel Exp $ * $Id: ftw_ftw.c,v 1.2 2005-03-03 10:59:17 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -45,16 +45,34 @@
/****************************************************************************/ /****************************************************************************/
#include <dirent.h>
#include <string.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <ftw.h>
#include <errno.h>
#include <dos.h>
/****************************************************************************/
#ifndef _DEBUG_H
#include "debug.h"
#endif /* _DEBUG_H */
#ifndef _FTW_HEADERS_H #ifndef _FTW_HEADERS_H
#include "ftw_headers.h" #include "ftw_headers.h"
#endif /* _FTW_HEADERS_H */ #endif /* _FTW_HEADERS_H */
#ifndef _STDLIB_PROTOS_H
#include "stdlib_protos.h" /* get/set errno. */
#endif /* _STDLIB_PROTOS_H */
/****************************************************************************/ /****************************************************************************/
static int static int
walk(const char *path,int (*func)(const char *,const struct stat *,int),int depth,int level) walk(const char *path,int (*func)(const char *,const struct stat *,int),int depth,int level)
{ {
int result = OK; int result = 0;
DIR *dp; DIR *dp;
struct dirent *de; struct dirent *de;
struct stat st; struct stat st;
@@ -109,7 +127,7 @@ walk(const char *path,int (*func)(const char *,const struct stat *,int),int dept
dp = opendir(path); /* Also takes care of Unix->Amiga pathname conversion. */ dp = opendir(path); /* Also takes care of Unix->Amiga pathname conversion. */
if(dp == NULL) if(dp == NULL)
{ {
result = ERROR; /* Pass errno from opendir() */ result = -1; /* Pass errno from opendir() */
goto out; goto out;
} }
@@ -120,7 +138,7 @@ walk(const char *path,int (*func)(const char *,const struct stat *,int),int dept
{ {
__set_errno(ENOMEM); __set_errno(ENOMEM);
result = ERROR; result = -1;
goto out; goto out;
} }
@@ -153,7 +171,7 @@ walk(const char *path,int (*func)(const char *,const struct stat *,int),int dept
int int
ftw(const char *path,int (*func)(const char *,const struct stat *,int),int depth) ftw(const char *path,int (*func)(const char *,const struct stat *,int),int depth)
{ {
int result = ERROR; int result = -1;
char *base; char *base;
int len; int len;

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ftw_headers.h,v 1.2 2005-03-18 12:38:22 obarthel Exp $ * $Id: ftw_headers.h,v 1.1 2005-03-02 12:57:53 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,30 +36,11 @@
/****************************************************************************/ /****************************************************************************/
#ifndef _STDLIB_HEADERS_H
#include "stdlib_headers.h"
#endif /* _STDLIB_HEADERS_H */
/****************************************************************************/
#include <unistd.h>
#include <dirent.h>
#include <string.h>
#include <stdlib.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <ftw.h>
#include <errno.h>
#include <dos.h>
/****************************************************************************/ /****************************************************************************/
#ifndef _MACROS_H
#include "macros.h" #include "macros.h"
#endif /* _MACROS_H */
#ifndef _DEBUG_H
#include "debug.h"
#endif /* _DEBUG_H */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ftw_nftw.c,v 1.4 2005-04-24 08:46:37 obarthel Exp $ * $Id: ftw_nftw.c,v 1.2 2005-03-03 10:59:17 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -44,16 +44,35 @@
/****************************************************************************/ /****************************************************************************/
#include <dirent.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <ftw.h>
#include <errno.h>
#include <dos.h>
/****************************************************************************/
#ifndef _DEBUG_H
#include "debug.h"
#endif /* _DEBUG_H */
#ifndef _FTW_HEADERS_H #ifndef _FTW_HEADERS_H
#include "ftw_headers.h" #include "ftw_headers.h"
#endif /* _FTW_HEADERS_H */ #endif /* _FTW_HEADERS_H */
#ifndef _STDLIB_PROTOS_H
#include "stdlib_protos.h" /* get/set errno. */
#endif /* _STDLIB_PROTOS_H */
/****************************************************************************/ /****************************************************************************/
static int static int
walk(const char *path,int (*func)(const char *,const struct stat *,int,struct FTW *),const int depth,int level,const int flags,const int base,int * const prune) walk(const char *path,int (*func)(const char *,const struct stat *,int,struct FTW *),const int depth,int level,const int flags,const int base,int * const prune)
{ {
int result = OK; int result = 0;
DIR *dp; DIR *dp;
struct dirent *de; struct dirent *de;
struct stat st; struct stat st;
@@ -131,7 +150,7 @@ walk(const char *path,int (*func)(const char *,const struct stat *,int,struct FT
dp = opendir(path); /* Also takes care of Unix->Amiga pathname conversion. */ dp = opendir(path); /* Also takes care of Unix->Amiga pathname conversion. */
if(dp == NULL) if(dp == NULL)
{ {
result = ERROR; result = -1;
goto out; goto out;
} }
@@ -142,7 +161,7 @@ walk(const char *path,int (*func)(const char *,const struct stat *,int,struct FT
{ {
__set_errno(ENOMEM); __set_errno(ENOMEM);
result = ERROR; result = -1;
goto out; goto out;
} }
@@ -155,7 +174,7 @@ walk(const char *path,int (*func)(const char *,const struct stat *,int,struct FT
{ {
__set_errno(ENOMEM); __set_errno(ENOMEM);
result = ERROR; result = -1;
goto out; goto out;
} }
@@ -216,7 +235,7 @@ walk(const char *path,int (*func)(const char *,const struct stat *,int,struct FT
static int static int
index_of_end_part(const char *path) index_of_end_part(const char *path)
{ {
int result = OK; int result = 0;
int i; int i;
i = strlen(path) - 1; i = strlen(path) - 1;
@@ -241,7 +260,7 @@ nftw(const char *path,int (*func)(const char *,const struct stat *,int,struct FT
int len; int len;
int base_index; int base_index;
int prune = 0; int prune = 0;
int result = ERROR; int result = -1;
ENTER(); ENTER();

View File

@@ -1,408 +0,0 @@
/*
* $Id: getopt_getopt_long.c,v 1.3 2005-06-26 12:01:50 tfrieden Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 _STDLIB_NULL_POINTER_CHECK_H
#include "stdlib_null_pointer_check.h"
#endif /* _STDLIB_NULL_POINTER_CHECK_H */
/****************************************************************************/
#ifndef _UNISTD_HEADERS_H
#include "unistd_headers.h"
#endif /* _UNISTD_HEADERS_H */
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
#include <getopt.h>
extern int opterr;
extern int optind;
extern int optopt;
extern char * optarg;
int optreset = 0;
#define GETOPTF_LONG_ONLY (1L << 0) /* Operate in getopt_long_only more */
#define GETOPTF_GNUEXT (1L << 1) /* Allow -W extension */
#define GETOPTF_POSIX (1L << 2) /* Will disallow permutation */
#define GETOPTF_ONE_ARG (1L << 3) /* Non-option argv will be handled as -\1 */
static int getopt_long_internal(int argc, const char **argv, const char *optstring,
const struct option *longopts, int *longindex, int flags);
int getopt_long(int argc, const char **argv, const char *optstring,
const struct option *longopts, int *longindex)
{
return getopt_long_internal(argc, argv, optstring, longopts, longindex, 0);
}
#if 0
int getopt_long_only(int argc, const char **argv, const char *optstring,
const struct option *longopts, int *longindex)
{
return getopt_long_internal(argc, argv, optstring, longopts, longindex,
GETOPTF_LONG_ONLY);
}
#endif
static int parse_long_option(int argc, char **argv, const struct option *longopts,
int *longindex, int flags)
{
char *current = argv[optind] + 2; /* Skip the '--' */
char *argument;
int keylen = 0;
int i;
int idx = -1;
int result = '?';
(void)flags;
optind ++;
/* If there's an equals sign in the option, the actual word to check is
* between the -- and = characters. Otherwise, it's the length of the
* remainder (without --)
*/
argument = strchr(current, '=');
if (argument)
{
keylen = (int)(argument - current);
/* Skip the '=' sign */
argument++;
}
else
keylen = strlen(current);
for (i = 0; longopts[i].name; i++)
{
if (strncmp(longopts[i].name, current, keylen))
continue;
if (strlen(longopts[i].name) == (size_t)keylen)
{
/* Exact match */
idx = i;
break;
}
/* Partial match. Check if we already found another partial match, in
* which case the match is ambigous.
*/
if (idx == -1)
{
idx = i;
}
else
{
*longindex = -1;
return '?';
}
}
*longindex = idx;
if (idx != -1)
{
/* Found a match. Check if it needs an argument */
if (longopts[idx].has_arg == optional_argument)
{
/* Optional arguments must be given as --foo=bar, it will not
* advance to the next argv element
*/
if (argument)
optarg = argument;
else
optarg = 0;
}
else if (longopts[idx].has_arg == required_argument)
{
/* Either argument was given as --foo=bar, or the next argv element
* (if present) will be returned
*/
if (argument)
optarg = argument;
else
{
if (optind < argc)
{
optarg = argv[optind];
optind++;
}
else
{
if (opterr)
fprintf(stderr, "%s: option requires an argument -- %s\n",
argv[0], longopts[idx].name);
optarg = 0;
return '?';
}
}
}
else
{
/* No argument */
optarg = 0;
if (argument)
{
if (opterr)
fprintf(stderr, "%s: option does not take an argument -- %s\n",
argv[0], longopts[idx].name);
return '?';
}
}
if (longopts[idx].flag)
{
*longopts[idx].flag = longopts[idx].val;
optopt = 0;
result = 0;
}
else
{
result = optopt = longopts[idx].val;
}
return result;
}
optopt = 0;
return '?';
}
/* Note: This implementation currently does not permute argv vectors, and will
* stop parsing input on the first non-option argument
*/
static int getopt_long_internal(int argc, const char **argv, const char *optstring,
const struct option *longopts, int *longindex, int flags)
{
static char *nextchar = 0;
int result = EOF;
int c;
char *optp;
int longidx_subst;
ENTER();
SHOWVALUE(argc);
SHOWPOINTER(argv);
SHOWSTRING(optstring);
SHOWPOINTER(longopts);
SHOWPOINTER(longindex);
SHOWVALUE(flags);
if(__check_abort_enabled)
__check_abort();
if (NULL == optstring)
goto out;
if (!longindex)
longindex = &longidx_subst;
/* Check options */
/* FIXME: Should probably also check environment variable */
if (*optstring == '+')
{
flags |= GETOPTF_POSIX;
optstring++;
}
if (*optstring == '-')
{
flags |= GETOPTF_ONE_ARG;
optstring++;
}
/* Check for reset */
if (optreset || optind == 0)
{
optind = 1;
optreset = 0;
nextchar = 0;
}
if (optind >= argc)
goto out;
/* Begin or continue scanning
* First off, check for a short option and set nextchar, if present.
* if nextchar is not 0, there's a compound option waiting or just begun.
*/
if (!nextchar
&& argv[optind][0] == '-'
&& argv[optind][1] != '\0'
&& argv[optind][1] != '-')
{
/* It's a short option. */
nextchar = (char *)&argv[optind][1];
}
if (nextchar)
{
c = *nextchar ++;
/* Advancing nextchar. If it points to a 0 character now, it's reached
* the end of the current argv string, so set it to 0 and advance optind
* to the next argv element.
*/
if (0 == *nextchar)
{
nextchar = 0;
optind ++;
}
optp = strchr(optstring, c);
/* We never find a long option in a compound option */
*longindex = 0;
/* Check if it's legal */
if (c == ':' || (optp == NULL))
{
/* Illegal option */
if (opterr)
fprintf(stderr, "%s: illegal option -- %c\n", argv[0], c);
result = '?';
goto out;
}
else
{
/* It is legal. Three possibilities here:
* 1. It doesn't have arguments. Return the character.
* 2. It has an argument. Return the character, and point optarg
* to the rest of the argv entry.
* 3. It has an optional argument. If there are non-0 characters
* following, point optarg there, otherwise, clear optarg.
*/
if (optp[1] != ':')
{
/* Case 1 (no argument). */
result = c;
goto out;
}
else
{
/* Argument may follow */
if (optp[2] == ':')
{
/* Optional argument. nextchar is 0 if there's no further
* stuff following, which means the option is without
* argument
*/
if (nextchar)
{
optarg = nextchar;
nextchar = 0;
optind++;
}
else
optarg = 0;
}
else
{
/* Mandatory argument. Either nextchar points to the rest
* of this argv element, or we use the next argv element
*/
if (nextchar)
{
optarg = nextchar;
nextchar = 0;
optind++;
}
else
{
if (optind >= argc)
{
if (opterr)
fprintf(stderr, "%s: option requires an argument -- %c\n",
argv[0], c);
result = '?';
goto out;
}
optarg = (char *)argv[optind++];
}
}
result = c;
goto out;
}
}
} /* if (nextchar) */
/* Start checking an argv element for an option.
* There are different possibilities here:
* 1. We ran out of argv elements
* 2. We have an argv element that's just "-" or not an option
* 3. We have an argv element that's just "--"
* 4. we habe a long option (--xxx pr -W xxx)
*/
/* Check case 3 and 1*/
if ((strcmp(argv[optind], "--") == 0) || optind >= argc)
{
result = EOF;
goto out;
}
/* Check case 4 */
if (argv[optind][0] == '-' && argv[optind][1] == '-' && longopts)
{
/* It is a long option */
result = parse_long_option(argc, (char **)argv, longopts, longindex, flags);
goto out;
}
/* Case 2 */
out:
RETURN(result);
return result;
}

View File

@@ -1,185 +0,0 @@
/*
* $Id: complex.h,v 1.3 2005-05-12 13:21:47 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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_H
#define _COMPLEX_H
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard, but it should
be part of ISO/IEC 9899:1999, also known as "C99". */
/****************************************************************************/
#ifndef __GNUC__
#error Unsupported compiler.
#endif /* __GNUC__ */
/****************************************************************************/
#if defined(__cplusplus)
#warning C99 header file used in C++.
#endif /* __cplusplus */
/****************************************************************************/
#if !defined(__STDC_VERSION__) || (__GNUC__ < 3 && __STDC_VERSION__ < 199901L)
#error Complex numbers are not supported by/for this compiler.
#endif /* __GNUC__ && __STDC_VERSION__ */
/****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
/* Basic types; imaginary is assumed not to be implemented yet. */
#define complex _Complex
/****************************************************************************/
/* Constants */
#define _Complex_I (__extension__ 0.0+1.0fi)
#define I _Complex_I
/****************************************************************************/
extern double creal(double complex z);
extern float crealf(float complex z);
extern long double creall(long double complex z);
extern double cimag(double complex z);
extern float cimagf(float complex z);
extern long double cimagl(long double complex z);
extern double complex conj(double complex z);
extern float complex conjf(float complex z);
extern long double complex conjl(long double complex z);
extern double carg(double complex z);
extern float cargf(float complex z);
extern long double cargl(long double complex z);
/****************************************************************************/
/* Unimplemented functions (so far)... */
/****************************************************************************/
#if 0
extern double complex cacos(double complex z);
extern float complex cacosf(float complex z);
extern long double complex cacosl(long double complex z);
extern double complex casin(double complex z);
extern float complex casinf(float complex z);
extern long double complex casinl(long double complex z);
extern double complex catan(double complex z);
extern float complex catanf(float complex z);
extern long double complex catanl(long double complex z);
extern double complex ccos(double complex z);
extern float complex ccosf(float complex z);
extern long double complex ccosl(long double complex z);
extern double complex csin(double complex z);
extern float complex csinf(float complex z);
extern long double complex csinl(long double complex z);
extern double complex ctan(double complex z);
extern float complex ctanf(float complex z);
extern long double complex ctanl(long double complex z);
extern double complex cacosh(double complex z);
extern float complex cacoshf(float complex z);
extern long double complex cacoshl(long double complex z);
extern double complex casinh(double complex z);
extern float complex casinhf(float complex z);
extern long double complex casinhl(long double complex z);
extern double complex catanh(double complex z);
extern float complex catanhf(float complex z);
extern long double complex catanhl(long double complex z);
extern double complex ccosh(double complex z);
extern float complex ccoshf(float complex z);
extern long double complex ccoshl(long double complex z);
extern double complex csinh(double complex z);
extern float complex csinhf(float complex z);
extern long double complex csinhl(long double complex z);
extern double complex ctanh(double complex z);
extern float complex ctanhf(float complex z);
extern long double complex ctanhl(long double complex z);
extern double complex cexp(double complex z);
extern float complex cexpf(float complex z);
extern long double complex cexpl(long double complex z);
extern double complex clog(double complex z);
extern float complex clogf(float complex z);
extern long double complex clogl(long double complex z);
extern double cabs(double complex z);
extern float cabsf(float complex z);
extern long double cabsl(long double complex z);
extern double complex cpow(double complex z);
extern float complex cpowf(float complex z);
extern long double complex cpowl(long double complex z);
extern double complex csqrt(double complex z);
extern float complex csqrtf(float complex z);
extern long double complex csqrtl(long double complex z);
extern double complex cproj(double complex z);
extern float complex cprojf(float complex z);
extern long double complex cprojl(long double complex z);
#endif
/****************************************************************************/
#ifdef __cplusplus
}
#endif /* __cplusplus */
/****************************************************************************/
#endif /* _COMPLEX_H */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ctype.h,v 1.7 2005-10-16 08:34:52 obarthel Exp $ * $Id: ctype.h,v 1.5 2005-01-09 15:20:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -31,8 +31,8 @@
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*/ */
#ifndef _CTYPE_H #ifndef _CYTPE_H
#define _CTYPE_H #define _CYTPE_H
/****************************************************************************/ /****************************************************************************/
@@ -57,7 +57,6 @@ extern int islower(int c);
extern int isupper(int c); extern int isupper(int c);
extern int isspace(int c); extern int isspace(int c);
extern int isblank(int c);
extern int tolower(int c); extern int tolower(int c);
extern int toupper(int c); extern int toupper(int c);
@@ -100,7 +99,6 @@ extern const unsigned char __ctype_table[];
#define islower(c) ((__ctype_table[(c) & 255] & __CTYPE_LOWER_CASE) != 0) #define islower(c) ((__ctype_table[(c) & 255] & __CTYPE_LOWER_CASE) != 0)
#define isupper(c) ((__ctype_table[(c) & 255] & __CTYPE_UPPER_CASE) != 0) #define isupper(c) ((__ctype_table[(c) & 255] & __CTYPE_UPPER_CASE) != 0)
#define isspace(c) ((__ctype_table[(c) & 255] & __CTYPE_WHITE_SPACE) != 0) #define isspace(c) ((__ctype_table[(c) & 255] & __CTYPE_WHITE_SPACE) != 0)
#define isblank(c) ((c) == ' ' || (c) == '\t')
/****************************************************************************/ /****************************************************************************/
@@ -120,4 +118,4 @@ extern const unsigned char __ctype_table[];
/****************************************************************************/ /****************************************************************************/
#endif /* _CTYPE_H */ #endif /* _CYTPE_H */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: dirent.h,v 1.4 2005-10-09 12:32:18 obarthel Exp $ * $Id: dirent.h,v 1.3 2005-01-02 09:07:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -40,6 +40,12 @@
/****************************************************************************/ /****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#ifndef _SYS_TYPES_H #ifndef _SYS_TYPES_H
#include <sys/types.h> #include <sys/types.h>
#endif /* _SYS_TYPES_H */ #endif /* _SYS_TYPES_H */
@@ -50,12 +56,6 @@
/****************************************************************************/ /****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#define NAME_MAX FILENAME_MAX #define NAME_MAX FILENAME_MAX
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: dos.h,v 1.13 2005-10-20 06:50:32 obarthel Exp $ * $Id: dos.h,v 1.9 2005-03-06 09:04:44 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -40,28 +40,24 @@
/****************************************************************************/ /****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#ifndef _STDIO_H #ifndef _STDIO_H
#include <stdio.h> #include <stdio.h>
#endif /* _STDIO_H */ #endif /* _STDIO_H */
/****************************************************************************/ /****************************************************************************/
#ifndef EXEC_LIBRARIES_H
#include <exec/libraries.h>
#endif /* EXEC_LIBRARIES_H */
#ifndef WORKBENCH_STARTUP_H #ifndef WORKBENCH_STARTUP_H
#include <workbench/startup.h> #include <workbench/startup.h>
#endif /* WORKBENCH_STARTUP_H */ #endif /* WORKBENCH_STARTUP_H */
/****************************************************************************/ /****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
/* /*
* The Workbench startup message passed to this program; this may be NULL * The Workbench startup message passed to this program; this may be NULL
* if the program was started from shell instead. * if the program was started from shell instead.
@@ -148,24 +144,9 @@ extern int __get_default_file(int file_descriptor,long * file_ptr);
/****************************************************************************/ /****************************************************************************/
/*
* If your program is intended to be launched by the Internet superserver
* (inetd) to run as a daemon, receiving and sending data through a network
* connection set up for it, declare the following variable in your program
* and set it to TRUE. This will make the program's network startup code
* link the stdin/stdout/stderr streams with the daemon socket passed to it.
* Whether or not your program is running as a daemon can be tested by
* checking the global __is_daemon variable described below.
*/
extern BOOL __check_daemon_startup;
/****************************************************************************/
/* /*
* This will be set to TRUE if the current program was launched from * This will be set to TRUE if the current program was launched from
* the internet superserver ('inetd') or an equivalent facility. Note * the internet superserver ('inetd') or an equivalent facility.
* that you need to have set __check_daemon_startup to TRUE before
* you can rely upon __is_daemon to be initialized correctly.
*/ */
extern BOOL __is_daemon; extern BOOL __is_daemon;
@@ -347,64 +328,6 @@ extern int __translate_io_error_to_errno(LONG io_error);
/****************************************************************************/ /****************************************************************************/
/*
* Routines for use with shared libraries: invoke __lib_init() in your own
* shared library initialization function and __lib_exit() in your shared
* library cleanup function.
*
* __lib_init() will initialize the global SysBase/DOSBase variables
* (and the IExec/IDOS variables for OS4) and invoke the constructor
* functions required by your library code. It returns FALSE upon
* failure and TRUE otherwise. Make this the very first function you
* call in your shared library initialization function. The __lib_init()
* function expects to be called with a pointer to the exec.library
* base, which is normally passed to your shared library as part of the
* library startup code initialization performed by the operating
* system.
*
* __lib_exit() will undo all the initializations performed by the
* __lib_init() function, but leave the global SysBase variable
* (and the IExec variable for OS4) intact. Make this the very last
* function you call in your shared library cleanup function.
*
* Note that neither __lib_init() nor __lib_exit() are reentrant. You must
* make sure that while you are calling them no other library user can
* call them by accident.
*
* Both functions are only available as part of the thread-safe clib2
* linker library.
*/
extern VOID __lib_exit(VOID);
extern BOOL __lib_init(struct Library * SysBase);
/****************************************************************************/
/*
* The following variables are part of libnet.a, which provides for
* a BSD-Unix-like socket networking API. Traditionally, only one process
* at a time may use the underlying bsdsocket.library base, but with a
* multithreaded application you may want all of them to share the same
* library base. As of this writing there is one single TCP/IP stack which
* supports this feature (Roadshow) and it must be enabled early on. If
* this worked out well you can test through the following variable which
* will be set to TRUE:
*/
extern BOOL __can_share_socket_library_base;
/*
* The next global variable is also part of the thread-safe libnet.a and
* indicates that the TCP/IP stack will call the functions __set_errno()
* and __set_h_errno() when it modifies the global errno and h_errno
* variables, respectively. If you want to save the error codes for each
* of the Processes in your multithreaded application then you should
* override these functions with your. The following variable will be
* set to TRUE if the __set_errno() and __set_h_errno() functions will
* be used to change the corresponding variables:
*/
extern BOOL __thread_safe_errno_h_errno;
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: fcntl.h,v 1.6 2005-10-09 12:32:18 obarthel Exp $ * $Id: fcntl.h,v 1.4 2005-01-02 09:07:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -40,6 +40,12 @@
/****************************************************************************/ /****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#ifndef _SYS_TYPES_H #ifndef _SYS_TYPES_H
#include <sys/types.h> #include <sys/types.h>
#endif /* _SYS_TYPES_H */ #endif /* _SYS_TYPES_H */
@@ -50,12 +56,6 @@
/****************************************************************************/ /****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#define O_RDONLY 0 #define O_RDONLY 0
#define O_WRONLY 1 #define O_WRONLY 1
#define O_RDWR 2 #define O_RDWR 2
@@ -65,7 +65,6 @@ extern "C" {
#define O_EXCL (1<<4) #define O_EXCL (1<<4)
#define O_TRUNC (1<<5) #define O_TRUNC (1<<5)
#define O_NONBLOCK (1<<6) #define O_NONBLOCK (1<<6)
#define O_NDELAY O_NONBLOCK
#define O_SYNC (0) #define O_SYNC (0)
#define O_NOCTTY (0) #define O_NOCTTY (0)
#define O_ASYNC (1<<7) #define O_ASYNC (1<<7)

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: ftw.h,v 1.2 2005-10-09 12:32:18 obarthel Exp $ * $Id: ftw.h,v 1.1 2005-03-02 12:57:56 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,6 +36,12 @@
/****************************************************************************/ /****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/
@@ -44,12 +50,6 @@
/****************************************************************************/ /****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
/* Values passed to the user function (argument #3). */ /* Values passed to the user function (argument #3). */
enum enum
{ {

View File

@@ -1,83 +0,0 @@
/*
* $Id: getopt.h,v 1.2 2005-06-26 09:06:12 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 _GETOPT_H
#define _GETOPT_H
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
#include <unistd.h>
/****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#define no_argument 0
#define required_argument 1
#define optional_argument 2
struct option
{
const char * name;
int has_arg;
int * flag;
int val;
};
/****************************************************************************/
extern int getopt_long(int argc, const char **argv, const char *optstring,
const struct option *longopts, int *longindex);
/*extern int getopt_long_only(int argc, const char **argv, const char *optstring,
const struct option *longopts, int *longindex);
*/
extern int optreset;
/****************************************************************************/
#ifdef __cplusplus
}
#endif /* __cplusplus */
/****************************************************************************/
#endif /* _GETOPT_H */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: grp.h,v 1.4 2005-10-09 12:32:18 obarthel Exp $ * $Id: grp.h,v 1.3 2005-01-02 09:07:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -40,25 +40,15 @@
/****************************************************************************/ /****************************************************************************/
#ifndef _SYS_TYPES_H
#include <sys/types.h>
#endif /* _SYS_TYPES_H */
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
/****************************************************************************/ /****************************************************************************/
#ifdef __GNUC__ #ifndef _SYS_TYPES_H
#ifdef __PPC__ #include <sys/types.h>
#pragma pack(2) #endif /* _SYS_TYPES_H */
#endif
#elif defined(__VBCC__)
#pragma amiga-align
#endif
/****************************************************************************/ /****************************************************************************/
@@ -72,33 +62,6 @@ struct group
/****************************************************************************/ /****************************************************************************/
/*
* The following prototypes may clash with the bsdsocket.library or
* usergroup.library API definitions.
*/
#ifndef __NO_NET_API
extern void endgrent(void);
extern struct group *getgrent(void);
extern struct group *getgrgid(gid_t gid);
extern struct group *getgrnam(const char *name);
extern void setgrent(void);
#endif /* __NO_NET_API */
/****************************************************************************/
#ifdef __GNUC__
#ifdef __PPC__
#pragma pack()
#endif
#elif defined(__VBCC__)
#pragma default-align
#endif
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: inttypes.h,v 1.3 2005-10-09 12:32:18 obarthel Exp $ * $Id: inttypes.h,v 1.1 2005-02-04 15:03:13 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -50,18 +50,6 @@
/****************************************************************************/ /****************************************************************************/
#ifndef _STDDEF_H
#include <stddef.h>
#endif /* _STDDEF_H */
/****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
/* printf() format specifications for different types. */ /* printf() format specifications for different types. */
/* "Decimal" */ /* "Decimal" */
@@ -174,7 +162,7 @@ extern "C" {
/* intmax_t is 32 bits for SAS/C, 64-bits for GCC or if using a conforming C99 compiler. */ /* intmax_t is 32 bits for SAS/C, 64-bits for GCC or if using a conforming C99 compiler. */
#if defined(__GNUC__) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) #if defined(__GNUC__) || ((__STDC_VERSION__ +0) >= 199901L)
#define PRIdMAX "lld" #define PRIdMAX "lld"
#define PRIiMAX "lli" #define PRIiMAX "lli"
#define PRIuMAX "llu" #define PRIuMAX "llu"
@@ -188,22 +176,22 @@ extern "C" {
#define PRIxMAX "lx" #define PRIxMAX "lx"
#define PRIXMAX "lX" #define PRIXMAX "lX"
#define PRIoMAX "lo" #define PRIoMAX "lo"
#endif /* __GNUC__ || (__STDC_VERSION__ && __STDC_VERSION__ >= 199901L) */ #endif
/* scanf() format specifiers. */ /* scanf() format specifiers. */
/* "Decimal" */ /* "Decimal" */
#define SCNd8 "hhd" /* #define SCNd8 "hhd" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNd16 "hd" #define SCNd16 "hd"
#define SCNd32 "d" #define SCNd32 "d"
#define SCNd64 "lld" #define SCNd64 "lld"
#define SCNdLEAST8 "hhd" /* #define SCNdLEAST8 "hhd" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNdLEAST16 "hd" #define SCNdLEAST16 "hd"
#define SCNdLEAST32 "d" #define SCNdLEAST32 "d"
#define SCNdLEAST64 "lld" #define SCNdLEAST64 "lld"
#define SCNdFAST8 "hhd" /* #define SCNdFAST8 "hhd" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNdFAST16 "d" #define SCNdFAST16 "d"
#define SCNdFAST32 "d" #define SCNdFAST32 "d"
#define SCNdFAST64 "lld" #define SCNdFAST64 "lld"
@@ -211,17 +199,17 @@ extern "C" {
#define SCNdPTR "d" #define SCNdPTR "d"
/* "Integer" */ /* "Integer" */
#define SCNi8 "hhi" /* #define SCNi8 "hhi" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNi16 "hi" #define SCNi16 "hi"
#define SCNi32 "i" #define SCNi32 "i"
#define SCNi64 "lli" #define SCNi64 "lli"
#define SCNiLEAST8 "hhi" /* #define SCNiLEAST8 "hhi" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNiLEAST16 "hi" #define SCNiLEAST16 "hi"
#define SCNiLEAST32 "i" #define SCNiLEAST32 "i"
#define SCNiLEAST64 "lli" #define SCNiLEAST64 "lli"
#define SCNiFAST8 "hhi" /* #define SCNiFAST8 "hhi" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNiFAST16 "i" #define SCNiFAST16 "i"
#define SCNiFAST32 "i" #define SCNiFAST32 "i"
#define SCNiFAST64 "lli" #define SCNiFAST64 "lli"
@@ -229,17 +217,17 @@ extern "C" {
#define SCNiPTR "i" #define SCNiPTR "i"
/* "Unsigned" */ /* "Unsigned" */
#define SCNu8 "hhu" /* #define SCNu8 "hhu" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNu16 "hu" #define SCNu16 "hu"
#define SCNu32 "u" #define SCNu32 "u"
#define SCNu64 "llu" #define SCNu64 "llu"
#define SCNuLEAST8 "hhu" /* #define SCNuLEAST8 "hhu" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNuLEAST16 "hu" #define SCNuLEAST16 "hu"
#define SCNuLEAST32 "u" #define SCNuLEAST32 "u"
#define SCNuLEAST64 "llu" #define SCNuLEAST64 "llu"
#define SCNuFAST8 "hhu" /* #define SCNuFAST8 "hhu" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNuFAST16 "u" #define SCNuFAST16 "u"
#define SCNuFAST32 "u" #define SCNuFAST32 "u"
#define SCNuFAST64 "llu" #define SCNuFAST64 "llu"
@@ -247,17 +235,17 @@ extern "C" {
#define SCNuPTR "u" #define SCNuPTR "u"
/* "Hexadecimal" */ /* "Hexadecimal" */
#define SCNx8 "hhx" /* #define SCNx8 "hhx" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNx16 "hx" #define SCNx16 "hx"
#define SCNx32 "x" #define SCNx32 "x"
#define SCNx64 "llx" #define SCNx64 "llx"
#define SCNxLEAST8 "hhx" /* #define SCNxLEAST8 "hhx" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNxLEAST16 "hx" #define SCNxLEAST16 "hx"
#define SCNxLEAST32 "x" #define SCNxLEAST32 "x"
#define SCNxLEAST64 "llx" #define SCNxLEAST64 "llx"
#define SCNxFAST8 "hhx" /* #define SCNxFAST8 "hhx" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNxFAST16 "x" #define SCNxFAST16 "x"
#define SCNxFAST32 "x" #define SCNxFAST32 "x"
#define SCNxFAST64 "llx" #define SCNxFAST64 "llx"
@@ -265,24 +253,24 @@ extern "C" {
#define SCNxPTR "x" #define SCNxPTR "x"
/* "Octal" */ /* "Octal" */
#define SCNo8 "hho" /* #define SCNo8 "hho" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNo16 "ho" #define SCNo16 "ho"
#define SCNo32 "o" #define SCNo32 "o"
#define SCNo64 "llo" #define SCNo64 "llo"
#define SCNoLEAST8 "hho" /* #define SCNoLEAST8 "hho" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNoLEAST16 "ho" #define SCNoLEAST16 "ho"
#define SCNoLEAST32 "o" #define SCNoLEAST32 "o"
#define SCNoLEAST64 "llo" #define SCNoLEAST64 "llo"
#define SCNoFAST8 "hho" /* #define SCNoFAST8 "hho" */ /* Missing. TODO: Add support for char conversions in scanf() */
#define SCNoFAST16 "o" #define SCNoFAST16 "o"
#define SCNoFAST32 "o" #define SCNoFAST32 "o"
#define SCNoFAST64 "llo" #define SCNoFAST64 "llo"
#define SCNoPTR "o" #define SCNoPTR "o"
#if defined(__GNUC__) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) #if defined(__GNUC__) || ((__STDC_VERSION__ +0) >= 199901L)
#define SCNdMAX "lld" #define SCNdMAX "lld"
#define SCNiMAX "lli" #define SCNiMAX "lli"
#define SCNuMAX "llu" #define SCNuMAX "llu"
@@ -294,36 +282,14 @@ extern "C" {
#define SCNuMAX "lu" #define SCNuMAX "lu"
#define SCNxMAX "lx" #define SCNxMAX "lx"
#define SCNoMAX "lo" #define SCNoMAX "lo"
#endif /* __GNUC__ || (__STDC_VERSION__ && __STDC_VERSION__ >= 199901L) */ #endif
/****************************************************************************/ /* TODO: Add the rest of inttypes.h here + in the library. */
#if defined(__GNUC__) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) /*
typedef struct { long long quot; long long rem; } imaxdiv_t; * Missing stuff is among other things atoll(), strtoll(), ...
#else * Then there is the matter of wchar support - Zzzz.
typedef struct { long quot; long rem; } imaxdiv_t; */
#endif /* __GNUC__ || (__STDC_VERSION__ && __STDC_VERSION__ >= 199901L) */
/****************************************************************************/
extern intmax_t imaxabs(intmax_t x);
extern imaxdiv_t imaxdiv(intmax_t n,intmax_t d);
/****************************************************************************/
extern intmax_t strtoimax(const char *str, char **ptr, int base);
extern uintmax_t strtoumax(const char *str, char **ptr, int base);
/****************************************************************************/
extern intmax_t wcstoimax(const wchar_t *str, char **ptr, int base);
extern uintmax_t wcstoumax(const wchar_t *str, char **ptr, int base);
/****************************************************************************/
#ifdef __cplusplus
}
#endif /* __cplusplus */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: limits.h,v 1.8 2005-06-04 10:46:23 obarthel Exp $ * $Id: limits.h,v 1.5 2005-01-09 09:40:33 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -83,26 +83,13 @@
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard, but it should
be part of ISO/IEC 9899:1999, also known as "C99". */
/****************************************************************************/
#define LLONG_MIN (-0x7fffffffffffffffLL-1)
#define LLONG_MAX 0x7fffffffffffffffLL
#define ULLONG_MAX 0xffffffffffffffffULL
/****************************************************************************/
#define MB_LEN_MAX 1
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/
#define SSIZE_MAX 2147483647L #define LLONG_MIN (-0x7fffffffffffffffLL-1)
#define LLONG_MAX 0x7fffffffffffffffLL
#define ULLONG_MAX 0xffffffffffffffffULL
/****************************************************************************/ /****************************************************************************/
@@ -110,63 +97,4 @@
/****************************************************************************/ /****************************************************************************/
#define WORD_BIT 32
#define LONG_BIT 32 /* For now, at least. */
/****************************************************************************/
/*
* POSIX, POSIX... These are minimum maximum values. I.e. the maximum must be
* at least this large. I am not sure all of these make much sense on the Amiga
* (yet), but here they are anyway.
*
* Actually, these symbols should be defined only if the preprocessor symbol
* _POSIX_SOURCE is defined. Other symbols which should be defined, too, are
* ARG_MAX, CHILD_MAX, LINK_MAX, MAX_CANON, MAX_INPUT, NAME_MAX, NGROUPS_MAX,
* OPEN_MAX, PATH_MAX, PIPE_BUF, SSIZE_MAX, STREAM_MAX and TZNAME_MAX.
*/
#define _POSIX_AIO_LISTIO_MAX 2
#define _POSIX_AIO_MAX 1
#define _POSIX_ARG_MAX 4096
#define _POSIX_CHILD_MAX 6
#define _POSIX_DELAYTIMER_MAX 32
#define _POSIX_LINK_MAX 8
#define _POSIX_LOGIN_NAME_MAX 9
#define _POSIX_MAX_CANON 255
#define _POSIX_MAX_INPUT 255
#define _POSIX_MQ_OPEN_MAX 8
#define _POSIX_MQ_PRIO_MAX 32
#define _POSIX_NAME_MAX 14
#define _POSIX_NGROUPS_MAX 0
#define _POSIX_OPEN_MAX 16
#define _POSIX_PATH_MAX 255
#define _POSIX_PIPE_BUF 512
#define _POSIX_RTSIG_MAX 8
#define _POSIX_SEM_NSEMS_MAX 256
#define _POSIX_SEM_VALUE_MAX 32767
#define _POSIX_SIGQUEUE_MAX 32
#define _POSIX_SSIZE_MAX 32767
#define _POSIX_STREAM_MAX 8
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
#define _POSIX_THREAD_KEYS_MAX 128
#define _POSIX_THREADS_MAX 64
#define _POSIX_TIMER_MAX 32
#define _POSIX_TTY_NAME_MAX 9
#define _POSIX_TZNAME_MAX 3
#define _POSIX2_BC_BASE_MAX 99
#define _POSIX2_BC_DIM_MAX 2048
#define _POSIX2_BC_SCALE_MAX 99
#define _POSIX2_BC_STRING_MAX 1000
#define _POSIX2_COLL_WEIGHTS_MAX 2
#define _POSIX2_EXPR_NEST_MAX 32
#define _POSIX2_LINE_MAX 2048
#define _POSIX2_RE_DUP_MAX 255
#define _XOPEN_IOV_MAX 16
/* And a maximum minimum value. */
#define _POSIX_CLOCKRES_MIN 20000000 /* Nanoseconds */
/****************************************************************************/
#endif /* _LIMITS_H */ #endif /* _LIMITS_H */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: math.h,v 1.18 2005-10-16 09:05:03 obarthel Exp $ * $Id: math.h,v 1.6 2005-02-25 10:14:22 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -101,225 +101,12 @@ extern double tanh(double x);
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard, but it should
be part of ISO/IEC 9899:1999, also known as "C99". */
/****************************************************************************/
/* Note that the comparison operations performed on the floating point
data types ought to include float, double and long double. However,
because the current (2005-06-12) compiler technology available on the
Amiga does not support the long double type yet, this library is
restricted to operations on float and double. */
/****************************************************************************/
extern float __huge_val_float;
/****************************************************************************/
#define HUGE_VALF ((const float)__huge_val_float)
/****************************************************************************/
extern float __infinity;
extern float __nan;
/****************************************************************************/
#define INFINITY ((const float)__infinity)
#define NAN ((const float)__nan)
/****************************************************************************/
#define FP_INFINITE 0 /* -/+ infinity */
#define FP_NAN 1 /* not a number */
#define FP_NORMAL 2 /* normalized floating point number */
#define FP_SUBNORMAL 3 /* very small floating point number; special
case of IEEE 754 */
#define FP_ZERO 4 /* exponent/fraction are zero */
/****************************************************************************/
extern int __fpclassify_float(float x);
extern int __fpclassify_double(double x);
extern int __isfinite_float(float x);
extern int __isfinite_double(double x);
extern int __signbit_float(float x);
extern int __signbit_double(double x);
/****************************************************************************/
#define fpclassify(x) \
(sizeof(x) == sizeof(float) ? \
__fpclassify_float(x) : \
__fpclassify_double(x))
#define isfinite(x) \
(sizeof(x) == sizeof(float) ? \
__isfinite_float(x) : \
__isfinite_double(x))
#define isinf(x) \
((sizeof(x) == sizeof(float) ? \
__fpclassify_float(x) : \
__fpclassify_double(x)) \
== FP_INFINITE)
#define isnan(x) \
((sizeof(x) == sizeof(float) ? \
__fpclassify_float(x) : \
__fpclassify_double(x)) \
== FP_NAN)
#define isnormal(x) \
((sizeof(x) == sizeof(float) ? \
__fpclassify_float(x) : \
__fpclassify_double(x)) \
== FP_NORMAL)
#define signbit(x) \
(sizeof(x) == sizeof(float) ? \
__signbit_float(x) : \
__signbit_double(x))
/****************************************************************************/
extern int __isunordered_float(float x,float y);
extern int __isunordered_float_double(float x,double y);
extern int __isunordered_double(double x,double y);
/****************************************************************************/
#define isunordered(x,y) \
(sizeof(x) == sizeof(float) ? \
(sizeof(y) == sizeof(float) ? \
__isunordered_float((x),y) : \
__isunordered_float_double((x),(y))) : \
(sizeof(y) == sizeof(float) ? \
__isunordered_float_double((y),(x)) : \
__isunordered_double((x),(y))))
#define isgreater(x,y) \
(isunordered(x,y) ? 0 : (x) > (y))
#define isgreaterequal(x,y) \
(isunordered(x,y) ? 0 : (x) >= (y))
#define isless(x,y) \
(isunordered(x,y) ? 0 : (x) < (y))
#define islessequal(x,y) \
(isunordered(x,y) ? 0 : (x) <= (y))
#define islessgreater(x,y) \
(isunordered(x,y) ? 0 : (x) < (y) || (x) > (y)) /* ZZZ don't evaluate twice! */
/****************************************************************************/
extern float acosf(float x);
extern float asinf(float x);
extern float atanf(float x);
extern float atan2f(float y, float x);
extern float ceilf(float x);
extern float cosf(float x);
extern float coshf(float x);
extern float expf(float x);
extern float fabsf(float x);
extern float floorf(float x);
extern float fmodf(float x, float y);
extern float frexpf(float x, int *eptr);
extern float ldexpf(float x,int exp);
extern float logf(float x);
extern float log10f(float x);
extern float modff(float x, float *iptr);
extern float powf(float x, float y);
extern float sinf(float x);
extern float sinhf(float x);
extern float sqrtf(float x);
extern float tanf(float x);
extern float tanhf(float x);
/****************************************************************************/
extern float acoshf(float x);
extern float asinhf(float x);
extern float atanhf(float x);
extern float cbrtf(float x);
extern float copysignf(float x, float y);
extern float erfcf(float x);
extern float erff(float x);
extern float expm1f(float x);
extern float fdimf(float x,float y);
extern float fmaf(float x,float y,float z);
extern float fmaxf(float x,float y);
extern float fminf(float x,float y);
extern float hypotf(float x, float y);
extern float lgammaf(float x);
extern float log1pf(float x);
extern float logbf(float x);
extern long int lrintf(float x);
extern long int lroundf(float x);
extern float nanf(const char *tagp);
extern float nearbyintf(float x);
extern float nextafterf(float x,float y);
extern float remainderf(float x, float p);
extern float remquof(float x,float y,int * quo);
extern float rintf(float x);
extern float roundf(float x);
extern float scalbnf (float x, int n);
extern float tgammaf(float x);
extern float truncf(float x);
extern int ilogbf(float x);
/****************************************************************************/
extern double acosh(double x);
extern double asinh(double x);
extern double atanh(double x);
extern double cbrt(double x);
extern double copysign(double x, double y);
extern double erf(double x);
extern double erfc(double x);
extern double expm1(double x);
extern double fdim(double x,double y);
extern double fma(double x,double y,double z);
extern double fmax(double x,double y);
extern double fmin(double x,double y);
extern double hypot(double x,double y);
extern double lgamma(double x);
extern double log1p(double x);
extern double logb(double x);
extern long int lrint(double x);
extern long int lround(double x);
extern double nan(const char *tagp);
extern double nearbyint(double x);
extern double nextafter(double x,double y);
extern double remainder(double x, double p);
extern double remquo(double x,double y,int * quo);
extern double rint(double x); extern double rint(double x);
extern double round(double x); extern float rintf(float x);
extern double scalbn (double x, int n); extern int isinf(double x);
extern double tgamma(double x); extern int isnan(double x);
extern double trunc(double x); extern double logb(double x);
extern int ilogb(double x); extern double hypot(double x,double y);
/****************************************************************************/
extern float exp2f(float x);
extern double exp2(double x);
extern double log2(double x);
extern float log2f(float x);
/****************************************************************************/
#define FLT_EVAL_METHOD 0
/****************************************************************************/
typedef float float_t;
typedef double double_t;
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,174 +0,0 @@
/*
* $Id: netdb.h,v 1.1 2005-10-09 12:32:18 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 _NETDB_H
#define _NETDB_H
/****************************************************************************/
#ifndef _SYS_SOCKET_H
#include <sys/socket.h>
#endif /* _SYS_SOCKET_H */
#ifndef _NETINET_IN_H
#include <netinet/in.h>
#endif /* _NETINET_IN_H */
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#ifdef __GNUC__
#ifdef __PPC__
#pragma pack(2)
#endif
#elif defined(__VBCC__)
#pragma amiga-align
#endif
/****************************************************************************/
#define MAXHOSTNAMELEN 256 /* max hostname size */
/****************************************************************************/
/*
* Structures returned by network data base library. All addresses are
* supplied in host order, and returned in network order (suitable for
* use in system calls).
*/
struct hostent
{
char * h_name; /* official name of host */
char ** h_aliases; /* alias list */
int h_addrtype; /* host address type */
int h_length; /* length of address */
char ** h_addr_list; /* list of addresses from name server */
};
#define h_addr h_addr_list[0] /* address, for backward compatiblity */
/*
* Assumption here is that a network number
* fits in an unsigned long -- probably a poor one.
*/
struct netent
{
char * n_name; /* official name of net */
char ** n_aliases; /* alias list */
int n_addrtype; /* net address type */
in_addr_t n_net; /* network # */
};
struct servent
{
char * s_name; /* official service name */
char ** s_aliases; /* alias list */
int s_port; /* port # */
char * s_proto; /* protocol to use */
};
struct protoent
{
char * p_name; /* official protocol name */
char ** p_aliases; /* alias list */
int p_proto; /* protocol # */
};
/****************************************************************************/
/*
* Error return codes from gethostbyname() and gethostbyaddr()
* (left in extern int h_errno).
*/
#define NETDB_INTERNAL -1 /* see errno */
#define NETDB_SUCCESS 0 /* no problem */
#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */
#define TRY_AGAIN 2 /* Non-Authoritive Host not found, or SERVERFAIL */
#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
#define NO_DATA 4 /* Valid name, no data record of requested type */
#define NO_ADDRESS NO_DATA /* no address, look for MX record */
/****************************************************************************/
extern int h_errno;
/****************************************************************************/
/*
* The following prototypes may clash with the bsdsocket.library or
* usergroup.library API definitions.
*/
#ifndef __NO_NET_API
extern struct hostent *gethostbyaddr(const void *addr, socklen_t len, int type);
extern struct hostent *gethostbyname(const char *name);
extern struct netent *getnetbyaddr(in_addr_t net, int type);
extern struct netent *getnetbyname(const char *name);
extern struct protoent *getprotobyname(const char *name);
extern struct protoent *getprotobynumber(int proto);
extern struct servent *getservbyname(const char *name, const char *proto);
extern struct servent *getservbyport(int port, const char *proto);
extern const char *hstrerror(int err);
#endif /* __NO_NET_API */
/****************************************************************************/
#ifdef __GNUC__
#ifdef __PPC__
#pragma pack()
#endif
#elif defined(__VBCC__)
#pragma default-align
#endif
/****************************************************************************/
#ifdef __cplusplus
}
#endif /* __cplusplus */
/****************************************************************************/
#endif /* _NETDB_H */

View File

@@ -1,260 +0,0 @@
/*
* $Id: in.h,v 1.1 2005-10-09 12:32:18 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 _NETINET_IN_H
#define _NETINET_IN_H
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#ifdef __GNUC__
#ifdef __PPC__
#pragma pack(2)
#endif
#elif defined(__VBCC__)
#pragma amiga-align
#endif
/****************************************************************************/
/*
* Constants and structures defined by the internet system,
* Per RFC 790, September 1981, and numerous additions.
*/
/*
* Data types.
*/
typedef unsigned long in_addr_t;
typedef unsigned short in_port_t;
/*
* Protocols
*/
#define IPPROTO_IP 0 /* dummy for IP */
#define IPPROTO_ICMP 1 /* control message protocol */
#define IPPROTO_IGMP 2 /* group mgmt protocol */
#define IPPROTO_GGP 3 /* gateway^2 (deprecated) */
#define IPPROTO_TCP 6 /* tcp */
#define IPPROTO_EGP 8 /* exterior gateway protocol */
#define IPPROTO_PUP 12 /* pup */
#define IPPROTO_UDP 17 /* user datagram protocol */
#define IPPROTO_IDP 22 /* xns idp */
#define IPPROTO_TP 29 /* tp-4 w/ class negotiation */
#define IPPROTO_EON 80 /* ISO cnlp */
#define IPPROTO_ENCAP 98 /* encapsulation header */
#define IPPROTO_RAW 255 /* raw IP packet */
#define IPPROTO_MAX 256
/*
* Local port number conventions:
* Ports < IPPORT_RESERVED are reserved for
* privileged processes (e.g. root).
* Ports > IPPORT_USERRESERVED are reserved
* for servers, not necessarily privileged.
*/
#define IPPORT_RESERVED 1024
#define IPPORT_USERRESERVED 5000
/*
* Internet address (a structure for historical reasons)
*/
struct in_addr
{
unsigned long s_addr;
};
/*
* Definitions of bits in internet address integers.
* On subnets, the decomposition of addresses to host and net parts
* is done according to subnet mask, not the masks here.
*/
#define IN_CLASSA(i) (((unsigned long)(i) & 0x80000000) == 0)
#define IN_CLASSA_NET 0xff000000
#define IN_CLASSA_NSHIFT 24
#define IN_CLASSA_HOST 0x00ffffff
#define IN_CLASSA_MAX 128
#define IN_CLASSB(i) (((unsigned long)(i) & 0xc0000000) == 0x80000000)
#define IN_CLASSB_NET 0xffff0000
#define IN_CLASSB_NSHIFT 16
#define IN_CLASSB_HOST 0x0000ffff
#define IN_CLASSB_MAX 65536
#define IN_CLASSC(i) (((unsigned long)(i) & 0xe0000000) == 0xc0000000)
#define IN_CLASSC_NET 0xffffff00
#define IN_CLASSC_NSHIFT 8
#define IN_CLASSC_HOST 0x000000ff
#define IN_CLASSD(i) (((unsigned long)(i) & 0xf0000000) == 0xe0000000)
#define IN_CLASSD_NET 0xf0000000 /* These ones aren't really */
#define IN_CLASSD_NSHIFT 28 /* net and host fields, but */
#define IN_CLASSD_HOST 0x0fffffff /* routing needn't know. */
#define IN_MULTICAST(i) IN_CLASSD(i)
#define IN_EXPERIMENTAL(i) (((unsigned long)(i) & 0xf0000000) == 0xf0000000)
#define IN_BADCLASS(i) (((unsigned long)(i) & 0xf0000000) == 0xf0000000)
#define INADDR_ANY 0x00000000UL
#define INADDR_BROADCAST 0xffffffffUL /* must be masked */
#define INADDR_NONE 0xffffffff /* -1 return */
#define INADDR_UNSPEC_GROUP 0xe0000000UL /* 224.0.0.0 */
#define INADDR_ALLHOSTS_GROUP 0xe0000001UL /* 224.0.0.1 */
#define INADDR_MAX_LOCAL_GROUP 0xe00000ffUL /* 224.0.0.255 */
#define IN_LOOPBACKNET 127 /* official! */
/*
* Socket address, internet style.
*/
struct sockaddr_in
{
unsigned char sin_len;
unsigned char sin_family;
unsigned short sin_port;
struct in_addr sin_addr;
unsigned char sin_zero[8];
};
/*
* Structure used to describe IP options.
* Used to store options internally, to pass them to a process,
* or to restore options retrieved earlier.
* The ip_dst is used for the first-hop gateway when using a source route
* (this gets put into the header proper).
*/
struct ip_opts
{
struct in_addr ip_dst; /* first hop, 0 w/o src rt */
unsigned char ip_options[40]; /* actually variable in size */
};
/*
* Options for use with [gs]etsockopt at the IP level.
* First word of comment is data type; bool is stored in int.
*/
#define IP_OPTIONS 1 /* buf/ip_opts; set/get IP options */
#define IP_HDRINCL 2 /* int; header is included with data */
#define IP_TOS 3 /* int; IP type of service and preced. */
#define IP_TTL 4 /* int; IP time to live */
#define IP_RECVOPTS 5 /* bool; receive all IP opts w/dgram */
#define IP_RECVRETOPTS 6 /* bool; receive IP opts for response */
#define IP_RECVDSTADDR 7 /* bool; receive IP dst addr w/dgram */
#define IP_RETOPTS 8 /* ip_opts; set/get IP options */
#define IP_MULTICAST_IF 9 /* unsigned char; set/get IP multicast i/f */
#define IP_MULTICAST_TTL 10 /* unsigned char; set/get IP multicast ttl */
#define IP_MULTICAST_LOOP 11 /* unsigned char; set/get IP multicast loopback */
#define IP_ADD_MEMBERSHIP 12 /* ip_mreq; add an IP group membership */
#define IP_DROP_MEMBERSHIP 13 /* ip_mreq; drop an IP group membership */
/*
* Defaults and limits for options
*/
#define IP_DEFAULT_MULTICAST_TTL 1 /* normally limit m'casts to 1 hop */
#define IP_DEFAULT_MULTICAST_LOOP 1 /* normally hear sends if a member */
#define IP_MAX_MEMBERSHIPS 20 /* per socket; must fit in one mbuf */
/*
* Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
*/
struct ip_mreq
{
struct in_addr imr_multiaddr; /* IP multicast address of group */
struct in_addr imr_interface; /* local IP address of interface */
};
/*
* Definitions for inet sysctl operations.
*
* Third level is protocol number.
* Fourth level is desired variable within that protocol.
*/
#define IPPROTO_MAXID (IPPROTO_IDP + 1) /* don't list to IPPROTO_MAX */
/*
* Names for IP sysctl objects
*/
#define IPCTL_FORWARDING 1 /* act as router */
#define IPCTL_SENDREDIRECTS 2 /* may send redirects when forwarding */
#define IPCTL_DEFTTL 3 /* default TTL */
#ifdef notyet
#define IPCTL_DEFMTU 4 /* default MTU */
#endif
#define IPCTL_MAXID 5
/****************************************************************************/
/*
* Macros for network/external number representation conversion.
*/
#define ntohl(x) (x)
#define ntohs(x) (x)
#define htonl(x) (x)
#define htons(x) (x)
#define NTOHL(x) (x)
#define NTOHS(x) (x)
#define HTONL(x) (x)
#define HTONS(x) (x)
/****************************************************************************/
#ifdef __GNUC__
#ifdef __PPC__
#pragma pack()
#endif
#elif defined(__VBCC__)
#p #pragma default-al
#endif
/****************************************************************************/
#ifdef __cplusplus
}
#endif /* __cplusplus */
/****************************************************************************/
#endif /* _NETINET_IN_H */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: pwd.h,v 1.4 2005-10-09 12:32:18 obarthel Exp $ * $Id: pwd.h,v 1.3 2005-01-02 09:07:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -40,25 +40,15 @@
/****************************************************************************/ /****************************************************************************/
#ifndef _SYS_TYPES_H
#include <sys/types.h>
#endif /* _SYS_TYPES_H */
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
/****************************************************************************/ /****************************************************************************/
#ifdef __GNUC__ #ifndef _SYS_TYPES_H
#ifdef __PPC__ #include <sys/types.h>
#pragma pack(2) #endif /* _SYS_TYPES_H */
#endif
#elif defined(__VBCC__)
#pragma amiga-align
#endif
/****************************************************************************/ /****************************************************************************/
@@ -75,33 +65,6 @@ struct passwd
/****************************************************************************/ /****************************************************************************/
/*
* The following prototypes may clash with the bsdsocket.library or
* usergroup.library API definitions.
*/
#ifndef __NO_NET_API
extern void endpwent(void);
extern struct passwd *getpwent(void);
extern struct passwd *getpwnam(const char *name);
extern struct passwd *getpwuid(uid_t uid);
extern void setpwent(void);
#endif /* __NO_NET_API */
/****************************************************************************/
#ifdef __GNUC__
#ifdef __PPC__
#pragma pack()
#endif
#elif defined(__VBCC__)
#pragma default-align
#endif
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: signal.h,v 1.5 2005-05-12 13:21:47 obarthel Exp $ * $Id: signal.h,v 1.4 2005-01-02 09:07:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -62,15 +62,6 @@ extern int raise(int sig);
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard, but it should
be part of ISO/IEC 9899:1999, also known as "C99". */
/****************************************************************************/
typedef int sig_atomic_t;
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */ /* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/ /****************************************************************************/
@@ -85,6 +76,10 @@ typedef void (*sig_t)(int);
/****************************************************************************/ /****************************************************************************/
typedef int sig_atomic_t;
/****************************************************************************/
typedef int sigset_t; typedef int sigset_t;
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stdarg.h,v 1.4 2005-04-03 10:22:48 obarthel Exp $ * $Id: stdarg.h,v 1.3 2005-01-02 09:07:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -56,15 +56,6 @@ typedef char * va_list;
/****************************************************************************/ /****************************************************************************/
/* The following macro is not part of the ISO 'C' (1994) standard, but it should
be part of ISO/IEC 9899:1999, also known as "C99". */
/****************************************************************************/
#define va_copy(dst,src) ((void)((dst) = (src)))
/****************************************************************************/
#else #else
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,81 +0,0 @@
/*
* $Id: stdbool.h,v 1.3 2005-10-19 08:11:44 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 _STDBOOL_H
#define _STDBOOL_H
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard, but it should
be part of ISO/IEC 9899:1999, also known as "C99". */
/****************************************************************************/
#if defined(__cplusplus) && defined(__GNUC__)
#warning C99 header used in C++.
#endif /* __GNUC__ */
/****************************************************************************/
#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L)
#warning C99 header file used by non-C99 compliant compiler.
#endif /* !__STDC_VERSION__ || __STDC_VERSION__ < 199901L */
/****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#define bool _Bool
/****************************************************************************/
#define false 0
#define true 1
/****************************************************************************/
#define __bool_true_false_are_defined 1
/****************************************************************************/
#ifdef __cplusplus
}
#endif /* __cplusplus */
/****************************************************************************/
#endif /* _STDBOOL_H */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stddef.h,v 1.4 2005-05-12 13:21:47 obarthel Exp $ * $Id: stddef.h,v 1.3 2005-01-08 10:21:28 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -54,7 +54,7 @@ extern "C" {
typedef int ptrdiff_t; typedef int ptrdiff_t;
typedef unsigned int size_t; typedef unsigned int size_t;
typedef unsigned short wchar_t; typedef unsigned int wchar_t;
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stdint.h,v 1.2 2005-05-12 13:21:47 obarthel Exp $ * $Id: stdint.h,v 1.1 2005-02-04 15:03:14 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -77,7 +77,8 @@ typedef unsigned int uint_fast32_t;
typedef signed long intptr_t; typedef signed long intptr_t;
typedef unsigned long uintptr_t; typedef unsigned long uintptr_t;
#if defined(__GNUC__) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))
#if defined(__GNUC__) || ((__STDC_VERSION__ +0) >= 199901L)
typedef signed long long int64_t; typedef signed long long int64_t;
typedef unsigned long long uint64_t; typedef unsigned long long uint64_t;
typedef signed long long int_least64_t; typedef signed long long int_least64_t;
@@ -86,10 +87,10 @@ typedef signed long long int_fast64_t;
typedef unsigned long long uint_fast64_t; typedef unsigned long long uint_fast64_t;
typedef signed long long intmax_t; typedef signed long long intmax_t;
typedef unsigned long long uintmax_t; typedef unsigned long long uintmax_t;
#else #else /* No 64-bit types for SAS/C */
typedef signed long intmax_t; typedef signed long intmax_t;
typedef unsigned long uintmax_t; typedef unsigned long uintmax_t;
#endif /* __GNUC__ || (__STDC_VERSION__ && __STDC_VERSION__ >= 199901L) */ #endif
#define INT8_MIN SCHAR_MIN #define INT8_MIN SCHAR_MIN
#define INT8_MAX SCHAR_MAX #define INT8_MAX SCHAR_MAX
@@ -100,11 +101,11 @@ typedef unsigned long uintmax_t;
#define INT32_MIN INT_MIN #define INT32_MIN INT_MIN
#define INT32_MAX INT_MAX #define INT32_MAX INT_MAX
#define UINT32_MAX UINT_MAX #define UINT32_MAX UINT_MAX
#if defined(__GNUC__) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) #if defined(__GNUC__) || ((__STDC_VERSION__ +0) >= 199901L)
#define INT64_MIN LLONG_MIN #define INT64_MIN LLONG_MIN
#define INT64_MAX LLONG_MAX #define INT64_MAX LLONG_MAX
#define UINT64_MAX ULLONG_MAX #define UINT64_MAX ULLONG_MAX
#endif /* __GNUC__ || (__STDC_VERSION__ && __STDC_VERSION__ >= 199901L) */ #endif
#define INT_LEAST8_MIN SCHAR_MIN #define INT_LEAST8_MIN SCHAR_MIN
#define INT_LEAST8_MAX SCHAR_MAX #define INT_LEAST8_MAX SCHAR_MAX
@@ -115,11 +116,11 @@ typedef unsigned long uintmax_t;
#define INT_LEAST32_MIN INT_MIN #define INT_LEAST32_MIN INT_MIN
#define INT_LEAST32_MAX INT_MAX #define INT_LEAST32_MAX INT_MAX
#define UINT_LEAST32_MAX UINT_MAX #define UINT_LEAST32_MAX UINT_MAX
#if defined(__GNUC__) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) #if defined(__GNUC__) || ((__STDC_VERSION__ +0) >= 199901L)
#define INT_LEAST64_MIN LLONG_MIN #define INT_LEAST64_MIN LLONG_MIN
#define INT_LEAST64_MAX LLONG_MAX #define INT_LEAST64_MAX LLONG_MAX
#define UINT_LEAST64_MAX ULLONG_MAX #define UINT_LEAST64_MAX ULLONG_MAX
#endif /* __GNUC__ || (__STDC_VERSION__ && __STDC_VERSION__ >= 199901L) */ #endif
#define INT_FAST8_MIN SCHAR_MIN #define INT_FAST8_MIN SCHAR_MIN
#define INT_FAST8_MAX SCHAR_MAX #define INT_FAST8_MAX SCHAR_MAX
@@ -130,17 +131,17 @@ typedef unsigned long uintmax_t;
#define INT_FAST32_MIN INT_MIN #define INT_FAST32_MIN INT_MIN
#define INT_FAST32_MAX INT_MAX #define INT_FAST32_MAX INT_MAX
#define UINT_FAST32_MAX UINT_MAX #define UINT_FAST32_MAX UINT_MAX
#if defined(__GNUC__) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) #if defined(__GNUC__) || ((__STDC_VERSION__ +0) >= 199901L)
#define INT_FAST64_MIN LLONG_MIN #define INT_FAST64_MIN LLONG_MIN
#define INT_FAST64_MAX LLONG_MAX #define INT_FAST64_MAX LLONG_MAX
#define UINT_FAST64_MAX ULLONG_MAX #define UINT_FAST64_MAX ULLONG_MAX
#endif /* __GNUC__ || (__STDC_VERSION__ && __STDC_VERSION__ >= 199901L) */ #endif
#define INTPTR_MIN LONG_MIN #define INTPTR_MIN LONG_MIN
#define INTPTR_MAX LONG_MAX #define INTPTR_MAX LONG_MAX
#define UINTPTR_MAX ULONG_MAX #define UINTPTR_MAX ULONG_MAX
#if defined(__GNUC__) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) #if defined(__GNUC__) || ((__STDC_VERSION__ +0) >= 199901L)
#define INTMAX_MIN LLONG_MIN #define INTMAX_MIN LLONG_MIN
#define INTMAX_MAX LLONG_MAX #define INTMAX_MAX LLONG_MAX
#define UINTMAX_MAX ULLONG_MAX #define UINTMAX_MAX ULLONG_MAX
@@ -148,9 +149,9 @@ typedef unsigned long uintmax_t;
#define INTMAX_MIN LONG_MIN #define INTMAX_MIN LONG_MIN
#define INTMAX_MAX LONG_MAX #define INTMAX_MAX LONG_MAX
#define UINTMAX_MAX ULONG_MAX #define UINTMAX_MAX ULONG_MAX
#endif /* __GNUC__ || (__STDC_VERSION__ && __STDC_VERSION__ >= 199901L) */ #endif
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) #if !defined(__cpluspluis) || defined(__STDC_LIMIT_MACROS)
/* sigatomic_t is an int. */ /* sigatomic_t is an int. */
#define SIG_ATOMIC_MIN INT_MIN #define SIG_ATOMIC_MIN INT_MIN
#define SIG_ATOMIC_MAX INT_MAX #define SIG_ATOMIC_MAX INT_MAX
@@ -170,27 +171,16 @@ typedef unsigned long uintmax_t;
#define UINT32_C(x) x ## U #define UINT32_C(x) x ## U
#define UINT64_C(x) x ## ULL #define UINT64_C(x) x ## ULL
#if defined(__GNUC__) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) #if defined(__GNUC__) || ((__STDC_VERSION__ +0) >= 199901L)
#define INTMAX_C(x) x ## LL #define INTMAX_C(x) x ## LL
#define UINTMAX_C(x) x ## ULL #define UINTMAX_C(x) x ## ULL
#else #else
#define INTMAX_C(x) x ## L #define INTMAX_C(x) x ## L
#define UINTMAX_C(x) x ## UL #define UINTMAX_C(x) x ## UL
#endif /* __GNUC__ || (__STDC_VERSION__ && __STDC_VERSION__ >= 199901L) */ #endif
#endif /* not C++ or CONSTANT_MACROS */ #endif /* not C++ or CONSTANT_MACROS */
/****************************************************************************/ /****************************************************************************/
#define PTRDIFF_MIN INT_MIN
#define PTRDIFF_MAX INT_MAX
#define WCHAR_MIN 0
#define WCHAR_MAX USHRT_MAX
#define WINT_MIN INT_MIN
#define WINT_MAX INT_MAX
/****************************************************************************/
#endif /* _STDINT_H */ #endif /* _STDINT_H */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stdio.h,v 1.18 2005-10-09 12:32:18 obarthel Exp $ * $Id: stdio.h,v 1.9 2005-03-06 09:04:44 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,6 +36,12 @@
/****************************************************************************/ /****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#ifndef _STDDEF_H #ifndef _STDDEF_H
#include <stddef.h> #include <stddef.h>
#endif /* _STDDEF_H */ #endif /* _STDDEF_H */
@@ -44,16 +50,6 @@
#include <stdarg.h> #include <stdarg.h>
#endif /* _STDARG_H */ #endif /* _STDARG_H */
#ifndef _SYS_TYPES_H
#include <sys/types.h>
#endif /* _SYS_TYPES_H */
/****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/ /****************************************************************************/
/* 'End of file' indicator returned by, for example, fgetc() */ /* 'End of file' indicator returned by, for example, fgetc() */
@@ -154,7 +150,7 @@ typedef struct
#define L_tmpnam 10 #define L_tmpnam 10
/* Maximum number of unique file names tmpnam() can generate */ /* Maximum number of unique file names tmpnam() can generate */
#define TMP_MAX 0x40000 #define TMP_MAX 0x3ffff
/****************************************************************************/ /****************************************************************************/
@@ -310,30 +306,12 @@ extern char *tmpnam(char *buf);
/****************************************************************************/ /****************************************************************************/
#if defined(__THREAD_SAFE)
/****************************************************************************/
#define clearerr(file) ((void)(flockfile(file), (file)->flags &= ~(__FILE_EOF|__FILE_ERROR), funlockfile(file)))
#define feof(file) (flockfile(file), __unlockfile((file),((file)->flags & __FILE_EOF) != 0))
#define ferror(file) (flockfile(file), __unlockfile((file),((file)->flags & __FILE_ERROR) != 0))
/****************************************************************************/
#else
/****************************************************************************/
#define clearerr(file) ((void)((file)->flags &= ~(__FILE_EOF|__FILE_ERROR))) #define clearerr(file) ((void)((file)->flags &= ~(__FILE_EOF|__FILE_ERROR)))
#define feof(file) (((file)->flags & __FILE_EOF) != 0) #define feof(file) (((file)->flags & __FILE_EOF) != 0)
#define ferror(file) (((file)->flags & __FILE_ERROR) != 0) #define ferror(file) (((file)->flags & __FILE_ERROR) != 0)
/****************************************************************************/ /****************************************************************************/
#endif /* __THREAD_SAFE */
/****************************************************************************/
#endif /* __C_MACROS__ */ #endif /* __C_MACROS__ */
/****************************************************************************/ /****************************************************************************/
@@ -346,14 +324,6 @@ extern char *tmpnam(char *buf);
/****************************************************************************/ /****************************************************************************/
#define L_ctermid 32
/****************************************************************************/
extern char *ctermid(char *);
/****************************************************************************/
/* /*
* A special buffer flush routine which returns the last character written * A special buffer flush routine which returns the last character written
* in case of success and EOF in case of failure. This is used by the * in case of success and EOF in case of failure. This is used by the
@@ -389,11 +359,10 @@ extern int putchar_unlocked(int c);
extern FILE * fdopen(int file_descriptor, const char * type); extern FILE * fdopen(int file_descriptor, const char * type);
extern int fileno(FILE * file); extern int fileno(FILE * file);
extern int asprintf(char **ret, const char *format, ...); extern int asprintf(char **ret, const char *format, ...);
extern int snprintf(char *s,size_t size,const char *format,...);
extern int vsnprintf(char *s,size_t size,const char *format,va_list arg); extern int vsnprintf(char *s,size_t size,const char *format,va_list arg);
extern int pclose(FILE *stream); extern int pclose(FILE *stream);
extern FILE * popen(const char *command, const char *type); extern FILE * popen(const char *command, const char *type);
extern int fseeko(FILE *stream, off_t offset, int wherefrom);
extern off_t ftello(FILE *stream);
/****************************************************************************/ /****************************************************************************/
@@ -431,18 +400,6 @@ extern int __vasprintf(const char *file,int line,char **ret,const char *format,v
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard, but it should
be part of ISO/IEC 9899:1999, also known as "C99". */
/****************************************************************************/
extern int vfscanf(FILE *stream, const char *format, va_list arg);
extern int vsscanf(const char *s, const char *format, va_list arg);
extern int vscanf(const char *format,va_list arg);
extern int snprintf(char *s,size_t size,const char *format,...);
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stdlib.h,v 1.12 2005-10-09 12:32:18 obarthel Exp $ * $Id: stdlib.h,v 1.8 2005-03-02 12:57:56 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,20 +36,20 @@
/****************************************************************************/ /****************************************************************************/
#ifndef _STDDEF_H
#include <stddef.h>
#endif /* _STDDEF_H */
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
/****************************************************************************/ /****************************************************************************/
#ifndef _STDDEF_H
#include <stddef.h>
#endif /* _STDDEF_H */
/****************************************************************************/
/* Maximum number of bytes in a multibyte character */ /* Maximum number of bytes in a multibyte character */
#define MB_CUR_MAX 2 #define MB_CUR_MAX 4
/****************************************************************************/ /****************************************************************************/
@@ -153,6 +153,16 @@ extern int rand_r(unsigned int * seed);
/****************************************************************************/ /****************************************************************************/
/* These functions are unavailable under SAS/C for lack of a
"long long" data type. */
#if ! defined(__SASC)
extern long long strtoll(const char *str, char **ptr, int base);
extern unsigned long long strtoull(const char *str, char **ptr, int base);
extern long long atoll(const char *str);
#endif /* __SASC */
/****************************************************************************/
#if defined(__GNUC__) #if defined(__GNUC__)
#undef alloca #undef alloca
#define alloca(size) __builtin_alloca(size) #define alloca(size) __builtin_alloca(size)
@@ -177,42 +187,6 @@ extern char * mkdtemp(char *name_template);
/****************************************************************************/ /****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard, but it should
be part of ISO/IEC 9899:1999, also known as "C99". */
/****************************************************************************/
#if defined(__GNUC__) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))
/****************************************************************************/
extern long long strtoll(const char *str, char **ptr, int base);
extern unsigned long long strtoull(const char *str, char **ptr, int base);
extern long long atoll(const char *str);
/****************************************************************************/
typedef struct { long long quot; long long rem; } lldiv_t;
/****************************************************************************/
extern long long llabs(long long x);
extern lldiv_t lldiv(long long n,long long d);
/****************************************************************************/
#endif /* __GNUC__ || (__STDC_VERSION__ && __STDC_VERSION__ >= 199901L) */
/****************************************************************************/
extern float strtof(const char *str, char ** ptr);
/****************************************************************************/
extern void _Exit(int status);
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: string.h,v 1.8 2005-10-09 12:32:18 obarthel Exp $ * $Id: string.h,v 1.7 2005-01-02 09:07:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -36,18 +36,18 @@
/****************************************************************************/ /****************************************************************************/
#ifndef _STDDEF_H
#include <stddef.h>
#endif /* _STDDEF_H */
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
/****************************************************************************/ /****************************************************************************/
#ifndef _STDDEF_H
#include <stddef.h>
#endif /* _STDDEF_H */
/****************************************************************************/
extern char *strerror(int error_number); extern char *strerror(int error_number);
extern char *strcat(char *dest, const char *src); extern char *strcat(char *dest, const char *src);
extern char *strncat(char *dest, const char *src, size_t n); extern char *strncat(char *dest, const char *src, size_t n);

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: strings.h,v 1.5 2005-10-09 12:32:18 obarthel Exp $ * $Id: strings.h,v 1.4 2005-03-02 12:57:56 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -40,18 +40,18 @@
/****************************************************************************/ /****************************************************************************/
#ifndef _STDDEF_H
#include <stddef.h>
#endif /* _STDDEF_H */
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
/****************************************************************************/ /****************************************************************************/
#ifndef _STDDEF_H
#include <stddef.h>
#endif /* _STDDEF_H */
/****************************************************************************/
/* These come from 4.4BSD. */ /* These come from 4.4BSD. */
extern int strcasecmp(const char *s1, const char *s2); extern int strcasecmp(const char *s1, const char *s2);
extern int strncasecmp(const char *s1, const char *s2, size_t len); extern int strncasecmp(const char *s1, const char *s2, size_t len);

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: amigaos-va.h,v 1.4 2005-10-09 12:32:18 obarthel Exp $ * $Id: amigaos-va.h,v 1.3 2005-01-02 09:07:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -40,18 +40,18 @@
/****************************************************************************/ /****************************************************************************/
#ifndef _STDARG_H
#include <stdarg.h>
#endif /* _STDARG_H */
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
/****************************************************************************/ /****************************************************************************/
#ifndef _STDARG_H
#include <stdarg.h>
#endif /* _STDARG_H */
/****************************************************************************/
/* Define the AmigaOS specific varargs macros, /* Define the AmigaOS specific varargs macros,
if <stdarg.h> didn't already define them. */ if <stdarg.h> didn't already define them. */

View File

@@ -1,63 +0,0 @@
/*
* $Id: clib2_stdc.h,v 1.1 2005-05-12 13:21:47 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 _SYS_CLIB2_STDC_H
#define _SYS_CLIB2_STDC_H
/****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
/* Make the "restrict" qualifier work well with 'C' compilers that do
not support it. We do assume that __STDC__ is defined, though. */
#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L)
#define restrict
#endif /* !__STDC_VERSION__ || __STDC_VERSION__ < 199901L */
/****************************************************************************/
#ifdef __cplusplus
}
#endif /* __cplusplus */
/****************************************************************************/
#endif /* _SYS_CLIB2_STDC_H */

View File

@@ -1,72 +0,0 @@
/*
* $Id: filio.h,v 1.1 2005-10-09 12:32:18 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 _SYS_FILIO_H
#define _SYS_FILIO_H
/****************************************************************************/
#ifndef _SYS_IOCCOM_H
#include <sys/ioccom.h>
#endif /* _SYS_IOCCOM_H */
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
/* Generic file-descriptor ioctl's. */
#define FIOCLEX _IO('f', 1) /* set close on exec on fd */
#define FIONCLEX _IO('f', 2) /* remove close on exec */
#define FIONREAD _IOR('f', 127, int) /* get # bytes to read */
#define FIONBIO _IOW('f', 126, int) /* set/clear non-blocking i/o */
#define FIOASYNC _IOW('f', 125, int) /* set/clear async i/o */
#define FIOSETOWN _IOW('f', 124, int) /* set owner */
#define FIOGETOWN _IOR('f', 123, int) /* get owner */
/****************************************************************************/
#ifdef __cplusplus
}
#endif /* __cplusplus */
/****************************************************************************/
#endif /* _SYS_FILIO_H */

View File

@@ -1,78 +0,0 @@
/*
* $Id: ioccom.h,v 1.1 2005-10-09 12:32:18 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 _SYS_IOCCOM_H
#define _SYS_IOCCOM_H
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#define IOCPARM_MASK 0x1fff /* parameter length, at most 13 bits */
#define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK)
#define IOCBASECMD(x) ((x) & ~(IOCPARM_MASK << 16))
#define IOCGROUP(x) (((x) >> 8) & 0xff)
#define IOCPARM_MAX NBPG /* max size of ioctl args, mult. of NBPG */
#define IOC_VOID (0x20000000UL) /* no parameters */
#define IOC_OUT (0x40000000UL) /* copy parameters out */
#define IOC_IN (0x80000000UL) /* copy parameters in */
#define IOC_INOUT (IOC_IN|IOC_OUT) /* copy paramters in and out */
#define IOC_DIRMASK (0xe0000000UL) /* mask for IN/OUT/VOID */
#define _IOC(inout,group,num,len) \
(inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num))
#define _IO(g,n) _IOC(IOC_VOID, (g), (n), 0)
#define _IOR(g,n,t) _IOC(IOC_OUT, (g), (n), sizeof(t))
#define _IOW(g,n,t) _IOC(IOC_IN, (g), (n), sizeof(t))
#define _IOWR(g,n,t) _IOC(IOC_INOUT, (g), (n), sizeof(t))
/****************************************************************************/
#ifdef __cplusplus
}
#endif /* __cplusplus */
/****************************************************************************/
#endif /* _SYS_IOCCOM_H */

View File

@@ -1,68 +0,0 @@
/*
* $Id: ioctl.h,v 1.1 2005-10-09 12:32:18 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 _SYS_IOTCL_H
#define _SYS_IOTCL_H
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
/*
* The following prototypes may clash with the bsdsocket.library or
* usergroup.library API definitions.
*/
#ifndef __NO_NET_API
extern int ioctl(int fildes, int request, ... /* arg */);
#endif /* __NO_NET_API */
/****************************************************************************/
#ifdef __cplusplus
}
#endif /* __cplusplus */
/****************************************************************************/
#endif /* _SYS_IOTCL_H */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: mount.h,v 1.4 2005-10-09 12:32:18 obarthel Exp $ * $Id: mount.h,v 1.3 2005-01-02 09:07:21 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -40,18 +40,18 @@
/****************************************************************************/ /****************************************************************************/
#ifndef _SYS_TYPES_H
#include <sys/types.h>
#endif /* _SYS_TYPES_H */
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
/****************************************************************************/ /****************************************************************************/
#ifndef _SYS_TYPES_H
#include <sys/types.h>
#endif /* _SYS_TYPES_H */
/****************************************************************************/
typedef struct { long val[2]; } fsid_t; /* file system id type */ typedef struct { long val[2]; } fsid_t; /* file system id type */
/****************************************************************************/ /****************************************************************************/

View File

@@ -1,102 +0,0 @@
/*
* $Id: select.h,v 1.1 2005-10-09 12:32:18 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 _SYS_SELECT_H
#define _SYS_SELECT_H
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
#ifndef _STRING_H
#include <string.h>
#endif /* _STRING_H */
#ifndef _SYS_TIME_H
#include <sys/time.h>
#endif /* _SYS_TIME_H */
/****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
/*
* select() uses bit masks of file descriptors in longs. These macros
* manipulate such bit fields.
*
* FD_SETSIZE may be defined by the user, but the default here should
* be enough for most uses.
*/
#ifndef FD_SETSIZE
#define FD_SETSIZE 256
#endif
typedef struct fd_set
{
unsigned long bits[(FD_SETSIZE + 31) / 32];
} fd_set;
#define FD_SET(n,p) ((void)((n) < FD_SETSIZE ? (p)->bits[((unsigned long)n) >> 5] |= (1UL << (((unsigned long)n) & 31)) : 0))
#define FD_CLR(n,p) ((void)((n) < FD_SETSIZE ? (p)->bits[((unsigned long)n) >> 5] &= ~(1UL << (((unsigned long)n) & 31)) : 0))
#define FD_ISSET(n,p) ((n) < FD_SETSIZE && ((p)->bits[((unsigned long)n) >> 5] & (1UL << (((unsigned long)n) & 31))) != 0)
#define FD_COPY(f,t) ((void)memmove(t,f,sizeof(*(f))))
#define FD_ZERO(p) ((void)memset(p,0,sizeof(*(p))))
/****************************************************************************/
/*
* The following prototypes may clash with the bsdsocket.library or
* usergroup.library API definitions.
*/
#ifndef __NO_NET_API
extern int select(int nfds, fd_set *readfds,fd_set *writefds, fd_set *errorfds,struct timeval *timeout);
#endif /* __NO_NET_API */
/****************************************************************************/
#ifdef __cplusplus
}
#endif /* __cplusplus */
/****************************************************************************/
#endif /* _SYS_SELECT_H */

View File

@@ -1,346 +0,0 @@
/*
* $Id: socket.h,v 1.2 2005-10-11 09:28:29 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 _SYS_SOCKET_H
#define _SYS_SOCKET_H
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
#ifndef _STDDEF_H
#include <stddef.h>
#endif /* _STDDEF_H */
#ifndef _SYS_UIO_H_
#include <sys/uio.h>
#endif /* _SYS_UIO_H_ */
/****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#ifdef __GNUC__
#ifdef __PPC__
#pragma pack(2)
#endif
#elif defined(__VBCC__)
#pragma amiga-align
#endif
/****************************************************************************/
/*
* Definitions related to sockets: types, address families, options.
*/
typedef unsigned long socklen_t;
/*
* Types
*/
#define SOCK_STREAM 1 /* stream socket */
#define SOCK_DGRAM 2 /* datagram socket */
#define SOCK_RAW 3 /* raw-protocol interface */
#define SOCK_RDM 4 /* reliably-delivered message */
#define SOCK_SEQPACKET 5 /* sequenced packet stream */
/*
* Option flags per-socket.
*/
#define SO_DEBUG 0x0001 /* turn on debugging info recording */
#define SO_ACCEPTCONN 0x0002 /* socket has had listen() */
#define SO_REUSEADDR 0x0004 /* allow local address reuse */
#define SO_KEEPALIVE 0x0008 /* keep connections alive */
#define SO_DONTROUTE 0x0010 /* just use interface addresses */
#define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */
#define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */
#define SO_LINGER 0x0080 /* linger on close if data present */
#define SO_OOBINLINE 0x0100 /* leave received OOB data in line */
#define SO_REUSEPORT 0x0200 /* allow local address & port reuse */
/*
* Additional options, not kept in so_options.
*/
#define SO_SNDBUF 0x1001 /* send buffer size */
#define SO_RCVBUF 0x1002 /* receive buffer size */
#define SO_SNDLOWAT 0x1003 /* send low-water mark */
#define SO_RCVLOWAT 0x1004 /* receive low-water mark */
#define SO_SNDTIMEO 0x1005 /* send timeout */
#define SO_RCVTIMEO 0x1006 /* receive timeout */
#define SO_ERROR 0x1007 /* get error status and clear */
#define SO_TYPE 0x1008 /* get socket type */
/* This is a private option which is used exclusively
* by this Amiga TCP/IP stack implementation and should not
* be used by user code.
*/
#define SO_EVENTMASK 0x2001
/*
* Structure used for manipulating linger optio *
*/
struct linger
{
int l_onoff; /* option on/off */
int l_linger; /* linger time in seconds */
};
/*
* Level number for (get/set)sockopt() to apply to socket itself.
*/
#define SOL_SOCKET 0xffff /* options for socket level */
/*
* Address families.
*/
#define AF_UNSPEC 0 /* unspecified */
#define AF_LOCAL 1 /* local to host (pipes, portals) */
#define AF_UNIX AF_LOCAL /* backward compatibility */
#define AF_INET 2 /* internetwork: UDP, TCP, etc. */
#define AF_IMPLINK 3 /* arpanet imp addresses */
#define AF_PUP 4 /* pup protocols: e.g. BSP */
#define AF_CHAOS 5 /* mit CHAOS protocols */
#define AF_NS 6 /* XEROX NS protocols */
#define AF_ISO 7 /* ISO protocols */
#define AF_OSI AF_ISO
#define AF_ECMA 8 /* european computer manufacturers */
#define AF_DATAKIT 9 /* datakit protocols */
#define AF_CCITT 10 /* CCITT protocols, X.25 etc */
#define AF_SNA 11 /* IBM SNA */
#define AF_DECnet 12 /* DECnet */
#define AF_DLI 13 /* DEC Direct data link interface */
#define AF_LAT 14 /* LAT */
#define AF_HYLINK 15 /* NSC Hyperchannel */
#define AF_APPLETALK 16 /* Apple Talk */
#define AF_ROUTE 17 /* Internal Routing Protocol */
#define AF_LINK 18 /* Link layer interface */
#define pseudo_AF_XTP 19 /* eXpress Transfer Protocol (no AF) */
#define AF_COIP 20 /* connection-oriented IP, aka ST II */
#define AF_CNT 21 /* Computer Network Technology */
#define pseudo_AF_RTIP 22 /* Help Identify RTIP packets */
#define AF_IPX 23 /* Novell Internet Protocol */
#define AF_SIP 24 /* Simple Internet Protocol */
#define pseudo_AF_PIP 25 /* Help Identify PIP packets */
#define AF_MAX 26
/*
* Structure used by kernel to store most
* addresses.
*/
struct sockaddr
{
unsigned char sa_len; /* total length */
unsigned char sa_family; /* address family */
unsigned char sa_data[14]; /* actually longer; address value */
};
/*
* Structure used by kernel to pass protocol
* inf * inf * inf * informati
*/
struct sockproto
{
unsigned short sp_family; /* address family */
unsigned short sp_protocol; /* protocol */
};
/*
* Protocol families, same as address families for now.
*/
#define PF_UNSPEC AF_UNSPEC
#define PF_LOCAL AF_LOCAL
#define PF_UNIX PF_LOCAL /* backward compatibility */
#define PF_INET AF_INET
#define PF_IMPLINK AF_IMPLINK
#define PF_PUP AF_PUP
#define PF_CHAOS AF_CHAOS
#define PF_NS AF_NS
#define PF_ISO AF_ISO
#define PF_OSI AF_ISO
#define PF_ECMA AF_ECMA
#define PF_DATAKIT AF_DATAKIT
#define PF_CCITT AF_CCITT
#define PF_SNA AF_SNA
#define PF_DECnet AF_DECnet
#define PF_DLI AF_DLI
#define PF_LAT AF_LAT
#define PF_HYLINK AF_HYLINK
#define PF_APPLETALK AF_APPLETALK
#define PF_ROUTE AF_ROUTE
#define PF_LINK AF_LINK
#define PF_XTP pseudo_AF_XTP /* really just proto family, no AF */
#define PF_COIP AF_COIP
#define PF_CNT AF_CNT
#define PF_SIP AF_SIP
#define PF_IPX AF_IPX /* same format as AF_NS */
#define PF_RTIP pseudo_AF_FTIP /* same format as AF_INET */
#define PF_PIP pseudo_AF_PIP
#define PF_MAX AF_MAX
/*
* Definitions for network related sysctl, CTL_NET.
*
* Second level is protocol family.
* Third level is protocol number.
*
* Further levels are defined by the individual families below.
*/
#define NET_MAXID AF_MAX
/*
* PF_ROUTE - Routing table
*
* Three additional levels are defined:
* Fourth: address family, 0 is wildcard
* Fifth: type of info, defined below
* Sixth: flag(s) to mask with for NET_RT_FLAGS
*/
#define NET_RT_DUMP 1 /* dump; may limit to a.f. */
#define NET_RT_FLAGS 2 /* by flags, e.g. RESOLVING */
#define NET_RT_IFLIST 3 /* survey interface list */
#define NET_RT_MAXID 4
/*
* Maximum queue length specifiable by listen.
*/
#define SOMAXCONN 5
/*
* Message header for recvmsg and sendmsg calls.
* Used value-result for recvmsg, value only for sendmsg.
*/
struct msghdr
{
void * msg_name; /* optional address */
unsigned long msg_namelen; /* size of address */
struct iovec * msg_iov; /* scatter/gather array */
unsigned long msg_iovlen; /* # elements in msg_iov */
void * msg_control; /* ancillary data, see below */
unsigned long msg_controllen; /* ancillary data buffer len */
int msg_flags; /* flags on received message */
};
#define MSG_OOB 0x1 /* process out-of-band data */
#define MSG_PEEK 0x2 /* peek at incoming message */
#define MSG_DONTROUTE 0x4 /* send without using routing tables */
#define MSG_EOR 0x8 /* data completes record */
#define MSG_TRUNC 0x10 /* data discarded before delivery */
#define MSG_CTRUNC 0x20 /* control data lost before delivery */
#define MSG_WAITALL 0x40 /* wait for full request or error */
#define MSG_DONTWAIT 0x80 /* this message should be nonblocking */
/*
* Header for ancillary data objects in msg_control buffer.
* Used for additional information with/about a datagram
* not expressible by flags. The format is a sequence
* of message elements headed by cmsghdr structures.
*/
struct cmsghdr
{
unsigned long cmsg_len; /* data byte count, including hdr */
int cmsg_level; /* originating protocol */
int cmsg_type; /* protocol-specific type */
/* followed by unsigned char cmsg_data[]; */
};
/* given pointer to struct cmsghdr, return pointer to data */
#define CMSG_DATA(cmsg) ((unsigned char *)((cmsg) + 1))
/* given pointer to struct cmsghdr, return pointer to next cmsghdr */
#define CMSG_NXTHDR(mhdr, cmsg) \
(((void *)(cmsg) + (cmsg)->cmsg_len + sizeof(struct cmsghdr) > \
(mhdr)->msg_control + (mhdr)->msg_controllen) ? \
(struct cmsghdr *)NULL : \
(struct cmsghdr *)((void *)(cmsg) + ALIGN((cmsg)->cmsg_len)))
#define CMSG_FIRSTHDR(mhdr) ((struct cmsghdr *)(mhdr)->msg_control)
/* "Socket"-level control message types: */
#define SCM_RIGHTS 0x01 /* access rights (array of LONG) */
/****************************************************************************/
/*
* The following prototypes may clash with the bsdsocket.library or
* usergroup.library API definitions.
*/
#ifndef __NO_NET_API
extern int accept(int sockfd,struct sockaddr *cliaddr,socklen_t *addrlen);
extern int bind(int socket, const struct sockaddr *address, socklen_t address_len);
extern int connect(int socket, const struct sockaddr *address, socklen_t address_len);
extern int getpeername(int socket, struct sockaddr *address, socklen_t *address_len);
extern int getsockname(int socket, struct sockaddr *address, socklen_t *address_len);
extern int getsockopt(int socket, int level, int option_name, void *option_value, socklen_t *option_len);
extern int listen(int socket, int backlog);
extern ssize_t recv(int socket, void *buffer, size_t length, int flags);
extern ssize_t recvfrom(int socket, void *buffer, size_t length,int flags, struct sockaddr *address,socklen_t *address_len);
extern ssize_t recvmsg(int socket, struct msghdr *message, int flags);
extern ssize_t send(int socket, const void *buffer, size_t length, int flags);
extern ssize_t sendmsg(int socket, const struct msghdr *message, int flags);
extern ssize_t sendto(int socket, const void *message, size_t length,int flags, const struct sockaddr *dest_addr,socklen_t dest_len);
extern int setsockopt(int socket, int level, int option_name, const void *option_value, socklen_t option_len);
extern int shutdown(int socket, int how);
extern int socket(int domain, int type, int protocol);
#endif /* __NO_NET_API */
/****************************************************************************/
#ifdef __GNUC__
#ifdef __PPC__
#pragma pack()
#endif
#elif defined(__VBCC__)
#pragma default-align
#endif
/****************************************************************************/
#ifdef __cplusplus
}
#endif /* __cplusplus */
/****************************************************************************/
#endif /* _SYS_SOCKET_H */

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: stat.h,v 1.6 2005-10-09 12:32:18 obarthel Exp $ * $Id: stat.h,v 1.4 2005-03-10 11:40:57 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -40,6 +40,12 @@
/****************************************************************************/ /****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#ifndef _SYS_TYPES_H #ifndef _SYS_TYPES_H
#include <sys/types.h> #include <sys/types.h>
#endif /* _SYS_TYPES_H */ #endif /* _SYS_TYPES_H */
@@ -54,12 +60,6 @@
/****************************************************************************/ /****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
#define S_ISUID 0004000 /* set user id on execution */ #define S_ISUID 0004000 /* set user id on execution */
#define S_ISGID 0002000 /* set group id on execution */ #define S_ISGID 0002000 /* set group id on execution */
#define S_ISVTX 0001000 /* save swapped text even after use */ #define S_ISVTX 0001000 /* save swapped text even after use */
@@ -88,23 +88,22 @@ extern "C" {
/****************************************************************************/ /****************************************************************************/
#define S_IFMT 0170000 /* type of file */ #define S_IFMT 0170000 /* type of file */
#define S_IFIFO 0010000 /* named pipe (fifo) */ #define S_IFIFO 0010000 /* named pipe (fifo) */
#define S_IFCHR 0020000 /* character special */ #define S_IFDIR 0040000 /* directory */
#define S_IFDIR 0040000 /* directory */ #define S_IFBLK 0060000 /* block special */
#define S_IFBLK 0060000 /* block special */ #define S_IFREG 0100000 /* regular */
#define S_IFREG 0100000 /* regular */ #define S_IFLNK 0120000 /* symbolic link */
#define S_IFLNK 0120000 /* symbolic link */ #define S_IFSOCK 0140000 /* socket */
#define S_IFSOCK 0140000 /* socket */
/****************************************************************************/ /****************************************************************************/
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) /* directory */ #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) /* directory */
#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) /* char special */
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) /* regular file */ #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) /* regular file */
#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) /* symbolic link */ #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) /* symbolic link */
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) /* fifo */ #define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) /* fifo */
#define S_ISBLK(m) (0) /* block special */ #define S_ISBLK(m) (0) /* block special */
#define S_ISCHR(m) (0) /* character special */
/****************************************************************************/ /****************************************************************************/
@@ -134,18 +133,8 @@ extern int chmod(const char * path_name, mode_t mode);
extern int fchmod(int file_descriptor, mode_t mode); extern int fchmod(int file_descriptor, mode_t mode);
extern int mkdir(const char * path_name, mode_t mode); extern int mkdir(const char * path_name, mode_t mode);
extern int rmdir(const char * path_name); extern int rmdir(const char * path_name);
/*
* The following prototypes may clash with the bsdsocket.library or
* usergroup.library API definitions.
*/
#ifndef __NO_NET_API
extern mode_t umask(mode_t new_mask); extern mode_t umask(mode_t new_mask);
#endif /* __NO_NET_API */
/****************************************************************************/ /****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus

View File

@@ -1,5 +1,5 @@
/* /*
* $Id: types.h,v 1.6 2005-10-09 12:32:18 obarthel Exp $ * $Id: types.h,v 1.4 2005-02-20 15:46:57 obarthel Exp $
* *
* :ts=4 * :ts=4
* *
@@ -40,18 +40,6 @@
/****************************************************************************/ /****************************************************************************/
#ifndef _TIME_H
#include <time.h>
#endif /* _TIME_H */
/****************************************************************************/
#ifndef _STDDEF_H
#include <stddef.h>
#endif /* _STDDEF_H */
/****************************************************************************/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@@ -1,84 +0,0 @@
/*
* $Id: uio.h,v 1.2 2005-10-09 12:32:18 obarthel Exp $
*
* :ts=4
*
* Portable ISO 'C' (1994) runtime library for the Amiga computer
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@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 _SYS_UIO_H
#define _SYS_UIO_H
/****************************************************************************/
/* The following is not part of the ISO 'C' (1994) standard. */
/****************************************************************************/
#ifndef _SYS_TYPES_H
#include <sys/types.h>
#endif /* _SYS_TYPES_H */
#ifndef _STDDEF_H
#include <stddef.h>
#endif /* _STDDEF_H */
/****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/****************************************************************************/
/*
* The size of MAX_IOVEC is rather arbitrary since there is no kernel support
* for vectored I/O and even a single struct iovec can overflow a ssize_t.
*/
#define MAX_IOVEC 1024
typedef struct iovec
{
void * iov_base;
size_t iov_len;
} iovec_t;
/****************************************************************************/
extern ssize_t readv(int file_descriptor,const struct iovec *iov,int vec_count);
extern ssize_t writev(int file_descriptor,const struct iovec *iov,int vec_count);
/****************************************************************************/
#ifdef __cplusplus
}
#endif /* __cplusplus */
/****************************************************************************/
#endif /* _SYS_UIO_H */

Some files were not shown because too many files have changed in this diff Show More