From 9a2af7ae33f2c0206ad15c0185e51613faf0bf64 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Tue, 5 Nov 2019 12:20:26 +0100 Subject: [PATCH] global: remove gcc 5.2 support --- CMakeLists.txt | 23 +- components/app_trace/gcov/gcov_rtio.c | 71 +- components/bt/CMakeLists.txt | 4 +- components/bt/component.mk | 4 - components/cxx/cxx_exception_stubs.cpp | 21 - components/driver/CMakeLists.txt | 6 +- components/driver/component.mk | 2 - components/esp_event/CMakeLists.txt | 2 +- components/esp_event/component.mk | 2 +- components/esp_rom/CMakeLists.txt | 5 - components/esp_rom/component.mk | 4 - components/espcoredump/test/expected_output | 18 +- .../espcoredump/test/expected_output_new_CT | 654 -------------- .../espcoredump/test/test_espcoredump.sh | 9 +- components/expat/CMakeLists.txt | 4 +- components/expat/component.mk | 3 +- components/libsodium/CMakeLists.txt | 14 +- components/libsodium/component.mk | 2 - components/lwip/CMakeLists.txt | 22 +- components/lwip/component.mk | 2 - components/newlib/CMakeLists.txt | 51 +- components/newlib/component.mk | 29 - ...2-spiram-rom-functions-psram-workaround.lf | 149 ---- components/newlib/include/_ansi.h | 140 --- components/newlib/include/_syslist.h | 40 - components/newlib/include/alloca.h | 21 - components/newlib/include/ar.h | 69 -- components/newlib/include/argz.h | 33 - components/newlib/include/assert.h | 50 -- components/newlib/include/complex.h | 124 --- components/newlib/include/config.h | 28 - components/newlib/include/ctype.h | 113 --- components/newlib/include/dirent.h | 15 - components/newlib/include/envlock.h | 15 - components/newlib/include/envz.h | 16 - components/newlib/include/errno.h | 11 - components/newlib/include/fastmath.h | 13 - components/newlib/include/fcntl.h | 1 - components/newlib/include/fenv.h | 88 -- components/newlib/include/fnmatch.h | 55 -- components/newlib/include/getopt.h | 190 ----- components/newlib/include/glob.h | 90 -- components/newlib/include/grp.h | 95 --- components/newlib/include/iconv.h | 63 -- components/newlib/include/ieeefp.h | 256 ------ components/newlib/include/inttypes.h | 319 ------- components/newlib/include/langinfo.h | 316 ------- components/newlib/include/libgen.h | 23 - components/newlib/include/limits.h | 146 ---- components/newlib/include/locale.h | 64 -- .../newlib/include/machine/_default_types.h | 56 -- components/newlib/include/machine/_types.h | 8 - components/newlib/include/machine/ansi.h | 1 - components/newlib/include/machine/endian.h | 20 - components/newlib/include/machine/fastmath.h | 100 --- components/newlib/include/machine/ieeefp.h | 434 ---------- components/newlib/include/machine/malloc.h | 8 - components/newlib/include/machine/param.h | 1 - components/newlib/include/machine/setjmp-dj.h | 43 - components/newlib/include/machine/setjmp.h | 453 ---------- components/newlib/include/machine/stdlib.h | 8 - components/newlib/include/machine/termios.h | 1 - components/newlib/include/machine/time.h | 19 - components/newlib/include/machine/types.h | 30 - components/newlib/include/malloc.h | 169 ---- components/newlib/include/math.h | 615 -------------- components/newlib/include/newlib.h | 201 ----- components/newlib/include/paths.h | 9 - components/newlib/include/pthread.h | 431 ---------- components/newlib/include/pwd.h | 87 -- components/newlib/include/reent.h | 189 ----- components/newlib/include/regdef.h | 7 - components/newlib/include/regex.h | 103 --- components/newlib/include/sched.h | 97 --- components/newlib/include/search.h | 64 -- components/newlib/include/setjmp.h | 27 - components/newlib/include/signal.h | 32 - components/newlib/include/spawn.h | 119 --- components/newlib/include/stdatomic.h | 414 --------- components/newlib/include/stdint.h | 511 ----------- components/newlib/include/stdio.h | 727 ---------------- components/newlib/include/stdio_ext.h | 79 -- components/newlib/include/stdlib.h | 297 ------- components/newlib/include/string.h | 167 ---- components/newlib/include/strings.h | 35 - .../newlib/include/sys/_default_fcntl.h | 213 ----- components/newlib/include/sys/_intsup.h | 20 - components/newlib/include/sys/_types.h | 91 -- components/newlib/include/sys/cdefs.h | 710 ---------------- components/newlib/include/sys/config.h | 300 ------- components/newlib/include/sys/custom_file.h | 2 - components/newlib/include/sys/dir.h | 10 - components/newlib/include/sys/errno.h | 192 ----- components/newlib/include/sys/fcntl.h | 4 - components/newlib/include/sys/features.h | 241 ------ components/newlib/include/sys/file.h | 33 - components/newlib/include/sys/iconvnls.h | 77 -- components/newlib/include/sys/lock.h | 50 -- components/newlib/include/sys/param.h | 28 - components/newlib/include/sys/queue.h | 691 --------------- components/newlib/include/sys/reent.h | 798 ------------------ components/newlib/include/sys/resource.h | 17 - components/newlib/include/sys/sched.h | 69 -- components/newlib/include/sys/signal.h | 357 -------- components/newlib/include/sys/stat.h | 192 ----- components/newlib/include/sys/stdio.h | 27 - components/newlib/include/sys/string.h | 2 - components/newlib/include/sys/syslimits.h | 65 -- components/newlib/include/sys/time.h | 91 -- components/newlib/include/sys/timeb.h | 39 - components/newlib/include/sys/times.h | 31 - components/newlib/include/sys/types.h | 521 ------------ components/newlib/include/sys/unistd.h | 516 ----------- components/newlib/include/sys/utime.h | 22 - components/newlib/include/sys/wait.h | 44 - components/newlib/include/tar.h | 39 - components/newlib/include/termios.h | 7 - components/newlib/include/tgmath.h | 184 ---- components/newlib/include/time.h | 291 ------- components/newlib/include/unctrl.h | 46 - components/newlib/include/unistd.h | 13 - components/newlib/include/utime.h | 12 - components/newlib/include/utmp.h | 8 - components/newlib/include/wchar.h | 254 ------ components/newlib/include/wctype.h | 47 -- components/newlib/include/wordexp.h | 53 -- .../newlib/include/xtensa/config/core-isa.h | 655 -------------- components/newlib/lib/libc-psram-workaround.a | Bin 5925086 -> 0 bytes components/newlib/lib/libc.a | Bin 5062464 -> 0 bytes components/newlib/lib/libc_nano.a | Bin 3609214 -> 0 bytes components/newlib/lib/libg-psram-workaround.a | Bin 5930838 -> 0 bytes components/newlib/lib/libg.a | Bin 5827324 -> 0 bytes components/newlib/lib/libm-psram-workaround.a | Bin 2131926 -> 0 bytes components/newlib/lib/libm.a | Bin 2096466 -> 0 bytes components/newlib/platform_include/pthread.h | 5 - components/newlib/project_include.cmake | 25 +- components/pthread/CMakeLists.txt | 8 +- components/pthread/component.mk | 2 - components/unity/CMakeLists.txt | 4 +- components/unity/component.mk | 2 - .../ble_hid_device_demo/main/CMakeLists.txt | 4 +- .../ble/ble_hid_device_demo/main/component.mk | 2 - make/project.mk | 6 - tools/cmake/build.cmake | 9 - tools/cmake/toolchain-esp32.cmake | 3 - tools/cmake/toolchain-esp32s2beta.cmake | 1 - .../test/sysview/expected_output | 48 +- .../test/sysview/expected_output_new_CT | 450 ---------- tools/esp_app_trace/test/sysview/test.sh | 9 +- 149 files changed, 94 insertions(+), 16603 deletions(-) delete mode 100644 components/espcoredump/test/expected_output_new_CT delete mode 100644 components/newlib/esp32-spiram-rom-functions-psram-workaround.lf delete mode 100644 components/newlib/include/_ansi.h delete mode 100644 components/newlib/include/_syslist.h delete mode 100644 components/newlib/include/alloca.h delete mode 100644 components/newlib/include/ar.h delete mode 100644 components/newlib/include/argz.h delete mode 100644 components/newlib/include/assert.h delete mode 100644 components/newlib/include/complex.h delete mode 100644 components/newlib/include/config.h delete mode 100644 components/newlib/include/ctype.h delete mode 100644 components/newlib/include/dirent.h delete mode 100644 components/newlib/include/envlock.h delete mode 100644 components/newlib/include/envz.h delete mode 100644 components/newlib/include/errno.h delete mode 100644 components/newlib/include/fastmath.h delete mode 100644 components/newlib/include/fcntl.h delete mode 100644 components/newlib/include/fenv.h delete mode 100644 components/newlib/include/fnmatch.h delete mode 100644 components/newlib/include/getopt.h delete mode 100644 components/newlib/include/glob.h delete mode 100644 components/newlib/include/grp.h delete mode 100644 components/newlib/include/iconv.h delete mode 100644 components/newlib/include/ieeefp.h delete mode 100644 components/newlib/include/inttypes.h delete mode 100644 components/newlib/include/langinfo.h delete mode 100644 components/newlib/include/libgen.h delete mode 100644 components/newlib/include/limits.h delete mode 100644 components/newlib/include/locale.h delete mode 100644 components/newlib/include/machine/_default_types.h delete mode 100644 components/newlib/include/machine/_types.h delete mode 100644 components/newlib/include/machine/ansi.h delete mode 100644 components/newlib/include/machine/endian.h delete mode 100644 components/newlib/include/machine/fastmath.h delete mode 100644 components/newlib/include/machine/ieeefp.h delete mode 100644 components/newlib/include/machine/malloc.h delete mode 100644 components/newlib/include/machine/param.h delete mode 100644 components/newlib/include/machine/setjmp-dj.h delete mode 100644 components/newlib/include/machine/setjmp.h delete mode 100644 components/newlib/include/machine/stdlib.h delete mode 100644 components/newlib/include/machine/termios.h delete mode 100644 components/newlib/include/machine/time.h delete mode 100644 components/newlib/include/machine/types.h delete mode 100644 components/newlib/include/malloc.h delete mode 100644 components/newlib/include/math.h delete mode 100644 components/newlib/include/newlib.h delete mode 100644 components/newlib/include/paths.h delete mode 100644 components/newlib/include/pthread.h delete mode 100644 components/newlib/include/pwd.h delete mode 100644 components/newlib/include/reent.h delete mode 100644 components/newlib/include/regdef.h delete mode 100644 components/newlib/include/regex.h delete mode 100644 components/newlib/include/sched.h delete mode 100644 components/newlib/include/search.h delete mode 100644 components/newlib/include/setjmp.h delete mode 100644 components/newlib/include/signal.h delete mode 100644 components/newlib/include/spawn.h delete mode 100644 components/newlib/include/stdatomic.h delete mode 100644 components/newlib/include/stdint.h delete mode 100644 components/newlib/include/stdio.h delete mode 100644 components/newlib/include/stdio_ext.h delete mode 100644 components/newlib/include/stdlib.h delete mode 100644 components/newlib/include/string.h delete mode 100644 components/newlib/include/strings.h delete mode 100644 components/newlib/include/sys/_default_fcntl.h delete mode 100644 components/newlib/include/sys/_intsup.h delete mode 100644 components/newlib/include/sys/_types.h delete mode 100644 components/newlib/include/sys/cdefs.h delete mode 100644 components/newlib/include/sys/config.h delete mode 100644 components/newlib/include/sys/custom_file.h delete mode 100644 components/newlib/include/sys/dir.h delete mode 100644 components/newlib/include/sys/errno.h delete mode 100644 components/newlib/include/sys/fcntl.h delete mode 100644 components/newlib/include/sys/features.h delete mode 100644 components/newlib/include/sys/file.h delete mode 100644 components/newlib/include/sys/iconvnls.h delete mode 100644 components/newlib/include/sys/lock.h delete mode 100644 components/newlib/include/sys/param.h delete mode 100644 components/newlib/include/sys/queue.h delete mode 100644 components/newlib/include/sys/reent.h delete mode 100644 components/newlib/include/sys/resource.h delete mode 100644 components/newlib/include/sys/sched.h delete mode 100644 components/newlib/include/sys/signal.h delete mode 100644 components/newlib/include/sys/stat.h delete mode 100644 components/newlib/include/sys/stdio.h delete mode 100644 components/newlib/include/sys/string.h delete mode 100644 components/newlib/include/sys/syslimits.h delete mode 100644 components/newlib/include/sys/time.h delete mode 100644 components/newlib/include/sys/timeb.h delete mode 100644 components/newlib/include/sys/times.h delete mode 100644 components/newlib/include/sys/types.h delete mode 100644 components/newlib/include/sys/unistd.h delete mode 100644 components/newlib/include/sys/utime.h delete mode 100644 components/newlib/include/sys/wait.h delete mode 100644 components/newlib/include/tar.h delete mode 100644 components/newlib/include/termios.h delete mode 100644 components/newlib/include/tgmath.h delete mode 100644 components/newlib/include/time.h delete mode 100644 components/newlib/include/unctrl.h delete mode 100644 components/newlib/include/unistd.h delete mode 100644 components/newlib/include/utime.h delete mode 100644 components/newlib/include/utmp.h delete mode 100644 components/newlib/include/wchar.h delete mode 100644 components/newlib/include/wctype.h delete mode 100644 components/newlib/include/wordexp.h delete mode 100644 components/newlib/include/xtensa/config/core-isa.h delete mode 100644 components/newlib/lib/libc-psram-workaround.a delete mode 100644 components/newlib/lib/libc.a delete mode 100644 components/newlib/lib/libc_nano.a delete mode 100644 components/newlib/lib/libg-psram-workaround.a delete mode 100644 components/newlib/lib/libg.a delete mode 100644 components/newlib/lib/libm-psram-workaround.a delete mode 100644 components/newlib/lib/libm.a delete mode 100644 tools/esp_app_trace/test/sysview/expected_output_new_CT diff --git a/CMakeLists.txt b/CMakeLists.txt index 55c9109f90..b01b4ec10f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,19 +38,16 @@ if(CONFIG_COMPILER_DISABLE_GCC8_WARNINGS) "-Wno-sizeof-pointer-memaccess" "-Wno-clobbered") - # doesn't use GCC_NOT_5_2_0 because idf_set_global_variables was not called before - if(GCC_NOT_5_2_0) - list(APPEND compile_options "-Wno-format-overflow" - "-Wno-stringop-truncation" - "-Wno-misleading-indentation" - "-Wno-cast-function-type" - "-Wno-implicit-fallthrough" - "-Wno-unused-const-variable" - "-Wno-switch-unreachable" - "-Wno-format-truncation" - "-Wno-memset-elt-size" - "-Wno-int-in-bool-context") - endif() + list(APPEND compile_options "-Wno-format-overflow" + "-Wno-stringop-truncation" + "-Wno-misleading-indentation" + "-Wno-cast-function-type" + "-Wno-implicit-fallthrough" + "-Wno-unused-const-variable" + "-Wno-switch-unreachable" + "-Wno-format-truncation" + "-Wno-memset-elt-size" + "-Wno-int-in-bool-context") endif() if(CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE) diff --git a/components/app_trace/gcov/gcov_rtio.c b/components/app_trace/gcov/gcov_rtio.c index a6008b4634..041cb91773 100644 --- a/components/app_trace/gcov/gcov_rtio.c +++ b/components/app_trace/gcov/gcov_rtio.c @@ -31,33 +31,8 @@ #include "esp_log.h" const static char *TAG = "esp_gcov_rtio"; -#if GCC_NOT_5_2_0 -void __gcov_dump(void); -void __gcov_reset(void); -#else -/* The next code for old GCC */ - -static void (*s_gcov_exit)(void); -/* Root of a program/shared-object state */ -struct gcov_root -{ - void *list; - unsigned dumped : 1; /* counts have been dumped. */ - unsigned run_counted : 1; /* run has been accounted for. */ - struct gcov_root *next; - struct gcov_root *prev; -}; - -/* Per-dynamic-object gcov state. */ -extern struct gcov_root __gcov_root; - -static void esp_gcov_reset_status(void) -{ - __gcov_root.dumped = 0; - __gcov_root.run_counted = 0; -} -#endif - +extern void __gcov_dump(void); +extern void __gcov_reset(void); static int esp_dbg_stub_gcov_dump_do(void) { @@ -72,18 +47,9 @@ static int esp_dbg_stub_gcov_dump_do(void) ESP_EARLY_LOGV(TAG, "Config apptrace down buf"); esp_apptrace_down_buffer_config(down_buf, ESP_GCOV_DOWN_BUF_SIZE); ESP_EARLY_LOGV(TAG, "Dump data..."); -#if GCC_NOT_5_2_0 __gcov_dump(); // reset dump status to allow incremental data accumulation __gcov_reset(); -#else - ESP_EARLY_LOGV(TAG, "Check for dump handler %p", s_gcov_exit); - if (s_gcov_exit) { - s_gcov_exit(); - // reset dump status to allow incremental data accumulation - esp_gcov_reset_status(); - } -#endif ESP_EARLY_LOGV(TAG, "Free apptrace down buf"); free(down_buf); ESP_EARLY_LOGV(TAG, "Finish file transfer session"); @@ -94,27 +60,6 @@ static int esp_dbg_stub_gcov_dump_do(void) return ret; } -/** - * @brief Triggers gcov info dump. - * This function is to be called by OpenOCD, not by normal user code. - * TODO: what about interrupted flash access (when cache disabled)??? - * - * @return ESP_OK on success, otherwise see esp_err_t - */ -static int esp_dbg_stub_gcov_entry(void) -{ -#if GCC_NOT_5_2_0 - return esp_dbg_stub_gcov_dump_do(); -#else - int ret = ESP_OK; - // disable IRQs on this CPU, other CPU is halted by OpenOCD - unsigned irq_state = portENTER_CRITICAL_NESTED(); - ret = esp_dbg_stub_gcov_dump_do(); - portEXIT_CRITICAL_NESTED(irq_state); - return ret; -#endif -} - void esp_gcov_dump(void) { // disable IRQs on this CPU, other CPU is halted by OpenOCD @@ -141,18 +86,6 @@ void esp_gcov_dump(void) portEXIT_CRITICAL_NESTED(irq_state); } -int gcov_rtio_atexit(void (*function)(void) __attribute__ ((unused))) -{ -#if GCC_NOT_5_2_0 - ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__); -#else - ESP_EARLY_LOGV(TAG, "%s %p", __FUNCTION__, function); - s_gcov_exit = function; -#endif - esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_GCOV, (uint32_t)&esp_dbg_stub_gcov_entry); - return 0; -} - void *gcov_rtio_fopen(const char *path, const char *mode) { ESP_EARLY_LOGV(TAG, "%s '%s' '%s'", __FUNCTION__, path, mode); diff --git a/components/bt/CMakeLists.txt b/components/bt/CMakeLists.txt index 48134988b7..72b89241ba 100644 --- a/components/bt/CMakeLists.txt +++ b/components/bt/CMakeLists.txt @@ -541,9 +541,7 @@ idf_component_register(SRCS "${srcs}" REQUIRES nvs_flash soc) if(CONFIG_BT_ENABLED) - if(GCC_NOT_5_2_0) - target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-implicit-fallthrough -Wno-unused-const-variable) - endif() + target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-implicit-fallthrough -Wno-unused-const-variable) target_link_libraries(${COMPONENT_LIB} INTERFACE "-L${CMAKE_CURRENT_LIST_DIR}/controller/lib") target_link_libraries(${COMPONENT_LIB} PUBLIC btdm_app) diff --git a/components/bt/component.mk b/components/bt/component.mk index a4779f3cd0..7e8e4464be 100644 --- a/components/bt/component.mk +++ b/components/bt/component.mk @@ -17,10 +17,8 @@ COMPONENT_ADD_LINKER_DEPS := $(patsubst %,$(COMPONENT_PATH)/controller/lib/lib%. COMPONENT_SUBMODULES += controller/lib -ifeq ($(GCC_NOT_5_2_0), 1) # TODO: annotate fallthroughs in Bluedroid code with comments CFLAGS += -Wno-implicit-fallthrough -endif ifdef CONFIG_BT_BLUEDROID_ENABLED @@ -119,12 +117,10 @@ COMPONENT_SRCDIRS += host/bluedroid/bta/dm \ host/bluedroid -ifeq ($(GCC_NOT_5_2_0), 1) host/bluedroid/bta/sdp/bta_sdp_act.o: CFLAGS += -Wno-unused-const-variable host/bluedroid/btc/core/btc_config.o: CFLAGS += -Wno-unused-const-variable host/bluedroid/stack/btm/btm_sec.o: CFLAGS += -Wno-unused-const-variable host/bluedroid/stack/smp/smp_keys.o: CFLAGS += -Wno-unused-const-variable -endif COMPONENT_PRIV_INCLUDEDIRS += common/btc/include \ common/include diff --git a/components/cxx/cxx_exception_stubs.cpp b/components/cxx/cxx_exception_stubs.cpp index 858ed0bfc8..8c0de4bcce 100644 --- a/components/cxx/cxx_exception_stubs.cpp +++ b/components/cxx/cxx_exception_stubs.cpp @@ -36,27 +36,6 @@ extern "C" void __cxx_fatal_exception_int(int i) abort(); } -#if !GCC_NOT_5_2_0 -void std::__throw_bad_exception(void) __attribute__((alias("__cxx_fatal_exception"))); -void std::__throw_bad_alloc(void) __attribute__((alias("__cxx_fatal_exception"))); -void std::__throw_bad_cast(void) __attribute__((alias("__cxx_fatal_exception"))); -void std::__throw_bad_typeid(void) __attribute__((alias("__cxx_fatal_exception"))); -void std::__throw_logic_error(const char*) __attribute__((alias("__cxx_fatal_exception_message"))); -void std::__throw_domain_error(const char*) __attribute__((alias("__cxx_fatal_exception_message"))); -void std::__throw_invalid_argument(const char*) __attribute__((alias("__cxx_fatal_exception_message"))); -void std::__throw_length_error(const char*) __attribute__((alias("__cxx_fatal_exception_message"))); -void std::__throw_out_of_range(const char*) __attribute__((alias("__cxx_fatal_exception_message"))); -void std::__throw_out_of_range_fmt(const char*, ...) __attribute__((alias("__cxx_fatal_exception_message_va"))); -void std::__throw_runtime_error(const char*) __attribute__((alias("__cxx_fatal_exception_message"))); -void std::__throw_range_error(const char*) __attribute__((alias("__cxx_fatal_exception_message"))); -void std::__throw_overflow_error(const char*) __attribute__((alias("__cxx_fatal_exception_message"))); -void std::__throw_underflow_error(const char*) __attribute__((alias("__cxx_fatal_exception_message"))); -void std::__throw_ios_failure(const char*) __attribute__((alias("__cxx_fatal_exception_message"))); -void std::__throw_system_error(int) __attribute__((alias("__cxx_fatal_exception_int"))); -void std::__throw_bad_function_call(void) __attribute__((alias("__cxx_fatal_exception"))); -void std::__throw_future_error(int) __attribute__((alias("__cxx_fatal_exception_int"))); -#endif - /* The following definitions are needed because libstdc++ is also compiled with __throw_exception_again defined to throw, and some other exception code in a few places. diff --git a/components/driver/CMakeLists.txt b/components/driver/CMakeLists.txt index 31dce58c68..d667cd4d4a 100644 --- a/components/driver/CMakeLists.txt +++ b/components/driver/CMakeLists.txt @@ -40,7 +40,5 @@ idf_component_register(SRCS "${srcs}" PRIV_INCLUDE_DIRS "include/driver" REQUIRES esp_ringbuf soc) #cannot totally hide soc headers, since there are a lot arguments in the driver are chip-dependent -if(GCC_NOT_5_2_0) - # uses C11 atomic feature - set_source_files_properties(spi_master.c PROPERTIES COMPILE_FLAGS -std=gnu11) -endif() +# uses C11 atomic feature +set_source_files_properties(spi_master.c PROPERTIES COMPILE_FLAGS -std=gnu11) diff --git a/components/driver/component.mk b/components/driver/component.mk index 31aa32c297..13ae795cfd 100644 --- a/components/driver/component.mk +++ b/components/driver/component.mk @@ -7,7 +7,5 @@ COMPONENT_ADD_INCLUDEDIRS := include $(IDF_TARGET)/include COMPONENT_PRIV_INCLUDEDIRS := include/driver -ifeq ($(GCC_NOT_5_2_0), 1) # uses C11 atomic feature spi_master.o: CFLAGS += -std=gnu11 -endif diff --git a/components/esp_event/CMakeLists.txt b/components/esp_event/CMakeLists.txt index 9c1d7da5f1..1a0ae06766 100644 --- a/components/esp_event/CMakeLists.txt +++ b/components/esp_event/CMakeLists.txt @@ -15,7 +15,7 @@ idf_component_register(SRCS "default_event_loop.c" PRIV_REQUIRES ${priv_requires} LDFRAGMENTS linker.lf) -if(GCC_NOT_5_2_0 AND CONFIG_ESP_EVENT_LOOP_PROFILING) +if(CONFIG_ESP_EVENT_LOOP_PROFILING) # uses C11 atomic feature set_source_files_properties(esp_event.c PROPERTIES COMPILE_FLAGS -std=gnu11) endif() diff --git a/components/esp_event/component.mk b/components/esp_event/component.mk index 828cb6abac..b7bb3a8ca7 100644 --- a/components/esp_event/component.mk +++ b/components/esp_event/component.mk @@ -12,7 +12,7 @@ else PROFILING_ENABLED := 0 endif -ifeq ($(and $(GCC_NOT_5_2_0),$(PROFILING_ENABLED)), 1) +ifeq ($(PROFILING_ENABLED), 1) # uses C11 atomic feature esp_event.o: CFLAGS += -std=gnu11 endif diff --git a/components/esp_rom/CMakeLists.txt b/components/esp_rom/CMakeLists.txt index 39f08ceb0a..bf788dd122 100644 --- a/components/esp_rom/CMakeLists.txt +++ b/components/esp_rom/CMakeLists.txt @@ -34,10 +34,6 @@ else() list(APPEND scripts "esp32/ld/esp32.rom.newlib-nano.ld") endif() - if(NOT GCC_NOT_5_2_0) - list(APPEND scripts "esp32/ld/esp32.rom.newlib-locale.ld") - endif() - if(NOT CONFIG_SPI_FLASH_ROM_DRIVER_PATCH) list(APPEND scripts "esp32/ld/esp32.rom.spiflash.ld") endif() @@ -45,7 +41,6 @@ else() elseif(target STREQUAL "esp32s2beta") # no SPIRAM workaround for esp32s2beta # no nano formatting function in ROM - # no GCC 5.2.0 for esp32s2beta, hence not linking locale functions list(APPEND scripts "esp32s2beta/ld/esp32s2beta.rom.newlib-funcs.ld" "esp32s2beta/ld/esp32s2beta.rom.spiflash.ld") diff --git a/components/esp_rom/component.mk b/components/esp_rom/component.mk index 468132c129..f53b155963 100644 --- a/components/esp_rom/component.mk +++ b/components/esp_rom/component.mk @@ -16,10 +16,6 @@ ifdef CONFIG_NEWLIB_NANO_FORMAT LINKER_SCRIPTS += esp32.rom.newlib-nano.ld endif -ifneq ($(GCC_NOT_5_2_0), 1) -LINKER_SCRIPTS += esp32.rom.newlib-locale.ld -endif - ifndef CONFIG_SPI_FLASH_ROM_DRIVER_PATCH LINKER_SCRIPTS += esp32.rom.spiflash.ld endif diff --git a/components/espcoredump/test/expected_output b/components/espcoredump/test/expected_output index 9d70bf6ddd..eaa14f83ca 100644 --- a/components/espcoredump/test/expected_output +++ b/components/espcoredump/test/expected_output @@ -50,16 +50,16 @@ a15 0x0 0 ======================== THREADS INFO ========================= Id Target Id Frame - 10 process 9 0x40088bb4 in xQueueGenericReceive (xQueue=0x3ffaff74, pvBuffer=0x0, xTicksToWait=4294967295, xJustPeeking=0) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/queue.c:1591 - 9 process 8 0x40081cec in esp_crosscore_int_send_yield (core_id=1) at C:/msys32/home/alex/esp/esp-idf4/components/esp32/crosscore_int.c:112 - 8 process 7 0x40088bb4 in xQueueGenericReceive (xQueue=0x3ffaeaac, pvBuffer=0x0, xTicksToWait=4294967295, xJustPeeking=0) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/queue.c:1591 - 7 process 6 0x400893f2 in prvProcessTimerOrBlockTask (xNextExpireTime=, xListWasEmpty=) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/timers.c:588 - 6 process 5 0x40087782 in vTaskDelay (xTicksToDelay=) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/tasks.c:1484 - 5 process 4 0x40087782 in vTaskDelay (xTicksToDelay=) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/tasks.c:1484 - 4 process 3 0x400e6b22 in esp_pm_impl_waiti () at C:/msys32/home/alex/esp/esp-idf4/components/esp32/pm_esp32.c:487 - 3 process 2 0x400e6b22 in esp_pm_impl_waiti () at C:/msys32/home/alex/esp/esp-idf4/components/esp32/pm_esp32.c:487 - 2 process 1 0x400092e6 in ?? () * 1
0x400e2281 in recur_func () at C:/msys32/home/alex/esp/esp-idf4/components/espcoredump/test/test_core_dump.c:70 + 2 process 1 0x400092e6 in ?? () + 3 process 2 0x400e6b22 in esp_pm_impl_waiti () at C:/msys32/home/alex/esp/esp-idf4/components/esp32/pm_esp32.c:487 + 4 process 3 0x400e6b22 in esp_pm_impl_waiti () at C:/msys32/home/alex/esp/esp-idf4/components/esp32/pm_esp32.c:487 + 5 process 4 0x40087782 in vTaskDelay (xTicksToDelay=) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/tasks.c:1484 + 6 process 5 0x40087782 in vTaskDelay (xTicksToDelay=) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/tasks.c:1484 + 7 process 6 0x400893f2 in prvProcessTimerOrBlockTask (xNextExpireTime=, xListWasEmpty=) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/timers.c:588 + 8 process 7 0x40088bb4 in xQueueGenericReceive (xQueue=0x3ffaeaac, pvBuffer=0x0, xTicksToWait=4294967295, xJustPeeking=0) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/queue.c:1591 + 9 process 8 0x40081cec in esp_crosscore_int_send_yield (core_id=1) at C:/msys32/home/alex/esp/esp-idf4/components/esp32/crosscore_int.c:112 + 10 process 9 0x40088bb4 in xQueueGenericReceive (xQueue=0x3ffaff74, pvBuffer=0x0, xTicksToWait=4294967295, xJustPeeking=0) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/queue.c:1591 ======================= ALL MEMORY REGIONS ======================== Name Address Size Attrs diff --git a/components/espcoredump/test/expected_output_new_CT b/components/espcoredump/test/expected_output_new_CT deleted file mode 100644 index eaa14f83ca..0000000000 --- a/components/espcoredump/test/expected_output_new_CT +++ /dev/null @@ -1,654 +0,0 @@ -espcoredump.py v0.3-dev -=============================================================== -==================== ESP32 CORE DUMP START ==================== - -================== CURRENT THREAD REGISTERS =================== -pc 0x400e2281 0x400e2281 -lbeg 0x400014fd 1073747197 -lend 0x4000150d 1073747213 -lcount 0xffffffff 4294967295 -sar 0x0 0 -ps 0x60c20 396320 -threadptr -br -scompare1 -acclo -acchi -m0 -m1 -m2 -m3 -expstate -f64r_lo -f64r_hi -f64s -fcr -fsr -a0 0x400e225c 1074668124 -a1 0x3ffb9dc0 1073454528 -a2 0x2 2 -a3 0x3f402bbd 1061170109 -a4 0x3ffb9e00 1073454592 -a5 0x3ffae964 1073408356 -a6 0x0 0 -a7 0x0 0 -a8 0x5 5 -a9 0xffffffad -83 -a10 0x20 32 -a11 0x3ffb54f4 1073435892 -a12 0x1 1 -a13 0x80 128 -a14 0x1 1 -a15 0x0 0 - -==================== CURRENT THREAD STACK ===================== -#0 0x400e2281 in recur_func () at C:/msys32/home/alex/esp/esp-idf4/components/espcoredump/test/test_core_dump.c:70 -#1 0x400e225c in recur_func () at C:/msys32/home/alex/esp/esp-idf4/components/espcoredump/test/test_core_dump.c:63 -#2 0x400e225c in recur_func () at C:/msys32/home/alex/esp/esp-idf4/components/espcoredump/test/test_core_dump.c:63 -#3 0x400e22a4 in unaligned_ptr_task (pvParameter=0x0) at C:/msys32/home/alex/esp/esp-idf4/components/espcoredump/test/test_core_dump.c:80 -#4 0x400881bc in vPortTaskWrapper (pxCode=0x400e228c , pvParameters=0x0) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/port.c:143 - -======================== THREADS INFO ========================= - Id Target Id Frame -* 1
0x400e2281 in recur_func () at C:/msys32/home/alex/esp/esp-idf4/components/espcoredump/test/test_core_dump.c:70 - 2 process 1 0x400092e6 in ?? () - 3 process 2 0x400e6b22 in esp_pm_impl_waiti () at C:/msys32/home/alex/esp/esp-idf4/components/esp32/pm_esp32.c:487 - 4 process 3 0x400e6b22 in esp_pm_impl_waiti () at C:/msys32/home/alex/esp/esp-idf4/components/esp32/pm_esp32.c:487 - 5 process 4 0x40087782 in vTaskDelay (xTicksToDelay=) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/tasks.c:1484 - 6 process 5 0x40087782 in vTaskDelay (xTicksToDelay=) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/tasks.c:1484 - 7 process 6 0x400893f2 in prvProcessTimerOrBlockTask (xNextExpireTime=, xListWasEmpty=) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/timers.c:588 - 8 process 7 0x40088bb4 in xQueueGenericReceive (xQueue=0x3ffaeaac, pvBuffer=0x0, xTicksToWait=4294967295, xJustPeeking=0) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/queue.c:1591 - 9 process 8 0x40081cec in esp_crosscore_int_send_yield (core_id=1) at C:/msys32/home/alex/esp/esp-idf4/components/esp32/crosscore_int.c:112 - 10 process 9 0x40088bb4 in xQueueGenericReceive (xQueue=0x3ffaff74, pvBuffer=0x0, xTicksToWait=4294967295, xJustPeeking=0) at C:/msys32/home/alex/esp/esp-idf4/components/freertos/queue.c:1591 - -======================= ALL MEMORY REGIONS ======================== -Name Address Size Attrs -.rtc.text 0x400c0000 0x0 RW -.rtc.dummy 0x3ff80000 0x0 RW -.rtc.force_fast 0x3ff80000 0x0 RW -.rtc_noinit 0x50000200 0x0 RW -.rtc.force_slow 0x50000200 0x0 RW -.iram0.vectors 0x40080000 0x400 R XA -.iram0.text 0x40080400 0x9eb4 RWXA -.dram0.data 0x3ffb0000 0x24d8 RW A -.noinit 0x3ffb24d8 0x0 RW -.flash.rodata 0x3f400020 0x9328 RW A -.flash.text 0x400d0018 0x16d50 R XA -.coredump.tasks.data 0x3ffb5474 0x17c RW -.coredump.tasks.data 0x3ffb9d00 0x1f4 RW -.coredump.tasks.data 0x3ffb956c 0x17c RW -.coredump.tasks.data 0x3ffb9250 0x308 RW -.coredump.tasks.data 0x3ffb690c 0x17c RW -.coredump.tasks.data 0x3ffb6750 0x1a8 RW -.coredump.tasks.data 0x3ffb6170 0x17c RW -.coredump.tasks.data 0x3ffb5fb0 0x1ac RW -.coredump.tasks.data 0x3ffb52e8 0x17c RW -.coredump.tasks.data 0x3ffb5150 0x184 RW -.coredump.tasks.data 0x3ffb566c 0x17c RW -.coredump.tasks.data 0x3ffba580 0x184 RW -.coredump.tasks.data 0x3ffb73b4 0x17c RW -.coredump.tasks.data 0x3ffb7200 0x1a0 RW -.coredump.tasks.data 0x3ffafb94 0x17c RW -.coredump.tasks.data 0x3ffaf9e0 0x1a0 RW -.coredump.tasks.data 0x3ffb40c4 0x17c RW -.coredump.tasks.data 0x3ffb3ef0 0x1c0 RW -.coredump.tasks.data 0x3ffb3abc 0x17c RW -.coredump.tasks.data 0x3ffb3900 0x1a8 RW - -====================== CORE DUMP MEMORY CONTENTS ======================== -.coredump.tasks.data 0x3ffb5474 0x17c RW -0x3ffb5474: 0x3ffb9d70 0x3ffb9e90 0x00001ddc 0x3ffb2f78 -0x3ffb5484: 0x3ffb2f78 0x3ffb5474 0x3ffb2f70 0x00000012 -0x3ffb5494: 0xcececece 0xcececece 0x3ffb5474 0x00000000 -0x3ffb54a4: 0x00000007 0x3ffb96f8 0x6c616e75 0x656e6769 -0x3ffb54b4: 0x74705f64 0x00745f72 0x00000001 0x3ffb9ef4 -0x3ffb54c4: 0x00000000 0x00060020 0x0000000f 0xcececece -0x3ffb54d4: 0x00000007 0x00000000 0x00000000 0x00000000 -0x3ffb54e4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb54f4: 0x00000000 0x3ffae8fc 0x3ffae964 0x3ffae9cc -0x3ffb5504: 0x00000000 0x00000000 0x00000001 0x00000000 -0x3ffb5514: 0x3f403a68 0x00000000 0x40001d48 0x00000000 -0x3ffb5524: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5534: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5544: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5554: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5564: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5574: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5584: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5594: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb55a4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb55b4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb55c4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb55d4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb55e4: 0x00000000 0x00000000 0xcecece00 -.coredump.tasks.data 0x3ffb9d00 0x1f4 RW -0x3ffb9d00: 0x3f405364 0x400e2281 0x00060c30 0x800e225c -0x3ffb9d10: 0x3ffb9dc0 0x00000002 0x3f402bbd 0x3ffb9e00 -0x3ffb9d20: 0x3ffae964 0x00000000 0x00000000 0x00000005 -0x3ffb9d30: 0xffffffad 0x00000020 0x3ffb54f4 0x00000001 -0x3ffb9d40: 0x00000080 0x00000001 0x00000000 0x00000000 -0x3ffb9d50: 0x0000001d 0x00000005 0x400014fd 0x4000150d -0x3ffb9d60: 0xffffffff 0x00000001 0x00000080 0x40082060 -0x3ffb9d70: 0x3ffb0b58 0x00000000 0x00000000 0x00000000 -0x3ffb9d80: 0xb33fffff 0x00000000 0x00000000 0x00000000 -0x3ffb9d90: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9da0: 0x00000001 0x00000080 0x00000001 0x00000000 -0x3ffb9db0: 0x800e225c 0x3ffb9df0 0x00000001 0x3ffae964 -0x3ffb9dc0: 0x800d2758 0x3ffb9df0 0x0000000a 0x3ffae967 -0x3ffb9dd0: 0x3ffb9e00 0x3ffae964 0x00000000 0x00000000 -0x3ffb9de0: 0x800e22a4 0x3ffb9e20 0x0000000a 0x00000001 -0x3ffb9df0: 0x3f40538c 0x0000001e 0x3f402bbc 0x00000004 -0x3ffb9e00: 0x00000020 0x80000020 0x00000008 0x00000001 -0x3ffb9e10: 0x800881bc 0x3ffb9e50 0x00000000 0x00000000 -0x3ffb9e20: 0x800881bc 0x3ffb9e50 0x00000000 0x00000003 -0x3ffb9e30: 0x3ffb0440 0x80000020 0x00060021 0x00000001 -0x3ffb9e40: 0x00000000 0x3ffb9e70 0x400e228c 0x00000000 -0x3ffb9e50: 0x00060023 0x3ffb5474 0x00000000 0x00000000 -0x3ffb9e60: 0x00000000 0x3ffb9e90 0x00000000 0x00000000 -0x3ffb9e70: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9e80: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9e90: 0x00000000 0x00000000 0x3ffb9e9c 0x00000000 -0x3ffb9ea0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9eb0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9ec0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9ed0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9ee0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9ef0: 0x00000000 -.coredump.tasks.data 0x3ffb956c 0x17c RW -0x3ffb956c: 0x3ffb9250 0x3ffb94f0 0x000019f9 0x3ffb2f50 -0x3ffb957c: 0x3ffb2f50 0x3ffb956c 0x3ffb2f48 0x00000014 -0x3ffb958c: 0x3ffaff34 0x3ffaff34 0x3ffb956c 0x00000000 -0x3ffb959c: 0x00000005 0x3ffb755c 0x74696e75 0x73615479 -0x3ffb95ac: 0xcece006b 0x00cecece 0x00000000 0x3ffb9558 -0x3ffb95bc: 0x00000000 0x00060021 0x0000000c 0xcececece -0x3ffb95cc: 0x00000005 0x00000000 0x00000000 0x00000000 -0x3ffb95dc: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb95ec: 0x00000000 0x3ffae8fc 0x3ffae964 0x3ffae9cc -0x3ffb95fc: 0x00000000 0x00000000 0x00000001 0x00000000 -0x3ffb960c: 0x3f403a68 0x00000000 0x40001d48 0x00000000 -0x3ffb961c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb962c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb963c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb964c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb965c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb966c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb967c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb968c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb969c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb96ac: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb96bc: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb96cc: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb96dc: 0x00000000 0x00000000 0xcecece00 -.coredump.tasks.data 0x3ffb9250 0x308 RW -0x3ffb9250: 0x400820c4 0x400092e6 0x00060930 0x8000930f -0x3ffb9260: 0x3ffb9310 0x3ffb938c 0x00000000 0x3ffb2e3c -0x3ffb9270: 0x0000000a 0x00000057 0x00000037 0x00003ff4 -0x3ffb9280: 0x3ff40000 0xe000c000 0x00000000 0x3ffb2e3c -0x3ffb9290: 0x0ccccccc 0x00000000 0x00000004 0x00000013 -0x3ffb92a0: 0x3ffb9310 0x3ffb938c 0x400014fd 0x4000150d -0x3ffb92b0: 0xffffffff 0x400822c4 0x0ccccccc 0x40088e1c -0x3ffb92c0: 0x3ffb01b8 0x00000000 0x00000000 0x00000000 -0x3ffb92d0: 0xb33fffff 0x00000000 0x00000000 0x00000000 -0x3ffb92e0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb92f0: 0xb33fffff 0x00000000 0x00000000 0x00000000 -0x3ffb9300: 0x800e07bf 0x3ffb9330 0x3ffb938c 0x000000ff -0x3ffb9310: 0x3ffb01b8 0x00000000 0x00000000 0x00000000 -0x3ffb9320: 0x800e0c02 0x3ffb9350 0x3ffb938c 0x000000ff -0x3ffb9330: 0xc0046c75 0x0000ff00 0x00ff0000 0xff000000 -0x3ffb9340: 0x800e033f 0x3ffb9380 0x00000001 0x3ffb9490 -0x3ffb9350: 0x800e033f 0x3ffb9380 0x00000001 0x9619c4d6 -0x3ffb9360: 0x000000fe 0x3ffb948c 0x00000000 0x00000010 -0x3ffb9370: 0x800881bc 0x3ffb94b0 0x00000000 0x00000000 -0x3ffb9380: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0x00000000 -0x3ffb9390: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb93a0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb93b0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb93c0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb93d0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb93e0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb93f0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9400: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9410: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9420: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9430: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9440: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9450: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9460: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9470: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9480: 0x00000000 0x00000000 0x00000000 0x9619c4d6 -0x3ffb9490: 0x3ffb938c 0x80000020 0x00060021 0x3ffb49e0 -0x3ffb94a0: 0x00000000 0x3ffb94d0 0x400e0334 0x00000000 -0x3ffb94b0: 0x00060023 0x3ffb956c 0x00000000 0x00000000 -0x3ffb94c0: 0x00000000 0x3ffb94f0 0x00000000 0x00000000 -0x3ffb94d0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb94e0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb94f0: 0x00000000 0x00000000 0x3ffb94fc 0x00000000 -0x3ffb9500: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9510: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9520: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9530: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9540: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb9550: 0x00000000 0x00000000 -.coredump.tasks.data 0x3ffb690c 0x17c RW -0x3ffb690c: 0x3ffb6750 0x3ffb6890 0xcececece 0x3ffb2eec -0x3ffb691c: 0x3ffb6178 0x3ffb690c 0x3ffb2ee4 0x00000019 -0x3ffb692c: 0xcececece 0xcececece 0x3ffb690c 0x00000000 -0x3ffb693c: 0x00000000 0x3ffb62fc 0x454c4449 0xcece0031 -0x3ffb694c: 0xcececece 0x00cecece 0x00000001 0x3ffb68f8 -0x3ffb695c: 0x00000000 0x00060021 0x00000007 0xcececece -0x3ffb696c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb697c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb698c: 0x00000000 0x3ffae8fc 0x3ffae964 0x3ffae9cc -0x3ffb699c: 0x00000000 0x00000000 0x00000001 0x00000000 -0x3ffb69ac: 0x3f403a68 0x00000000 0x40001d48 0x00000000 -0x3ffb69bc: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb69cc: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb69dc: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb69ec: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb69fc: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6a0c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6a1c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6a2c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6a3c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6a4c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6a5c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6a6c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6a7c: 0x00000000 0x00000000 0xcecece00 -.coredump.tasks.data 0x3ffb6750 0x1a8 RW -0x3ffb6750: 0x400820c4 0x400e6b22 0x00060430 0x800d1102 -0x3ffb6760: 0x3ffb6810 0x00000000 0x80000001 0x00000000 -0x3ffb6770: 0x00000001 0x00000003 0x00060023 0x80087399 -0x3ffb6780: 0x3ffb6800 0x00000003 0x00060823 0x00060820 -0x3ffb6790: 0x00000001 0x00060820 0x3ffb77c0 0x00000000 -0x3ffb67a0: 0xa5a5a5a5 0xa5a5a5a5 0x4000c46c 0x4000c477 -0x3ffb67b0: 0xffffffff 0x400822c4 0x00000001 0x40088e1c -0x3ffb67c0: 0x3ffad558 0x00000000 0x00000000 0x00000000 -0x3ffb67d0: 0xb33fffff 0x00000000 0x00000000 0x00000000 -0x3ffb67e0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb67f0: 0x00000000 0x40087990 0x00000000 0x00000000 -0x3ffb6800: 0x80087999 0x3ffb6830 0x00000008 0x00000001 -0x3ffb6810: 0x00000001 0x00000001 0x00000003 0x00060023 -0x3ffb6820: 0x800881bc 0x3ffb6850 0x00000000 0x00000000 -0x3ffb6830: 0x00000001 0x80000020 0x00060021 0x00000000 -0x3ffb6840: 0x00000000 0x3ffb6870 0x40087990 0x00000000 -0x3ffb6850: 0x00060023 0x3ffb6170 0x00000000 0x00000001 -0x3ffb6860: 0x00000000 0x3ffb6890 0x00000000 0x00000000 -0x3ffb6870: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6880: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6890: 0x00000000 0x00000000 0x3ffb689c 0x00000000 -0x3ffb68a0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb68b0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb68c0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb68d0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb68e0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb68f0: 0x00000000 0x00000000 -.coredump.tasks.data 0x3ffb6170 0x17c RW -0x3ffb6170: 0x3ffb5fb0 0x3ffb60f0 0xcececece 0x3ffb6914 -0x3ffb6180: 0x3ffb2eec 0x3ffb6170 0x3ffb2ee4 0x00000019 -0x3ffb6190: 0xcececece 0xcececece 0x3ffb6170 0x00000000 -0x3ffb61a0: 0x00000000 0x3ffb5b60 0x454c4449 0xcece0030 -0x3ffb61b0: 0xcececece 0x00cecece 0x00000000 0x3ffb615c -0x3ffb61c0: 0x00000000 0x00060021 0x00000006 0xcececece -0x3ffb61d0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb61e0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb61f0: 0x00000000 0x3ffae8fc 0x3ffae964 0x3ffae9cc -0x3ffb6200: 0x00000000 0x00000000 0x00000001 0x00000000 -0x3ffb6210: 0x3f403a68 0x00000000 0x40001d48 0x00000000 -0x3ffb6220: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6230: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6240: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6250: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6260: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6270: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6280: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6290: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb62a0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb62b0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb62c0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb62d0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb62e0: 0x00000000 0x00000000 0xcecece00 -.coredump.tasks.data 0x3ffb5fb0 0x1ac RW -0x3ffb5fb0: 0x400820c4 0x400e6b22 0x00060730 0x800d1102 -0x3ffb5fc0: 0x3ffb6070 0x00000000 0x00000003 0x00000000 -0x3ffb5fd0: 0x00000001 0x00000003 0x00060123 0x00060023 -0x3ffb5fe0: 0x3ffb690c 0x00000000 0x00000001 0x800883d8 -0x3ffb5ff0: 0x3ffb8e90 0x00000000 0x3ffb5b60 0x00000000 -0x3ffb6000: 0x3ffb2d88 0x00000000 0x4000c46c 0x4000c477 -0x3ffb6010: 0xffffffff 0x400822c4 0x3ffb8e90 0x40088e1c -0x3ffb6020: 0x3ffacdb8 0x00000000 0x00000000 0x00000000 -0x3ffb6030: 0xb33fffff 0x00000000 0x00000000 0x00000000 -0x3ffb6040: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6050: 0xb33fffff 0x00000000 0x00000000 0x00000000 -0x3ffb6060: 0x80087999 0x3ffb6090 0x00000008 0x00000000 -0x3ffb6070: 0x00000000 0x00000001 0x00000003 0x00060123 -0x3ffb6080: 0x800881bc 0x3ffb60b0 0x00000000 0x00000000 -0x3ffb6090: 0x00000001 0x80000020 0x00060021 0x00000000 -0x3ffb60a0: 0x00000000 0x3ffb60d0 0x40087990 0x00000000 -0x3ffb60b0: 0x00060023 0x3ffb690c 0x00000000 0x00000000 -0x3ffb60c0: 0x00000000 0x3ffb60f0 0x00000000 0x00000000 -0x3ffb60d0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb60e0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb60f0: 0x00000000 0x00000000 0x3ffb60fc 0x00000000 -0x3ffb6100: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6110: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6120: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6130: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6140: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb6150: 0x00000000 0x00000000 0x00000000 -.coredump.tasks.data 0x3ffb52e8 0x17c RW -0x3ffb52e8: 0x3ffb5150 0x3ffb5270 0x000021c4 0x3ffb2ed8 -0x3ffb52f8: 0x3ffb5674 0x3ffb52e8 0x3ffb2ed0 0x00000014 -0x3ffb5308: 0x3ffb562c 0x3ffb562c 0x3ffb52e8 0x00000000 -0x3ffb5318: 0x00000005 0x3ffb4ad8 0x5f646162 0x5f727470 -0x3ffb5328: 0x6b736174 0x00cece00 0x7fffffff 0x3ffb52d4 -0x3ffb5338: 0x00000000 0x00060021 0x0000000e 0xcececece -0x3ffb5348: 0x00000005 0x00000000 0x00000000 0x00000000 -0x3ffb5358: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5368: 0x00000000 0x3ffae8fc 0x3ffae964 0x3ffae9cc -0x3ffb5378: 0x00000000 0x00000000 0x00000001 0x00000000 -0x3ffb5388: 0x3f403a68 0x00000000 0x40001d48 0x00000000 -0x3ffb5398: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb53a8: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb53b8: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb53c8: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb53d8: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb53e8: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb53f8: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5408: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5418: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5428: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5438: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5448: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5458: 0x00000000 0x00000000 0xcecece00 -.coredump.tasks.data 0x3ffb5150 0x184 RW -0x3ffb5150: 0x400820c4 0x40087782 0x00060730 0x800e2227 -0x3ffb5160: 0x3ffb5210 0x000021c4 0x00000000 0x3ffb0440 -0x3ffb5170: 0x80000020 0x00060021 0x00060823 0x80087782 -0x3ffb5180: 0x3ffb51f0 0x00000000 0x000021c4 0x80081cec -0x3ffb5190: 0x3ffb3f30 0x3ff000dc 0x00000001 0x00000000 -0x3ffb51a0: 0x800d2758 0x3ffb51d0 0x400014fd 0x4000150d -0x3ffb51b0: 0xfffffff9 0x400822c4 0x3ffb3f30 0x40088e1c -0x3ffb51c0: 0x3ffabf38 0x00000000 0x00000000 0x00000000 -0x3ffb51d0: 0xb33fffff 0x00000000 0x00000000 0x00000000 -0x3ffb51e0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb51f0: 0x80081cec 0x3ffb3f30 0x3ff000dc 0x00000001 -0x3ffb5200: 0x800881bc 0x3ffb5230 0x00000000 0x00000000 -0x3ffb5210: 0x3ffb0440 0x80000020 0x00060021 0x00060823 -0x3ffb5220: 0x00000000 0x3ffb5250 0x400e2218 0x00000000 -0x3ffb5230: 0x00060023 0x3ffb956c 0x00000000 0x00000000 -0x3ffb5240: 0x00000000 0x3ffb5270 0x00000000 0x00000000 -0x3ffb5250: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5260: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5270: 0x00000000 0x00000000 0x3ffb527c 0x00000000 -0x3ffb5280: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb5290: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb52a0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb52b0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb52c0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb52d0: 0x00000000 -.coredump.tasks.data 0x3ffb566c 0x17c RW -0x3ffb566c: 0x3ffba580 0x3ffba6a0 0x000021c4 0x3ffb52f0 -0x3ffb567c: 0x3ffb2ed8 0x3ffb566c 0x3ffb2ed0 0x0000000f -0x3ffb568c: 0xcececece 0xcececece 0x3ffb566c 0x00000000 -0x3ffb569c: 0x0000000a 0x3ffb9f08 0x6c696166 0x615f6465 -0x3ffb56ac: 0x72657373 0x00745f74 0x00000000 0x3ffba704 -0x3ffb56bc: 0x00000000 0x00060021 0x00000010 0xcececece -0x3ffb56cc: 0x0000000a 0x00000000 0x00000000 0x00000000 -0x3ffb56dc: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb56ec: 0x00000000 0x3ffae8fc 0x3ffae964 0x3ffae9cc -0x3ffb56fc: 0x00000000 0x00000000 0x00000001 0x00000000 -0x3ffb570c: 0x3f403a68 0x00000000 0x40001d48 0x00000000 -0x3ffb571c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb572c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb573c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb574c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb575c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb576c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb577c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb578c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb579c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb57ac: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb57bc: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb57cc: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb57dc: 0x00000000 0x00000000 0xcecece00 -.coredump.tasks.data 0x3ffba580 0x184 RW -0x3ffba580: 0x400820c4 0x40087782 0x00060930 0x800e216b -0x3ffba590: 0x3ffba640 0x000021c4 0x00000000 0x3ffb0440 -0x3ffba5a0: 0x80000020 0x00060021 0x00000000 0x80087782 -0x3ffba5b0: 0x3ffba620 0x00000000 0x000021c4 0x800e0678 -0x3ffba5c0: 0x3ffb92c0 0x00000800 0x3ffb1640 0x00000000 -0x3ffba5d0: 0x800d2758 0x3ffba600 0x400014fd 0x4000150d -0x3ffba5e0: 0xfffffff8 0x400822c4 0x3ffb92c0 0x40088e1c -0x3ffba5f0: 0x3ffb1368 0x00000000 0x00000000 0x00000000 -0x3ffba600: 0xb33fffff 0x00000000 0x00000000 0x00000000 -0x3ffba610: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffba620: 0x800e0678 0x3ffb92c0 0x00000800 0x3ffb1640 -0x3ffba630: 0x800881bc 0x3ffba660 0x00000000 0x00000000 -0x3ffba640: 0x3ffb0440 0x80000020 0x00060021 0x00000000 -0x3ffba650: 0x00000000 0x3ffba680 0x400e215c 0x00000000 -0x3ffba660: 0x00060023 0x3ffb566c 0x00000000 0x00000000 -0x3ffba670: 0x00000000 0x3ffba6a0 0x00000000 0x00000000 -0x3ffba680: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffba690: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffba6a0: 0x00000000 0x00000000 0x3ffba6ac 0x00000000 -0x3ffba6b0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffba6c0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffba6d0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffba6e0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffba6f0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffba700: 0x00000000 -.coredump.tasks.data 0x3ffb73b4 0x17c RW -0x3ffb73b4: 0x3ffb7200 0x3ffb7340 0x00000000 0x3ffb2ec4 -0x3ffb73c4: 0x3ffb2ec4 0x3ffb73b4 0x3ffb2ebc 0x00000018 -0x3ffb73d4: 0x3ffb6ac4 0x3ffb6ac4 0x3ffb73b4 0x3ffb6abc -0x3ffb73e4: 0x00000001 0x3ffb6ba4 0x20726d54 0x00637653 -0x3ffb73f4: 0xcececece 0x00cecece 0x00000000 0x3ffb73a0 -0x3ffb7404: 0x00000000 0x00060021 0x00000008 0xcececece -0x3ffb7414: 0x00000001 0x00000000 0x00000000 0x00000000 -0x3ffb7424: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb7434: 0x00000000 0x3ffae8fc 0x3ffae964 0x3ffae9cc -0x3ffb7444: 0x00000000 0x00000000 0x00000001 0x00000000 -0x3ffb7454: 0x3f403a68 0x00000000 0x40001d48 0x00000000 -0x3ffb7464: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb7474: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb7484: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb7494: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb74a4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb74b4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb74c4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb74d4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb74e4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb74f4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb7504: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb7514: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb7524: 0x00000000 0x00000000 0xcecece00 -.coredump.tasks.data 0x3ffb7200 0x1a0 RW -0x3ffb7200: 0x400820c4 0x400893f2 0x00060a30 0x80089527 -0x3ffb7210: 0x3ffb72c0 0x3ffb3130 0x00000000 0x00000001 -0x3ffb7220: 0x80000020 0x00060021 0x00000000 0x800893f2 -0x3ffb7230: 0x3ffb72a0 0x00000000 0x3ffb2e3c 0x3ffb6aec -0x3ffb7240: 0x00000000 0x00000000 0x00060023 0x00000000 -0x3ffb7250: 0xa5a5a5a5 0xa5a5a5a5 0x00000000 0x00000000 -0x3ffb7260: 0x00000000 0x400822c4 0x00000000 0x40088e1c -0x3ffb7270: 0x3ffae008 0x00000000 0x00000000 0x00000000 -0x3ffb7280: 0xb33fffff 0x00000000 0x00000000 0x00000000 -0x3ffb7290: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb72a0: 0x00000000 0x4008950c 0x00000000 0x00000000 -0x3ffb72b0: 0x800881bc 0x3ffb72f0 0x00000000 0x00000000 -0x3ffb72c0: 0x00000000 0x00000000 0x00000000 0x9619c4d6 -0x3ffb72d0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb72e0: 0x00000000 0x3ffb7320 0x4008950c 0x00000000 -0x3ffb72f0: 0x3ffae008 0x00000000 0x00000001 0x9619c4d6 -0x3ffb7300: 0x00060023 0x3ffb59d4 0x00000000 0x00000001 -0x3ffb7310: 0x00000000 0x3ffb7340 0x00000000 0x00000000 -0x3ffb7320: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb7330: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb7340: 0x00000000 0x00000000 0x3ffb734c 0x00000000 -0x3ffb7350: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb7360: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb7370: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb7380: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb7390: 0x00000000 0x00000000 0x00000000 0x00000000 -.coredump.tasks.data 0x3ffafb94 0x17c RW -0x3ffafb94: 0x3ffaf9e0 0x3ffafb20 0xcececece 0x3ffb40cc -0x3ffafba4: 0x3ffb3ac4 0x3ffafb94 0x3ffb2e60 0x00000003 -0x3ffafbb4: 0x3ffaead8 0x3ffaead8 0x3ffafb94 0x3ffaead0 -0x3ffafbc4: 0x00000016 0x3ffaeb84 0x5f707365 0x656d6974 -0x3ffafbd4: 0xcece0072 0x00cecece 0x00000000 0x3ffafb80 -0x3ffafbe4: 0x00000000 0x00060021 0x00000001 0xcececece -0x3ffafbf4: 0x00000016 0x00000000 0x00000000 0x00000000 -0x3ffafc04: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafc14: 0x00000000 0x3ffae8fc 0x3ffae964 0x3ffae9cc -0x3ffafc24: 0x00000000 0x00000000 0x00000001 0x00000000 -0x3ffafc34: 0x3f403a68 0x00000000 0x40001d48 0x00000000 -0x3ffafc44: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafc54: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafc64: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafc74: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafc84: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafc94: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafca4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafcb4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafcc4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafcd4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafce4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafcf4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafd04: 0x00000000 0x00000000 0xcecece00 -.coredump.tasks.data 0x3ffaf9e0 0x1a0 RW -0x3ffaf9e0: 0x400820c4 0x40088bb4 0x00060030 0x800d0f9b -0x3ffaf9f0: 0x3ffafaa0 0x3ffaeaac 0x00000000 0x3ffaeb00 -0x3ffafa00: 0x00000000 0x00000001 0x00000000 0x80088bb4 -0x3ffafa10: 0x3ffafa80 0x00000000 0x3ffb30d8 0x3ffb30d8 -0x3ffafa20: 0x3ffb3950 0x00000003 0x00060e23 0x00000000 -0x3ffafa30: 0xa5a5a5a5 0xa5a5a5a5 0x00000000 0x00000000 -0x3ffafa40: 0x00000000 0x400822c4 0x3ffb3950 0x40088e1c -0x3ffafa50: 0x3ffa67e8 0x00000000 0x00000000 0x00000000 -0x3ffafa60: 0xb33fffff 0x00000000 0x00000000 0x00000000 -0x3ffafa70: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafa80: 0x00000000 0x400d0f88 0x00000000 0x00000000 -0x3ffafa90: 0x800881bc 0x3ffafae0 0x00000000 0x00000000 -0x3ffafaa0: 0x00000000 0x00000000 0x00000000 0xffffffff -0x3ffafab0: 0x00000000 0x00000000 0x00000000 0x9619c4d6 -0x3ffafac0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafad0: 0x00000000 0x3ffafb00 0x400d0f88 0x00000000 -0x3ffafae0: 0x00060023 0x3ffafb94 0x00000000 0x00000001 -0x3ffafaf0: 0x00000000 0x3ffafb20 0x00000000 0x00000000 -0x3ffafb00: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafb10: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafb20: 0x00000000 0x00000000 0x3ffafb2c 0x00000000 -0x3ffafb30: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafb40: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafb50: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafb60: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffafb70: 0x00000000 0x00000000 0x00000000 0x00000000 -.coredump.tasks.data 0x3ffb40c4 0x17c RW -0x3ffb40c4: 0x3ffb3ef0 0x3ffb4050 0xcececece 0x3ffb2e68 -0x3ffb40d4: 0x3ffafb9c 0x3ffb40c4 0x3ffb2e60 0x00000001 -0x3ffb40e4: 0x3ffb3c74 0x3ffb3c74 0x3ffb40c4 0x3ffb3c6c -0x3ffb40f4: 0x00000018 0x3ffb3cb4 0x31637069 0xcecece00 -0x3ffb4104: 0xcececece 0x00cecece 0x00000001 0x3ffb40b0 -0x3ffb4114: 0x00000000 0x00060021 0x00000003 0xcececece -0x3ffb4124: 0x00000018 0x00000000 0x00000000 0x00000000 -0x3ffb4134: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb4144: 0x00000000 0x3ffae8fc 0x3ffae964 0x3ffae9cc -0x3ffb4154: 0x00000000 0x00000000 0x00000001 0x00000000 -0x3ffb4164: 0x3f403a68 0x00000000 0x40001d48 0x00000000 -0x3ffb4174: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb4184: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb4194: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb41a4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb41b4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb41c4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb41d4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb41e4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb41f4: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb4204: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb4214: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb4224: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb4234: 0x00000000 0x00000000 0xcecece00 -.coredump.tasks.data 0x3ffb3ef0 0x1c0 RW -0x3ffb3ef0: 0x400820c4 0x40081cec 0x00060830 0x80088bb4 -0x3ffb3f00: 0x3ffb3fb0 0x00000001 0x3ffb30d8 0x3ffb30dc -0x3ffb3f10: 0x0000000a 0x00800000 0x3ff4001c 0x80081cec -0x3ffb3f20: 0x3ffb3f90 0x3ff000e0 0x00000001 0x3ffb0028 -0x3ffb3f30: 0x00000001 0x00060820 0x3ffb3cc0 0x00000000 -0x3ffb3f40: 0x3ffb3fb0 0x00000001 0x00000000 0x00000000 -0x3ffb3f50: 0x00000000 0x400822c4 0x00000001 0x40088e1c -0x3ffb3f60: 0x3ffaad18 0x00000000 0x00000000 0x00000000 -0x3ffb3f70: 0xb33fffff 0x00000000 0x00000000 0x00000000 -0x3ffb3f80: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3f90: 0xb33fffff 0x00000000 0x00000000 0x00000000 -0x3ffb3fa0: 0x80081f37 0x3ffb3fd0 0x3ffb3c48 0x00000000 -0x3ffb3fb0: 0x3ffb30dc 0x0000000a 0x00800000 0x3ff4001c -0x3ffb3fc0: 0x800881bc 0x3ffb4010 0x00000001 0x400835cc -0x3ffb3fd0: 0x3ffb9574 0x0000000a 0x00800000 0xffffffff -0x3ffb3fe0: 0x800881bc 0x00000000 0x000019f4 0x9619c4d6 -0x3ffb3ff0: 0x3ffb3c9c 0x00000000 0x00000001 0x00000000 -0x3ffb4000: 0x00000000 0x3ffb4030 0x40081f08 0x00000001 -0x3ffb4010: 0x00000001 0x3ffb40c4 0x00000000 0x00000000 -0x3ffb4020: 0x00000000 0x3ffb4050 0x00000000 0x00000000 -0x3ffb4030: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb4040: 0x80081044 0x3ffe7d80 0x00000028 0x00000028 -0x3ffb4050: 0x00000000 0x00000000 0x3ffb405c 0x00000000 -0x3ffb4060: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb4070: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb4080: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb4090: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb40a0: 0x00000000 0x00000000 0x00000000 0x00000000 -.coredump.tasks.data 0x3ffb3abc 0x17c RW -0x3ffb3abc: 0x3ffb3900 0x3ffb3a40 0xcececece 0x3ffafb9c -0x3ffb3acc: 0x3ffb2e68 0x3ffb3abc 0x3ffb2e60 0x00000001 -0x3ffb3adc: 0x3ffaffa0 0x3ffaffa0 0x3ffb3abc 0x3ffaff98 -0x3ffb3aec: 0x00000018 0x3ffb36ac 0x30637069 0xcecece00 -0x3ffb3afc: 0xcececece 0x00cecece 0x00000000 0x3ffb3aa8 -0x3ffb3b0c: 0x00000000 0x00060021 0x00000002 0xcececece -0x3ffb3b1c: 0x00000018 0x00000000 0x00000000 0x00000000 -0x3ffb3b2c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3b3c: 0x00000000 0x3ffae8fc 0x3ffae964 0x3ffae9cc -0x3ffb3b4c: 0x00000000 0x00000000 0x00000001 0x00000000 -0x3ffb3b5c: 0x3f403a68 0x00000000 0x40001d48 0x00000000 -0x3ffb3b6c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3b7c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3b8c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3b9c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3bac: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3bbc: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3bcc: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3bdc: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3bec: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3bfc: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3c0c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3c1c: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3c2c: 0x00000000 0x00000000 0xcecece00 -.coredump.tasks.data 0x3ffb3900 0x1a8 RW -0x3ffb3900: 0x400820c4 0x40088bb4 0x00060e30 0x80081f37 -0x3ffb3910: 0x3ffb39c0 0x3ffaff74 0x00000000 0x3ffaffc8 -0x3ffb3920: 0x00000000 0x00000001 0x00000002 0x80088bb4 -0x3ffb3930: 0x3ffb39a0 0x00000000 0x3ffb30d8 0x3ffb30d8 -0x3ffb3940: 0x0000cdcd 0x00000001 0x00000000 0x00000000 -0x3ffb3950: 0xa5a5a5a5 0xa5a5a5a5 0x00000000 0x00000000 -0x3ffb3960: 0x00000000 0x400822c4 0x0000cdcd 0x40088e1c -0x3ffb3970: 0x3ffaa708 0x00000000 0x00000000 0x00000000 -0x3ffb3980: 0xb33fffff 0x00000000 0x00000000 0x00000000 -0x3ffb3990: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb39a0: 0x00000000 0x40081f08 0x00000000 0x00000000 -0x3ffb39b0: 0x800881bc 0x3ffb3a00 0x00000000 0x00000000 -0x3ffb39c0: 0x00000000 0x00000000 0x00000000 0xffffffff -0x3ffb39d0: 0x00000000 0x00000000 0x00000000 0x9619c4d6 -0x3ffb39e0: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb39f0: 0x00000000 0x3ffb3a20 0x40081f08 0x00000000 -0x3ffb3a00: 0x00060323 0x3ffb3abc 0x00000001 0x00000001 -0x3ffb3a10: 0x00000000 0x3ffb3a40 0x00000000 0x00000000 -0x3ffb3a20: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3a30: 0x80080fbe 0x3ffe3b80 0x3ffb2e48 0x9619c4d6 -0x3ffb3a40: 0x00000000 0x00000000 0x3ffb3a4c 0x00000000 -0x3ffb3a50: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3a60: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3a70: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3a80: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3a90: 0x00000000 0x00000000 0x00000000 0x00000000 -0x3ffb3aa0: 0x00000000 0x00000000 - -===================== ESP32 CORE DUMP END ===================== -=============================================================== -Done! diff --git a/components/espcoredump/test/test_espcoredump.sh b/components/espcoredump/test/test_espcoredump.sh index 7970dd1326..63b8c0a480 100755 --- a/components/espcoredump/test/test_espcoredump.sh +++ b/components/espcoredump/test/test_espcoredump.sh @@ -1,16 +1,9 @@ #! /bin/bash -if [ "$(xtensa-esp32-elf-gcc -dumpversion)" = "5.2.0" ]; then - EXPECTED_OUTPUT="expected_output" -else - # GCC_NOT_5_2_0 just a hint to remove later - EXPECTED_OUTPUT="expected_output_new_CT" -fi - { coverage debug sys \ && coverage erase \ && coverage run -a --source=espcoredump ../espcoredump.py info_corefile -m -t b64 -c coredump.b64 test.elf &> output \ - && diff ${EXPECTED_OUTPUT} output \ + && diff expected_output output \ && coverage run -a --source=espcoredump ./test_espcoredump.py \ && coverage report \ ; } || { echo 'The test for espcoredump has failed!'; exit 1; } diff --git a/components/expat/CMakeLists.txt b/components/expat/CMakeLists.txt index a6c5882c79..f4c9796b5d 100644 --- a/components/expat/CMakeLists.txt +++ b/components/expat/CMakeLists.txt @@ -10,6 +10,4 @@ target_compile_definitions(${COMPONENT_LIB} PRIVATE HAVE_EXPAT_CONFIG_H) target_compile_definitions(${COMPONENT_LIB} PRIVATE HAVE_GETRANDOM) # Temporary suppress "fallthrough" warnings until they are fixed in expat repo -if(GCC_NOT_5_2_0) - target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-implicit-fallthrough) -endif() \ No newline at end of file +target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-implicit-fallthrough) diff --git a/components/expat/component.mk b/components/expat/component.mk index 351fe3b74a..851f6a8c38 100644 --- a/components/expat/component.mk +++ b/components/expat/component.mk @@ -6,8 +6,7 @@ COMPONENT_ADD_INCLUDEDIRS := expat/expat/lib port/include COMPONENT_SRCDIRS := expat/expat/lib port CFLAGS += -DHAVE_EXPAT_CONFIG_H -DHAVE_GETRANDOM -ifeq ($(GCC_NOT_5_2_0), 1) # Temporary suppress "fallthrough" warnings until they are fixed in expat repo CFLAGS += -Wno-implicit-fallthrough -endif + COMPONENT_SUBMODULES += expat diff --git a/components/libsodium/CMakeLists.txt b/components/libsodium/CMakeLists.txt index 103e296612..48b5a39bd1 100644 --- a/components/libsodium/CMakeLists.txt +++ b/components/libsodium/CMakeLists.txt @@ -161,14 +161,12 @@ set_source_files_properties( ) # Temporary suppress "fallthrough" warnings until they are fixed in libsodium repo -if(GCC_NOT_5_2_0) - set_source_files_properties( - ${SRC}/crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.c - ${SRC}/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.c - PROPERTIES COMPILE_FLAGS - -Wno-implicit-fallthrough - ) -endif() +set_source_files_properties( + ${SRC}/crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.c + ${SRC}/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.c + PROPERTIES COMPILE_FLAGS + -Wno-implicit-fallthrough + ) set_source_files_properties( ${SRC}/randombytes/randombytes.c diff --git a/components/libsodium/component.mk b/components/libsodium/component.mk index c84519cb3d..12dcb571a5 100644 --- a/components/libsodium/component.mk +++ b/components/libsodium/component.mk @@ -87,8 +87,6 @@ CFLAGS += -DNATIVE_LITTLE_ENDIAN -DHAVE_WEAK_SYMBOLS -D__STDC_LIMIT_MACROS -D__ # randombytes.c needs to pull in platform-specific implementation $(LSRC)/randombytes/randombytes.o: CFLAGS+=-DRANDOMBYTES_DEFAULT_IMPLEMENTATION -ifeq ($(GCC_NOT_5_2_0), 1) # Temporary suppress "fallthrough" warnings until they are fixed in libsodium repo $(LSRC)/crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.o: CFLAGS += -Wno-implicit-fallthrough $(LSRC)/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.o: CFLAGS += -Wno-implicit-fallthrough -endif diff --git a/components/lwip/CMakeLists.txt b/components/lwip/CMakeLists.txt index 632a00e57d..05623faebc 100644 --- a/components/lwip/CMakeLists.txt +++ b/components/lwip/CMakeLists.txt @@ -138,15 +138,13 @@ idf_component_register(SRCS "${srcs}" # lots of LWIP source files evaluate macros that check address of stack variables target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-address) -if(GCC_NOT_5_2_0) - set_source_files_properties( - lwip/src/netif/ppp/ppp.c - PROPERTIES COMPILE_FLAGS - -Wno-uninitialized - ) - set_source_files_properties( - lwip/src/netif/ppp/pppos.c - PROPERTIES COMPILE_FLAGS - -Wno-implicit-fallthrough - ) -endif() +set_source_files_properties( + lwip/src/netif/ppp/ppp.c + PROPERTIES COMPILE_FLAGS + -Wno-uninitialized + ) +set_source_files_properties( + lwip/src/netif/ppp/pppos.c + PROPERTIES COMPILE_FLAGS + -Wno-implicit-fallthrough + ) diff --git a/components/lwip/component.mk b/components/lwip/component.mk index 46076d7a4c..84f4ed5999 100644 --- a/components/lwip/component.mk +++ b/components/lwip/component.mk @@ -36,9 +36,7 @@ endif CFLAGS += -Wno-address # lots of LWIP source files evaluate macros that check address of stack variables -ifeq ($(GCC_NOT_5_2_0), 1) lwip/src/netif/ppp/ppp.o: CFLAGS += -Wno-uninitialized lwip/src/netif/ppp/pppos.o: CFLAGS += -Wno-implicit-fallthrough -endif COMPONENT_ADD_LDFRAGMENTS += linker.lf diff --git a/components/newlib/CMakeLists.txt b/components/newlib/CMakeLists.txt index ccd5a76693..90a0c24a8f 100644 --- a/components/newlib/CMakeLists.txt +++ b/components/newlib/CMakeLists.txt @@ -15,27 +15,8 @@ set(srcs "utime.c") set(include_dirs platform_include) -if(GCC_NOT_5_2_0) - if(CONFIG_SPIRAM_CACHE_WORKAROUND) - set(ldfragments esp32-spiram-rom-functions-c.lf) - endif() - - # Forces the linker to include locks, heap, and syscalls from this component, - # instead of the implementations provided by newlib. - set(EXTRA_LINK_FLAGS "-u newlib_include_locks_impl") - list(APPEND EXTRA_LINK_FLAGS "-u newlib_include_heap_impl") - list(APPEND EXTRA_LINK_FLAGS "-u newlib_include_syscalls_impl") - list(APPEND EXTRA_LINK_FLAGS "-u newlib_include_pthread_impl") -else() - # Remove this section when GCC 5.2.0 is no longer supported - # 'include' and 'lib' directories should also be removed. - # An if statement about LIB_PATH below should also be removed. - list(APPEND include_dirs include) - set(LIB_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib) - - if(CONFIG_SPIRAM_CACHE_WORKAROUND) - set(ldfragments esp32-spiram-rom-functions-psram-workaround.lf) - endif() +if(CONFIG_SPIRAM_CACHE_WORKAROUND) + set(ldfragments esp32-spiram-rom-functions-c.lf) endif() list(APPEND ldfragments newlib.lf) @@ -46,22 +27,18 @@ idf_component_register(SRCS "${srcs}" PRIV_REQUIRES soc LDFRAGMENTS "${ldfragments}") -if(LIB_PATH) - target_link_libraries(${COMPONENT_LIB} INTERFACE "-L ${LIB_PATH}") -endif() - -if(GCC_NOT_5_2_0) - # Toolchain libraries require code defined in this component - add_library(extra INTERFACE) - idf_component_get_property(newlib newlib COMPONENT_LIB) - target_link_libraries(extra INTERFACE ${LIBC} ${LIBM} gcc "$") - target_link_libraries(${COMPONENT_LIB} PUBLIC extra) -else() - target_link_libraries(${COMPONENT_LIB} PUBLIC ${LIBC} ${LIBM} gcc) -endif() +# Toolchain libraries require code defined in this component +add_library(extra INTERFACE) +idf_component_get_property(newlib newlib COMPONENT_LIB) +target_link_libraries(extra INTERFACE ${LIBC} ${LIBM} gcc "$") +target_link_libraries(${COMPONENT_LIB} PUBLIC extra) set_source_files_properties(heap.c PROPERTIES COMPILE_FLAGS -fno-builtin) -if(EXTRA_LINK_FLAGS) - target_link_libraries(${COMPONENT_LIB} INTERFACE "${EXTRA_LINK_FLAGS}") -endif() +# Forces the linker to include locks, heap, and syscalls from this component, +# instead of the implementations provided by newlib. +set(EXTRA_LINK_FLAGS "-u newlib_include_locks_impl") +list(APPEND EXTRA_LINK_FLAGS "-u newlib_include_heap_impl") +list(APPEND EXTRA_LINK_FLAGS "-u newlib_include_syscalls_impl") +list(APPEND EXTRA_LINK_FLAGS "-u newlib_include_pthread_impl") +target_link_libraries(${COMPONENT_LIB} INTERFACE "${EXTRA_LINK_FLAGS}") diff --git a/components/newlib/component.mk b/components/newlib/component.mk index 1f99816aa9..eb66a19e15 100644 --- a/components/newlib/component.mk +++ b/components/newlib/component.mk @@ -1,6 +1,3 @@ - -ifeq ($(GCC_NOT_5_2_0), 1) - ifdef CONFIG_NEWLIB_NANO_FORMAT LIBC := c_nano else # CONFIG_NEWLIB_NANO_FORMAT @@ -21,32 +18,6 @@ COMPONENT_ADD_LDFLAGS += -u newlib_include_locks_impl COMPONENT_ADD_LDFLAGS += -u newlib_include_heap_impl COMPONENT_ADD_LDFLAGS += -u newlib_include_syscalls_impl -else # GCC_NOT_5_2_0 -# Remove this section when GCC 5.2.0 is no longer supported - -ifdef CONFIG_SPIRAM_CACHE_WORKAROUND -LIBC_PATH := $(COMPONENT_PATH)/lib/libc-psram-workaround.a -LIBM_PATH := $(COMPONENT_PATH)/lib/libm-psram-workaround.a -COMPONENT_ADD_LDFRAGMENTS := esp32-spiram-rom-functions-psram-workaround.lf -else - -ifdef CONFIG_NEWLIB_NANO_FORMAT -LIBC_PATH := $(COMPONENT_PATH)/lib/libc_nano.a -else -LIBC_PATH := $(COMPONENT_PATH)/lib/libc.a -endif # CONFIG_NEWLIB_NANO_FORMAT - -LIBM_PATH := $(COMPONENT_PATH)/lib/libm.a - -endif # CONFIG_SPIRAM_CACHE_WORKAROUND - -COMPONENT_ADD_LDFLAGS := $(LIBC_PATH) $(LIBM_PATH) -lnewlib - -COMPONENT_ADD_LINKER_DEPS := $(LIBC_PATH) $(LIBM_PATH) - -COMPONENT_ADD_INCLUDEDIRS := platform_include include -endif # GCC_NOT_5_2_0 - COMPONENT_ADD_LDFRAGMENTS += newlib.lf heap.o: CFLAGS += -fno-builtin diff --git a/components/newlib/esp32-spiram-rom-functions-psram-workaround.lf b/components/newlib/esp32-spiram-rom-functions-psram-workaround.lf deleted file mode 100644 index 6dbc063007..0000000000 --- a/components/newlib/esp32-spiram-rom-functions-psram-workaround.lf +++ /dev/null @@ -1,149 +0,0 @@ -# If the Newlib functions in ROM aren't used (eg because the external SPI RAM workaround is active), these functions will -# be linked into the application directly instead. Normally, they would end up in flash, which is undesirable because esp-idf -# and/or applications may assume that because these functions normally are in ROM, they are accessible even when flash is -# inaccessible. To work around this, this ld fragment places these functions in RAM instead. If the ROM functions are used, -# these defines do nothing, so they can still be included in that situation. -# -# -# Note: We currently never link libg-psram-workaround.a, so no rules -# are generated for this library -# -# Note: the only difference between esp32-spiram-rom-functions-c.lf -# and esp32-spiram-rom-functions-psram-workaround.lf is the archive name. - -[mapping:libc_psram_workaround] -archive: libc-psram-workaround.a -entries: - if SPIRAM_CACHE_WORKAROUND = y: - lib_a-utoa (noflash) - lib_a-longjmp (noflash) - lib_a-setjmp (noflash) - lib_a-abs (noflash) - lib_a-div (noflash) - lib_a-labs (noflash) - lib_a-ldiv (noflash) - lib_a-quorem (noflash) - lib_a-utoa (noflash) - lib_a-itoa (noflash) - lib_a-atoi (noflash) - lib_a-atol (noflash) - lib_a-strtol (noflash) - lib_a-strtoul (noflash) - lib_a-wcrtomb (noflash) - lib_a-fvwrite (noflash) - lib_a-wbuf (noflash) - lib_a-wsetup (noflash) - lib_a-fputwc (noflash) - lib_a-wctomb_r (noflash) - lib_a-ungetc (noflash) - lib_a-makebuf (noflash) - lib_a-fflush (noflash) - lib_a-refill (noflash) - lib_a-s_fpclassify (noflash) - lib_a-asctime (noflash) - lib_a-ctime (noflash) - lib_a-ctime_r (noflash) - lib_a-lcltime (noflash) - lib_a-lcltime_r (noflash) - lib_a-gmtime (noflash) - lib_a-gmtime_r (noflash) - lib_a-strftime (noflash) - lib_a-mktime (noflash) - lib_a-syswrite (noflash) - lib_a-tzset_r (noflash) - lib_a-tzset (noflash) - lib_a-toupper (noflash) - lib_a-tolower (noflash) - lib_a-toascii (noflash) - lib_a-systimes (noflash) - lib_a-time (noflash) - lib_a-gettzinfo (noflash) - lib_a-strupr (noflash) - lib_a-asctime_r (noflash) - lib_a-bzero (noflash) - lib_a-close (noflash) - lib_a-creat (noflash) - lib_a-environ (noflash) - lib_a-fclose (noflash) - lib_a-isalnum (noflash) - lib_a-isalpha (noflash) - lib_a-isascii (noflash) - lib_a-isblank (noflash) - lib_a-iscntrl (noflash) - lib_a-isdigit (noflash) - lib_a-isgraph (noflash) - lib_a-islower (noflash) - lib_a-isprint (noflash) - lib_a-ispunct (noflash) - lib_a-isspace (noflash) - lib_a-isupper (noflash) - lib_a-memccpy (noflash) - lib_a-memchr (noflash) - lib_a-memcmp (noflash) - lib_a-memcpy (noflash) - lib_a-memmove (noflash) - lib_a-memrchr (noflash) - lib_a-memset (noflash) - lib_a-open (noflash) - lib_a-rand (noflash) - lib_a-rand_r (noflash) - lib_a-read (noflash) - lib_a-rshift (noflash) - lib_a-sbrk (noflash) - lib_a-srand (noflash) - lib_a-strcasecmp (noflash) - lib_a-strcasestr (noflash) - lib_a-strcat (noflash) - lib_a-strchr (noflash) - lib_a-strcmp (noflash) - lib_a-strcoll (noflash) - lib_a-strcpy (noflash) - lib_a-strcspn (noflash) - lib_a-strdup (noflash) - lib_a-strlcat (noflash) - lib_a-strlcpy (noflash) - lib_a-strlen (noflash) - lib_a-strlwr (noflash) - lib_a-strncasecmp (noflash) - lib_a-strncat (noflash) - lib_a-strncmp (noflash) - lib_a-strncpy (noflash) - lib_a-strndup (noflash) - lib_a-strnlen (noflash) - lib_a-strrchr (noflash) - lib_a-strsep (noflash) - lib_a-strspn (noflash) - lib_a-strstr (noflash) - lib_a-strtok_r (noflash) - lib_a-strupr (noflash) - lib_a-stdio (noflash) - lib_a-syssbrk (noflash) - lib_a-sysclose (noflash) - lib_a-sysopen (noflash) - creat (noflash) - lib_a-sysread (noflash) - lib_a-syswrite (noflash) - lib_a-impure (noflash) - lib_a-tzvars (noflash) - lib_a-sf_nan (noflash) - lib_a-tzcalc_limits (noflash) - lib_a-month_lengths (noflash) - lib_a-timelocal (noflash) - lib_a-findfp (noflash) - lock (noflash) - lib_a-getenv_r (noflash) - isatty (noflash) - lib_a-fwalk (noflash) - lib_a-getenv_r (noflash) - lib_a-tzlock (noflash) - lib_a-ctype_ (noflash) - lib_a-sccl (noflash) - lib_a-strptime (noflash) - lib_a-envlock (noflash) - lib_a-raise (noflash) - lib_a-strdup_r (noflash) - lib_a-system (noflash) - lib_a-strndup_r (noflash) - else: - * (default) - diff --git a/components/newlib/include/_ansi.h b/components/newlib/include/_ansi.h deleted file mode 100644 index 5fb9907009..0000000000 --- a/components/newlib/include/_ansi.h +++ /dev/null @@ -1,140 +0,0 @@ -/* Provide support for both ANSI and non-ANSI environments. */ - -/* Some ANSI environments are "broken" in the sense that __STDC__ cannot be - relied upon to have it's intended meaning. Therefore we must use our own - concoction: _HAVE_STDC. Always use _HAVE_STDC instead of __STDC__ in newlib - sources! - - To get a strict ANSI C environment, define macro __STRICT_ANSI__. This will - "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header - files aren't affected). */ - -#ifndef _ANSIDECL_H_ -#define _ANSIDECL_H_ - -#include -#include - -/* First try to figure out whether we really are in an ANSI C environment. */ -/* FIXME: This probably needs some work. Perhaps sys/config.h can be - prevailed upon to give us a clue. */ - -#ifdef __STDC__ -#define _HAVE_STDC -#endif - -/* ISO C++. */ - -#ifdef __cplusplus -#if !(defined(_BEGIN_STD_C) && defined(_END_STD_C)) -#ifdef _HAVE_STD_CXX -#define _BEGIN_STD_C namespace std { extern "C" { -#define _END_STD_C } } -#else -#define _BEGIN_STD_C extern "C" { -#define _END_STD_C } -#endif -#if __GNUC_PREREQ (3, 3) -#define _NOTHROW __attribute__ ((__nothrow__)) -#else -#define _NOTHROW throw() -#endif -#endif -#else -#define _BEGIN_STD_C -#define _END_STD_C -#define _NOTHROW -#endif - -#ifdef _HAVE_STDC -#define _PTR void * -#define _AND , -#define _NOARGS void -#define _CONST const -#define _VOLATILE volatile -#define _SIGNED signed -#define _DOTS , ... -#define _VOID void -#ifdef __CYGWIN__ -#define _EXFUN_NOTHROW(name, proto) __cdecl name proto _NOTHROW -#define _EXFUN(name, proto) __cdecl name proto -#define _EXPARM(name, proto) (* __cdecl name) proto -#define _EXFNPTR(name, proto) (__cdecl * name) proto -#else -#define _EXFUN_NOTHROW(name, proto) name proto _NOTHROW -#define _EXFUN(name, proto) name proto -#define _EXPARM(name, proto) (* name) proto -#define _EXFNPTR(name, proto) (* name) proto -#endif -#define _DEFUN(name, arglist, args) name(args) -#define _DEFUN_VOID(name) name(_NOARGS) -#define _CAST_VOID (void) -#ifndef _LONG_DOUBLE -#define _LONG_DOUBLE long double -#endif -#ifndef _PARAMS -#define _PARAMS(paramlist) paramlist -#endif -#else -#define _PTR char * -#define _AND ; -#define _NOARGS -#define _CONST -#define _VOLATILE -#define _SIGNED -#define _DOTS -#define _VOID void -#define _EXFUN(name, proto) name() -#define _EXFUN_NOTHROW(name, proto) name() -#define _DEFUN(name, arglist, args) name arglist args; -#define _DEFUN_VOID(name) name() -#define _CAST_VOID -#define _LONG_DOUBLE double -#ifndef _PARAMS -#define _PARAMS(paramlist) () -#endif -#endif - -/* Support gcc's __attribute__ facility. */ - -#ifdef __GNUC__ -#define _ATTRIBUTE(attrs) __attribute__ (attrs) -#else -#define _ATTRIBUTE(attrs) -#endif - -/* The traditional meaning of 'extern inline' for GCC is not - to emit the function body unless the address is explicitly - taken. However this behaviour is changing to match the C99 - standard, which uses 'extern inline' to indicate that the - function body *must* be emitted. Likewise, a function declared - without either 'extern' or 'static' defaults to extern linkage - (C99 6.2.2p5), and the compiler may choose whether to use the - inline version or call the extern linkage version (6.7.4p6). - If we are using GCC, but do not have the new behaviour, we need - to use extern inline; if we are using a new GCC with the - C99-compatible behaviour, or a non-GCC compiler (which we will - have to hope is C99, since there is no other way to achieve the - effect of omitting the function if it isn't referenced) we use - 'static inline', which c99 defines to mean more-or-less the same - as the Gnu C 'extern inline'. */ -#if defined(__GNUC__) && !defined(__GNUC_STDC_INLINE__) -/* We're using GCC, but without the new C99-compatible behaviour. */ -#define _ELIDABLE_INLINE extern __inline__ _ATTRIBUTE ((__always_inline__)) -#else -/* We're using GCC in C99 mode, or an unknown compiler which - we just have to hope obeys the C99 semantics of inline. */ -#define _ELIDABLE_INLINE static __inline__ -#endif - -#if __GNUC_PREREQ (3, 1) -#define _NOINLINE __attribute__ ((__noinline__)) -#define _NOINLINE_STATIC _NOINLINE static -#else -/* On non-GNU compilers and GCC prior to version 3.1 the compiler can't be - trusted not to inline if it is static. */ -#define _NOINLINE -#define _NOINLINE_STATIC -#endif - -#endif /* _ANSIDECL_H_ */ diff --git a/components/newlib/include/_syslist.h b/components/newlib/include/_syslist.h deleted file mode 100644 index 271644efa9..0000000000 --- a/components/newlib/include/_syslist.h +++ /dev/null @@ -1,40 +0,0 @@ -/* internal use only -- mapping of "system calls" for libraries that lose - and only provide C names, so that we end up in violation of ANSI */ -#ifndef __SYSLIST_H -#define __SYSLIST_H - -#ifdef MISSING_SYSCALL_NAMES -#define _close close -#define _execve execve -#define _fcntl fcntl -#define _fork fork -#define _fstat fstat -#define _getpid getpid -#define _gettimeofday gettimeofday -#define _isatty isatty -#define _kill kill -#define _link link -#define _lseek lseek -#define _mkdir mkdir -#define _open open -#define _read read -#define _sbrk sbrk -#define _stat stat -#define _times times -#define _unlink unlink -#define _wait wait -#define _write write -#endif /* MISSING_SYSCALL_NAMES */ - -#if defined MISSING_SYSCALL_NAMES || !defined HAVE_OPENDIR -/* If the system call interface is missing opendir, readdir, and - closedir, there is an implementation of these functions in - libc/posix that is implemented using open, getdents, and close. - Note, these functions are currently not in the libc/syscalls - directory. */ -#define _opendir opendir -#define _readdir readdir -#define _closedir closedir -#endif /* MISSING_SYSCALL_NAMES || !HAVE_OPENDIR */ - -#endif /* !__SYSLIST_H_ */ diff --git a/components/newlib/include/alloca.h b/components/newlib/include/alloca.h deleted file mode 100644 index 2ea0fd9b37..0000000000 --- a/components/newlib/include/alloca.h +++ /dev/null @@ -1,21 +0,0 @@ -/* libc/include/alloca.h - Allocate memory on stack */ - -/* Written 2000 by Werner Almesberger */ -/* Rearranged for general inclusion by stdlib.h. - 2001, Corinna Vinschen */ - -#ifndef _NEWLIB_ALLOCA_H -#define _NEWLIB_ALLOCA_H - -#include "_ansi.h" -#include - -#undef alloca - -#ifdef __GNUC__ -#define alloca(size) __builtin_alloca(size) -#else -void * _EXFUN(alloca,(size_t)); -#endif - -#endif diff --git a/components/newlib/include/ar.h b/components/newlib/include/ar.h deleted file mode 100644 index ac2e4ca920..0000000000 --- a/components/newlib/include/ar.h +++ /dev/null @@ -1,69 +0,0 @@ -/* $NetBSD: ar.h,v 1.4 1994/10/26 00:55:43 cgd Exp $ */ - -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * This code is derived from software contributed to Berkeley by - * Hugh Smith at The University of Guelph. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * @(#)ar.h 8.2 (Berkeley) 1/21/94 - */ - -#ifndef _AR_H_ -#define _AR_H_ - -/* Pre-4BSD archives had these magic numbers in them. */ -#define OARMAG1 0177555 -#define OARMAG2 0177545 - -#define ARMAG "!\n" /* ar "magic number" */ -#define SARMAG 8 /* strlen(ARMAG); */ - -#define AR_EFMT1 "#1/" /* extended format #1 */ - -struct ar_hdr { - char ar_name[16]; /* name */ - char ar_date[12]; /* modification time */ - char ar_uid[6]; /* user id */ - char ar_gid[6]; /* group id */ - char ar_mode[8]; /* octal file permissions */ - char ar_size[10]; /* size in bytes */ -#define ARFMAG "`\n" - char ar_fmag[2]; /* consistency check */ -}; - -#endif /* !_AR_H_ */ diff --git a/components/newlib/include/argz.h b/components/newlib/include/argz.h deleted file mode 100644 index 02c9adbf3f..0000000000 --- a/components/newlib/include/argz.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#ifndef _ARGZ_H_ -#define _ARGZ_H_ - -#include -#include - -#include "_ansi.h" - -_BEGIN_STD_C - -/* The newlib implementation of these functions assumes that sizeof(char) == 1. */ -error_t argz_create (char *const argv[], char **argz, size_t *argz_len); -error_t argz_create_sep (const char *string, int sep, char **argz, size_t *argz_len); -size_t argz_count (const char *argz, size_t argz_len); -void argz_extract (char *argz, size_t argz_len, char **argv); -void argz_stringify (char *argz, size_t argz_len, int sep); -error_t argz_add (char **argz, size_t *argz_len, const char *str); -error_t argz_add_sep (char **argz, size_t *argz_len, const char *str, int sep); -error_t argz_append (char **argz, size_t *argz_len, const char *buf, size_t buf_len); -error_t argz_delete (char **argz, size_t *argz_len, char *entry); -error_t argz_insert (char **argz, size_t *argz_len, char *before, const char *entry); -char * argz_next (char *argz, size_t argz_len, const char *entry); -error_t argz_replace (char **argz, size_t *argz_len, const char *str, const char *with, unsigned *replace_count); - -_END_STD_C - -#endif /* _ARGZ_H_ */ diff --git a/components/newlib/include/assert.h b/components/newlib/include/assert.h deleted file mode 100644 index df46c030b2..0000000000 --- a/components/newlib/include/assert.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - assert.h -*/ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "_ansi.h" - -#undef assert - -#ifdef NDEBUG /* required by ANSI standard */ -# define assert(__e) ((void) sizeof(__e)) -#else -# define assert(__e) ((__e) ? (void)0 : __assert_func (__FILE__, __LINE__, \ - __ASSERT_FUNC, #__e)) - -# ifndef __ASSERT_FUNC - /* Use g++'s demangled names in C++. */ -# if defined __cplusplus && defined __GNUC__ -# define __ASSERT_FUNC __PRETTY_FUNCTION__ - - /* C99 requires the use of __func__. */ -# elif __STDC_VERSION__ >= 199901L -# define __ASSERT_FUNC __func__ - - /* Older versions of gcc don't have __func__ but can use __FUNCTION__. */ -# elif __GNUC__ >= 2 -# define __ASSERT_FUNC __FUNCTION__ - - /* failed to detect __func__ support. */ -# else -# define __ASSERT_FUNC ((char *) 0) -# endif -# endif /* !__ASSERT_FUNC */ -#endif /* !NDEBUG */ - -void _EXFUN(__assert, (const char *, int, const char *) - _ATTRIBUTE ((__noreturn__))); -void _EXFUN(__assert_func, (const char *, int, const char *, const char *) - _ATTRIBUTE ((__noreturn__))); - -#if __STDC_VERSION__ >= 201112L && !defined __cplusplus -# define static_assert _Static_assert -#endif - -#ifdef __cplusplus -} -#endif diff --git a/components/newlib/include/complex.h b/components/newlib/include/complex.h deleted file mode 100644 index 969b20e5f9..0000000000 --- a/components/newlib/include/complex.h +++ /dev/null @@ -1,124 +0,0 @@ -/* $NetBSD: complex.h,v 1.3 2010/09/15 16:11:30 christos Exp $ */ - -/* - * Written by Matthias Drochner. - * Public domain. - */ - -#ifndef _COMPLEX_H -#define _COMPLEX_H - -#define complex _Complex -#define _Complex_I 1.0fi -#define I _Complex_I - -#include - -__BEGIN_DECLS - -/* 7.3.5 Trigonometric functions */ -/* 7.3.5.1 The cacos functions */ -double complex cacos(double complex); -float complex cacosf(float complex); - -/* 7.3.5.2 The casin functions */ -double complex casin(double complex); -float complex casinf(float complex); - -/* 7.3.5.1 The catan functions */ -double complex catan(double complex); -float complex catanf(float complex); - -/* 7.3.5.1 The ccos functions */ -double complex ccos(double complex); -float complex ccosf(float complex); - -/* 7.3.5.1 The csin functions */ -double complex csin(double complex); -float complex csinf(float complex); - -/* 7.3.5.1 The ctan functions */ -double complex ctan(double complex); -float complex ctanf(float complex); - -/* 7.3.6 Hyperbolic functions */ -/* 7.3.6.1 The cacosh functions */ -double complex cacosh(double complex); -float complex cacoshf(float complex); - -/* 7.3.6.2 The casinh functions */ -double complex casinh(double complex); -float complex casinhf(float complex); - -/* 7.3.6.3 The catanh functions */ -double complex catanh(double complex); -float complex catanhf(float complex); - -/* 7.3.6.4 The ccosh functions */ -double complex ccosh(double complex); -float complex ccoshf(float complex); - -/* 7.3.6.5 The csinh functions */ -double complex csinh(double complex); -float complex csinhf(float complex); - -/* 7.3.6.6 The ctanh functions */ -double complex ctanh(double complex); -float complex ctanhf(float complex); - -/* 7.3.7 Exponential and logarithmic functions */ -/* 7.3.7.1 The cexp functions */ -double complex cexp(double complex); -float complex cexpf(float complex); - -/* 7.3.7.2 The clog functions */ -double complex clog(double complex); -float complex clogf(float complex); - -/* 7.3.8 Power and absolute-value functions */ -/* 7.3.8.1 The cabs functions */ -/*#ifndef __LIBM0_SOURCE__ */ -/* avoid conflict with historical cabs(struct complex) */ -/* double cabs(double complex) __RENAME(__c99_cabs); - float cabsf(float complex) __RENAME(__c99_cabsf); - #endif -*/ -double cabs(double complex) ; -float cabsf(float complex) ; - -/* 7.3.8.2 The cpow functions */ -double complex cpow(double complex, double complex); -float complex cpowf(float complex, float complex); - -/* 7.3.8.3 The csqrt functions */ -double complex csqrt(double complex); -float complex csqrtf(float complex); - -/* 7.3.9 Manipulation functions */ -/* 7.3.9.1 The carg functions */ -double carg(double complex); -float cargf(float complex); - -/* 7.3.9.2 The cimag functions */ -double cimag(double complex); -float cimagf(float complex); -/*long double cimagl(long double complex); */ - -/* 7.3.9.3 The conj functions */ -double complex conj(double complex); -float complex conjf(float complex); -/*long double complex conjl(long double complex); */ - -/* 7.3.9.4 The cproj functions */ -double complex cproj(double complex); -float complex cprojf(float complex); -/*long double complex cprojl(long double complex); */ - -/* 7.3.9.5 The creal functions */ -double creal(double complex); -float crealf(float complex); -/*long double creall(long double complex); */ - -__END_DECLS - -#endif /* ! _COMPLEX_H */ diff --git a/components/newlib/include/config.h b/components/newlib/include/config.h deleted file mode 100644 index 69d49adf95..0000000000 --- a/components/newlib/include/config.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __SYS_CONFIG_H__ -#define __SYS_CONFIG_H__ - -#include /* floating point macros */ -#include /* POSIX defs */ - -#ifndef __EXPORT -#define __EXPORT -#endif - -#ifndef __IMPORT -#define __IMPORT -#endif - -/* Define return type of read/write routines. In POSIX, the return type - for read()/write() is "ssize_t" but legacy newlib code has been using - "int" for some time. If not specified, "int" is defaulted. */ -#ifndef _READ_WRITE_RETURN_TYPE -#define _READ_WRITE_RETURN_TYPE int -#endif -/* Define `count' parameter of read/write routines. In POSIX, the `count' - parameter is "size_t" but legacy newlib code has been using "int" for some - time. If not specified, "int" is defaulted. */ -#ifndef _READ_WRITE_BUFSIZE_TYPE -#define _READ_WRITE_BUFSIZE_TYPE int -#endif - -#endif /* __SYS_CONFIG_H__ */ diff --git a/components/newlib/include/ctype.h b/components/newlib/include/ctype.h deleted file mode 100644 index 1eb3f787f8..0000000000 --- a/components/newlib/include/ctype.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef _CTYPE_H_ -#define _CTYPE_H_ - -#include "_ansi.h" - -_BEGIN_STD_C - -int _EXFUN(isalnum, (int __c)); -int _EXFUN(isalpha, (int __c)); -int _EXFUN(iscntrl, (int __c)); -int _EXFUN(isdigit, (int __c)); -int _EXFUN(isgraph, (int __c)); -int _EXFUN(islower, (int __c)); -int _EXFUN(isprint, (int __c)); -int _EXFUN(ispunct, (int __c)); -int _EXFUN(isspace, (int __c)); -int _EXFUN(isupper, (int __c)); -int _EXFUN(isxdigit,(int __c)); -int _EXFUN(tolower, (int __c)); -int _EXFUN(toupper, (int __c)); - -#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L -int _EXFUN(isblank, (int __c)); -#endif - -#ifndef __STRICT_ANSI__ -int _EXFUN(isascii, (int __c)); -int _EXFUN(toascii, (int __c)); -#define _tolower(__c) ((unsigned char)(__c) - 'A' + 'a') -#define _toupper(__c) ((unsigned char)(__c) - 'a' + 'A') -#endif - -#define _U 01 -#define _L 02 -#define _N 04 -#define _S 010 -#define _P 020 -#define _C 040 -#define _X 0100 -#define _B 0200 - -#ifndef _MB_CAPABLE -_CONST -#endif -extern __IMPORT char * _CONST __ctype_ptr__; - -#ifndef __cplusplus -/* These macros are intentionally written in a manner that will trigger - a gcc -Wall warning if the user mistakenly passes a 'char' instead - of an int containing an 'unsigned char'. Note that the sizeof will - always be 1, which is what we want for mapping EOF to __ctype_ptr__[0]; - the use of a raw index inside the sizeof triggers the gcc warning if - __c was of type char, and sizeof masks side effects of the extra __c. - Meanwhile, the real index to __ctype_ptr__+1 must be cast to int, - since isalpha(0x100000001LL) must equal isalpha(1), rather than being - an out-of-bounds reference on a 64-bit machine. */ -#define __ctype_lookup(__c) ((__ctype_ptr__+sizeof(""[__c]))[(int)(__c)]) - -#define isalpha(__c) (__ctype_lookup(__c)&(_U|_L)) -#define isupper(__c) ((__ctype_lookup(__c)&(_U|_L))==_U) -#define islower(__c) ((__ctype_lookup(__c)&(_U|_L))==_L) -#define isdigit(__c) (__ctype_lookup(__c)&_N) -#define isxdigit(__c) (__ctype_lookup(__c)&(_X|_N)) -#define isspace(__c) (__ctype_lookup(__c)&_S) -#define ispunct(__c) (__ctype_lookup(__c)&_P) -#define isalnum(__c) (__ctype_lookup(__c)&(_U|_L|_N)) -#define isprint(__c) (__ctype_lookup(__c)&(_P|_U|_L|_N|_B)) -#define isgraph(__c) (__ctype_lookup(__c)&(_P|_U|_L|_N)) -#define iscntrl(__c) (__ctype_lookup(__c)&_C) - -#if defined(__GNUC__) && \ - (!defined(__STRICT_ANSI__) || __STDC_VERSION__ >= 199901L) -#define isblank(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - (__ctype_lookup(__x)&_B) || (int) (__x) == '\t';}) -#endif - - -/* Non-gcc versions will get the library versions, and will be - slightly slower. These macros are not NLS-aware so they are - disabled if the system supports the extended character sets. */ -# if defined(__GNUC__) -# if !defined (_MB_EXTENDED_CHARSETS_ISO) && !defined (_MB_EXTENDED_CHARSETS_WINDOWS) -# define toupper(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - islower (__x) ? (int) __x - 'a' + 'A' : (int) __x;}) -# define tolower(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - isupper (__x) ? (int) __x - 'A' + 'a' : (int) __x;}) -# else /* _MB_EXTENDED_CHARSETS* */ -/* Allow a gcc warning if the user passed 'char', but defer to the - function. */ -# define toupper(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - (void) __ctype_ptr__[__x]; (toupper) (__x);}) -# define tolower(__c) \ - __extension__ ({ __typeof__ (__c) __x = (__c); \ - (void) __ctype_ptr__[__x]; (tolower) (__x);}) -# endif /* _MB_EXTENDED_CHARSETS* */ -# endif /* __GNUC__ */ -#endif /* !__cplusplus */ - -#ifndef __STRICT_ANSI__ -#define isascii(__c) ((unsigned)(__c)<=0177) -#define toascii(__c) ((__c)&0177) -#endif - -/* For C++ backward-compatibility only. */ -extern __IMPORT _CONST char _ctype_[]; - -_END_STD_C - -#endif /* _CTYPE_H_ */ diff --git a/components/newlib/include/dirent.h b/components/newlib/include/dirent.h deleted file mode 100644 index 6fefc03cbd..0000000000 --- a/components/newlib/include/dirent.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef _DIRENT_H_ -#define _DIRENT_H_ -#ifdef __cplusplus -extern "C" { -#endif -#include - -#if !defined(MAXNAMLEN) && !defined(_POSIX_SOURCE) -#define MAXNAMLEN 1024 -#endif - -#ifdef __cplusplus -} -#endif -#endif /*_DIRENT_H_*/ diff --git a/components/newlib/include/envlock.h b/components/newlib/include/envlock.h deleted file mode 100644 index 9bb6a813ea..0000000000 --- a/components/newlib/include/envlock.h +++ /dev/null @@ -1,15 +0,0 @@ -/* envlock.h -- header file for env routines. */ - -#ifndef _INCLUDE_ENVLOCK_H_ -#define _INCLUDE_ENVLOCK_H_ - -#include <_ansi.h> -#include - -#define ENV_LOCK __env_lock(reent_ptr) -#define ENV_UNLOCK __env_unlock(reent_ptr) - -void _EXFUN(__env_lock,(struct _reent *reent)); -void _EXFUN(__env_unlock,(struct _reent *reent)); - -#endif /* _INCLUDE_ENVLOCK_H_ */ diff --git a/components/newlib/include/envz.h b/components/newlib/include/envz.h deleted file mode 100644 index e6a31c31d6..0000000000 --- a/components/newlib/include/envz.h +++ /dev/null @@ -1,16 +0,0 @@ -/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#include -#include - -/* The newlib implementation of these functions assumes that sizeof(char) == 1. */ -char * envz_entry (const char *envz, size_t envz_len, const char *name); -char * envz_get (const char *envz, size_t envz_len, const char *name); -error_t envz_add (char **envz, size_t *envz_len, const char *name, const char *value); -error_t envz_merge (char **envz, size_t *envz_len, const char *envz2, size_t envz2_len, int override); -void envz_remove(char **envz, size_t *envz_len, const char *name); -void envz_strip (char **envz, size_t *envz_len); diff --git a/components/newlib/include/errno.h b/components/newlib/include/errno.h deleted file mode 100644 index 7cc2ca86f8..0000000000 --- a/components/newlib/include/errno.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef __ERRNO_H__ -#define __ERRNO_H__ - -#ifndef __error_t_defined -typedef int error_t; -#define __error_t_defined 1 -#endif - -#include - -#endif /* !__ERRNO_H__ */ diff --git a/components/newlib/include/fastmath.h b/components/newlib/include/fastmath.h deleted file mode 100644 index 95eea5f342..0000000000 --- a/components/newlib/include/fastmath.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _FASTMATH_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _FASTMATH_H_ - -#include -#include - -#ifdef __cplusplus -} -#endif -#endif /* _FASTMATH_H_ */ diff --git a/components/newlib/include/fcntl.h b/components/newlib/include/fcntl.h deleted file mode 100644 index 86a9167757..0000000000 --- a/components/newlib/include/fcntl.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/components/newlib/include/fenv.h b/components/newlib/include/fenv.h deleted file mode 100644 index 2fa76f758d..0000000000 --- a/components/newlib/include/fenv.h +++ /dev/null @@ -1,88 +0,0 @@ -/* Copyright (c) 2011 Tensilica Inc. ALL RIGHTS RESERVED. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - 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 - TENSILICA INCORPORATED 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 _FENV_H -#define _FENV_H - -#ifdef __cplusplus -extern "C" { -#endif - -typedef unsigned long fenv_t; -typedef unsigned long fexcept_t; - -#define FE_DIVBYZERO 0x08 -#define FE_INEXACT 0x01 -#define FE_INVALID 0x10 -#define FE_OVERFLOW 0x04 -#define FE_UNDERFLOW 0x02 - -#define FE_ALL_EXCEPT \ - (FE_DIVBYZERO | \ - FE_INEXACT | \ - FE_INVALID | \ - FE_OVERFLOW | \ - FE_UNDERFLOW) - -#define FE_DOWNWARD 0x3 -#define FE_TONEAREST 0x0 -#define FE_TOWARDZERO 0x1 -#define FE_UPWARD 0x2 - -#define FE_DFL_ENV ((const fenv_t *) 0) - -int feclearexcept(int); -int fegetexceptflag(fexcept_t *, int); -int feraiseexcept(int); -int fesetexceptflag(const fexcept_t *, int); -int fetestexcept(int); -int fegetround(void); -int fesetround(int); -int fegetenv(fenv_t *); -int feholdexcept(fenv_t *); -int fesetenv(const fenv_t *); -int feupdateenv(const fenv_t *); - -/* glibc extensions */ -int feenableexcept(int excepts); -int fedisableexcept(int excepts); -int fegetexcept(void); - -#define _FE_EXCEPTION_FLAGS_OFFSET 7 -#define _FE_EXCEPTION_FLAG_MASK (FE_ALL_EXCEPT << _FE_EXCEPTION_FLAGS_OFFSET) -#define _FE_EXCEPTION_ENABLE_OFFSET 2 -#define _FE_EXCEPTION_ENABLE_MASK (FE_ALL_EXCEPT << _FE_EXCEPTION_ENABLE_OFFSET) -#define _FE_ROUND_MODE_OFFSET 0 -#define _FE_ROUND_MODE_MASK (0x3 << _FE_ROUND_MODE_OFFSET) -#define _FE_FLOATING_ENV_MASK (_FE_EXCEPTION_FLAG_MASK | _FE_EXCEPTION_ENABLE_MASK | _FE_ROUND_MODE_MASK) - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/components/newlib/include/fnmatch.h b/components/newlib/include/fnmatch.h deleted file mode 100644 index 06311fc4b1..0000000000 --- a/components/newlib/include/fnmatch.h +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * $FreeBSD: src/include/fnmatch.h,v 1.10 2002/03/23 17:24:53 imp Exp $ - * @(#)fnmatch.h 8.1 (Berkeley) 6/2/93 - */ - -#ifndef _FNMATCH_H_ -#define _FNMATCH_H_ - -#define FNM_NOMATCH 1 /* Match failed. */ - -#define FNM_NOESCAPE 0x01 /* Disable backslash escaping. */ -#define FNM_PATHNAME 0x02 /* Slash must be matched by slash. */ -#define FNM_PERIOD 0x04 /* Period must be matched by period. */ - -#if defined(_GNU_SOURCE) || !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) -#define FNM_LEADING_DIR 0x08 /* Ignore / after Imatch. */ -#define FNM_CASEFOLD 0x10 /* Case insensitive search. */ -#define FNM_IGNORECASE FNM_CASEFOLD -#define FNM_FILE_NAME FNM_PATHNAME -#endif - -#include - -__BEGIN_DECLS -int fnmatch(const char *, const char *, int); -__END_DECLS - -#endif /* !_FNMATCH_H_ */ diff --git a/components/newlib/include/getopt.h b/components/newlib/include/getopt.h deleted file mode 100644 index e12d253d47..0000000000 --- a/components/newlib/include/getopt.h +++ /dev/null @@ -1,190 +0,0 @@ -/**************************************************************************** - -getopt.h - Read command line options - -AUTHOR: Gregory Pietsch -CREATED Thu Jan 09 22:37:00 1997 - -DESCRIPTION: - -The getopt() function parses the command line arguments. Its arguments argc -and argv are the argument count and array as passed to the main() function -on program invocation. The argument optstring is a list of available option -characters. If such a character is followed by a colon (`:'), the option -takes an argument, which is placed in optarg. If such a character is -followed by two colons, the option takes an optional argument, which is -placed in optarg. If the option does not take an argument, optarg is NULL. - -The external variable optind is the index of the next array element of argv -to be processed; it communicates from one call to the next which element to -process. - -The getopt_long() function works like getopt() except that it also accepts -long options started by two dashes `--'. If these take values, it is either -in the form - ---arg=value - - or - ---arg value - -It takes the additional arguments longopts which is a pointer to the first -element of an array of type GETOPT_LONG_OPTION_T, defined below. The last -element of the array has to be filled with NULL for the name field. - -The longind pointer points to the index of the current long option relative -to longopts if it is non-NULL. - -The getopt() function returns the option character if the option was found -successfully, `:' if there was a missing parameter for one of the options, -`?' for an unknown option character, and EOF for the end of the option list. - -The getopt_long() function's return value is described below. - -The function getopt_long_only() is identical to getopt_long(), except that a -plus sign `+' can introduce long options as well as `--'. - -Describe how to deal with options that follow non-option ARGV-elements. - -If the caller did not specify anything, the default is REQUIRE_ORDER if the -environment variable POSIXLY_CORRECT is defined, PERMUTE otherwise. - -REQUIRE_ORDER means don't recognize them as options; stop option processing -when the first non-option is seen. This is what Unix does. This mode of -operation is selected by either setting the environment variable -POSIXLY_CORRECT, or using `+' as the first character of the optstring -parameter. - -PERMUTE is the default. We permute the contents of ARGV as we scan, so that -eventually all the non-options are at the end. This allows options to be -given in any order, even with programs that were not written to expect this. - -RETURN_IN_ORDER is an option available to programs that were written to -expect options and other ARGV-elements in any order and that care about the -ordering of the two. We describe each non-option ARGV-element as if it were -the argument of an option with character code 1. Using `-' as the first -character of the optstring parameter selects this mode of operation. - -The special argument `--' forces an end of option-scanning regardless of the -value of `ordering'. In the case of RETURN_IN_ORDER, only `--' can cause -getopt() and friends to return EOF with optind != argc. - -COPYRIGHT NOTICE AND DISCLAIMER: - -Copyright (C) 1997 Gregory Pietsch - -This file and the accompanying getopt.c implementation file are hereby -placed in the public domain without restrictions. Just give the author -credit, don't claim you wrote it or prevent anyone else from using it. - -Gregory Pietsch's current e-mail address: -gpietsch@comcast.net -****************************************************************************/ - -/* This is a glibc-extension header file. */ - -#ifndef GETOPT_H -#define GETOPT_H - -#include <_ansi.h> - -/* include files needed by this include file */ - -#define no_argument 0 -#define required_argument 1 -#define optional_argument 2 - -#ifdef __cplusplus -extern "C" -{ - -#endif /* __cplusplus */ - -/* types defined by this include file */ - struct option - { - const char *name; /* the name of the long option */ - int has_arg; /* one of the above macros */ - int *flag; /* determines if getopt_long() returns a - * value for a long option; if it is - * non-NULL, 0 is returned as a function - * value and the value of val is stored in - * the area pointed to by flag. Otherwise, - * val is returned. */ - int val; /* determines the value to return if flag is - * NULL. */ - - }; - -/* While getopt.h is a glibc extension, the following are newlib extensions. - * They are optionally included via the __need_getopt_newlib flag. */ - -#ifdef __need_getopt_newlib - - /* macros defined by this include file */ - #define NO_ARG no_argument - #define REQUIRED_ARG required_argument - #define OPTIONAL_ARG optional_argument - - /* The GETOPT_DATA_INITIALIZER macro is used to initialize a statically- - allocated variable of type struct getopt_data. */ - #define GETOPT_DATA_INITIALIZER {0,0,0,0,0} - - /* These #defines are to make accessing the reentrant functions easier. */ - #define getopt_r __getopt_r - #define getopt_long_r __getopt_long_r - #define getopt_long_only_r __getopt_long_only_r - - /* The getopt_data structure is for reentrancy. Its members are similar to - the externally-defined variables. */ - typedef struct getopt_data - { - char *optarg; - int optind, opterr, optopt, optwhere; - } getopt_data; - -#endif /* __need_getopt_newlib */ - - /* externally-defined variables */ - extern char *optarg; - extern int optind; - extern int opterr; - extern int optopt; - - /* function prototypes */ - int _EXFUN (getopt, - (int __argc, char *const __argv[], const char *__optstring)); - - int _EXFUN (getopt_long, - (int __argc, char *const __argv[], const char *__shortopts, - const struct option * __longopts, int *__longind)); - - int _EXFUN (getopt_long_only, - (int __argc, char *const __argv[], const char *__shortopts, - const struct option * __longopts, int *__longind)); - -#ifdef __need_getopt_newlib - int _EXFUN (__getopt_r, - (int __argc, char *const __argv[], const char *__optstring, - struct getopt_data * __data)); - - int _EXFUN (__getopt_long_r, - (int __argc, char *const __argv[], const char *__shortopts, - const struct option * __longopts, int *__longind, - struct getopt_data * __data)); - - int _EXFUN (__getopt_long_only_r, - (int __argc, char *const __argv[], const char *__shortopts, - const struct option * __longopts, int *__longind, - struct getopt_data * __data)); -#endif /* __need_getopt_newlib */ - -#ifdef __cplusplus -}; - -#endif /* __cplusplus */ - -#endif /* GETOPT_H */ - -/* END OF FILE getopt.h */ diff --git a/components/newlib/include/glob.h b/components/newlib/include/glob.h deleted file mode 100644 index 7a300e69d4..0000000000 --- a/components/newlib/include/glob.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Guido van Rossum. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * @(#)glob.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/include/glob.h,v 1.6 2002/03/23 17:24:53 imp Exp $ - */ - -#ifndef _GLOB_H_ -#define _GLOB_H_ - -#include - -struct stat; -typedef struct { - int gl_pathc; /* Count of total paths so far. */ - int gl_matchc; /* Count of paths matching pattern. */ - int gl_offs; /* Reserved at beginning of gl_pathv. */ - int gl_flags; /* Copy of flags parameter to glob. */ - char **gl_pathv; /* List of paths matching pattern. */ - /* Copy of errfunc parameter to glob. */ - int (*gl_errfunc)(const char *, int); - - /* - * Alternate filesystem access methods for glob; replacement - * versions of closedir(3), readdir(3), opendir(3), stat(2) - * and lstat(2). - */ - void (*gl_closedir)(void *); - struct dirent *(*gl_readdir)(void *); - void *(*gl_opendir)(const char *); - int (*gl_lstat)(const char *, struct stat *); - int (*gl_stat)(const char *, struct stat *); -} glob_t; - -#define GLOB_APPEND 0x0001 /* Append to output from previous call. */ -#define GLOB_DOOFFS 0x0002 /* Use gl_offs. */ -#define GLOB_ERR 0x0004 /* Return on error. */ -#define GLOB_MARK 0x0008 /* Append / to matching directories. */ -#define GLOB_NOCHECK 0x0010 /* Return pattern itself if nothing matches. */ -#define GLOB_NOSORT 0x0020 /* Don't sort. */ - -#define GLOB_ALTDIRFUNC 0x0040 /* Use alternately specified directory funcs. */ -#define GLOB_BRACE 0x0080 /* Expand braces ala csh. */ -#define GLOB_MAGCHAR 0x0100 /* Pattern had globbing characters. */ -#define GLOB_NOMAGIC 0x0200 /* GLOB_NOCHECK without magic chars (csh). */ -#define GLOB_QUOTE 0x0400 /* Quote special chars with \. */ -#define GLOB_TILDE 0x0800 /* Expand tilde names from the passwd file. */ -#define GLOB_LIMIT 0x1000 /* limit number of returned paths */ - -/* backwards compatibility, this is the old name for this option */ -#define GLOB_MAXPATH GLOB_LIMIT - -#define GLOB_NOSPACE (-1) /* Malloc call failed. */ -#define GLOB_ABEND (-2) /* Unignored error. */ - -__BEGIN_DECLS -int glob(const char *__restrict, int, int (*)(const char *, int), - glob_t *__restrict); -void globfree(glob_t *); -__END_DECLS - -#endif /* !_GLOB_H_ */ diff --git a/components/newlib/include/grp.h b/components/newlib/include/grp.h deleted file mode 100644 index c3a5a676c8..0000000000 --- a/components/newlib/include/grp.h +++ /dev/null @@ -1,95 +0,0 @@ -/* $NetBSD: grp.h,v 1.7 1995/04/29 05:30:40 cgd Exp $ */ - -/*- - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * (c) UNIX System Laboratories, Inc. - * All or some portions of this file are derived from material licensed - * to the University of California by American Telephone and Telegraph - * Co. or Unix System Laboratories, Inc. and are reproduced herein with - * the permission of UNIX System Laboratories, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * @(#)grp.h 8.2 (Berkeley) 1/21/94 - */ - -#ifndef _GRP_H_ -#define _GRP_H_ - -#include -#include -#ifdef __CYGWIN__ -#include -#endif - -#if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE) -#define _PATH_GROUP "/etc/group" -#endif - -struct group { - char *gr_name; /* group name */ - char *gr_passwd; /* group password */ - gid_t gr_gid; /* group id */ - char **gr_mem; /* group members */ -}; - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef __INSIDE_CYGWIN__ -struct group *getgrgid (gid_t); -struct group *getgrnam (const char *); -int getgrnam_r (const char *, struct group *, - char *, size_t, struct group **); -int getgrgid_r (gid_t, struct group *, - char *, size_t, struct group **); -#ifndef _POSIX_SOURCE -struct group *getgrent (void); -void setgrent (void); -void endgrent (void); -#ifndef __CYGWIN__ -void setgrfile (const char *); -#endif /* !__CYGWIN__ */ -#ifndef _XOPEN_SOURCE -#ifndef __CYGWIN__ -char *group_from_gid (gid_t, int); -int setgroupent (int); -#endif /* !__CYGWIN__ */ -int initgroups (const char *, gid_t); -#endif /* !_XOPEN_SOURCE */ -#endif /* !_POSIX_SOURCE */ -#endif /* !__INSIDE_CYGWIN__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* !_GRP_H_ */ diff --git a/components/newlib/include/iconv.h b/components/newlib/include/iconv.h deleted file mode 100644 index 4c023e9df7..0000000000 --- a/components/newlib/include/iconv.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy, SoftMine Corporation. - * Rights transferred to Franklin Electronic Publishers. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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 _ICONV_H_ -#define _ICONV_H_ - -#include <_ansi.h> -#include -#include -#include - -/* iconv_t: charset conversion descriptor type */ -typedef _iconv_t iconv_t; - -_BEGIN_STD_C - -#ifndef _REENT_ONLY -iconv_t -_EXFUN(iconv_open, (_CONST char *, _CONST char *)); - -size_t -_EXFUN(iconv, (iconv_t, char **__restrict, size_t *__restrict, - char **__restrict, size_t *__restrict)); - -int -_EXFUN(iconv_close, (iconv_t)); -#endif - -iconv_t -_EXFUN(_iconv_open_r, (struct _reent *, _CONST char *, _CONST char *)); - -size_t -_EXFUN(_iconv_r, (struct _reent *, iconv_t, _CONST char **, - size_t *, char **, size_t *)); - -int -_EXFUN(_iconv_close_r, (struct _reent *, iconv_t)); - -_END_STD_C - -#endif /* #ifndef _ICONV_H_ */ diff --git a/components/newlib/include/ieeefp.h b/components/newlib/include/ieeefp.h deleted file mode 100644 index 0b06fb7861..0000000000 --- a/components/newlib/include/ieeefp.h +++ /dev/null @@ -1,256 +0,0 @@ -#ifndef _IEEE_FP_H_ -#define _IEEE_FP_H_ - -#include "_ansi.h" - -#include - -_BEGIN_STD_C - -/* FIXME FIXME FIXME: - Neither of __ieee_{float,double}_shape_tape seem to be used anywhere - except in libm/test. If that is the case, please delete these from here. - If that is not the case, please insert documentation here describing why - they're needed. */ - -#ifdef __IEEE_BIG_ENDIAN - -typedef union -{ - double value; - struct - { - unsigned int sign : 1; - unsigned int exponent: 11; - unsigned int fraction0:4; - unsigned int fraction1:16; - unsigned int fraction2:16; - unsigned int fraction3:16; - - } number; - struct - { - unsigned int sign : 1; - unsigned int exponent: 11; - unsigned int quiet:1; - unsigned int function0:3; - unsigned int function1:16; - unsigned int function2:16; - unsigned int function3:16; - } nan; - struct - { - unsigned long msw; - unsigned long lsw; - } parts; - long aslong[2]; -} __ieee_double_shape_type; - -#endif - -#ifdef __IEEE_LITTLE_ENDIAN - -typedef union -{ - double value; - struct - { -#ifdef __SMALL_BITFIELDS - unsigned int fraction3:16; - unsigned int fraction2:16; - unsigned int fraction1:16; - unsigned int fraction0: 4; -#else - unsigned int fraction1:32; - unsigned int fraction0:20; -#endif - unsigned int exponent :11; - unsigned int sign : 1; - } number; - struct - { -#ifdef __SMALL_BITFIELDS - unsigned int function3:16; - unsigned int function2:16; - unsigned int function1:16; - unsigned int function0:3; -#else - unsigned int function1:32; - unsigned int function0:19; -#endif - unsigned int quiet:1; - unsigned int exponent: 11; - unsigned int sign : 1; - } nan; - struct - { - unsigned long lsw; - unsigned long msw; - } parts; - - long aslong[2]; - -} __ieee_double_shape_type; - -#endif - -#ifdef __IEEE_BIG_ENDIAN - -typedef union -{ - float value; - struct - { - unsigned int sign : 1; - unsigned int exponent: 8; - unsigned int fraction0: 7; - unsigned int fraction1: 16; - } number; - struct - { - unsigned int sign:1; - unsigned int exponent:8; - unsigned int quiet:1; - unsigned int function0:6; - unsigned int function1:16; - } nan; - long p1; - -} __ieee_float_shape_type; - -#endif - -#ifdef __IEEE_LITTLE_ENDIAN - -typedef union -{ - float value; - struct - { - unsigned int fraction0: 7; - unsigned int fraction1: 16; - unsigned int exponent: 8; - unsigned int sign : 1; - } number; - struct - { - unsigned int function1:16; - unsigned int function0:6; - unsigned int quiet:1; - unsigned int exponent:8; - unsigned int sign:1; - } nan; - long p1; - -} __ieee_float_shape_type; - -#endif - - - - - -/* FLOATING ROUNDING */ - -typedef int fp_rnd; -#define FP_RN 0 /* Round to nearest */ -#define FP_RM 1 /* Round down */ -#define FP_RP 2 /* Round up */ -#define FP_RZ 3 /* Round to zero (trunate) */ - -fp_rnd _EXFUN(fpgetround,(void)); -fp_rnd _EXFUN(fpsetround, (fp_rnd)); - -/* EXCEPTIONS */ - -typedef int fp_except; -#define FP_X_INV 0x10 /* Invalid operation */ -#define FP_X_DX 0x80 /* Divide by zero */ -#define FP_X_OFL 0x04 /* Overflow exception */ -#define FP_X_UFL 0x02 /* Underflow exception */ -#define FP_X_IMP 0x01 /* imprecise exception */ - -fp_except _EXFUN(fpgetmask,(void)); -fp_except _EXFUN(fpsetmask,(fp_except)); -fp_except _EXFUN(fpgetsticky,(void)); -fp_except _EXFUN(fpsetsticky, (fp_except)); - -/* INTEGER ROUNDING */ - -typedef int fp_rdi; -#define FP_RDI_TOZ 0 /* Round to Zero */ -#define FP_RDI_RD 1 /* Follow float mode */ - -fp_rdi _EXFUN(fpgetroundtoi,(void)); -fp_rdi _EXFUN(fpsetroundtoi,(fp_rdi)); - -#undef isnan -#undef isinf - -int _EXFUN(isnan, (double)); -int _EXFUN(isinf, (double)); -int _EXFUN(finite, (double)); - - - -int _EXFUN(isnanf, (float)); -int _EXFUN(isinff, (float)); -int _EXFUN(finitef, (float)); - -#define __IEEE_DBL_EXPBIAS 1023 -#define __IEEE_FLT_EXPBIAS 127 - -#define __IEEE_DBL_EXPLEN 11 -#define __IEEE_FLT_EXPLEN 8 - - -#define __IEEE_DBL_FRACLEN (64 - (__IEEE_DBL_EXPLEN + 1)) -#define __IEEE_FLT_FRACLEN (32 - (__IEEE_FLT_EXPLEN + 1)) - -#define __IEEE_DBL_MAXPOWTWO ((double)(1L << 32 - 2) * (1L << (32-11) - 32 + 1)) -#define __IEEE_FLT_MAXPOWTWO ((float)(1L << (32-8) - 1)) - -#define __IEEE_DBL_NAN_EXP 0x7ff -#define __IEEE_FLT_NAN_EXP 0xff - -#ifndef __ieeefp_isnanf -#define __ieeefp_isnanf(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \ - ((*(long *)&(x) & 0x007fffffL)!=0000000000L)) -#endif -#define isnanf(x) __ieeefp_isnanf(x) - -#ifndef __ieeefp_isinff -#define __ieeefp_isinff(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \ - ((*(long *)&(x) & 0x007fffffL)==0000000000L)) -#endif -#define isinff(x) __ieeefp_isinff(x) - -#ifndef __ieeefp_finitef -#define __ieeefp_finitef(x) (((*(long *)&(x) & 0x7f800000L)!=0x7f800000L)) -#endif -#define finitef(x) __ieeefp_finitef(x) - -#ifdef _DOUBLE_IS_32BITS -#undef __IEEE_DBL_EXPBIAS -#define __IEEE_DBL_EXPBIAS __IEEE_FLT_EXPBIAS - -#undef __IEEE_DBL_EXPLEN -#define __IEEE_DBL_EXPLEN __IEEE_FLT_EXPLEN - -#undef __IEEE_DBL_FRACLEN -#define __IEEE_DBL_FRACLEN __IEEE_FLT_FRACLEN - -#undef __IEEE_DBL_MAXPOWTWO -#define __IEEE_DBL_MAXPOWTWO __IEEE_FLT_MAXPOWTWO - -#undef __IEEE_DBL_NAN_EXP -#define __IEEE_DBL_NAN_EXP __IEEE_FLT_NAN_EXP - -#undef __ieee_double_shape_type -#define __ieee_double_shape_type __ieee_float_shape_type - -#endif /* _DOUBLE_IS_32BITS */ - -_END_STD_C - -#endif /* _IEEE_FP_H_ */ diff --git a/components/newlib/include/inttypes.h b/components/newlib/include/inttypes.h deleted file mode 100644 index 39bf135113..0000000000 --- a/components/newlib/include/inttypes.h +++ /dev/null @@ -1,319 +0,0 @@ -/* - * Copyright (c) 2004, 2005 by - * Ralf Corsepius, Ulm/Germany. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -/** - * @file inttypes.h - */ - -#ifndef _INTTYPES_H -#define _INTTYPES_H - -#include -#include -#include -#define __need_wchar_t -#include - -#define __STRINGIFY(a) #a - -/* 8-bit types */ -#define __PRI8(x) __STRINGIFY(x) - -/* NOTICE: scanning 8-bit types requires use of the hh specifier - * which is only supported on newlib platforms that - * are built with C99 I/O format support enabled. If the flag in - * newlib.h hasn't been set during configuration to indicate this, the 8-bit - * scanning format macros are disabled here as they result in undefined - * behaviour which can include memory overwrite. Overriding the flag after the - * library has been built is not recommended as it will expose the underlying - * undefined behaviour. - */ - -#if defined(_WANT_IO_C99_FORMATS) - #define __SCN8(x) __STRINGIFY(hh##x) -#endif /* _WANT_IO_C99_FORMATS */ - - -#define PRId8 __PRI8(d) -#define PRIi8 __PRI8(i) -#define PRIo8 __PRI8(o) -#define PRIu8 __PRI8(u) -#define PRIx8 __PRI8(x) -#define PRIX8 __PRI8(X) - -/* Macros below are only enabled for a newlib built with C99 I/O format support. */ -#if defined(_WANT_IO_C99_FORMATS) - -#define SCNd8 __SCN8(d) -#define SCNi8 __SCN8(i) -#define SCNo8 __SCN8(o) -#define SCNu8 __SCN8(u) -#define SCNx8 __SCN8(x) - -#endif /* _WANT_IO_C99_FORMATS */ - - -#define PRIdLEAST8 __PRI8(d) -#define PRIiLEAST8 __PRI8(i) -#define PRIoLEAST8 __PRI8(o) -#define PRIuLEAST8 __PRI8(u) -#define PRIxLEAST8 __PRI8(x) -#define PRIXLEAST8 __PRI8(X) - -/* Macros below are only enabled for a newlib built with C99 I/O format support. */ -#if defined(_WANT_IO_C99_FORMATS) - - #define SCNdLEAST8 __SCN8(d) - #define SCNiLEAST8 __SCN8(i) - #define SCNoLEAST8 __SCN8(o) - #define SCNuLEAST8 __SCN8(u) - #define SCNxLEAST8 __SCN8(x) - -#endif /* _WANT_IO_C99_FORMATS */ - -#define PRIdFAST8 __PRI8(d) -#define PRIiFAST8 __PRI8(i) -#define PRIoFAST8 __PRI8(o) -#define PRIuFAST8 __PRI8(u) -#define PRIxFAST8 __PRI8(x) -#define PRIXFAST8 __PRI8(X) - -/* Macros below are only enabled for a newlib built with C99 I/O format support. */ -#if defined(_WANT_IO_C99_FORMATS) - - #define SCNdFAST8 __SCN8(d) - #define SCNiFAST8 __SCN8(i) - #define SCNoFAST8 __SCN8(o) - #define SCNuFAST8 __SCN8(u) - #define SCNxFAST8 __SCN8(x) - -#endif /* _WANT_IO_C99_FORMATS */ - -/* 16-bit types */ -#define __PRI16(x) __STRINGIFY(x) -#define __SCN16(x) __STRINGIFY(h##x) - - -#define PRId16 __PRI16(d) -#define PRIi16 __PRI16(i) -#define PRIo16 __PRI16(o) -#define PRIu16 __PRI16(u) -#define PRIx16 __PRI16(x) -#define PRIX16 __PRI16(X) - -#define SCNd16 __SCN16(d) -#define SCNi16 __SCN16(i) -#define SCNo16 __SCN16(o) -#define SCNu16 __SCN16(u) -#define SCNx16 __SCN16(x) - - -#define PRIdLEAST16 __PRI16(d) -#define PRIiLEAST16 __PRI16(i) -#define PRIoLEAST16 __PRI16(o) -#define PRIuLEAST16 __PRI16(u) -#define PRIxLEAST16 __PRI16(x) -#define PRIXLEAST16 __PRI16(X) - -#define SCNdLEAST16 __SCN16(d) -#define SCNiLEAST16 __SCN16(i) -#define SCNoLEAST16 __SCN16(o) -#define SCNuLEAST16 __SCN16(u) -#define SCNxLEAST16 __SCN16(x) - - -#define PRIdFAST16 __PRI16(d) -#define PRIiFAST16 __PRI16(i) -#define PRIoFAST16 __PRI16(o) -#define PRIuFAST16 __PRI16(u) -#define PRIxFAST16 __PRI16(x) -#define PRIXFAST16 __PRI16(X) - -#define SCNdFAST16 __SCN16(d) -#define SCNiFAST16 __SCN16(i) -#define SCNoFAST16 __SCN16(o) -#define SCNuFAST16 __SCN16(u) -#define SCNxFAST16 __SCN16(x) - -/* 32-bit types */ -#if __have_long32 -#define __PRI32(x) __STRINGIFY(l##x) -#define __SCN32(x) __STRINGIFY(l##x) -#else -#define __PRI32(x) __STRINGIFY(x) -#define __SCN32(x) __STRINGIFY(x) -#endif - -#define PRId32 __PRI32(d) -#define PRIi32 __PRI32(i) -#define PRIo32 __PRI32(o) -#define PRIu32 __PRI32(u) -#define PRIx32 __PRI32(x) -#define PRIX32 __PRI32(X) - -#define SCNd32 __SCN32(d) -#define SCNi32 __SCN32(i) -#define SCNo32 __SCN32(o) -#define SCNu32 __SCN32(u) -#define SCNx32 __SCN32(x) - - -#define PRIdLEAST32 __PRI32(d) -#define PRIiLEAST32 __PRI32(i) -#define PRIoLEAST32 __PRI32(o) -#define PRIuLEAST32 __PRI32(u) -#define PRIxLEAST32 __PRI32(x) -#define PRIXLEAST32 __PRI32(X) - -#define SCNdLEAST32 __SCN32(d) -#define SCNiLEAST32 __SCN32(i) -#define SCNoLEAST32 __SCN32(o) -#define SCNuLEAST32 __SCN32(u) -#define SCNxLEAST32 __SCN32(x) - - -#define PRIdFAST32 __PRI32(d) -#define PRIiFAST32 __PRI32(i) -#define PRIoFAST32 __PRI32(o) -#define PRIuFAST32 __PRI32(u) -#define PRIxFAST32 __PRI32(x) -#define PRIXFAST32 __PRI32(X) - -#define SCNdFAST32 __SCN32(d) -#define SCNiFAST32 __SCN32(i) -#define SCNoFAST32 __SCN32(o) -#define SCNuFAST32 __SCN32(u) -#define SCNxFAST32 __SCN32(x) - - -/* 64-bit types */ -#if __have_long64 -#define __PRI64(x) __STRINGIFY(l##x) -#define __SCN64(x) __STRINGIFY(l##x) -#elif __have_longlong64 -#define __PRI64(x) __STRINGIFY(ll##x) -#define __SCN64(x) __STRINGIFY(ll##x) -#else -#define __PRI64(x) __STRINGIFY(x) -#define __SCN64(x) __STRINGIFY(x) -#endif - -#define PRId64 __PRI64(d) -#define PRIi64 __PRI64(i) -#define PRIo64 __PRI64(o) -#define PRIu64 __PRI64(u) -#define PRIx64 __PRI64(x) -#define PRIX64 __PRI64(X) - -#define SCNd64 __SCN64(d) -#define SCNi64 __SCN64(i) -#define SCNo64 __SCN64(o) -#define SCNu64 __SCN64(u) -#define SCNx64 __SCN64(x) - -#if __int64_t_defined -#define PRIdLEAST64 __PRI64(d) -#define PRIiLEAST64 __PRI64(i) -#define PRIoLEAST64 __PRI64(o) -#define PRIuLEAST64 __PRI64(u) -#define PRIxLEAST64 __PRI64(x) -#define PRIXLEAST64 __PRI64(X) - -#define SCNdLEAST64 __SCN64(d) -#define SCNiLEAST64 __SCN64(i) -#define SCNoLEAST64 __SCN64(o) -#define SCNuLEAST64 __SCN64(u) -#define SCNxLEAST64 __SCN64(x) - - -#define PRIdFAST64 __PRI64(d) -#define PRIiFAST64 __PRI64(i) -#define PRIoFAST64 __PRI64(o) -#define PRIuFAST64 __PRI64(u) -#define PRIxFAST64 __PRI64(x) -#define PRIXFAST64 __PRI64(X) - -#define SCNdFAST64 __SCN64(d) -#define SCNiFAST64 __SCN64(i) -#define SCNoFAST64 __SCN64(o) -#define SCNuFAST64 __SCN64(u) -#define SCNxFAST64 __SCN64(x) -#endif - -/* max-bit types */ -#if __have_long64 -#define __PRIMAX(x) __STRINGIFY(l##x) -#define __SCNMAX(x) __STRINGIFY(l##x) -#elif __have_longlong64 -#define __PRIMAX(x) __STRINGIFY(ll##x) -#define __SCNMAX(x) __STRINGIFY(ll##x) -#else -#define __PRIMAX(x) __STRINGIFY(x) -#define __SCNMAX(x) __STRINGIFY(x) -#endif - -#define PRIdMAX __PRIMAX(d) -#define PRIiMAX __PRIMAX(i) -#define PRIoMAX __PRIMAX(o) -#define PRIuMAX __PRIMAX(u) -#define PRIxMAX __PRIMAX(x) -#define PRIXMAX __PRIMAX(X) - -#define SCNdMAX __SCNMAX(d) -#define SCNiMAX __SCNMAX(i) -#define SCNoMAX __SCNMAX(o) -#define SCNuMAX __SCNMAX(u) -#define SCNxMAX __SCNMAX(x) - -/* ptr types */ -#if defined(_UINTPTR_EQ_ULONGLONG) -# define __PRIPTR(x) __STRINGIFY(ll##x) -# define __SCNPTR(x) __STRINGIFY(ll##x) -#elif defined(_UINTPTR_EQ_ULONG) -# define __PRIPTR(x) __STRINGIFY(l##x) -# define __SCNPTR(x) __STRINGIFY(l##x) -#else -# define __PRIPTR(x) __STRINGIFY(x) -# define __SCNPTR(x) __STRINGIFY(x) -#endif - -#define PRIdPTR __PRIPTR(d) -#define PRIiPTR __PRIPTR(i) -#define PRIoPTR __PRIPTR(o) -#define PRIuPTR __PRIPTR(u) -#define PRIxPTR __PRIPTR(x) -#define PRIXPTR __PRIPTR(X) - -#define SCNdPTR __SCNPTR(d) -#define SCNiPTR __SCNPTR(i) -#define SCNoPTR __SCNPTR(o) -#define SCNuPTR __SCNPTR(u) -#define SCNxPTR __SCNPTR(x) - - -typedef struct { - intmax_t quot; - intmax_t rem; -} imaxdiv_t; - -#ifdef __cplusplus -extern "C" { -#endif - -extern intmax_t imaxabs(intmax_t j); -extern imaxdiv_t imaxdiv(intmax_t numer, intmax_t denomer); -extern intmax_t strtoimax(const char *__restrict, char **__restrict, int); -extern uintmax_t strtoumax(const char *__restrict, char **__restrict, int); -extern intmax_t wcstoimax(const wchar_t *__restrict, wchar_t **__restrict, int); -extern uintmax_t wcstoumax(const wchar_t *__restrict, wchar_t **__restrict, int); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/components/newlib/include/langinfo.h b/components/newlib/include/langinfo.h deleted file mode 100644 index 9040adeff5..0000000000 --- a/components/newlib/include/langinfo.h +++ /dev/null @@ -1,316 +0,0 @@ -/*- - * Copyright (c) 2001 Alexey Zelkin - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. - * - * $FreeBSD: src/include/langinfo.h,v 1.5 2002/03/23 17:24:53 imp Exp $ - */ - -#ifndef _LANGINFO_H_ -#define _LANGINFO_H_ - -#include -#include -#include - -typedef int nl_item; - -enum __nl_item -{ - /* POSIX and BSD defined items have to stick to the original values - to maintain backward compatibility. */ - _NL_CTYPE_CODESET_NAME = 0, /* codeset name */ -#define CODESET _NL_CTYPE_CODESET_NAME - D_T_FMT, /* string for formatting date and time */ -#define D_T_FMT D_T_FMT - D_FMT, /* date format string */ -#define D_FMT D_FMT - T_FMT, /* time format string */ -#define T_FMT T_FMT - T_FMT_AMPM, /* a.m. or p.m. time formatting string */ -#define T_FMT_AMPM T_FMT_AMPM - AM_STR, /* Ante Meridian affix */ -#define AM_STR AM_STR - PM_STR, /* Post Meridian affix */ -#define PM_STR PM_STR - -/* week day names */ - DAY_1, -#define DAY_1 DAY_1 - DAY_2, -#define DAY_2 DAY_2 - DAY_3, -#define DAY_3 DAY_3 - DAY_4, -#define DAY_4 DAY_4 - DAY_5, -#define DAY_5 DAY_5 - DAY_6, -#define DAY_6 DAY_6 - DAY_7, -#define DAY_7 DAY_7 - -/* abbreviated week day names */ - ABDAY_1, -#define ABDAY_1 ABDAY_1 - ABDAY_2, -#define ABDAY_2 ABDAY_2 - ABDAY_3, -#define ABDAY_3 ABDAY_3 - ABDAY_4, -#define ABDAY_4 ABDAY_4 - ABDAY_5, -#define ABDAY_5 ABDAY_5 - ABDAY_6, -#define ABDAY_6 ABDAY_6 - ABDAY_7, -#define ABDAY_7 ABDAY_7 - -/* month names */ - MON_1, -#define MON_1 MON_1 - MON_2, -#define MON_2 MON_2 - MON_3, -#define MON_3 MON_3 - MON_4, -#define MON_4 MON_4 - MON_5, -#define MON_5 MON_5 - MON_6, -#define MON_6 MON_6 - MON_7, -#define MON_7 MON_7 - MON_8, -#define MON_8 MON_8 - MON_9, -#define MON_9 MON_9 - MON_10, -#define MON_10 MON_10 - MON_11, -#define MON_11 MON_11 - MON_12, -#define MON_12 MON_12 - -/* abbreviated month names */ - ABMON_1, -#define ABMON_1 ABMON_1 - ABMON_2, -#define ABMON_2 ABMON_2 - ABMON_3, -#define ABMON_3 ABMON_3 - ABMON_4, -#define ABMON_4 ABMON_4 - ABMON_5, -#define ABMON_5 ABMON_5 - ABMON_6, -#define ABMON_6 ABMON_6 - ABMON_7, -#define ABMON_7 ABMON_7 - ABMON_8, -#define ABMON_8 ABMON_8 - ABMON_9, -#define ABMON_9 ABMON_9 - ABMON_10, -#define ABMON_10 ABMON_10 - ABMON_11, -#define ABMON_11 ABMON_11 - ABMON_12, -#define ABMON_12 ABMON_12 - - ERA, /* era description segments */ -#define ERA ERA - ERA_D_FMT, /* era date format string */ -#define ERA_D_FMT ERA_D_FMT - ERA_D_T_FMT, /* era date and time format string */ -#define ERA_D_T_FMT ERA_D_T_FMT - ERA_T_FMT, /* era time format string */ -#define ERA_T_FMT ERA_T_FMT - ALT_DIGITS, /* alternative symbols for digits */ -#define ALT_DIGITS ALT_DIGITS - - RADIXCHAR, /* radix char */ -#define RADIXCHAR RADIXCHAR - THOUSEP, /* separator for thousands */ -#define THOUSEP THOUSEP - - YESEXPR, /* affirmative response expression */ -#define YESEXPR YESEXPR - NOEXPR, /* negative response expression */ -#define NOEXPR NOEXPR - YESSTR, /* affirmative response for yes/no queries */ -#define YESSTR YESSTR - NOSTR, /* negative response for yes/no queries */ -#define NOSTR NOSTR - - CRNCYSTR, /* currency symbol */ -#define CRNCYSTR CRNCYSTR - - D_MD_ORDER, /* month/day order (BSD extension) */ -#define D_MD_ORDER D_MD_ORDER - - _NL_TIME_DATE_FMT = 84, /* date fmt used by date(1) (GNU extension) */ -#define _DATE_FMT _NL_TIME_DATE_FMT - -#ifdef __HAVE_LOCALE_INFO__ - _NL_CTYPE_MB_CUR_MAX, - _NL_MESSAGES_CODESET, - -#ifdef __HAVE_LOCALE_INFO_EXTENDED__ - - /* NOTE: - - Always maintain the order and position of existing entries! - Always append new entry to the list, prior to the definition - of _NL_LOCALE_EXTENDED_LAST_ENTRY. */ - - _NL_LOCALE_EXTENDED_FIRST_ENTRY, - - _NL_CTYPE_OUTDIGITS0_MB, - _NL_CTYPE_OUTDIGITS1_MB, - _NL_CTYPE_OUTDIGITS2_MB, - _NL_CTYPE_OUTDIGITS3_MB, - _NL_CTYPE_OUTDIGITS4_MB, - _NL_CTYPE_OUTDIGITS5_MB, - _NL_CTYPE_OUTDIGITS6_MB, - _NL_CTYPE_OUTDIGITS7_MB, - _NL_CTYPE_OUTDIGITS8_MB, - _NL_CTYPE_OUTDIGITS9_MB, - _NL_CTYPE_OUTDIGITS0_WC, - _NL_CTYPE_OUTDIGITS1_WC, - _NL_CTYPE_OUTDIGITS2_WC, - _NL_CTYPE_OUTDIGITS3_WC, - _NL_CTYPE_OUTDIGITS4_WC, - _NL_CTYPE_OUTDIGITS5_WC, - _NL_CTYPE_OUTDIGITS6_WC, - _NL_CTYPE_OUTDIGITS7_WC, - _NL_CTYPE_OUTDIGITS8_WC, - _NL_CTYPE_OUTDIGITS9_WC, - - _NL_TIME_CODESET, - _NL_TIME_WMON_1, - _NL_TIME_WMON_2, - _NL_TIME_WMON_3, - _NL_TIME_WMON_4, - _NL_TIME_WMON_5, - _NL_TIME_WMON_6, - _NL_TIME_WMON_7, - _NL_TIME_WMON_8, - _NL_TIME_WMON_9, - _NL_TIME_WMON_10, - _NL_TIME_WMON_11, - _NL_TIME_WMON_12, - _NL_TIME_WMONTH_1, - _NL_TIME_WMONTH_2, - _NL_TIME_WMONTH_3, - _NL_TIME_WMONTH_4, - _NL_TIME_WMONTH_5, - _NL_TIME_WMONTH_6, - _NL_TIME_WMONTH_7, - _NL_TIME_WMONTH_8, - _NL_TIME_WMONTH_9, - _NL_TIME_WMONTH_10, - _NL_TIME_WMONTH_11, - _NL_TIME_WMONTH_12, - _NL_TIME_WWDAY_1, - _NL_TIME_WWDAY_2, - _NL_TIME_WWDAY_3, - _NL_TIME_WWDAY_4, - _NL_TIME_WWDAY_5, - _NL_TIME_WWDAY_6, - _NL_TIME_WWDAY_7, - _NL_TIME_WWEEKDAY_1, - _NL_TIME_WWEEKDAY_2, - _NL_TIME_WWEEKDAY_3, - _NL_TIME_WWEEKDAY_4, - _NL_TIME_WWEEKDAY_5, - _NL_TIME_WWEEKDAY_6, - _NL_TIME_WWEEKDAY_7, - _NL_TIME_WT_FMT, - _NL_TIME_WD_FMT, - _NL_TIME_WD_T_FMT, - _NL_TIME_WAM_STR, - _NL_TIME_WPM_STR, - _NL_TIME_WDATE_FMT, - _NL_TIME_WT_FMT_AMPM, - _NL_TIME_WERA, - _NL_TIME_WERA_D_FMT, - _NL_TIME_WERA_D_T_FMT, - _NL_TIME_WERA_T_FMT, - _NL_TIME_WALT_DIGITS, - - _NL_NUMERIC_CODESET, - _NL_NUMERIC_GROUPING, - _NL_NUMERIC_DECIMAL_POINT_WC, - _NL_NUMERIC_THOUSANDS_SEP_WC, - - _NL_MONETARY_INT_CURR_SYMBOL, - _NL_MONETARY_CURRENCY_SYMBOL, - _NL_MONETARY_MON_DECIMAL_POINT, - _NL_MONETARY_MON_THOUSANDS_SEP, - _NL_MONETARY_MON_GROUPING, - _NL_MONETARY_POSITIVE_SIGN, - _NL_MONETARY_NEGATIVE_SIGN, - _NL_MONETARY_INT_FRAC_DIGITS, - _NL_MONETARY_FRAC_DIGITS, - _NL_MONETARY_P_CS_PRECEDES, - _NL_MONETARY_P_SEP_BY_SPACE, - _NL_MONETARY_N_CS_PRECEDES, - _NL_MONETARY_N_SEP_BY_SPACE, - _NL_MONETARY_P_SIGN_POSN, - _NL_MONETARY_N_SIGN_POSN, - _NL_MONETARY_INT_P_CS_PRECEDES, - _NL_MONETARY_INT_P_SEP_BY_SPACE, - _NL_MONETARY_INT_N_CS_PRECEDES, - _NL_MONETARY_INT_N_SEP_BY_SPACE, - _NL_MONETARY_INT_P_SIGN_POSN, - _NL_MONETARY_INT_N_SIGN_POSN, - _NL_MONETARY_CODESET, - _NL_MONETARY_WINT_CURR_SYMBOL, - _NL_MONETARY_WCURRENCY_SYMBOL, - _NL_MONETARY_WMON_DECIMAL_POINT, - _NL_MONETARY_WMON_THOUSANDS_SEP, - _NL_MONETARY_WPOSITIVE_SIGN, - _NL_MONETARY_WNEGATIVE_SIGN, - - _NL_MESSAGES_WYESEXPR, - _NL_MESSAGES_WNOEXPR, - _NL_MESSAGES_WYESSTR, - _NL_MESSAGES_WNOSTR, - - _NL_COLLATE_CODESET, - - /* This MUST be the last entry since it's used to check for an array - index in nl_langinfo(). */ - _NL_LOCALE_EXTENDED_LAST_ENTRY - -#endif /* __HAVE_LOCALE_INFO_EXTENDED__ */ -#endif /* __HAVE_LOCALE_INFO__ */ - -}; - -__BEGIN_DECLS -char *nl_langinfo(nl_item); -__END_DECLS - -#endif /* !_LANGINFO_H_ */ diff --git a/components/newlib/include/libgen.h b/components/newlib/include/libgen.h deleted file mode 100644 index abfab0e5c7..0000000000 --- a/components/newlib/include/libgen.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * libgen.h - defined by XPG4 - */ - -#ifndef _LIBGEN_H_ -#define _LIBGEN_H_ - -#include "_ansi.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -char *_EXFUN(basename, (char *)); -char *_EXFUN(dirname, (char *)); - -#ifdef __cplusplus -} -#endif - -#endif /* _LIBGEN_H_ */ - diff --git a/components/newlib/include/limits.h b/components/newlib/include/limits.h deleted file mode 100644 index 633b44593e..0000000000 --- a/components/newlib/include/limits.h +++ /dev/null @@ -1,146 +0,0 @@ -#ifndef _LIBC_LIMITS_H_ -# define _LIBC_LIMITS_H_ 1 - -#include - -# ifdef _MB_LEN_MAX -# define MB_LEN_MAX _MB_LEN_MAX -# else -# define MB_LEN_MAX 1 -# endif - -/* Maximum number of positional arguments, if _WANT_IO_POS_ARGS. */ -# ifndef NL_ARGMAX -# define NL_ARGMAX 32 -# endif - -/* if do not have #include_next support, then we - have to define the limits here. */ -# if !defined __GNUC__ || __GNUC__ < 2 - -# ifndef _LIMITS_H -# define _LIMITS_H 1 - -# include - -/* Number of bits in a `char'. */ -# undef CHAR_BIT -# define CHAR_BIT 8 - -/* Minimum and maximum values a `signed char' can hold. */ -# undef SCHAR_MIN -# define SCHAR_MIN (-128) -# undef SCHAR_MAX -# define SCHAR_MAX 127 - -/* Maximum value an `unsigned char' can hold. (Minimum is 0). */ -# undef UCHAR_MAX -# define UCHAR_MAX 255 - -/* Minimum and maximum values a `char' can hold. */ -# ifdef __CHAR_UNSIGNED__ -# undef CHAR_MIN -# define CHAR_MIN 0 -# undef CHAR_MAX -# define CHAR_MAX 255 -# else -# undef CHAR_MIN -# define CHAR_MIN (-128) -# undef CHAR_MAX -# define CHAR_MAX 127 -# endif - -/* Minimum and maximum values a `signed short int' can hold. */ -# undef SHRT_MIN -/* For the sake of 16 bit hosts, we may not use -32768 */ -# define SHRT_MIN (-32767-1) -# undef SHRT_MAX -# define SHRT_MAX 32767 - -/* Maximum value an `unsigned short int' can hold. (Minimum is 0). */ -# undef USHRT_MAX -# define USHRT_MAX 65535 - -/* Minimum and maximum values a `signed int' can hold. */ -# ifndef __INT_MAX__ -# define __INT_MAX__ 2147483647 -# endif -# undef INT_MIN -# define INT_MIN (-INT_MAX-1) -# undef INT_MAX -# define INT_MAX __INT_MAX__ - -/* Maximum value an `unsigned int' can hold. (Minimum is 0). */ -# undef UINT_MAX -# define UINT_MAX (INT_MAX * 2U + 1) - -/* Minimum and maximum values a `signed long int' can hold. - (Same as `int'). */ -# ifndef __LONG_MAX__ -# if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) || defined (__sparcv9) -# define __LONG_MAX__ 9223372036854775807L -# else -# define __LONG_MAX__ 2147483647L -# endif /* __alpha__ || sparc64 */ -# endif -# undef LONG_MIN -# define LONG_MIN (-LONG_MAX-1) -# undef LONG_MAX -# define LONG_MAX __LONG_MAX__ - -/* Maximum value an `unsigned long int' can hold. (Minimum is 0). */ -# undef ULONG_MAX -# define ULONG_MAX (LONG_MAX * 2UL + 1) - -# ifndef __LONG_LONG_MAX__ -# define __LONG_LONG_MAX__ 9223372036854775807LL -# endif - -# if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) -/* Minimum and maximum values a `signed long long int' can hold. */ -# undef LLONG_MIN -# define LLONG_MIN (-LLONG_MAX-1) -# undef LLONG_MAX -# define LLONG_MAX __LONG_LONG_MAX__ - -/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */ -# undef ULLONG_MAX -# define ULLONG_MAX (LLONG_MAX * 2ULL + 1) -# endif - -# if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__) -/* Minimum and maximum values a `signed long long int' can hold. */ -# undef LONG_LONG_MIN -# define LONG_LONG_MIN (-LONG_LONG_MAX-1) -# undef LONG_LONG_MAX -# define LONG_LONG_MAX __LONG_LONG_MAX__ - -/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */ -# undef ULONG_LONG_MAX -# define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1) -# endif - -# endif /* _LIMITS_H */ -# endif /* GCC 2. */ - -#endif /* !_LIBC_LIMITS_H_ */ - -#if defined __GNUC__ && !defined _GCC_LIMITS_H_ -/* `_GCC_LIMITS_H_' is what GCC's file defines. */ -# include_next -#endif /* __GNUC__ && !_GCC_LIMITS_H_ */ - -#ifndef _POSIX2_RE_DUP_MAX -/* The maximum number of repeated occurrences of a regular expression - * permitted when using the interval notation `\{M,N\}'. */ -#define _POSIX2_RE_DUP_MAX 255 -#endif /* _POSIX2_RE_DUP_MAX */ - -#ifndef ARG_MAX -#define ARG_MAX 4096 -#endif - -#ifndef PATH_MAX -#define PATH_MAX 1024 -#endif diff --git a/components/newlib/include/locale.h b/components/newlib/include/locale.h deleted file mode 100644 index cbd658e410..0000000000 --- a/components/newlib/include/locale.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - locale.h - Values appropriate for the formatting of monetary and other - numberic quantities. -*/ - -#ifndef _LOCALE_H_ -#define _LOCALE_H_ - -#include "_ansi.h" - -#define __need_NULL -#include - -#define LC_ALL 0 -#define LC_COLLATE 1 -#define LC_CTYPE 2 -#define LC_MONETARY 3 -#define LC_NUMERIC 4 -#define LC_TIME 5 -#define LC_MESSAGES 6 - -_BEGIN_STD_C - -struct lconv -{ - char *decimal_point; - char *thousands_sep; - char *grouping; - char *int_curr_symbol; - char *currency_symbol; - char *mon_decimal_point; - char *mon_thousands_sep; - char *mon_grouping; - char *positive_sign; - char *negative_sign; - char int_frac_digits; - char frac_digits; - char p_cs_precedes; - char p_sep_by_space; - char n_cs_precedes; - char n_sep_by_space; - char p_sign_posn; - char n_sign_posn; - char int_n_cs_precedes; - char int_n_sep_by_space; - char int_n_sign_posn; - char int_p_cs_precedes; - char int_p_sep_by_space; - char int_p_sign_posn; -}; - -#ifndef _REENT_ONLY -char *_EXFUN(setlocale,(int category, const char *locale)); -struct lconv *_EXFUN(localeconv,(void)); -#endif - -struct _reent; -char *_EXFUN(_setlocale_r,(struct _reent *, int category, const char *locale)); -struct lconv *_EXFUN(_localeconv_r,(struct _reent *)); - -_END_STD_C - -#endif /* _LOCALE_H_ */ diff --git a/components/newlib/include/machine/_default_types.h b/components/newlib/include/machine/_default_types.h deleted file mode 100644 index 03bdc523e3..0000000000 --- a/components/newlib/include/machine/_default_types.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * _default_types implementation for xtensa lx106 arch - * - * Simplified version of generic _default_types.h, ignores gcc - * built-in standard types. - */ - -#ifndef _MACHINE__DEFAULT_TYPES_H -#define _MACHINE__DEFAULT_TYPES_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef signed char __int8_t ; -typedef unsigned char __uint8_t ; -#define ___int8_t_defined 1 - -typedef signed short __int16_t; -typedef unsigned short __uint16_t; -#define ___int16_t_defined 1 - -typedef signed int __int32_t; -typedef unsigned int __uint32_t; -#define ___int32_t_defined 1 - -typedef signed long long __int64_t; -typedef unsigned long long __uint64_t; -#define ___int64_t_defined 1 - -typedef __int8_t __int_least8_t; -typedef __uint8_t __uint_least8_t; -#define ___int_least8_t_defined - -typedef __int16_t __int_least16_t; -typedef __uint16_t __uint_least16_t; -#define ___int_least16_t_defined - -typedef __int32_t __int_least32_t; -typedef __uint32_t __uint_least32_t; -#define ___int_least32_t_defined - -typedef __int64_t __int_least64_t; -typedef __uint64_t __uint_least64_t; -#define ___int_least64_t_defined - -typedef __INTPTR_TYPE__ __intptr_t; -typedef __UINTPTR_TYPE__ __uintptr_t; - -#ifdef __cplusplus -} -#endif - -#endif /* _MACHINE__DEFAULT_TYPES_H */ diff --git a/components/newlib/include/machine/_types.h b/components/newlib/include/machine/_types.h deleted file mode 100644 index 17e6d51e3d..0000000000 --- a/components/newlib/include/machine/_types.h +++ /dev/null @@ -1,8 +0,0 @@ -/* - * $Id$ - */ - -#ifndef _MACHINE__TYPES_H -#define _MACHINE__TYPES_H -#include -#endif diff --git a/components/newlib/include/machine/ansi.h b/components/newlib/include/machine/ansi.h deleted file mode 100644 index 737b6d0666..0000000000 --- a/components/newlib/include/machine/ansi.h +++ /dev/null @@ -1 +0,0 @@ -/* dummy header file to support BSD compiler */ diff --git a/components/newlib/include/machine/endian.h b/components/newlib/include/machine/endian.h deleted file mode 100644 index 07ebc8f63a..0000000000 --- a/components/newlib/include/machine/endian.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef __MACHINE_ENDIAN_H__ - -#include - -#ifndef BIG_ENDIAN -#define BIG_ENDIAN 4321 -#endif -#ifndef LITTLE_ENDIAN -#define LITTLE_ENDIAN 1234 -#endif - -#ifndef BYTE_ORDER -#if defined(__IEEE_LITTLE_ENDIAN) || defined(__IEEE_BYTES_LITTLE_ENDIAN) -#define BYTE_ORDER LITTLE_ENDIAN -#else -#define BYTE_ORDER BIG_ENDIAN -#endif -#endif - -#endif /* __MACHINE_ENDIAN_H__ */ diff --git a/components/newlib/include/machine/fastmath.h b/components/newlib/include/machine/fastmath.h deleted file mode 100644 index b13befa228..0000000000 --- a/components/newlib/include/machine/fastmath.h +++ /dev/null @@ -1,100 +0,0 @@ -#ifdef __sysvnecv70_target -double EXFUN(fast_sin,(double)); -double EXFUN(fast_cos,(double)); -double EXFUN(fast_tan,(double)); - -double EXFUN(fast_asin,(double)); -double EXFUN(fast_acos,(double)); -double EXFUN(fast_atan,(double)); - -double EXFUN(fast_sinh,(double)); -double EXFUN(fast_cosh,(double)); -double EXFUN(fast_tanh,(double)); - -double EXFUN(fast_asinh,(double)); -double EXFUN(fast_acosh,(double)); -double EXFUN(fast_atanh,(double)); - -double EXFUN(fast_abs,(double)); -double EXFUN(fast_sqrt,(double)); -double EXFUN(fast_exp2,(double)); -double EXFUN(fast_exp10,(double)); -double EXFUN(fast_expe,(double)); -double EXFUN(fast_log10,(double)); -double EXFUN(fast_log2,(double)); -double EXFUN(fast_loge,(double)); - - -#define sin(x) fast_sin(x) -#define cos(x) fast_cos(x) -#define tan(x) fast_tan(x) -#define asin(x) fast_asin(x) -#define acos(x) fast_acos(x) -#define atan(x) fast_atan(x) -#define sinh(x) fast_sinh(x) -#define cosh(x) fast_cosh(x) -#define tanh(x) fast_tanh(x) -#define asinh(x) fast_asinh(x) -#define acosh(x) fast_acosh(x) -#define atanh(x) fast_atanh(x) -#define abs(x) fast_abs(x) -#define sqrt(x) fast_sqrt(x) -#define exp2(x) fast_exp2(x) -#define exp10(x) fast_exp10(x) -#define expe(x) fast_expe(x) -#define log10(x) fast_log10(x) -#define log2(x) fast_log2(x) -#define loge(x) fast_loge(x) - -#ifdef _HAVE_STDC -/* These functions are in assembler, they really do take floats. This - can only be used with a real ANSI compiler */ - -float EXFUN(fast_sinf,(float)); -float EXFUN(fast_cosf,(float)); -float EXFUN(fast_tanf,(float)); - -float EXFUN(fast_asinf,(float)); -float EXFUN(fast_acosf,(float)); -float EXFUN(fast_atanf,(float)); - -float EXFUN(fast_sinhf,(float)); -float EXFUN(fast_coshf,(float)); -float EXFUN(fast_tanhf,(float)); - -float EXFUN(fast_asinhf,(float)); -float EXFUN(fast_acoshf,(float)); -float EXFUN(fast_atanhf,(float)); - -float EXFUN(fast_absf,(float)); -float EXFUN(fast_sqrtf,(float)); -float EXFUN(fast_exp2f,(float)); -float EXFUN(fast_exp10f,(float)); -float EXFUN(fast_expef,(float)); -float EXFUN(fast_log10f,(float)); -float EXFUN(fast_log2f,(float)); -float EXFUN(fast_logef,(float)); -#define sinf(x) fast_sinf(x) -#define cosf(x) fast_cosf(x) -#define tanf(x) fast_tanf(x) -#define asinf(x) fast_asinf(x) -#define acosf(x) fast_acosf(x) -#define atanf(x) fast_atanf(x) -#define sinhf(x) fast_sinhf(x) -#define coshf(x) fast_coshf(x) -#define tanhf(x) fast_tanhf(x) -#define asinhf(x) fast_asinhf(x) -#define acoshf(x) fast_acoshf(x) -#define atanhf(x) fast_atanhf(x) -#define absf(x) fast_absf(x) -#define sqrtf(x) fast_sqrtf(x) -#define exp2f(x) fast_exp2f(x) -#define exp10f(x) fast_exp10f(x) -#define expef(x) fast_expef(x) -#define log10f(x) fast_log10f(x) -#define log2f(x) fast_log2f(x) -#define logef(x) fast_logef(x) -#endif -/* Override the functions defined in math.h */ -#endif /* __sysvnecv70_target */ - diff --git a/components/newlib/include/machine/ieeefp.h b/components/newlib/include/machine/ieeefp.h deleted file mode 100644 index f11dc05353..0000000000 --- a/components/newlib/include/machine/ieeefp.h +++ /dev/null @@ -1,434 +0,0 @@ -#ifndef __IEEE_BIG_ENDIAN -#ifndef __IEEE_LITTLE_ENDIAN - -/* This file can define macros to choose variations of the IEEE float - format: - - _FLT_LARGEST_EXPONENT_IS_NORMAL - - Defined if the float format uses the largest exponent for finite - numbers rather than NaN and infinity representations. Such a - format cannot represent NaNs or infinities at all, but it's FLT_MAX - is twice the IEEE value. - - _FLT_NO_DENORMALS - - Defined if the float format does not support IEEE denormals. Every - float with a zero exponent is taken to be a zero representation. - - ??? At the moment, there are no equivalent macros above for doubles and - the macros are not fully supported by --enable-newlib-hw-fp. - - __IEEE_BIG_ENDIAN - - Defined if the float format is big endian. This is mutually exclusive - with __IEEE_LITTLE_ENDIAN. - - __IEEE_LITTLE_ENDIAN - - Defined if the float format is little endian. This is mutually exclusive - with __IEEE_BIG_ENDIAN. - - Note that one of __IEEE_BIG_ENDIAN or __IEEE_LITTLE_ENDIAN must be specified for a - platform or error will occur. - - __IEEE_BYTES_LITTLE_ENDIAN - - This flag is used in conjunction with __IEEE_BIG_ENDIAN to describe a situation - whereby multiple words of an IEEE floating point are in big endian order, but the - words themselves are little endian with respect to the bytes. - - _DOUBLE_IS_32BITS - - This is used on platforms that support double by using the 32-bit IEEE - float type. - - _FLOAT_ARG - - This represents what type a float arg is passed as. It is used when the type is - not promoted to double. - -*/ - -#if (defined(__arm__) || defined(__thumb__)) && !defined(__MAVERICK__) -/* ARM traditionally used big-endian words; and within those words the - byte ordering was big or little endian depending upon the target. - Modern floating-point formats are naturally ordered; in this case - __VFP_FP__ will be defined, even if soft-float. */ -#ifdef __VFP_FP__ -# ifdef __ARMEL__ -# define __IEEE_LITTLE_ENDIAN -# else -# define __IEEE_BIG_ENDIAN -# endif -#else -# define __IEEE_BIG_ENDIAN -# ifdef __ARMEL__ -# define __IEEE_BYTES_LITTLE_ENDIAN -# endif -#endif -#endif - -#if defined (__aarch64__) -#if defined (__AARCH64EL__) -#define __IEEE_LITTLE_ENDIAN -#else -#define __IEEE_BIG_ENDIAN -#endif -#endif - -#ifdef __epiphany__ -#define __IEEE_LITTLE_ENDIAN -#define Sudden_Underflow 1 -#endif - -#ifdef __hppa__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __nds32__ -#ifdef __big_endian__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __SPU__ -#define __IEEE_BIG_ENDIAN - -#define isfinite(__y) \ - (__extension__ ({int __cy; \ - (sizeof (__y) == sizeof (float)) ? (1) : \ - (__cy = fpclassify(__y)) != FP_INFINITE && __cy != FP_NAN;})) - -#define isinf(__x) ((sizeof (__x) == sizeof (float)) ? (0) : __isinfd(__x)) -#define isnan(__x) ((sizeof (__x) == sizeof (float)) ? (0) : __isnand(__x)) - -/* - * Macros for use in ieeefp.h. We can't just define the real ones here - * (like those above) as we have name space issues when this is *not* - * included via generic the ieeefp.h. - */ -#define __ieeefp_isnanf(x) 0 -#define __ieeefp_isinff(x) 0 -#define __ieeefp_finitef(x) 1 -#endif - -#ifdef __sparc__ -#ifdef __LITTLE_ENDIAN_DATA__ -#define __IEEE_LITTLE_ENDIAN -#else -#define __IEEE_BIG_ENDIAN -#endif -#endif - -#if defined(__m68k__) || defined(__mc68000__) -#define __IEEE_BIG_ENDIAN -#endif - -#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__) -#define __IEEE_BIG_ENDIAN -#ifdef __HAVE_SHORT_DOUBLE__ -# define _DOUBLE_IS_32BITS -#endif -#endif - -#if defined (__H8300__) || defined (__H8300H__) || defined (__H8300S__) || defined (__H8500__) || defined (__H8300SX__) -#define __IEEE_BIG_ENDIAN -#define _FLOAT_ARG float -#define _DOUBLE_IS_32BITS -#endif - -#if defined (__xc16x__) || defined (__xc16xL__) || defined (__xc16xS__) -#define __IEEE_LITTLE_ENDIAN -#define _FLOAT_ARG float -#define _DOUBLE_IS_32BITS -#endif - - -#ifdef __sh__ -#ifdef __LITTLE_ENDIAN__ -#define __IEEE_LITTLE_ENDIAN -#else -#define __IEEE_BIG_ENDIAN -#endif -#if defined(__SH2E__) || defined(__SH3E__) || defined(__SH4_SINGLE_ONLY__) || defined(__SH2A_SINGLE_ONLY__) -#define _DOUBLE_IS_32BITS -#endif -#endif - -#ifdef _AM29K -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef _WIN32 -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __i386__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __i960__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __lm32__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __M32R__ -#define __IEEE_BIG_ENDIAN -#endif - -#if defined(_C4x) || defined(_C3x) -#define __IEEE_BIG_ENDIAN -#define _DOUBLE_IS_32BITS -#endif - -#ifdef __TMS320C6X__ -#ifdef _BIG_ENDIAN -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __TIC80__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __MIPSEL__ -#define __IEEE_LITTLE_ENDIAN -#endif -#ifdef __MIPSEB__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __MMIX__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __D30V__ -#define __IEEE_BIG_ENDIAN -#endif - -/* necv70 was __IEEE_LITTLE_ENDIAN. */ - -#ifdef __W65__ -#define __IEEE_LITTLE_ENDIAN -#define _DOUBLE_IS_32BITS -#endif - -#if defined(__Z8001__) || defined(__Z8002__) -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __m88k__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __mn10300__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __mn10200__ -#define __IEEE_LITTLE_ENDIAN -#define _DOUBLE_IS_32BITS -#endif - -#ifdef __v800 -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __v850 -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __D10V__ -#define __IEEE_BIG_ENDIAN -#if __DOUBLE__ == 32 -#define _DOUBLE_IS_32BITS -#endif -#endif - -#ifdef __PPC__ -#if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX) -#define __IEEE_BIG_ENDIAN -#else -#if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(_WIN32) && _WIN32) -#define __IEEE_LITTLE_ENDIAN -#endif -#endif -#endif - -#ifdef __xstormy16__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __arc__ -#ifdef __big_endian__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __CRX__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __fr30__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __mcore__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __mt__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __frv__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __moxie__ -#ifdef __MOXIE_BIG_ENDIAN__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __ia64__ -#ifdef __BIG_ENDIAN__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __AVR__ -#define __IEEE_LITTLE_ENDIAN -#define _DOUBLE_IS_32BITS -#endif - -#if defined(__or1k__) || defined(__OR1K__) || defined(__OR1KND__) -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __IP2K__ -#define __IEEE_BIG_ENDIAN -#define __SMALL_BITFIELDS -#define _DOUBLE_IS_32BITS -#endif - -#ifdef __iq2000__ -#define __IEEE_BIG_ENDIAN -#endif - -#ifdef __MAVERICK__ -#ifdef __ARMEL__ -# define __IEEE_LITTLE_ENDIAN -#else /* must be __ARMEB__ */ -# define __IEEE_BIG_ENDIAN -#endif /* __ARMEL__ */ -#endif /* __MAVERICK__ */ - -#ifdef __m32c__ -#define __IEEE_LITTLE_ENDIAN -#define __SMALL_BITFIELDS -#endif - -#ifdef __CRIS__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __BFIN__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __x86_64__ -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifdef __mep__ -#ifdef __LITTLE_ENDIAN__ -#define __IEEE_LITTLE_ENDIAN -#else -#define __IEEE_BIG_ENDIAN -#endif -#endif - -#ifdef __MICROBLAZE__ -#ifndef __MICROBLAZEEL__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif -#endif - -#ifdef __MSP430__ -#define __IEEE_LITTLE_ENDIAN -#define __SMALL_BITFIELDS /* 16 Bit INT */ -#endif - -#ifdef __RL78__ -#define __IEEE_LITTLE_ENDIAN -#define __SMALL_BITFIELDS /* 16 Bit INT */ -#ifndef __RL78_64BIT_DOUBLES__ -#define _DOUBLE_IS_32BITS -#endif -#endif - -#ifdef __RX__ - -#ifdef __RX_BIG_ENDIAN__ -#define __IEEE_BIG_ENDIAN -#else -#define __IEEE_LITTLE_ENDIAN -#endif - -#ifndef __RX_64BIT_DOUBLES__ -#define _DOUBLE_IS_32BITS -#endif - -#ifdef __RX_16BIT_INTS__ -#define __SMALL_BITFIELDS -#endif - -#endif - -#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__)) -#define __IEEE_LITTLE_ENDIAN -#define __SMALL_BITFIELDS /* 16 Bit INT */ -#endif - -#ifdef __NIOS2__ -# ifdef __nios2_big_endian__ -# define __IEEE_BIG_ENDIAN -# else -# define __IEEE_LITTLE_ENDIAN -# endif -#endif - -#if (defined(__XTENSA__)) -# ifdef __XTENSA_EB__ -# define __IEEE_BIG_ENDIAN -# else -# define __IEEE_LITTLE_ENDIAN -# endif -#endif - -#ifndef __IEEE_BIG_ENDIAN -#ifndef __IEEE_LITTLE_ENDIAN -#error Endianess not declared!! -#endif /* not __IEEE_LITTLE_ENDIAN */ -#endif /* not __IEEE_BIG_ENDIAN */ - -#endif /* not __IEEE_LITTLE_ENDIAN */ -#endif /* not __IEEE_BIG_ENDIAN */ - diff --git a/components/newlib/include/machine/malloc.h b/components/newlib/include/machine/malloc.h deleted file mode 100644 index fdada9ed7f..0000000000 --- a/components/newlib/include/machine/malloc.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _MACHMALLOC_H_ -#define _MACHMALLOC_H_ - -/* place holder so platforms may add malloc.h extensions */ - -#endif /* _MACHMALLOC_H_ */ - - diff --git a/components/newlib/include/machine/param.h b/components/newlib/include/machine/param.h deleted file mode 100644 index bdf8bf70f5..0000000000 --- a/components/newlib/include/machine/param.h +++ /dev/null @@ -1 +0,0 @@ -/* Place holder for machine-specific param.h. */ diff --git a/components/newlib/include/machine/setjmp-dj.h b/components/newlib/include/machine/setjmp-dj.h deleted file mode 100644 index 6ca5e65269..0000000000 --- a/components/newlib/include/machine/setjmp-dj.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 1991 DJ Delorie - * All rights reserved. - * - * Redistribution, modification, and use in source and binary forms is permitted - * provided that the above copyright notice and following paragraph are - * duplicated in all such forms. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* Modified to use SETJMP_DJ_H rather than SETJMP_H to avoid - conflicting with setjmp.h. Ian Taylor, Cygnus support, April, - 1993. */ - -#ifndef _SETJMP_DJ_H_ -#define _SETJMP_DJ_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - unsigned long eax; - unsigned long ebx; - unsigned long ecx; - unsigned long edx; - unsigned long esi; - unsigned long edi; - unsigned long ebp; - unsigned long esp; - unsigned long eip; -} jmp_buf[1]; - -extern int setjmp(jmp_buf); -extern void longjmp(jmp_buf, int); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/components/newlib/include/machine/setjmp.h b/components/newlib/include/machine/setjmp.h deleted file mode 100644 index 9f9d9e49b5..0000000000 --- a/components/newlib/include/machine/setjmp.h +++ /dev/null @@ -1,453 +0,0 @@ - -_BEGIN_STD_C - -#if defined(__or1k__) || defined(__or1knd__) -#define _JBLEN 31 /* 32 GPRs - r0 */ -#define _JBTYPE unsigned long -#endif - -#if defined(__arm__) || defined(__thumb__) -/* - * All callee preserved registers: - * v1 - v7, fp, ip, sp, lr, f4, f5, f6, f7 - */ -#define _JBLEN 23 -#endif - -#if defined(__aarch64__) -#define _JBLEN 22 -#define _JBTYPE long long -#endif - -#if defined(__AVR__) -#define _JBLEN 24 -#endif - -#ifdef __sparc__ -/* - * onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext). - * All else recovered by under/over(flow) handling. - */ -#define _JBLEN 13 -#endif - -#ifdef __BFIN__ -#define _JBLEN 40 -#endif - -#ifdef __epiphany__ -/* All callee preserved registers: r4-r10,fp, sp, lr,r15, r32-r39 */ -#define _JBTYPE long long -#define _JBLEN 10 -#endif - -/* necv70 was 9 as well. */ - -#if defined(__m68k__) || defined(__mc68000__) -/* - * onsstack,sigmask,sp,pc,psl,d2-d7,a2-a6, - * fp2-fp7 for 68881. - * All else recovered by under/over(flow) handling. - */ -#define _JBLEN 34 -#endif - -#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__) -/* - * D, X, Y are not saved. - * Only take into account the pseudo soft registers (max 32). - */ -#define _JBLEN 32 -#endif - -#ifdef __nds32__ -/* 17 words for GPRs, - 1 word for $fpcfg.freg and 30 words for FPUs - Reserved 2 words for aligement-adjustment. When storeing double-precision - floating-point register into memory, the address has to be - double-word-aligned. - Check libc/machine/nds32/setjmp.S for more information. */ -#if __NDS32_EXT_FPU_SP__ || __NDS32_EXT_FPU_DP__ -#define _JBLEN 50 -#else -#define _JBLEN 18 -#endif -#endif - -#if defined(__Z8001__) || defined(__Z8002__) -/* 16 regs + pc */ -#define _JBLEN 20 -#endif - -#ifdef _AM29K -/* - * onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext). - * All else recovered by under/over(flow) handling. - */ -#define _JBLEN 9 -#endif - -#ifdef __i386__ -# if defined(__CYGWIN__) && !defined (_JBLEN) -# define _JBLEN (13 * 4) -# elif defined(__unix__) || defined(__rtems__) -# define _JBLEN 9 -# else -# include "setjmp-dj.h" -# endif -#endif - -#ifdef __x86_64__ -# ifdef __CYGWIN__ -# define _JBTYPE long -# define _JBLEN 32 -# else -# define _JBTYPE long long -# define _JBLEN 8 -# endif -#endif - -#ifdef __i960__ -#define _JBLEN 35 -#endif - -#ifdef __M32R__ -/* Only 8 words are currently needed. 10 gives us some slop if we need - to expand. */ -#define _JBLEN 10 -#endif - -#ifdef __mips__ -# if defined(__mips64) -# define _JBTYPE long long -# endif -# ifdef __mips_soft_float -# define _JBLEN 11 -# else -# define _JBLEN 23 -# endif -#endif - -#ifdef __m88000__ -#define _JBLEN 21 -#endif - -#ifdef __H8300__ -#define _JBLEN 5 -#define _JBTYPE int -#endif - -#ifdef __H8300H__ -/* same as H8/300 but registers are twice as big */ -#define _JBLEN 5 -#define _JBTYPE long -#endif - -#if defined (__H8300S__) || defined (__H8300SX__) -/* same as H8/300 but registers are twice as big */ -#define _JBLEN 5 -#define _JBTYPE long -#endif - -#ifdef __H8500__ -#define _JBLEN 4 -#endif - -#ifdef __sh__ -#if __SH5__ -#define _JBLEN 50 -#define _JBTYPE long long -#else -#define _JBLEN 20 -#endif /* __SH5__ */ -#endif - -#ifdef __v800 -#define _JBLEN 28 -#endif - -#ifdef __PPC__ -#ifdef __ALTIVEC__ -#define _JBLEN 64 -#else -#define _JBLEN 32 -#endif -#define _JBTYPE double -#endif - -#ifdef __MICROBLAZE__ -#define _JBLEN 20 -#define _JBTYPE unsigned int -#endif - -#ifdef __hppa__ -/* %r30, %r2-%r18, %r27, pad, %fr12-%fr15. - Note space exists for the FP registers, but they are not - saved. */ -#define _JBLEN 28 -#endif - -#if defined(__mn10300__) || defined(__mn10200__) -#ifdef __AM33_2__ -#define _JBLEN 26 -#else -/* A guess */ -#define _JBLEN 10 -#endif -#endif - -#ifdef __v850 -/* I think our setjmp is saving 15 regs at the moment. Gives us one word - slop if we need to expand. */ -#define _JBLEN 16 -#endif - -#if defined(_C4x) -#define _JBLEN 10 -#endif -#if defined(_C3x) -#define _JBLEN 9 -#endif - -#ifdef __TMS320C6X__ -#define _JBLEN 13 -#endif - -#ifdef __TIC80__ -#define _JBLEN 13 -#endif - -#ifdef __D10V__ -#define _JBLEN 8 -#endif - -#ifdef __D30V__ -#define _JBLEN ((64 /* GPR */ + (2*2) /* ACs */ + 18 /* CRs */) / 2) -#define _JBTYPE double -#endif - -#ifdef __frv__ -#define _JBLEN (68/2) /* room for 68 32-bit regs */ -#define _JBTYPE double -#endif - -#ifdef __moxie__ -#define _JBLEN 16 -#endif - -#ifdef __CRX__ -#define _JBLEN 9 -#endif - -#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__)) -/* r6, r7, r8, r9, r10, r11, r12 (r12L, r12H), - * r13 (r13L, r13H), ra(raL, raH), sp(spL, spH) */ -#define _JBLEN 14 -#define _JBTYPE unsigned short -#endif - -#ifdef __fr30__ -#define _JBLEN 10 -#endif - -#ifdef __iq2000__ -#define _JBLEN 32 -#endif - -#ifdef __mcore__ -#define _JBLEN 16 -#endif - -#ifdef __MMIX__ -/* Using a layout compatible with GCC's built-in. */ -#define _JBLEN 5 -#define _JBTYPE unsigned long -#endif - -#ifdef __mt__ -#define _JBLEN 16 -#endif - -#ifdef __SPU__ -#define _JBLEN 50 -#define _JBTYPE __vector signed int -#endif - -#ifdef __xstormy16__ -/* 4 GPRs plus SP plus PC. */ -#define _JBLEN 8 -#endif - -#ifdef __XTENSA__ -#if __XTENSA_WINDOWED_ABI__ - -/* The jmp_buf structure for Xtensa windowed ABI holds the following - (where "proc" is the procedure that calls setjmp): 4-12 registers - from the window of proc, the 4 words from the save area at proc's $sp - (in case a subsequent alloca in proc moves $sp), and the return - address within proc. Everything else is saved on the stack in the - normal save areas. The jmp_buf structure is: - - struct jmp_buf { - int regs[12]; - int save[4]; - void *return_address; - } - - See the setjmp code for details. */ - -#define _JBLEN 17 /* 12 + 4 + 1 */ - -#else /* __XTENSA_CALL0_ABI__ */ - -#define _JBLEN 6 /* a0, a1, a12, a13, a14, a15 */ - -#endif /* __XTENSA_CALL0_ABI__ */ -#endif /* __XTENSA__ */ - -#ifdef __mep__ -/* 16 GPRs, pc, hi, lo */ -#define _JBLEN 19 -#endif - -#ifdef __CRIS__ -#define _JBLEN 18 -#endif - -#ifdef __lm32__ -#define _JBLEN 19 -#endif - -#ifdef __m32c__ -#if defined(__r8c_cpu__) || defined(__m16c_cpu__) -#define _JBLEN (22/2) -#else -#define _JBLEN (34/2) -#endif -#define _JBTYPE unsigned short -#endif /* __m32c__ */ - -#ifdef __MSP430__ -#define _JBLEN 9 - -#ifdef __MSP430X_LARGE__ -#define _JBTYPE unsigned long -#else -#define _JBTYPE unsigned short -#endif -#endif - -#ifdef __RL78__ -/* Three banks of registers, SP, CS, ES, PC */ -#define _JBLEN (8*3+8) -#define _JBTYPE unsigned char -#endif - -/* - * There are two versions of setjmp()/longjmp(): - * 1) Compiler (gcc) built-in versions. - * 2) Function-call versions. - * - * The built-in versions are used most of the time. When used, gcc replaces - * calls to setjmp()/longjmp() with inline assembly code. The built-in - * versions save/restore a variable number of registers. - - * _JBLEN is set to 40 to be ultra-safe with the built-in versions. - * It only needs to be 12 for the function-call versions - * but this data structure is used by both versions. - */ -#ifdef __NIOS2__ -#define _JBLEN 40 -#define _JBTYPE unsigned long -#endif - -#ifdef __RX__ -#define _JBLEN 0x44 -#endif - -#ifdef _JBLEN -#ifdef _JBTYPE -typedef _JBTYPE jmp_buf[_JBLEN]; -#else -typedef int jmp_buf[_JBLEN]; -#endif -#endif - -_END_STD_C - -#if defined(__CYGWIN__) || defined(__rtems__) -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* POSIX sigsetjmp/siglongjmp macros */ -#ifdef _JBTYPE -typedef _JBTYPE sigjmp_buf[_JBLEN+1+((sizeof (_JBTYPE) + sizeof (sigset_t) - 1) - /sizeof (_JBTYPE))]; -#else -typedef int sigjmp_buf[_JBLEN+1+(sizeof (sigset_t)/sizeof (int))]; -#endif - -#define _SAVEMASK _JBLEN -#define _SIGMASK (_JBLEN+1) - -#ifdef __CYGWIN__ -# define _CYGWIN_WORKING_SIGSETJMP -#endif - -#ifdef _POSIX_THREADS -#define __SIGMASK_FUNC pthread_sigmask -#else -#define __SIGMASK_FUNC sigprocmask -#endif - -#if defined(__GNUC__) - -#define sigsetjmp(env, savemask) \ - __extension__ \ - ({ \ - sigjmp_buf *_sjbuf = &(env); \ - ((*_sjbuf)[_SAVEMASK] = savemask,\ - __SIGMASK_FUNC (SIG_SETMASK, 0, (sigset_t *)((*_sjbuf) + _SIGMASK)),\ - setjmp (*_sjbuf)); \ - }) - -#define siglongjmp(env, val) \ - __extension__ \ - ({ \ - sigjmp_buf *_sjbuf = &(env); \ - ((((*_sjbuf)[_SAVEMASK]) ? \ - __SIGMASK_FUNC (SIG_SETMASK, (sigset_t *)((*_sjbuf) + _SIGMASK), 0)\ - : 0), \ - longjmp (*_sjbuf, val)); \ - }) - -#else /* !__GNUC__ */ - -#define sigsetjmp(env, savemask) ((env)[_SAVEMASK] = savemask,\ - __SIGMASK_FUNC (SIG_SETMASK, 0, (sigset_t *) ((env) + _SIGMASK)),\ - setjmp (env)) - -#define siglongjmp(env, val) ((((env)[_SAVEMASK])?\ - __SIGMASK_FUNC (SIG_SETMASK, (sigset_t *) ((env) + _SIGMASK), 0):0),\ - longjmp (env, val)) - -#endif - -/* POSIX _setjmp/_longjmp, maintained for XSI compatibility. These - are equivalent to sigsetjmp/siglongjmp when not saving the signal mask. - New applications should use sigsetjmp/siglongjmp instead. */ -#ifdef __CYGWIN__ -extern void _longjmp(jmp_buf, int); -extern int _setjmp(jmp_buf); -#else -#define _setjmp(env) sigsetjmp ((env), 0) -#define _longjmp(env, val) siglongjmp ((env), (val)) -#endif - -#ifdef __cplusplus -} -#endif -#endif /* __CYGWIN__ or __rtems__ */ diff --git a/components/newlib/include/machine/stdlib.h b/components/newlib/include/machine/stdlib.h deleted file mode 100644 index fa3f3a1390..0000000000 --- a/components/newlib/include/machine/stdlib.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _MACHSTDLIB_H_ -#define _MACHSTDLIB_H_ - -/* place holder so platforms may add stdlib.h extensions */ - -#endif /* _MACHSTDLIB_H_ */ - - diff --git a/components/newlib/include/machine/termios.h b/components/newlib/include/machine/termios.h deleted file mode 100644 index 41fd459385..0000000000 --- a/components/newlib/include/machine/termios.h +++ /dev/null @@ -1 +0,0 @@ -#define __MAX_BAUD B4000000 diff --git a/components/newlib/include/machine/time.h b/components/newlib/include/machine/time.h deleted file mode 100644 index 06e2ccffb1..0000000000 --- a/components/newlib/include/machine/time.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _MACHTIME_H_ -#define _MACHTIME_H_ - -#if defined(__rtems__) -#define _CLOCKS_PER_SEC_ sysconf(_SC_CLK_TCK) -#else /* !__rtems__ */ -#if defined(__aarch64__) || defined(__arm__) || defined(__thumb__) -#define _CLOCKS_PER_SEC_ 100 -#endif -#endif /* !__rtems__ */ - -#ifdef __SPU__ -#include -int nanosleep (const struct timespec *, struct timespec *); -#endif - -#endif /* _MACHTIME_H_ */ - - diff --git a/components/newlib/include/machine/types.h b/components/newlib/include/machine/types.h deleted file mode 100644 index 40a75faa5b..0000000000 --- a/components/newlib/include/machine/types.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef _MACHTYPES_H_ -#define _MACHTYPES_H_ - -/* - * The following section is RTEMS specific and is needed to more - * closely match the types defined in the BSD machine/types.h. - * This is needed to let the RTEMS/BSD TCP/IP stack compile. - */ -#if defined(__rtems__) -#include -#endif - -#define _CLOCK_T_ unsigned long /* clock() */ -#define _TIME_T_ long /* time() */ -#define _CLOCKID_T_ unsigned long -#define _TIMER_T_ unsigned long - -#ifndef _HAVE_SYSTYPES -typedef long int __off_t; -typedef int __pid_t; -#ifdef __GNUC__ -__extension__ typedef long long int __loff_t; -#else -typedef long int __loff_t; -#endif -#endif - -#endif /* _MACHTYPES_H_ */ - - diff --git a/components/newlib/include/malloc.h b/components/newlib/include/malloc.h deleted file mode 100644 index 41b5efdc0a..0000000000 --- a/components/newlib/include/malloc.h +++ /dev/null @@ -1,169 +0,0 @@ -/* malloc.h -- header file for memory routines. */ - -#ifndef _INCLUDE_MALLOC_H_ -#define _INCLUDE_MALLOC_H_ - -#include <_ansi.h> -#include - -#define __need_size_t -#include - -/* include any machine-specific extensions */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* This version of struct mallinfo must match the one in - libc/stdlib/mallocr.c. */ - -struct mallinfo { - size_t arena; /* total space allocated from system */ - size_t ordblks; /* number of non-inuse chunks */ - size_t smblks; /* unused -- always zero */ - size_t hblks; /* number of mmapped regions */ - size_t hblkhd; /* total space in mmapped regions */ - size_t usmblks; /* unused -- always zero */ - size_t fsmblks; /* unused -- always zero */ - size_t uordblks; /* total allocated space */ - size_t fordblks; /* total non-inuse space */ - size_t keepcost; /* top-most, releasable (via malloc_trim) space */ -}; - -/* The routines. */ - -extern _PTR malloc _PARAMS ((size_t)); -#ifdef __CYGWIN__ -#undef _malloc_r -#define _malloc_r(r, s) malloc (s) -#else -extern _PTR _malloc_r _PARAMS ((struct _reent *, size_t)); -#endif - -extern _VOID free _PARAMS ((_PTR)); -#ifdef __CYGWIN__ -#undef _free_r -#define _free_r(r, p) free (p) -#else -extern _VOID _free_r _PARAMS ((struct _reent *, _PTR)); -#endif - -extern _PTR realloc _PARAMS ((_PTR, size_t)); -#ifdef __CYGWIN__ -#undef _realloc_r -#define _realloc_r(r, p, s) realloc (p, s) -#else -extern _PTR _realloc_r _PARAMS ((struct _reent *, _PTR, size_t)); -#endif - -extern _PTR calloc _PARAMS ((size_t, size_t)); -#ifdef __CYGWIN__ -#undef _calloc_r -#define _calloc_r(r, s1, s2) calloc (s1, s2); -#else -extern _PTR _calloc_r _PARAMS ((struct _reent *, size_t, size_t)); -#endif - -extern _PTR memalign _PARAMS ((size_t, size_t)); -#ifdef __CYGWIN__ -#undef _memalign_r -#define _memalign_r(r, s1, s2) memalign (s1, s2); -#else -extern _PTR _memalign_r _PARAMS ((struct _reent *, size_t, size_t)); -#endif - -extern struct mallinfo mallinfo _PARAMS ((void)); -#ifdef __CYGWIN__ -#undef _mallinfo_r -#define _mallinfo_r(r) mallinfo () -#else -extern struct mallinfo _mallinfo_r _PARAMS ((struct _reent *)); -#endif - -extern void malloc_stats _PARAMS ((void)); -#ifdef __CYGWIN__ -#undef _malloc_stats_r -#define _malloc_stats_r(r) malloc_stats () -#else -extern void _malloc_stats_r _PARAMS ((struct _reent *)); -#endif - -extern int mallopt _PARAMS ((int, int)); -#ifdef __CYGWIN__ -#undef _mallopt_r -#define _mallopt_r(i1, i2) mallopt (i1, i2) -#else -extern int _mallopt_r _PARAMS ((struct _reent *, int, int)); -#endif - -extern size_t malloc_usable_size _PARAMS ((_PTR)); -#ifdef __CYGWIN__ -#undef _malloc_usable_size_r -#define _malloc_usable_size_r(r, p) malloc_usable_size (p) -#else -extern size_t _malloc_usable_size_r _PARAMS ((struct _reent *, _PTR)); -#endif - -/* These aren't too useful on an embedded system, but we define them - anyhow. */ - -extern _PTR valloc _PARAMS ((size_t)); -#ifdef __CYGWIN__ -#undef _valloc_r -#define _valloc_r(r, s) valloc (s) -#else -extern _PTR _valloc_r _PARAMS ((struct _reent *, size_t)); -#endif - -extern _PTR pvalloc _PARAMS ((size_t)); -#ifdef __CYGWIN__ -#undef _pvalloc_r -#define _pvalloc_r(r, s) pvalloc (s) -#else -extern _PTR _pvalloc_r _PARAMS ((struct _reent *, size_t)); -#endif - -extern int malloc_trim _PARAMS ((size_t)); -#ifdef __CYGWIN__ -#undef _malloc_trim_r -#define _malloc_trim_r(r, s) malloc_trim (s) -#else -extern int _malloc_trim_r _PARAMS ((struct _reent *, size_t)); -#endif - -/* A compatibility routine for an earlier version of the allocator. */ - -extern _VOID mstats _PARAMS ((char *)); -#ifdef __CYGWIN__ -#undef _mstats_r -#define _mstats_r(r, p) mstats (p) -#else -extern _VOID _mstats_r _PARAMS ((struct _reent *, char *)); -#endif - -/* SVID2/XPG mallopt options */ - -#define M_MXFAST 1 /* UNUSED in this malloc */ -#define M_NLBLKS 2 /* UNUSED in this malloc */ -#define M_GRAIN 3 /* UNUSED in this malloc */ -#define M_KEEP 4 /* UNUSED in this malloc */ - -/* mallopt options that actually do something */ - -#define M_TRIM_THRESHOLD -1 -#define M_TOP_PAD -2 -#define M_MMAP_THRESHOLD -3 -#define M_MMAP_MAX -4 - -#ifndef __CYGWIN__ -/* Some systems provide this, so do too for compatibility. */ -extern void cfree _PARAMS ((_PTR)); -#endif /* __CYGWIN__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* _INCLUDE_MALLOC_H_ */ diff --git a/components/newlib/include/math.h b/components/newlib/include/math.h deleted file mode 100644 index d16ce30741..0000000000 --- a/components/newlib/include/math.h +++ /dev/null @@ -1,615 +0,0 @@ -#ifndef _MATH_H_ - -#define _MATH_H_ - -#include -#include -#include "_ansi.h" - -_BEGIN_STD_C - -/* __dmath, __fmath, and __ldmath are only here for backwards compatibility - * in case any code used them. They are no longer used by Newlib, itself, - * other than legacy. */ -union __dmath -{ - double d; - __ULong i[2]; -}; - -union __fmath -{ - float f; - __ULong i[1]; -}; - -#if defined(_HAVE_LONG_DOUBLE) -union __ldmath -{ - long double ld; - __ULong i[4]; -}; -#endif - -/* Natural log of 2 */ -#define _M_LN2 0.693147180559945309417 - -#if __GNUC_PREREQ (3, 3) - /* gcc >= 3.3 implicitly defines builtins for HUGE_VALx values. */ - -# ifndef HUGE_VAL -# define HUGE_VAL (__builtin_huge_val()) -# endif - -# ifndef HUGE_VALF -# define HUGE_VALF (__builtin_huge_valf()) -# endif - -# ifndef HUGE_VALL -# define HUGE_VALL (__builtin_huge_vall()) -# endif - -# ifndef INFINITY -# define INFINITY (__builtin_inff()) -# endif - -# ifndef NAN -# define NAN (__builtin_nanf("")) -# endif - -#else /* !gcc >= 3.3 */ - - /* No builtins. Use fixed defines instead. (All 3 HUGE plus the INFINITY - * and NAN macros are required to be constant expressions. Using a variable-- - * even a static const--does not meet this requirement, as it cannot be - * evaluated at translation time.) - * The infinities are done using numbers that are far in excess of - * something that would be expected to be encountered in a floating-point - * implementation. (A more certain way uses values from float.h, but that is - * avoided because system includes are not supposed to include each other.) - * This method might produce warnings from some compilers. (It does in - * newer GCCs, but not for ones that would hit this #else.) If this happens, - * please report details to the Newlib mailing list. */ - - #ifndef HUGE_VAL - #define HUGE_VAL (1.0e999999999) - #endif - - #ifndef HUGE_VALF - #define HUGE_VALF (1.0e999999999F) - #endif - - #if !defined(HUGE_VALL) && defined(_HAVE_LONG_DOUBLE) - #define HUGE_VALL (1.0e999999999L) - #endif - - #if !defined(INFINITY) - #define INFINITY (HUGE_VALF) - #endif - - #if !defined(NAN) - #if defined(__GNUC__) && defined(__cplusplus) - /* Exception: older g++ versions warn about the divide by 0 used in the - * normal case (even though older gccs do not). This trick suppresses the - * warning, but causes errors for plain gcc, so is only used in the one - * special case. */ - static const union { __ULong __i[1]; float __d; } __Nanf = {0x7FC00000}; - #define NAN (__Nanf.__d) - #else - #define NAN (0.0F/0.0F) - #endif - #endif - -#endif /* !gcc >= 3.3 */ - -/* Reentrant ANSI C functions. */ - -#ifndef __math_68881 -extern double atan _PARAMS((double)); -extern double cos _PARAMS((double)); -extern double sin _PARAMS((double)); -extern double tan _PARAMS((double)); -extern double tanh _PARAMS((double)); -extern double frexp _PARAMS((double, int *)); -extern double modf _PARAMS((double, double *)); -extern double ceil _PARAMS((double)); -extern double fabs _PARAMS((double)); -extern double floor _PARAMS((double)); -#endif /* ! defined (__math_68881) */ - -/* Non reentrant ANSI C functions. */ - -#ifndef _REENT_ONLY -#ifndef __math_68881 -extern double acos _PARAMS((double)); -extern double asin _PARAMS((double)); -extern double atan2 _PARAMS((double, double)); -extern double cosh _PARAMS((double)); -extern double sinh _PARAMS((double)); -extern double exp _PARAMS((double)); -extern double ldexp _PARAMS((double, int)); -extern double log _PARAMS((double)); -extern double log10 _PARAMS((double)); -extern double pow _PARAMS((double, double)); -extern double sqrt _PARAMS((double)); -extern double fmod _PARAMS((double, double)); -#endif /* ! defined (__math_68881) */ -#endif /* ! defined (_REENT_ONLY) */ - -#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) - -/* ISO C99 types and macros. */ - -/* FIXME: FLT_EVAL_METHOD should somehow be gotten from float.h (which is hard, - * considering that the standard says the includes it defines should not - * include other includes that it defines) and that value used. (This can be - * solved, but autoconf has a bug which makes the solution more difficult, so - * it has been skipped for now.) */ -#if !defined(FLT_EVAL_METHOD) && defined(__FLT_EVAL_METHOD__) - #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ - #define __TMP_FLT_EVAL_METHOD -#endif /* FLT_EVAL_METHOD */ -#if defined FLT_EVAL_METHOD - #if FLT_EVAL_METHOD == 0 - typedef float float_t; - typedef double double_t; - #elif FLT_EVAL_METHOD == 1 - typedef double float_t; - typedef double double_t; - #elif FLT_EVAL_METHOD == 2 - typedef long double float_t; - typedef long double double_t; - #else - /* Implementation-defined. Assume float_t and double_t have been - * defined previously for this configuration (e.g. config.h). */ - #endif -#else - /* Assume basic definitions. */ - typedef float float_t; - typedef double double_t; -#endif -#if defined(__TMP_FLT_EVAL_METHOD) - #undef FLT_EVAL_METHOD -#endif - -#define FP_NAN 0 -#define FP_INFINITE 1 -#define FP_ZERO 2 -#define FP_SUBNORMAL 3 -#define FP_NORMAL 4 - -#ifndef FP_ILOGB0 -# define FP_ILOGB0 (-INT_MAX) -#endif -#ifndef FP_ILOGBNAN -# define FP_ILOGBNAN INT_MAX -#endif - -#ifndef MATH_ERRNO -# define MATH_ERRNO 1 -#endif -#ifndef MATH_ERREXCEPT -# define MATH_ERREXCEPT 2 -#endif -#ifndef math_errhandling -# define math_errhandling MATH_ERRNO -#endif - -extern int __isinff (float x); -extern int __isinfd (double x); -extern int __isnanf (float x); -extern int __isnand (double x); -extern int __fpclassifyf (float x); -extern int __fpclassifyd (double x); -extern int __signbitf (float x); -extern int __signbitd (double x); - -#define fpclassify(__x) \ - ((sizeof(__x) == sizeof(float)) ? __fpclassifyf(__x) : \ - __fpclassifyd(__x)) - -#ifndef isfinite - #define isfinite(__y) \ - (__extension__ ({int __cy = fpclassify(__y); \ - __cy != FP_INFINITE && __cy != FP_NAN;})) -#endif - -/* Note: isinf and isnan were once functions in newlib that took double - * arguments. C99 specifies that these names are reserved for macros - * supporting multiple floating point types. Thus, they are - * now defined as macros. Implementations of the old functions - * taking double arguments still exist for compatibility purposes - * (prototypes for them are in ). */ -#ifndef isinf - #define isinf(y) (fpclassify(y) == FP_INFINITE) -#endif - -#ifndef isnan - #define isnan(y) (fpclassify(y) == FP_NAN) -#endif - -#define isnormal(y) (fpclassify(y) == FP_NORMAL) -#define signbit(__x) \ - ((sizeof(__x) == sizeof(float)) ? __signbitf(__x) : \ - __signbitd(__x)) - -#define isgreater(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x > __y);})) -#define isgreaterequal(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x >= __y);})) -#define isless(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x < __y);})) -#define islessequal(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x <= __y);})) -#define islessgreater(x,y) \ - (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \ - !isunordered(__x,__y) && (__x < __y || __x > __y);})) - -#define isunordered(a,b) \ - (__extension__ ({__typeof__(a) __a = (a); __typeof__(b) __b = (b); \ - fpclassify(__a) == FP_NAN || fpclassify(__b) == FP_NAN;})) - -/* Non ANSI double precision functions. */ - -extern double infinity _PARAMS((void)); -extern double nan _PARAMS((const char *)); -extern int finite _PARAMS((double)); -extern double copysign _PARAMS((double, double)); -extern double logb _PARAMS((double)); -extern int ilogb _PARAMS((double)); - -extern double asinh _PARAMS((double)); -extern double cbrt _PARAMS((double)); -extern double nextafter _PARAMS((double, double)); -extern double rint _PARAMS((double)); -extern double scalbn _PARAMS((double, int)); - -extern double exp2 _PARAMS((double)); -extern double scalbln _PARAMS((double, long int)); -extern double tgamma _PARAMS((double)); -extern double nearbyint _PARAMS((double)); -extern long int lrint _PARAMS((double)); -extern long long int llrint _PARAMS((double)); -extern double round _PARAMS((double)); -extern long int lround _PARAMS((double)); -extern long long int llround _PARAMS((double)); -extern double trunc _PARAMS((double)); -extern double remquo _PARAMS((double, double, int *)); -extern double fdim _PARAMS((double, double)); -extern double fmax _PARAMS((double, double)); -extern double fmin _PARAMS((double, double)); -extern double fma _PARAMS((double, double, double)); - -#ifndef __math_68881 -extern double log1p _PARAMS((double)); -extern double expm1 _PARAMS((double)); -#endif /* ! defined (__math_68881) */ - -#ifndef _REENT_ONLY -extern double acosh _PARAMS((double)); -extern double atanh _PARAMS((double)); -extern double remainder _PARAMS((double, double)); -extern double gamma _PARAMS((double)); -extern double lgamma _PARAMS((double)); -extern double erf _PARAMS((double)); -extern double erfc _PARAMS((double)); -extern double log2 _PARAMS((double)); -#if !defined(__cplusplus) -#define log2(x) (log (x) / _M_LN2) -#endif - -#ifndef __math_68881 -extern double hypot _PARAMS((double, double)); -#endif - -#endif /* ! defined (_REENT_ONLY) */ - -/* Single precision versions of ANSI functions. */ - -extern float atanf _PARAMS((float)); -extern float cosf _PARAMS((float)); -extern float sinf _PARAMS((float)); -extern float tanf _PARAMS((float)); -extern float tanhf _PARAMS((float)); -extern float frexpf _PARAMS((float, int *)); -extern float modff _PARAMS((float, float *)); -extern float ceilf _PARAMS((float)); -extern float fabsf _PARAMS((float)); -extern float floorf _PARAMS((float)); - -#ifndef _REENT_ONLY -extern float acosf _PARAMS((float)); -extern float asinf _PARAMS((float)); -extern float atan2f _PARAMS((float, float)); -extern float coshf _PARAMS((float)); -extern float sinhf _PARAMS((float)); -extern float expf _PARAMS((float)); -extern float ldexpf _PARAMS((float, int)); -extern float logf _PARAMS((float)); -extern float log10f _PARAMS((float)); -extern float powf _PARAMS((float, float)); -extern float sqrtf _PARAMS((float)); -extern float fmodf _PARAMS((float, float)); -#endif /* ! defined (_REENT_ONLY) */ - -/* Other single precision functions. */ - -extern float exp2f _PARAMS((float)); -extern float scalblnf _PARAMS((float, long int)); -extern float tgammaf _PARAMS((float)); -extern float nearbyintf _PARAMS((float)); -extern long int lrintf _PARAMS((float)); -extern long long int llrintf _PARAMS((float)); -extern float roundf _PARAMS((float)); -extern long int lroundf _PARAMS((float)); -extern long long int llroundf _PARAMS((float)); -extern float truncf _PARAMS((float)); -extern float remquof _PARAMS((float, float, int *)); -extern float fdimf _PARAMS((float, float)); -extern float fmaxf _PARAMS((float, float)); -extern float fminf _PARAMS((float, float)); -extern float fmaf _PARAMS((float, float, float)); - -extern float infinityf _PARAMS((void)); -extern float nanf _PARAMS((const char *)); -extern int finitef _PARAMS((float)); -extern float copysignf _PARAMS((float, float)); -extern float logbf _PARAMS((float)); -extern int ilogbf _PARAMS((float)); - -extern float asinhf _PARAMS((float)); -extern float cbrtf _PARAMS((float)); -extern float nextafterf _PARAMS((float, float)); -extern float rintf _PARAMS((float)); -extern float scalbnf _PARAMS((float, int)); -extern float log1pf _PARAMS((float)); -extern float expm1f _PARAMS((float)); - -#ifndef _REENT_ONLY -extern float acoshf _PARAMS((float)); -extern float atanhf _PARAMS((float)); -extern float remainderf _PARAMS((float, float)); -extern float gammaf _PARAMS((float)); -extern float lgammaf _PARAMS((float)); -extern float erff _PARAMS((float)); -extern float erfcf _PARAMS((float)); -extern float log2f _PARAMS((float)); -extern float hypotf _PARAMS((float, float)); -#endif /* ! defined (_REENT_ONLY) */ - -/* On platforms where long double equals double. */ -#ifdef _LDBL_EQ_DBL -/* Reentrant ANSI C functions. */ -#ifndef __math_68881 -extern long double atanl _PARAMS((long double)); -extern long double cosl _PARAMS((long double)); -extern long double sinl _PARAMS((long double)); -extern long double tanl _PARAMS((long double)); -extern long double tanhl _PARAMS((long double)); -extern long double frexpl _PARAMS((long double, int *)); -extern long double modfl _PARAMS((long double, long double *)); -extern long double ceill _PARAMS((long double)); -extern long double fabsl _PARAMS((long double)); -extern long double floorl _PARAMS((long double)); -extern long double log1pl _PARAMS((long double)); -extern long double expm1l _PARAMS((long double)); -#endif /* ! defined (__math_68881) */ -/* Non reentrant ANSI C functions. */ -#ifndef _REENT_ONLY -#ifndef __math_68881 -extern long double acosl _PARAMS((long double)); -extern long double asinl _PARAMS((long double)); -extern long double atan2l _PARAMS((long double, long double)); -extern long double coshl _PARAMS((long double)); -extern long double sinhl _PARAMS((long double)); -extern long double expl _PARAMS((long double)); -extern long double ldexpl _PARAMS((long double, int)); -extern long double logl _PARAMS((long double)); -extern long double log10l _PARAMS((long double)); -extern long double powl _PARAMS((long double, long double)); -extern long double sqrtl _PARAMS((long double)); -extern long double fmodl _PARAMS((long double, long double)); -extern long double hypotl _PARAMS((long double, long double)); -#endif /* ! defined (__math_68881) */ -#endif /* ! defined (_REENT_ONLY) */ -extern long double copysignl _PARAMS((long double, long double)); -extern long double nanl _PARAMS((const char *)); -extern int ilogbl _PARAMS((long double)); -extern long double asinhl _PARAMS((long double)); -extern long double cbrtl _PARAMS((long double)); -extern long double nextafterl _PARAMS((long double, long double)); -extern float nexttowardf _PARAMS((float, long double)); -extern double nexttoward _PARAMS((double, long double)); -extern long double nexttowardl _PARAMS((long double, long double)); -extern long double logbl _PARAMS((long double)); -extern long double log2l _PARAMS((long double)); -extern long double rintl _PARAMS((long double)); -extern long double scalbnl _PARAMS((long double, int)); -extern long double exp2l _PARAMS((long double)); -extern long double scalblnl _PARAMS((long double, long)); -extern long double tgammal _PARAMS((long double)); -extern long double nearbyintl _PARAMS((long double)); -extern long int lrintl _PARAMS((long double)); -extern long long int llrintl _PARAMS((long double)); -extern long double roundl _PARAMS((long double)); -extern long lroundl _PARAMS((long double)); -extern long long int llroundl _PARAMS((long double)); -extern long double truncl _PARAMS((long double)); -extern long double remquol _PARAMS((long double, long double, int *)); -extern long double fdiml _PARAMS((long double, long double)); -extern long double fmaxl _PARAMS((long double, long double)); -extern long double fminl _PARAMS((long double, long double)); -extern long double fmal _PARAMS((long double, long double, long double)); -#ifndef _REENT_ONLY -extern long double acoshl _PARAMS((long double)); -extern long double atanhl _PARAMS((long double)); -extern long double remainderl _PARAMS((long double, long double)); -extern long double lgammal _PARAMS((long double)); -extern long double erfl _PARAMS((long double)); -extern long double erfcl _PARAMS((long double)); -#endif /* ! defined (_REENT_ONLY) */ -#else /* !_LDBL_EQ_DBL */ -#ifdef __i386__ -/* Other long double precision functions. */ -extern _LONG_DOUBLE rintl _PARAMS((_LONG_DOUBLE)); -extern long int lrintl _PARAMS((_LONG_DOUBLE)); -extern long long int llrintl _PARAMS((_LONG_DOUBLE)); -#endif /* __i386__ */ -#endif /* !_LDBL_EQ_DBL */ - -#endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) */ - -#if !defined (__STRICT_ANSI__) || defined(__cplusplus) - -extern double drem _PARAMS((double, double)); -extern void sincos _PARAMS((double, double *, double *)); -extern double gamma_r _PARAMS((double, int *)); -extern double lgamma_r _PARAMS((double, int *)); - -extern double y0 _PARAMS((double)); -extern double y1 _PARAMS((double)); -extern double yn _PARAMS((int, double)); -extern double j0 _PARAMS((double)); -extern double j1 _PARAMS((double)); -extern double jn _PARAMS((int, double)); - -extern float dremf _PARAMS((float, float)); -extern void sincosf _PARAMS((float, float *, float *)); -extern float gammaf_r _PARAMS((float, int *)); -extern float lgammaf_r _PARAMS((float, int *)); - -extern float y0f _PARAMS((float)); -extern float y1f _PARAMS((float)); -extern float ynf _PARAMS((int, float)); -extern float j0f _PARAMS((float)); -extern float j1f _PARAMS((float)); -extern float jnf _PARAMS((int, float)); - -/* GNU extensions */ -# ifndef exp10 -extern double exp10 _PARAMS((double)); -# endif -# ifndef pow10 -extern double pow10 _PARAMS((double)); -# endif -# ifndef exp10f -extern float exp10f _PARAMS((float)); -# endif -# ifndef pow10f -extern float pow10f _PARAMS((float)); -# endif - -#endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) */ - -#ifndef __STRICT_ANSI__ - -/* The gamma functions use a global variable, signgam. */ -#ifndef _REENT_ONLY -#define signgam (*__signgam()) -extern int *__signgam _PARAMS((void)); -#endif /* ! defined (_REENT_ONLY) */ - -#define __signgam_r(ptr) _REENT_SIGNGAM(ptr) - -/* The exception structure passed to the matherr routine. */ -/* We have a problem when using C++ since `exception' is a reserved - name in C++. */ -#ifdef __cplusplus -struct __exception -#else -struct exception -#endif -{ - int type; - char *name; - double arg1; - double arg2; - double retval; - int err; -}; - -#ifdef __cplusplus -extern int matherr _PARAMS((struct __exception *e)); -#else -extern int matherr _PARAMS((struct exception *e)); -#endif - -/* Values for the type field of struct exception. */ - -#define DOMAIN 1 -#define SING 2 -#define OVERFLOW 3 -#define UNDERFLOW 4 -#define TLOSS 5 -#define PLOSS 6 - -#endif /* ! defined (__STRICT_ANSI__) */ - -/* Useful constants. */ - -#if !defined(__STRICT_ANSI__) || ((_XOPEN_SOURCE - 0) >= 500) - -#define MAXFLOAT 3.40282347e+38F - -#define M_E 2.7182818284590452354 -#define M_LOG2E 1.4426950408889634074 -#define M_LOG10E 0.43429448190325182765 -#define M_LN2 _M_LN2 -#define M_LN10 2.30258509299404568402 -#define M_PI 3.14159265358979323846 -#define M_PI_2 1.57079632679489661923 -#define M_PI_4 0.78539816339744830962 -#define M_1_PI 0.31830988618379067154 -#define M_2_PI 0.63661977236758134308 -#define M_2_SQRTPI 1.12837916709551257390 -#define M_SQRT2 1.41421356237309504880 -#define M_SQRT1_2 0.70710678118654752440 - -#endif - -#ifndef __STRICT_ANSI__ - -#define M_TWOPI (M_PI * 2.0) -#define M_3PI_4 2.3561944901923448370E0 -#define M_SQRTPI 1.77245385090551602792981 -#define M_LN2LO 1.9082149292705877000E-10 -#define M_LN2HI 6.9314718036912381649E-1 -#define M_SQRT3 1.73205080756887719000 -#define M_IVLN10 0.43429448190325182765 /* 1 / log(10) */ -#define M_LOG2_E _M_LN2 -#define M_INVLN2 1.4426950408889633870E0 /* 1 / log(2) */ - -/* Global control over fdlibm error handling. */ - -enum __fdlibm_version -{ - __fdlibm_ieee = -1, - __fdlibm_svid, - __fdlibm_xopen, - __fdlibm_posix -}; - -#define _LIB_VERSION_TYPE enum __fdlibm_version -#define _LIB_VERSION __fdlib_version - -extern __IMPORT _LIB_VERSION_TYPE _LIB_VERSION; - -#define _IEEE_ __fdlibm_ieee -#define _SVID_ __fdlibm_svid -#define _XOPEN_ __fdlibm_xopen -#define _POSIX_ __fdlibm_posix - -#endif /* ! defined (__STRICT_ANSI__) */ - -_END_STD_C - -#ifdef __FAST_MATH__ -#include -#endif - -#endif /* _MATH_H_ */ diff --git a/components/newlib/include/newlib.h b/components/newlib/include/newlib.h deleted file mode 100644 index e9bf566456..0000000000 --- a/components/newlib/include/newlib.h +++ /dev/null @@ -1,201 +0,0 @@ -/* newlib.h. Generated from newlib.hin by configure. */ -/* newlib.hin. Manually edited from the output of autoheader to - remove all PACKAGE_ macros which will collide with any user - package using newlib header files and having its own package name, - version, etc... */ -#ifndef __NEWLIB_H__ - -#define __NEWLIB_H__ 1 - -/* EL/IX level */ -/* #undef _ELIX_LEVEL */ - -/* Newlib version */ -#define _NEWLIB_VERSION "2.2.0" - -/* C99 formats support (such as %a, %zu, ...) in IO functions like - * printf/scanf enabled */ -/* #undef _WANT_IO_C99_FORMATS */ - -/* long long type support in IO functions like printf/scanf enabled */ -/* #undef _WANT_IO_LONG_LONG */ - -/* Register application finalization function using atexit. */ -/* #undef _WANT_REGISTER_FINI */ - -/* long double type support in IO functions like printf/scanf enabled */ -/* #undef _WANT_IO_LONG_DOUBLE */ - -/* Positional argument support in printf functions enabled. */ -/* #undef _WANT_IO_POS_ARGS */ - -/* Optional reentrant struct support. Used mostly on platforms with - very restricted storage. */ -#define _WANT_REENT_SMALL 1 - -/* Multibyte supported */ -/* #undef _MB_CAPABLE */ - -/* MB_LEN_MAX */ -#define _MB_LEN_MAX 1 - -/* ICONV enabled */ -/* #undef _ICONV_ENABLED */ - -/* Enable ICONV external CCS files loading capabilities */ -/* #undef _ICONV_ENABLE_EXTERNAL_CCS */ - -/* Define if the linker supports .preinit_array/.init_array/.fini_array - * sections. */ -#define HAVE_INITFINI_ARRAY 1 - -/* True if atexit() may dynamically allocate space for cleanup - functions. */ -#define _ATEXIT_DYNAMIC_ALLOC 1 - -/* True if long double supported. */ -#define _HAVE_LONG_DOUBLE 1 - -/* Define if compiler supports -fno-tree-loop-distribute-patterns. */ -#define _HAVE_CC_INHIBIT_LOOP_TO_LIBCALL 1 - -/* True if long double supported and it is equal to double. */ -#define _LDBL_EQ_DBL 1 - -/* Define if uintptr_t is unsigned long on this architecture */ -/* #undef _UINTPTR_EQ_ULONG */ - -/* Define if uintptr_t is unsigned long long on this architecture */ -/* #undef _UINTPTR_EQ_ULONGLONG */ - -/* Define if ivo supported in streamio. */ -#define _FVWRITE_IN_STREAMIO 1 - -/* Define if fseek functions support seek optimization. */ -#define _FSEEK_OPTIMIZATION 1 - -/* Define if wide char orientation is supported. */ -#define _WIDE_ORIENT 1 - -/* Define if unbuffered stream file optimization is supported. */ -#define _UNBUF_STREAM_OPT 1 - -/* Define if lite version of exit supported. */ -/* #undef _LITE_EXIT */ - -/* Define if declare atexit data as global. */ -/* #undef _REENT_GLOBAL_ATEXIT */ - -/* Define if small footprint nano-formatted-IO implementation used. */ -#define _NANO_FORMATTED_IO 1 - -/* - * Iconv encodings enabled ("to" direction) - */ -/* #undef _ICONV_TO_ENCODING_BIG5 */ -/* #undef _ICONV_TO_ENCODING_CP775 */ -/* #undef _ICONV_TO_ENCODING_CP850 */ -/* #undef _ICONV_TO_ENCODING_CP852 */ -/* #undef _ICONV_TO_ENCODING_CP855 */ -/* #undef _ICONV_TO_ENCODING_CP866 */ -/* #undef _ICONV_TO_ENCODING_EUC_JP */ -/* #undef _ICONV_TO_ENCODING_EUC_TW */ -/* #undef _ICONV_TO_ENCODING_EUC_KR */ -/* #undef _ICONV_TO_ENCODING_ISO_8859_1 */ -/* #undef _ICONV_TO_ENCODING_ISO_8859_10 */ -/* #undef _ICONV_TO_ENCODING_ISO_8859_11 */ -/* #undef _ICONV_TO_ENCODING_ISO_8859_13 */ -/* #undef _ICONV_TO_ENCODING_ISO_8859_14 */ -/* #undef _ICONV_TO_ENCODING_ISO_8859_15 */ -/* #undef _ICONV_TO_ENCODING_ISO_8859_2 */ -/* #undef _ICONV_TO_ENCODING_ISO_8859_3 */ -/* #undef _ICONV_TO_ENCODING_ISO_8859_4 */ -/* #undef _ICONV_TO_ENCODING_ISO_8859_5 */ -/* #undef _ICONV_TO_ENCODING_ISO_8859_6 */ -/* #undef _ICONV_TO_ENCODING_ISO_8859_7 */ -/* #undef _ICONV_TO_ENCODING_ISO_8859_8 */ -/* #undef _ICONV_TO_ENCODING_ISO_8859_9 */ -/* #undef _ICONV_TO_ENCODING_ISO_IR_111 */ -/* #undef _ICONV_TO_ENCODING_KOI8_R */ -/* #undef _ICONV_TO_ENCODING_KOI8_RU */ -/* #undef _ICONV_TO_ENCODING_KOI8_U */ -/* #undef _ICONV_TO_ENCODING_KOI8_UNI */ -/* #undef _ICONV_TO_ENCODING_UCS_2 */ -/* #undef _ICONV_TO_ENCODING_UCS_2_INTERNAL */ -/* #undef _ICONV_TO_ENCODING_UCS_2BE */ -/* #undef _ICONV_TO_ENCODING_UCS_2LE */ -/* #undef _ICONV_TO_ENCODING_UCS_4 */ -/* #undef _ICONV_TO_ENCODING_UCS_4_INTERNAL */ -/* #undef _ICONV_TO_ENCODING_UCS_4BE */ -/* #undef _ICONV_TO_ENCODING_UCS_4LE */ -/* #undef _ICONV_TO_ENCODING_US_ASCII */ -/* #undef _ICONV_TO_ENCODING_UTF_16 */ -/* #undef _ICONV_TO_ENCODING_UTF_16BE */ -/* #undef _ICONV_TO_ENCODING_UTF_16LE */ -/* #undef _ICONV_TO_ENCODING_UTF_8 */ -/* #undef _ICONV_TO_ENCODING_WIN_1250 */ -/* #undef _ICONV_TO_ENCODING_WIN_1251 */ -/* #undef _ICONV_TO_ENCODING_WIN_1252 */ -/* #undef _ICONV_TO_ENCODING_WIN_1253 */ -/* #undef _ICONV_TO_ENCODING_WIN_1254 */ -/* #undef _ICONV_TO_ENCODING_WIN_1255 */ -/* #undef _ICONV_TO_ENCODING_WIN_1256 */ -/* #undef _ICONV_TO_ENCODING_WIN_1257 */ -/* #undef _ICONV_TO_ENCODING_WIN_1258 */ - -/* - * Iconv encodings enabled ("from" direction) - */ -/* #undef _ICONV_FROM_ENCODING_BIG5 */ -/* #undef _ICONV_FROM_ENCODING_CP775 */ -/* #undef _ICONV_FROM_ENCODING_CP850 */ -/* #undef _ICONV_FROM_ENCODING_CP852 */ -/* #undef _ICONV_FROM_ENCODING_CP855 */ -/* #undef _ICONV_FROM_ENCODING_CP866 */ -/* #undef _ICONV_FROM_ENCODING_EUC_JP */ -/* #undef _ICONV_FROM_ENCODING_EUC_TW */ -/* #undef _ICONV_FROM_ENCODING_EUC_KR */ -/* #undef _ICONV_FROM_ENCODING_ISO_8859_1 */ -/* #undef _ICONV_FROM_ENCODING_ISO_8859_10 */ -/* #undef _ICONV_FROM_ENCODING_ISO_8859_11 */ -/* #undef _ICONV_FROM_ENCODING_ISO_8859_13 */ -/* #undef _ICONV_FROM_ENCODING_ISO_8859_14 */ -/* #undef _ICONV_FROM_ENCODING_ISO_8859_15 */ -/* #undef _ICONV_FROM_ENCODING_ISO_8859_2 */ -/* #undef _ICONV_FROM_ENCODING_ISO_8859_3 */ -/* #undef _ICONV_FROM_ENCODING_ISO_8859_4 */ -/* #undef _ICONV_FROM_ENCODING_ISO_8859_5 */ -/* #undef _ICONV_FROM_ENCODING_ISO_8859_6 */ -/* #undef _ICONV_FROM_ENCODING_ISO_8859_7 */ -/* #undef _ICONV_FROM_ENCODING_ISO_8859_8 */ -/* #undef _ICONV_FROM_ENCODING_ISO_8859_9 */ -/* #undef _ICONV_FROM_ENCODING_ISO_IR_111 */ -/* #undef _ICONV_FROM_ENCODING_KOI8_R */ -/* #undef _ICONV_FROM_ENCODING_KOI8_RU */ -/* #undef _ICONV_FROM_ENCODING_KOI8_U */ -/* #undef _ICONV_FROM_ENCODING_KOI8_UNI */ -/* #undef _ICONV_FROM_ENCODING_UCS_2 */ -/* #undef _ICONV_FROM_ENCODING_UCS_2_INTERNAL */ -/* #undef _ICONV_FROM_ENCODING_UCS_2BE */ -/* #undef _ICONV_FROM_ENCODING_UCS_2LE */ -/* #undef _ICONV_FROM_ENCODING_UCS_4 */ -/* #undef _ICONV_FROM_ENCODING_UCS_4_INTERNAL */ -/* #undef _ICONV_FROM_ENCODING_UCS_4BE */ -/* #undef _ICONV_FROM_ENCODING_UCS_4LE */ -/* #undef _ICONV_FROM_ENCODING_US_ASCII */ -/* #undef _ICONV_FROM_ENCODING_UTF_16 */ -/* #undef _ICONV_FROM_ENCODING_UTF_16BE */ -/* #undef _ICONV_FROM_ENCODING_UTF_16LE */ -/* #undef _ICONV_FROM_ENCODING_UTF_8 */ -/* #undef _ICONV_FROM_ENCODING_WIN_1250 */ -/* #undef _ICONV_FROM_ENCODING_WIN_1251 */ -/* #undef _ICONV_FROM_ENCODING_WIN_1252 */ -/* #undef _ICONV_FROM_ENCODING_WIN_1253 */ -/* #undef _ICONV_FROM_ENCODING_WIN_1254 */ -/* #undef _ICONV_FROM_ENCODING_WIN_1255 */ -/* #undef _ICONV_FROM_ENCODING_WIN_1256 */ -/* #undef _ICONV_FROM_ENCODING_WIN_1257 */ -/* #undef _ICONV_FROM_ENCODING_WIN_1258 */ - -#endif /* !__NEWLIB_H__ */ - diff --git a/components/newlib/include/paths.h b/components/newlib/include/paths.h deleted file mode 100644 index b1c70f588a..0000000000 --- a/components/newlib/include/paths.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _PATHS_H_ -#define _PATHS_H_ - -#define _PATH_DEV "/dev/" -#define _PATH_DEVNULL "/dev/null" -#define _PATH_DEVZERO "/dev/zero" -#define _PATH_BSHELL "/bin/sh" - -#endif /* _PATHS_H_ */ diff --git a/components/newlib/include/pthread.h b/components/newlib/include/pthread.h deleted file mode 100644 index db1f9c1ca3..0000000000 --- a/components/newlib/include/pthread.h +++ /dev/null @@ -1,431 +0,0 @@ -/* pthread.h - * - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 1989-2013. - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - * $Id$ - */ - -#ifndef __PTHREAD_h -#define __PTHREAD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#if defined(_POSIX_THREADS) - -#include -#include -#include -#include - -struct _pthread_cleanup_context { - void (*_routine)(void *); - void *_arg; - int _canceltype; - struct _pthread_cleanup_context *_previous; -}; - -/* Register Fork Handlers */ -int _EXFUN(pthread_atfork,(void (*prepare)(void), void (*parent)(void), - void (*child)(void))); - -/* Mutex Initialization Attributes, P1003.1c/Draft 10, p. 81 */ - -int _EXFUN(pthread_mutexattr_init, (pthread_mutexattr_t *__attr)); -int _EXFUN(pthread_mutexattr_destroy, (pthread_mutexattr_t *__attr)); -int _EXFUN(pthread_mutexattr_getpshared, - (_CONST pthread_mutexattr_t *__attr, int *__pshared)); -int _EXFUN(pthread_mutexattr_setpshared, - (pthread_mutexattr_t *__attr, int __pshared)); - -#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) - -/* Single UNIX Specification 2 Mutex Attributes types */ - -int _EXFUN(pthread_mutexattr_gettype, - (_CONST pthread_mutexattr_t *__attr, int *__kind)); -int _EXFUN(pthread_mutexattr_settype, - (pthread_mutexattr_t *__attr, int __kind)); - -#endif - -/* Initializing and Destroying a Mutex, P1003.1c/Draft 10, p. 87 */ - -int _EXFUN(pthread_mutex_init, - (pthread_mutex_t *__mutex, _CONST pthread_mutexattr_t *__attr)); -int _EXFUN(pthread_mutex_destroy, (pthread_mutex_t *__mutex)); - -/* This is used to statically initialize a pthread_mutex_t. Example: - - pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - */ - -#define PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) 0xFFFFFFFF) - -/* Locking and Unlocking a Mutex, P1003.1c/Draft 10, p. 93 - NOTE: P1003.4b/D8 adds pthread_mutex_timedlock(), p. 29 */ - -int _EXFUN(pthread_mutex_lock, (pthread_mutex_t *__mutex)); -int _EXFUN(pthread_mutex_trylock, (pthread_mutex_t *__mutex)); -int _EXFUN(pthread_mutex_unlock, (pthread_mutex_t *__mutex)); - -#if defined(_POSIX_TIMEOUTS) - -int _EXFUN(pthread_mutex_timedlock, - (pthread_mutex_t *__mutex, _CONST struct timespec *__timeout)); - -#endif /* _POSIX_TIMEOUTS */ - -/* Condition Variable Initialization Attributes, P1003.1c/Draft 10, p. 96 */ - -int _EXFUN(pthread_condattr_init, (pthread_condattr_t *__attr)); -int _EXFUN(pthread_condattr_destroy, (pthread_condattr_t *__attr)); -int _EXFUN(pthread_condattr_getpshared, - (_CONST pthread_condattr_t *__attr, int *__pshared)); -int _EXFUN(pthread_condattr_setpshared, - (pthread_condattr_t *__attr, int __pshared)); - -/* Initializing and Destroying a Condition Variable, P1003.1c/Draft 10, p. 87 */ - -int _EXFUN(pthread_cond_init, - (pthread_cond_t *__cond, _CONST pthread_condattr_t *__attr)); -int _EXFUN(pthread_cond_destroy, (pthread_cond_t *__mutex)); - -/* This is used to statically initialize a pthread_cond_t. Example: - - pthread_cond_t cond = PTHREAD_COND_INITIALIZER; - */ - -#define PTHREAD_COND_INITIALIZER ((pthread_cond_t) 0xFFFFFFFF) - -/* Broadcasting and Signaling a Condition, P1003.1c/Draft 10, p. 101 */ - -int _EXFUN(pthread_cond_signal, (pthread_cond_t *__cond)); -int _EXFUN(pthread_cond_broadcast, (pthread_cond_t *__cond)); - -/* Waiting on a Condition, P1003.1c/Draft 10, p. 105 */ - -int _EXFUN(pthread_cond_wait, - (pthread_cond_t *__cond, pthread_mutex_t *__mutex)); - -int _EXFUN(pthread_cond_timedwait, - (pthread_cond_t *__cond, pthread_mutex_t *__mutex, - _CONST struct timespec *__abstime)); - -#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) - -/* Thread Creation Scheduling Attributes, P1003.1c/Draft 10, p. 120 */ - -int _EXFUN(pthread_attr_setscope, - (pthread_attr_t *__attr, int __contentionscope)); -int _EXFUN(pthread_attr_getscope, - (_CONST pthread_attr_t *__attr, int *__contentionscope)); -int _EXFUN(pthread_attr_setinheritsched, - (pthread_attr_t *__attr, int __inheritsched)); -int _EXFUN(pthread_attr_getinheritsched, - (_CONST pthread_attr_t *__attr, int *__inheritsched)); -int _EXFUN(pthread_attr_setschedpolicy, - (pthread_attr_t *__attr, int __policy)); -int _EXFUN(pthread_attr_getschedpolicy, - (_CONST pthread_attr_t *__attr, int *__policy)); - -#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ - -int _EXFUN(pthread_attr_setschedparam, - (pthread_attr_t *__attr, _CONST struct sched_param *__param)); -int _EXFUN(pthread_attr_getschedparam, - (_CONST pthread_attr_t *__attr, struct sched_param *__param)); - -#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) - -/* Dynamic Thread Scheduling Parameters Access, P1003.1c/Draft 10, p. 124 */ - -int _EXFUN(pthread_getschedparam, - (pthread_t __pthread, int *__policy, struct sched_param *__param)); -int _EXFUN(pthread_setschedparam, - (pthread_t __pthread, int __policy, struct sched_param *__param)); - -#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */ - -#if defined(_POSIX_THREAD_PRIO_INHERIT) || defined(_POSIX_THREAD_PRIO_PROTECT) - -/* Mutex Initialization Scheduling Attributes, P1003.1c/Draft 10, p. 128 */ - -int _EXFUN(pthread_mutexattr_setprotocol, - (pthread_mutexattr_t *__attr, int __protocol)); -int _EXFUN(pthread_mutexattr_getprotocol, - (_CONST pthread_mutexattr_t *__attr, int *__protocol)); -int _EXFUN(pthread_mutexattr_setprioceiling, - (pthread_mutexattr_t *__attr, int __prioceiling)); -int _EXFUN(pthread_mutexattr_getprioceiling, - (_CONST pthread_mutexattr_t *__attr, int *__prioceiling)); - -#endif /* _POSIX_THREAD_PRIO_INHERIT || _POSIX_THREAD_PRIO_PROTECT */ - -#if defined(_POSIX_THREAD_PRIO_PROTECT) - -/* Change the Priority Ceiling of a Mutex, P1003.1c/Draft 10, p. 131 */ - -int _EXFUN(pthread_mutex_setprioceiling, - (pthread_mutex_t *__mutex, int __prioceiling, int *__old_ceiling)); -int _EXFUN(pthread_mutex_getprioceiling, - (pthread_mutex_t *__mutex, int *__prioceiling)); - -#endif /* _POSIX_THREAD_PRIO_PROTECT */ - -/* Thread Creation Attributes, P1003.1c/Draft 10, p, 140 */ - -int _EXFUN(pthread_attr_init, (pthread_attr_t *__attr)); -int _EXFUN(pthread_attr_destroy, (pthread_attr_t *__attr)); -int _EXFUN(pthread_attr_setstack, (pthread_attr_t *attr, - void *__stackaddr, size_t __stacksize)); -int _EXFUN(pthread_attr_getstack, (_CONST pthread_attr_t *attr, - void **__stackaddr, size_t *__stacksize)); -int _EXFUN(pthread_attr_getstacksize, - (_CONST pthread_attr_t *__attr, size_t *__stacksize)); -int _EXFUN(pthread_attr_setstacksize, - (pthread_attr_t *__attr, size_t __stacksize)); -int _EXFUN(pthread_attr_getstackaddr, - (_CONST pthread_attr_t *__attr, void **__stackaddr)); -int _EXFUN(pthread_attr_setstackaddr, - (pthread_attr_t *__attr, void *__stackaddr)); -int _EXFUN(pthread_attr_getdetachstate, - (_CONST pthread_attr_t *__attr, int *__detachstate)); -int _EXFUN(pthread_attr_setdetachstate, - (pthread_attr_t *__attr, int __detachstate)); -int _EXFUN(pthread_attr_getguardsize, - (_CONST pthread_attr_t *__attr, size_t *__guardsize)); -int _EXFUN(pthread_attr_setguardsize, - (pthread_attr_t *__attr, size_t __guardsize)); - -/* POSIX thread APIs beyond the POSIX standard but provided - * in GNU/Linux. They may be provided by other OSes for - * compatibility. - */ -#if defined(__GNU_VISIBLE) -#if defined(__rtems__) -int _EXFUN(pthread_attr_setaffinity_np, - (pthread_attr_t *__attr, size_t __cpusetsize, - const cpu_set_t *__cpuset)); -int _EXFUN(pthread_attr_getaffinity_np, - (const pthread_attr_t *__attr, size_t __cpusetsize, - cpu_set_t *__cpuset)); - -int _EXFUN(pthread_setaffinity_np, - (pthread_t __id, size_t __cpusetsize, const cpu_set_t *__cpuset)); -int _EXFUN(pthread_getaffinity_np, - (const pthread_t __id, size_t __cpusetsize, cpu_set_t *__cpuset)); - -int _EXFUN(pthread_getattr_np, - (pthread_t __id, pthread_attr_t *__attr)); -#endif /* defined(__rtems__) */ -#endif /* defined(__GNU_VISIBLE) */ - -/* Thread Creation, P1003.1c/Draft 10, p. 144 */ - -int _EXFUN(pthread_create, - (pthread_t *__pthread, _CONST pthread_attr_t *__attr, - void *(*__start_routine)( void * ), void *__arg)); - -/* Wait for Thread Termination, P1003.1c/Draft 10, p. 147 */ - -int _EXFUN(pthread_join, (pthread_t __pthread, void **__value_ptr)); - -/* Detaching a Thread, P1003.1c/Draft 10, p. 149 */ - -int _EXFUN(pthread_detach, (pthread_t __pthread)); - -/* Thread Termination, p1003.1c/Draft 10, p. 150 */ - -void _EXFUN(pthread_exit, (void *__value_ptr)); - -/* Get Calling Thread's ID, p1003.1c/Draft 10, p. XXX */ - -pthread_t _EXFUN(pthread_self, (void)); - -/* Compare Thread IDs, p1003.1c/Draft 10, p. 153 */ - -int _EXFUN(pthread_equal, (pthread_t __t1, pthread_t __t2)); - -/* Dynamic Package Initialization */ - -/* This is used to statically initialize a pthread_once_t. Example: - - pthread_once_t once = PTHREAD_ONCE_INIT; - - NOTE: This is named inconsistently -- it should be INITIALIZER. */ - -#define PTHREAD_ONCE_INIT { 1, 0 } /* is initialized and not run */ - -int _EXFUN(pthread_once, - (pthread_once_t *__once_control, void (*__init_routine)(void))); - -/* Thread-Specific Data Key Create, P1003.1c/Draft 10, p. 163 */ - -int _EXFUN(pthread_key_create, - (pthread_key_t *__key, void (*__destructor)( void * ))); - -/* Thread-Specific Data Management, P1003.1c/Draft 10, p. 165 */ - -int _EXFUN(pthread_setspecific, - (pthread_key_t __key, _CONST void *__value)); -void * _EXFUN(pthread_getspecific, (pthread_key_t __key)); - -/* Thread-Specific Data Key Deletion, P1003.1c/Draft 10, p. 167 */ - -int _EXFUN(pthread_key_delete, (pthread_key_t __key)); - -/* Execution of a Thread, P1003.1c/Draft 10, p. 181 */ - -#define PTHREAD_CANCEL_ENABLE 0 -#define PTHREAD_CANCEL_DISABLE 1 - -#define PTHREAD_CANCEL_DEFERRED 0 -#define PTHREAD_CANCEL_ASYNCHRONOUS 1 - -#define PTHREAD_CANCELED ((void *) -1) - -int _EXFUN(pthread_cancel, (pthread_t __pthread)); - -/* Setting Cancelability State, P1003.1c/Draft 10, p. 183 */ - -int _EXFUN(pthread_setcancelstate, (int __state, int *__oldstate)); -int _EXFUN(pthread_setcanceltype, (int __type, int *__oldtype)); -void _EXFUN(pthread_testcancel, (void)); - -/* Establishing Cancellation Handlers, P1003.1c/Draft 10, p. 184 */ - -void _EXFUN(_pthread_cleanup_push, - (struct _pthread_cleanup_context *_context, - void (*_routine)(void *), void *_arg)); - -void _EXFUN(_pthread_cleanup_pop, - (struct _pthread_cleanup_context *_context, - int _execute)); - -/* It is intentional to open and close the scope in two different macros */ -#define pthread_cleanup_push(_routine, _arg) \ - do { \ - struct _pthread_cleanup_context _pthread_clup_ctx; \ - _pthread_cleanup_push(&_pthread_clup_ctx, (_routine), (_arg)) - -#define pthread_cleanup_pop(_execute) \ - _pthread_cleanup_pop(&_pthread_clup_ctx, (_execute)); \ - } while (0) - -#if defined(_GNU_SOURCE) -void _EXFUN(_pthread_cleanup_push_defer, - (struct _pthread_cleanup_context *_context, - void (*_routine)(void *), void *_arg)); - -void _EXFUN(_pthread_cleanup_pop_restore, - (struct _pthread_cleanup_context *_context, - int _execute)); - -/* It is intentional to open and close the scope in two different macros */ -#define pthread_cleanup_push_defer_np(_routine, _arg) \ - do { \ - struct _pthread_cleanup_context _pthread_clup_ctx; \ - _pthread_cleanup_push_defer(&_pthread_clup_ctx, (_routine), (_arg)) - -#define pthread_cleanup_pop_restore_np(_execute) \ - _pthread_cleanup_pop_restore(&_pthread_clup_ctx, (_execute)); \ - } while (0) -#endif /* defined(_GNU_SOURCE) */ - -#if defined(_POSIX_THREAD_CPUTIME) - -/* Accessing a Thread CPU-time Clock, P1003.4b/D8, p. 58 */ - -int _EXFUN(pthread_getcpuclockid, - (pthread_t __pthread_id, clockid_t *__clock_id)); - -#endif /* defined(_POSIX_THREAD_CPUTIME) */ - - -#endif /* defined(_POSIX_THREADS) */ - -#if defined(_POSIX_BARRIERS) - -int _EXFUN(pthread_barrierattr_init, (pthread_barrierattr_t *__attr)); -int _EXFUN(pthread_barrierattr_destroy, (pthread_barrierattr_t *__attr)); -int _EXFUN(pthread_barrierattr_getpshared, - (_CONST pthread_barrierattr_t *__attr, int *__pshared)); -int _EXFUN(pthread_barrierattr_setpshared, - (pthread_barrierattr_t *__attr, int __pshared)); - -#define PTHREAD_BARRIER_SERIAL_THREAD -1 - -int _EXFUN(pthread_barrier_init, - (pthread_barrier_t *__barrier, - _CONST pthread_barrierattr_t *__attr, unsigned __count)); -int _EXFUN(pthread_barrier_destroy, (pthread_barrier_t *__barrier)); -int _EXFUN(pthread_barrier_wait,(pthread_barrier_t *__barrier)); - -#endif /* defined(_POSIX_BARRIERS) */ - -#if defined(_POSIX_SPIN_LOCKS) - -int _EXFUN(pthread_spin_init, - (pthread_spinlock_t *__spinlock, int __pshared)); -int _EXFUN(pthread_spin_destroy, (pthread_spinlock_t *__spinlock)); -int _EXFUN(pthread_spin_lock, (pthread_spinlock_t *__spinlock)); -int _EXFUN(pthread_spin_trylock, (pthread_spinlock_t *__spinlock)); -int _EXFUN(pthread_spin_unlock, (pthread_spinlock_t *__spinlock)); - -#endif /* defined(_POSIX_SPIN_LOCKS) */ - -#if defined(_POSIX_READER_WRITER_LOCKS) - -/* This is used to statically initialize a pthread_rwlock_t. Example: - - pthread_mutex_t mutex = PTHREAD_RWLOCK_INITIALIZER; - */ - -#define PTHREAD_RWLOCK_INITIALIZER ((pthread_rwlock_t) 0xFFFFFFFF) - -int _EXFUN(pthread_rwlockattr_init, (pthread_rwlockattr_t *__attr)); -int _EXFUN(pthread_rwlockattr_destroy, (pthread_rwlockattr_t *__attr)); -int _EXFUN(pthread_rwlockattr_getpshared, - (_CONST pthread_rwlockattr_t *__attr, int *__pshared)); -int _EXFUN(pthread_rwlockattr_setpshared, - (pthread_rwlockattr_t *__attr, int __pshared)); - -int _EXFUN(pthread_rwlock_init, - (pthread_rwlock_t *__rwlock, _CONST pthread_rwlockattr_t *__attr)); -int _EXFUN(pthread_rwlock_destroy, (pthread_rwlock_t *__rwlock)); -int _EXFUN(pthread_rwlock_rdlock,(pthread_rwlock_t *__rwlock)); -int _EXFUN(pthread_rwlock_tryrdlock,(pthread_rwlock_t *__rwlock)); -int _EXFUN(pthread_rwlock_timedrdlock, - (pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime)); -int _EXFUN(pthread_rwlock_unlock,(pthread_rwlock_t *__rwlock)); -int _EXFUN(pthread_rwlock_wrlock,(pthread_rwlock_t *__rwlock)); -int _EXFUN(pthread_rwlock_trywrlock,(pthread_rwlock_t *__rwlock)); -int _EXFUN(pthread_rwlock_timedwrlock, - (pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime)); - -#endif /* defined(_POSIX_READER_WRITER_LOCKS) */ - - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/components/newlib/include/pwd.h b/components/newlib/include/pwd.h deleted file mode 100644 index 3dea4ee2d1..0000000000 --- a/components/newlib/include/pwd.h +++ /dev/null @@ -1,87 +0,0 @@ -/*- - * Copyright (c) 1989 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * @(#)pwd.h 5.13 (Berkeley) 5/28/91 - */ - -#ifndef _PWD_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _PWD_H_ - -#include -#include - -#if __BSD_VISIBLE -#define _PATH_PASSWD "/etc/passwd" - -#define _PASSWORD_LEN 128 /* max length, not counting NULL */ -#endif - -struct passwd { - char *pw_name; /* user name */ - char *pw_passwd; /* encrypted password */ - uid_t pw_uid; /* user uid */ - gid_t pw_gid; /* user gid */ - char *pw_comment; /* comment */ - char *pw_gecos; /* Honeywell login info */ - char *pw_dir; /* home directory */ - char *pw_shell; /* default shell */ -}; - -#ifndef __INSIDE_CYGWIN__ -struct passwd *getpwuid (uid_t); -struct passwd *getpwnam (const char *); - -#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500 -int getpwnam_r (const char *, struct passwd *, - char *, size_t , struct passwd **); -int getpwuid_r (uid_t, struct passwd *, char *, - size_t, struct passwd **); -#endif - -#if __XSI_VISIBLE >= 500 -struct passwd *getpwent (void); -void setpwent (void); -void endpwent (void); -#endif - -#if __BSD_VISIBLE -int setpassent (int); -#endif -#endif /*!__INSIDE_CYGWIN__*/ - -#ifdef __cplusplus -} -#endif -#endif /* _PWD_H_ */ diff --git a/components/newlib/include/reent.h b/components/newlib/include/reent.h deleted file mode 100644 index 861be71d35..0000000000 --- a/components/newlib/include/reent.h +++ /dev/null @@ -1,189 +0,0 @@ -/* This header file provides the reentrancy. */ - -/* The reentrant system calls here serve two purposes: - - 1) Provide reentrant versions of the system calls the ANSI C library - requires. - 2) Provide these system calls in a namespace clean way. - - It is intended that *all* system calls that the ANSI C library needs - be declared here. It documents them all in one place. All library access - to the system is via some form of these functions. - - The target may provide the needed syscalls by any of the following: - - 1) Define the reentrant versions of the syscalls directly. - (eg: _open_r, _close_r, etc.). Please keep the namespace clean. - When you do this, set "syscall_dir" to "syscalls" and add - -DREENTRANT_SYSCALLS_PROVIDED to newlib_cflags in configure.host. - - 2) Define namespace clean versions of the system calls by prefixing - them with '_' (eg: _open, _close, etc.). Technically, there won't be - true reentrancy at the syscall level, but the library will be namespace - clean. - When you do this, set "syscall_dir" to "syscalls" in configure.host. - - 3) Define or otherwise provide the regular versions of the syscalls - (eg: open, close, etc.). The library won't be reentrant nor namespace - clean, but at least it will work. - When you do this, add -DMISSING_SYSCALL_NAMES to newlib_cflags in - configure.host. - - 4) Define or otherwise provide the regular versions of the syscalls, - and do not supply functional interfaces for any of the reentrant - calls. With this method, the reentrant syscalls are redefined to - directly call the regular system call without the reentrancy argument. - When you do this, specify both -DREENTRANT_SYSCALLS_PROVIDED and - -DMISSING_SYSCALL_NAMES via newlib_cflags in configure.host and do - not specify "syscall_dir". - - Stubs of the reentrant versions of the syscalls exist in the libc/reent - source directory and are provided if REENTRANT_SYSCALLS_PROVIDED isn't - defined. These stubs call the native system calls: _open, _close, etc. - if MISSING_SYSCALL_NAMES is *not* defined, otherwise they call the - non-underscored versions: open, close, etc. when MISSING_SYSCALL_NAMES - *is* defined. - - By default, newlib functions call the reentrant syscalls internally, - passing a reentrancy structure as an argument. This reentrancy structure - contains data that is thread-specific. For example, the errno value is - kept in the reentrancy structure. If multiple threads exist, each will - keep a separate errno value which is intuitive since the application flow - cannot check for failure reliably otherwise. - - The reentrant syscalls are either provided by the platform, by the - libc/reent stubs, or in the case of both MISSING_SYSCALL_NAMES and - REENTRANT_SYSCALLS_PROVIDED being defined, the calls are redefined to - simply call the regular syscalls with no reentrancy struct argument. - - A single-threaded application does not need to worry about the reentrancy - structure. It is used internally. - - A multi-threaded application needs either to manually manage reentrancy - structures or use dynamic reentrancy. - - Manually managing reentrancy structures entails calling special reentrant - versions of newlib functions that have an additional reentrancy argument. - For example, _printf_r. By convention, the first argument is the - reentrancy structure. By default, the normal version of the function - uses the default reentrancy structure: _REENT. The reentrancy structure - is passed internally, eventually to the reentrant syscalls themselves. - How the structures are stored and accessed in this model is up to the - application. - - Dynamic reentrancy is specified by the __DYNAMIC_REENT__ flag. This - flag denotes setting up a macro to replace _REENT with a function call - to __getreent(). This function needs to be implemented by the platform - and it is meant to return the reentrancy structure for the current - thread. When the regular C functions (e.g. printf) go to call internal - routines with the default _REENT structure, they end up calling with - the reentrancy structure for the thread. Thus, application code does not - need to call the _r routines nor worry about reentrancy structures. */ - -/* WARNING: All identifiers here must begin with an underscore. This file is - included by stdio.h and others and we therefore must only use identifiers - in the namespace allotted to us. */ - -#ifndef _REENT_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _REENT_H_ - -#include -#include -#include - -#define __need_size_t -#define __need_ptrdiff_t -#include - -/* FIXME: not namespace clean */ -struct stat; -struct tms; -struct timeval; -struct timezone; - -#if defined(REENTRANT_SYSCALLS_PROVIDED) && defined(MISSING_SYSCALL_NAMES) - -#define _close_r(__reent, __fd) close(__fd) -#define _execve_r(__reent, __f, __arg, __env) execve(__f, __arg, __env) -#define _fcntl_r(__reent, __fd, __cmd, __arg) fcntl(__fd, __cmd, __arg) -#define _fork_r(__reent) fork() -#define _fstat_r(__reent, __fdes, __stat) fstat(__fdes, __stat) -#define _getpid_r(__reent) getpid() -#define _isatty_r(__reent, __desc) isatty(__desc) -#define _kill_r(__reent, __pid, __signal) kill(__pid, __signal) -#define _link_r(__reent, __oldpath, __newpath) link(__oldpath, __newpath) -#define _lseek_r(__reent, __fdes, __off, __w) lseek(__fdes, __off, __w) -#define _mkdir_r(__reent, __path, __m) mkdir(__path, __m) -#define _open_r(__reent, __path, __flag, __m) open(__path, __flag, __m) -#define _read_r(__reent, __fd, __buff, __cnt) read(__fd, __buff, __cnt) -#define _rename_r(__reent, __old, __new) rename(__old, __new) -#define _sbrk_r(__reent, __incr) sbrk(__incr) -#define _stat_r(__reent, __path, __buff) stat(__path, __buff) -#define _times_r(__reent, __time) times(__time) -#define _unlink_r(__reent, __path) unlink(__path) -#define _wait_r(__reent, __status) wait(__status) -#define _write_r(__reent, __fd, __buff, __cnt) write(__fd, __buff, __cnt) -#define _gettimeofday_r(__reent, __tp, __tzp) gettimeofday(__tp, __tzp) - -#ifdef __LARGE64_FILES -#define _lseek64_r(__reent, __fd, __off, __w) lseek64(__fd, __off, __w) -#define _fstat64_r(__reent, __fd, __buff) fstat64(__fd, __buff) -#define _open64_r(__reent, __path, __flag, __m) open64(__path, __flag, __m) -#endif - -#else -/* Reentrant versions of system calls. */ - -extern int _close_r _PARAMS ((struct _reent *, int)); -extern int _execve_r _PARAMS ((struct _reent *, const char *, char *const *, char *const *)); -extern int _fcntl_r _PARAMS ((struct _reent *, int, int, int)); -extern int _fork_r _PARAMS ((struct _reent *)); -extern int _fstat_r _PARAMS ((struct _reent *, int, struct stat *)); -extern int _getpid_r _PARAMS ((struct _reent *)); -extern int _isatty_r _PARAMS ((struct _reent *, int)); -extern int _kill_r _PARAMS ((struct _reent *, int, int)); -extern int _link_r _PARAMS ((struct _reent *, const char *, const char *)); -extern _off_t _lseek_r _PARAMS ((struct _reent *, int, _off_t, int)); -extern int _mkdir_r _PARAMS ((struct _reent *, const char *, int)); -extern int _open_r _PARAMS ((struct _reent *, const char *, int, int)); -extern _ssize_t _read_r _PARAMS ((struct _reent *, int, void *, size_t)); -extern int _rename_r _PARAMS ((struct _reent *, const char *, const char *)); -extern void *_sbrk_r _PARAMS ((struct _reent *, ptrdiff_t)); -extern int _stat_r _PARAMS ((struct _reent *, const char *, struct stat *)); -extern _CLOCK_T_ _times_r _PARAMS ((struct _reent *, struct tms *)); -extern int _unlink_r _PARAMS ((struct _reent *, const char *)); -extern int _wait_r _PARAMS ((struct _reent *, int *)); -extern _ssize_t _write_r _PARAMS ((struct _reent *, int, const void *, size_t)); - -/* This one is not guaranteed to be available on all targets. */ -extern int _gettimeofday_r _PARAMS ((struct _reent *, struct timeval *__tp, void *__tzp)); - -#ifdef __LARGE64_FILES - - -#if defined(__CYGWIN__) -#define stat64 stat -#endif -struct stat64; - -extern _off64_t _lseek64_r _PARAMS ((struct _reent *, int, _off64_t, int)); -extern int _fstat64_r _PARAMS ((struct _reent *, int, struct stat64 *)); -extern int _open64_r _PARAMS ((struct _reent *, const char *, int, int)); -extern int _stat64_r _PARAMS ((struct _reent *, const char *, struct stat64 *)); - -/* Don't pollute namespace if not building newlib. */ -#if defined (__CYGWIN__) && !defined (_COMPILING_NEWLIB) -#undef stat64 -#endif - -#endif - -#endif - -#ifdef __cplusplus -} -#endif -#endif /* _REENT_H_ */ diff --git a/components/newlib/include/regdef.h b/components/newlib/include/regdef.h deleted file mode 100644 index 8cf144b85f..0000000000 --- a/components/newlib/include/regdef.h +++ /dev/null @@ -1,7 +0,0 @@ -/* regdef.h -- define register names. */ - -/* This is a standard include file for MIPS targets. Other target - probably don't define it, and attempts to include this file will - fail. */ - -#include diff --git a/components/newlib/include/regex.h b/components/newlib/include/regex.h deleted file mode 100644 index fa3e26879a..0000000000 --- a/components/newlib/include/regex.h +++ /dev/null @@ -1,103 +0,0 @@ -/*- - * Copyright (c) 1992 Henry Spencer. - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Henry Spencer of the University of Toronto. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * @(#)regex.h 8.2 (Berkeley) 1/3/94 - * $FreeBSD: src/include/regex.h,v 1.4 2002/03/23 17:24:53 imp Exp $ - */ - -#ifndef _REGEX_H_ -#define _REGEX_H_ - -#include - -/* types */ -typedef off_t regoff_t; - -typedef struct { - int re_magic; - size_t re_nsub; /* number of parenthesized subexpressions */ - __const char *re_endp; /* end pointer for REG_PEND */ - struct re_guts *re_g; /* none of your business :-) */ -} regex_t; - -typedef struct { - regoff_t rm_so; /* start of match */ - regoff_t rm_eo; /* end of match */ -} regmatch_t; - -/* regcomp() flags */ -#define REG_BASIC 0000 -#define REG_EXTENDED 0001 -#define REG_ICASE 0002 -#define REG_NOSUB 0004 -#define REG_NEWLINE 0010 -#define REG_NOSPEC 0020 -#define REG_PEND 0040 -#define REG_DUMP 0200 - -/* regerror() flags */ -#define REG_NOMATCH 1 -#define REG_BADPAT 2 -#define REG_ECOLLATE 3 -#define REG_ECTYPE 4 -#define REG_EESCAPE 5 -#define REG_ESUBREG 6 -#define REG_EBRACK 7 -#define REG_EPAREN 8 -#define REG_EBRACE 9 -#define REG_BADBR 10 -#define REG_ERANGE 11 -#define REG_ESPACE 12 -#define REG_BADRPT 13 -#define REG_EMPTY 14 -#define REG_ASSERT 15 -#define REG_INVARG 16 -#define REG_ATOI 255 /* convert name to number (!) */ -#define REG_ITOA 0400 /* convert number to name (!) */ - -/* regexec() flags */ -#define REG_NOTBOL 00001 -#define REG_NOTEOL 00002 -#define REG_STARTEND 00004 -#define REG_TRACE 00400 /* tracing of execution */ -#define REG_LARGE 01000 /* force large representation */ -#define REG_BACKR 02000 /* force use of backref code */ - -__BEGIN_DECLS -int regcomp(regex_t *__restrict, const char *__restrict, int); -size_t regerror(int, const regex_t *__restrict, char *__restrict, size_t); -int regexec(const regex_t *__restrict, const char *__restrict, - size_t, regmatch_t [__restrict], int); -void regfree(regex_t *); -__END_DECLS - -#endif /* !_REGEX_H_ */ diff --git a/components/newlib/include/sched.h b/components/newlib/include/sched.h deleted file mode 100644 index 504ad5274a..0000000000 --- a/components/newlib/include/sched.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 1989-2010. - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - * $Id$ - */ - -#ifndef _SCHED_H_ -#define _SCHED_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(_POSIX_PRIORITY_SCHEDULING) -/* - * XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1803 - */ -int sched_setparam( - pid_t __pid, - const struct sched_param *__param -); - -/* - * XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1800 - */ -int sched_getparam( - pid_t __pid, - struct sched_param *__param -); - -/* - * XBD 13 - Set Scheduling Policy and Scheduling Parameters, - * P1003.1b-2008, p. 1805 - */ -int sched_setscheduler( - pid_t __pid, - int __policy, - const struct sched_param *__param -); - -/* - * XBD 13 - Get Scheduling Policy, P1003.1b-2008, p. 1801 - */ -int sched_getscheduler( - pid_t __pid -); - -/* - * XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1799 - */ -int sched_get_priority_max( - int __policy -); - -int sched_get_priority_min( - int __policy -); - -/* - * XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1802 - */ -int sched_rr_get_interval( - pid_t __pid, - struct timespec *__interval -); -#endif /* _POSIX_PRIORITY_SCHEDULING */ - -#if defined(_POSIX_THREADS) || defined(_POSIX_PRIORITY_SCHEDULING) - -/* - * XBD 13 - Yield Processor, P1003.1b-2008, p. 1807 - */ -int sched_yield( void ); - -#endif /* _POSIX_THREADS or _POSIX_PRIORITY_SCHEDULING */ - -#ifdef __cplusplus -} -#endif - -#endif /* _SCHED_H_ */ diff --git a/components/newlib/include/search.h b/components/newlib/include/search.h deleted file mode 100644 index ed321b0f64..0000000000 --- a/components/newlib/include/search.h +++ /dev/null @@ -1,64 +0,0 @@ -/* $NetBSD: search.h,v 1.12 1999/02/22 10:34:28 christos Exp $ */ -/* $FreeBSD: src/include/search.h,v 1.4 2002/03/23 17:24:53 imp Exp $ */ - -/* - * Written by J.T. Conklin - * Public domain. - */ - -#ifndef _SEARCH_H_ -#define _SEARCH_H_ - -#include -#include -#include - -typedef struct entry { - char *key; - void *data; -} ENTRY; - -typedef enum { - FIND, ENTER -} ACTION; - -typedef enum { - preorder, - postorder, - endorder, - leaf -} VISIT; - -#ifdef _SEARCH_PRIVATE -typedef struct node { - char *key; - struct node *llink, *rlink; -} node_t; -#endif - -struct hsearch_data -{ - struct internal_head *htable; - size_t htablesize; -}; - -#ifndef __compar_fn_t_defined -#define __compar_fn_t_defined -typedef int (*__compar_fn_t) (const void *, const void *); -#endif - -__BEGIN_DECLS -int hcreate(size_t); -void hdestroy(void); -ENTRY *hsearch(ENTRY, ACTION); -int hcreate_r(size_t, struct hsearch_data *); -void hdestroy_r(struct hsearch_data *); -int hsearch_r(ENTRY, ACTION, ENTRY **, struct hsearch_data *); -void *tdelete(const void *__restrict, void **__restrict, __compar_fn_t); -void tdestroy (void *, void (*)(void *)); -void *tfind(const void *, void **, __compar_fn_t); -void *tsearch(const void *, void **, __compar_fn_t); -void twalk(const void *, void (*)(const void *, VISIT, int)); -__END_DECLS - -#endif /* !_SEARCH_H_ */ diff --git a/components/newlib/include/setjmp.h b/components/newlib/include/setjmp.h deleted file mode 100644 index 3d815d9b9b..0000000000 --- a/components/newlib/include/setjmp.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - setjmp.h - stubs for future use. -*/ - -#ifndef _SETJMP_H_ -#define _SETJMP_H_ - -#include "_ansi.h" -#include - -_BEGIN_STD_C - -#ifdef __GNUC__ -void _EXFUN(longjmp,(jmp_buf __jmpb, int __retval)) - __attribute__ ((__noreturn__)); -#else -void _EXFUN(longjmp,(jmp_buf __jmpb, int __retval)); -#endif -int _EXFUN(setjmp,(jmp_buf __jmpb)); -#define setjmp(env) setjmp(env) - - -_END_STD_C - -#endif /* _SETJMP_H_ */ - diff --git a/components/newlib/include/signal.h b/components/newlib/include/signal.h deleted file mode 100644 index 8c50a2eb30..0000000000 --- a/components/newlib/include/signal.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _SIGNAL_H_ -#define _SIGNAL_H_ - -#include "_ansi.h" -#include - -_BEGIN_STD_C - -typedef int sig_atomic_t; /* Atomic entity type (ANSI) */ -#ifndef _POSIX_SOURCE -typedef _sig_func_ptr sig_t; /* BSD naming */ -typedef _sig_func_ptr sighandler_t; /* glibc naming */ -#endif /* !_POSIX_SOURCE */ - -#define SIG_DFL ((_sig_func_ptr)0) /* Default action */ -#define SIG_IGN ((_sig_func_ptr)1) /* Ignore action */ -#define SIG_ERR ((_sig_func_ptr)-1) /* Error return */ - -struct _reent; - -_sig_func_ptr _EXFUN(_signal_r, (struct _reent *, int, _sig_func_ptr)); -int _EXFUN(_raise_r, (struct _reent *, int)); - -#ifndef _REENT_ONLY -_sig_func_ptr _EXFUN(signal, (int, _sig_func_ptr)); -int _EXFUN(raise, (int)); -void _EXFUN(psignal, (int, const char *)); -#endif - -_END_STD_C - -#endif /* _SIGNAL_H_ */ diff --git a/components/newlib/include/spawn.h b/components/newlib/include/spawn.h deleted file mode 100644 index 5a6692f115..0000000000 --- a/components/newlib/include/spawn.h +++ /dev/null @@ -1,119 +0,0 @@ -/*- - * Copyright (c) 2008 Ed Schouten - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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 _SPAWN_H_ -#define _SPAWN_H_ - -#include <_ansi.h> -#include -#include -#include -#define __need_sigset_t -#include - -struct sched_param; - -typedef struct __posix_spawnattr *posix_spawnattr_t; -typedef struct __posix_spawn_file_actions *posix_spawn_file_actions_t; - -#define POSIX_SPAWN_RESETIDS 0x01 -#define POSIX_SPAWN_SETPGROUP 0x02 -#define POSIX_SPAWN_SETSCHEDPARAM 0x04 -#define POSIX_SPAWN_SETSCHEDULER 0x08 -#define POSIX_SPAWN_SETSIGDEF 0x10 -#define POSIX_SPAWN_SETSIGMASK 0x20 - -_BEGIN_STD_C -/* - * Spawn routines - * - * XXX both arrays should be __restrict, but this does not work when GCC - * is invoked with -std=c99. - */ -int _EXFUN(posix_spawn, (pid_t * __restrict, const char * __restrict, - const posix_spawn_file_actions_t *, const posix_spawnattr_t * __restrict, - char * const [], char * const []) -); -int _EXFUN(posix_spawnp, (pid_t * __restrict, const char * __restrict, - const posix_spawn_file_actions_t *, const posix_spawnattr_t * __restrict, - char * const [], char * const []) -); - -/* - * File descriptor actions - */ -int _EXFUN(posix_spawn_file_actions_init, (posix_spawn_file_actions_t *)); -int _EXFUN(posix_spawn_file_actions_destroy, (posix_spawn_file_actions_t *)); - -int _EXFUN(posix_spawn_file_actions_addopen, - (posix_spawn_file_actions_t * __restrict, int, const char * __restrict, int, mode_t) -); -int _EXFUN(posix_spawn_file_actions_adddup2, - (posix_spawn_file_actions_t *, int, int) -); -int _EXFUN(posix_spawn_file_actions_addclose, - (posix_spawn_file_actions_t *, int) -); - -/* - * Spawn attributes - */ -int _EXFUN(posix_spawnattr_init, (posix_spawnattr_t *)); -int _EXFUN(posix_spawnattr_destroy, (posix_spawnattr_t *)); - -int _EXFUN(posix_spawnattr_getflags, - (const posix_spawnattr_t * __restrict, short * __restrict) -); -int _EXFUN(posix_spawnattr_getpgroup, - (const posix_spawnattr_t * __restrict, pid_t * __restrict)); -int _EXFUN(posix_spawnattr_getschedparam, - (const posix_spawnattr_t * __restrict, struct sched_param * __restrict) -); -int _EXFUN(posix_spawnattr_getschedpolicy, - (const posix_spawnattr_t * __restrict, int * __restrict) -); -int _EXFUN(posix_spawnattr_getsigdefault, - (const posix_spawnattr_t * __restrict, sigset_t * __restrict) -); -int _EXFUN(posix_spawnattr_getsigmask, - (const posix_spawnattr_t * __restrict, sigset_t * __restrict) -); - -int _EXFUN(posix_spawnattr_setflags, (posix_spawnattr_t *, short)); -int _EXFUN(posix_spawnattr_setpgroup, (posix_spawnattr_t *, pid_t)); -int _EXFUN(posix_spawnattr_setschedparam, - (posix_spawnattr_t * __restrict, const struct sched_param * __restrict) -); -int _EXFUN(posix_spawnattr_setschedpolicy, (posix_spawnattr_t *, int)); -int _EXFUN(posix_spawnattr_setsigdefault, - (posix_spawnattr_t * __restrict, const sigset_t * __restrict) -); -int _EXFUN(posix_spawnattr_setsigmask, - (posix_spawnattr_t * __restrict, const sigset_t * __restrict) -); -_END_STD_C - -#endif /* !_SPAWN_H_ */ diff --git a/components/newlib/include/stdatomic.h b/components/newlib/include/stdatomic.h deleted file mode 100644 index beba325b1a..0000000000 --- a/components/newlib/include/stdatomic.h +++ /dev/null @@ -1,414 +0,0 @@ -/*- - * Copyright (c) 2011 Ed Schouten - * David Chisnall - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. - * - * $FreeBSD$ - */ - -#ifndef _STDATOMIC_H_ -#define _STDATOMIC_H_ - -#include -#include -#include - -#if __has_extension(c_atomic) || __has_extension(cxx_atomic) -#define __CLANG_ATOMICS -#elif __GNUC_PREREQ__(4, 7) -#define __GNUC_ATOMICS -#elif defined(__GNUC__) -#define __SYNC_ATOMICS -#else -#error "stdatomic.h does not support your compiler" -#endif - -/* - * 7.17.1 Atomic lock-free macros. - */ - -#ifdef __GCC_ATOMIC_BOOL_LOCK_FREE -#define ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_CHAR_LOCK_FREE -#define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_CHAR16_T_LOCK_FREE -#define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_CHAR32_T_LOCK_FREE -#define ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_WCHAR_T_LOCK_FREE -#define ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_SHORT_LOCK_FREE -#define ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_INT_LOCK_FREE -#define ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_LONG_LOCK_FREE -#define ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_LLONG_LOCK_FREE -#define ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE -#endif -#ifdef __GCC_ATOMIC_POINTER_LOCK_FREE -#define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE -#endif - -/* - * 7.17.2 Initialization. - */ - -#if defined(__CLANG_ATOMICS) -#define ATOMIC_VAR_INIT(value) (value) -#define atomic_init(obj, value) __c11_atomic_init(obj, value) -#else -#define ATOMIC_VAR_INIT(value) { .__val = (value) } -#define atomic_init(obj, value) ((void)((obj)->__val = (value))) -#endif - -/* - * Clang and recent GCC both provide predefined macros for the memory - * orderings. If we are using a compiler that doesn't define them, use the - * clang values - these will be ignored in the fallback path. - */ - -#ifndef __ATOMIC_RELAXED -#define __ATOMIC_RELAXED 0 -#endif -#ifndef __ATOMIC_CONSUME -#define __ATOMIC_CONSUME 1 -#endif -#ifndef __ATOMIC_ACQUIRE -#define __ATOMIC_ACQUIRE 2 -#endif -#ifndef __ATOMIC_RELEASE -#define __ATOMIC_RELEASE 3 -#endif -#ifndef __ATOMIC_ACQ_REL -#define __ATOMIC_ACQ_REL 4 -#endif -#ifndef __ATOMIC_SEQ_CST -#define __ATOMIC_SEQ_CST 5 -#endif - -/* - * 7.17.3 Order and consistency. - * - * The memory_order_* constants that denote the barrier behaviour of the - * atomic operations. - */ - -typedef enum { - memory_order_relaxed = __ATOMIC_RELAXED, - memory_order_consume = __ATOMIC_CONSUME, - memory_order_acquire = __ATOMIC_ACQUIRE, - memory_order_release = __ATOMIC_RELEASE, - memory_order_acq_rel = __ATOMIC_ACQ_REL, - memory_order_seq_cst = __ATOMIC_SEQ_CST -} memory_order; - -/* - * 7.17.4 Fences. - */ - -static __inline void -atomic_thread_fence(memory_order __order __unused) -{ - -#ifdef __CLANG_ATOMICS - __c11_atomic_thread_fence(__order); -#elif defined(__GNUC_ATOMICS) - __atomic_thread_fence(__order); -#else - __sync_synchronize(); -#endif -} - -static __inline void -atomic_signal_fence(memory_order __order __unused) -{ - -#ifdef __CLANG_ATOMICS - __c11_atomic_signal_fence(__order); -#elif defined(__GNUC_ATOMICS) - __atomic_signal_fence(__order); -#else - __asm volatile ("" ::: "memory"); -#endif -} - -/* - * 7.17.5 Lock-free property. - */ - -#if defined(_KERNEL) -/* Atomics in kernelspace are always lock-free. */ -#define atomic_is_lock_free(obj) \ - ((void)(obj), (_Bool)1) -#elif defined(__CLANG_ATOMICS) -#define atomic_is_lock_free(obj) \ - __atomic_is_lock_free(sizeof(*(obj)), obj) -#elif defined(__GNUC_ATOMICS) -#define atomic_is_lock_free(obj) \ - __atomic_is_lock_free(sizeof((obj)->__val), &(obj)->__val) -#else -#define atomic_is_lock_free(obj) \ - ((void)(obj), sizeof((obj)->__val) <= sizeof(void *)) -#endif - -/* - * 7.17.6 Atomic integer types. - */ - -typedef _Atomic(_Bool) atomic_bool; -typedef _Atomic(char) atomic_char; -typedef _Atomic(signed char) atomic_schar; -typedef _Atomic(unsigned char) atomic_uchar; -typedef _Atomic(short) atomic_short; -typedef _Atomic(unsigned short) atomic_ushort; -typedef _Atomic(int) atomic_int; -typedef _Atomic(unsigned int) atomic_uint; -typedef _Atomic(long) atomic_long; -typedef _Atomic(unsigned long) atomic_ulong; -typedef _Atomic(long long) atomic_llong; -typedef _Atomic(unsigned long long) atomic_ullong; -#if 0 -typedef _Atomic(__char16_t) atomic_char16_t; -typedef _Atomic(__char32_t) atomic_char32_t; -#endif -typedef _Atomic(wchar_t) atomic_wchar_t; -typedef _Atomic(int_least8_t) atomic_int_least8_t; -typedef _Atomic(uint_least8_t) atomic_uint_least8_t; -typedef _Atomic(int_least16_t) atomic_int_least16_t; -typedef _Atomic(uint_least16_t) atomic_uint_least16_t; -typedef _Atomic(int_least32_t) atomic_int_least32_t; -typedef _Atomic(uint_least32_t) atomic_uint_least32_t; -typedef _Atomic(int_least64_t) atomic_int_least64_t; -typedef _Atomic(uint_least64_t) atomic_uint_least64_t; -typedef _Atomic(int_fast8_t) atomic_int_fast8_t; -typedef _Atomic(uint_fast8_t) atomic_uint_fast8_t; -typedef _Atomic(int_fast16_t) atomic_int_fast16_t; -typedef _Atomic(uint_fast16_t) atomic_uint_fast16_t; -typedef _Atomic(int_fast32_t) atomic_int_fast32_t; -typedef _Atomic(uint_fast32_t) atomic_uint_fast32_t; -typedef _Atomic(int_fast64_t) atomic_int_fast64_t; -typedef _Atomic(uint_fast64_t) atomic_uint_fast64_t; -typedef _Atomic(intptr_t) atomic_intptr_t; -typedef _Atomic(uintptr_t) atomic_uintptr_t; -typedef _Atomic(size_t) atomic_size_t; -typedef _Atomic(ptrdiff_t) atomic_ptrdiff_t; -typedef _Atomic(intmax_t) atomic_intmax_t; -typedef _Atomic(uintmax_t) atomic_uintmax_t; - -/* - * 7.17.7 Operations on atomic types. - */ - -/* - * Compiler-specific operations. - */ - -#if defined(__CLANG_ATOMICS) -#define atomic_compare_exchange_strong_explicit(object, expected, \ - desired, success, failure) \ - __c11_atomic_compare_exchange_strong(object, expected, desired, \ - success, failure) -#define atomic_compare_exchange_weak_explicit(object, expected, \ - desired, success, failure) \ - __c11_atomic_compare_exchange_weak(object, expected, desired, \ - success, failure) -#define atomic_exchange_explicit(object, desired, order) \ - __c11_atomic_exchange(object, desired, order) -#define atomic_fetch_add_explicit(object, operand, order) \ - __c11_atomic_fetch_add(object, operand, order) -#define atomic_fetch_and_explicit(object, operand, order) \ - __c11_atomic_fetch_and(object, operand, order) -#define atomic_fetch_or_explicit(object, operand, order) \ - __c11_atomic_fetch_or(object, operand, order) -#define atomic_fetch_sub_explicit(object, operand, order) \ - __c11_atomic_fetch_sub(object, operand, order) -#define atomic_fetch_xor_explicit(object, operand, order) \ - __c11_atomic_fetch_xor(object, operand, order) -#define atomic_load_explicit(object, order) \ - __c11_atomic_load(object, order) -#define atomic_store_explicit(object, desired, order) \ - __c11_atomic_store(object, desired, order) -#elif defined(__GNUC_ATOMICS) -#define atomic_compare_exchange_strong_explicit(object, expected, \ - desired, success, failure) \ - __atomic_compare_exchange_n(&(object)->__val, expected, \ - desired, 0, success, failure) -#define atomic_compare_exchange_weak_explicit(object, expected, \ - desired, success, failure) \ - __atomic_compare_exchange_n(&(object)->__val, expected, \ - desired, 1, success, failure) -#define atomic_exchange_explicit(object, desired, order) \ - __atomic_exchange_n(&(object)->__val, desired, order) -#define atomic_fetch_add_explicit(object, operand, order) \ - __atomic_fetch_add(&(object)->__val, operand, order) -#define atomic_fetch_and_explicit(object, operand, order) \ - __atomic_fetch_and(&(object)->__val, operand, order) -#define atomic_fetch_or_explicit(object, operand, order) \ - __atomic_fetch_or(&(object)->__val, operand, order) -#define atomic_fetch_sub_explicit(object, operand, order) \ - __atomic_fetch_sub(&(object)->__val, operand, order) -#define atomic_fetch_xor_explicit(object, operand, order) \ - __atomic_fetch_xor(&(object)->__val, operand, order) -#define atomic_load_explicit(object, order) \ - __atomic_load_n(&(object)->__val, order) -#define atomic_store_explicit(object, desired, order) \ - __atomic_store_n(&(object)->__val, desired, order) -#else -#define __atomic_apply_stride(object, operand) \ - (((__typeof__((object)->__val))0) + (operand)) -#define atomic_compare_exchange_strong_explicit(object, expected, \ - desired, success, failure) __extension__ ({ \ - __typeof__(expected) __ep = (expected); \ - __typeof__(*__ep) __e = *__ep; \ - (void)(success); (void)(failure); \ - (_Bool)((*__ep = __sync_val_compare_and_swap(&(object)->__val, \ - __e, desired)) == __e); \ -}) -#define atomic_compare_exchange_weak_explicit(object, expected, \ - desired, success, failure) \ - atomic_compare_exchange_strong_explicit(object, expected, \ - desired, success, failure) -#if __has_builtin(__sync_swap) -/* Clang provides a full-barrier atomic exchange - use it if available. */ -#define atomic_exchange_explicit(object, desired, order) \ - ((void)(order), __sync_swap(&(object)->__val, desired)) -#else -/* - * __sync_lock_test_and_set() is only an acquire barrier in theory (although in - * practice it is usually a full barrier) so we need an explicit barrier before - * it. - */ -#define atomic_exchange_explicit(object, desired, order) \ -__extension__ ({ \ - __typeof__(object) __o = (object); \ - __typeof__(desired) __d = (desired); \ - (void)(order); \ - __sync_synchronize(); \ - __sync_lock_test_and_set(&(__o)->__val, __d); \ -}) -#endif -#define atomic_fetch_add_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_add(&(object)->__val, \ - __atomic_apply_stride(object, operand))) -#define atomic_fetch_and_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_and(&(object)->__val, operand)) -#define atomic_fetch_or_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_or(&(object)->__val, operand)) -#define atomic_fetch_sub_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_sub(&(object)->__val, \ - __atomic_apply_stride(object, operand))) -#define atomic_fetch_xor_explicit(object, operand, order) \ - ((void)(order), __sync_fetch_and_xor(&(object)->__val, operand)) -#define atomic_load_explicit(object, order) \ - ((void)(order), __sync_fetch_and_add(&(object)->__val, 0)) -#define atomic_store_explicit(object, desired, order) \ - ((void)atomic_exchange_explicit(object, desired, order)) -#endif - -/* - * Convenience functions. - * - * Don't provide these in kernel space. In kernel space, we should be - * disciplined enough to always provide explicit barriers. - */ - -#ifndef _KERNEL -#define atomic_compare_exchange_strong(object, expected, desired) \ - atomic_compare_exchange_strong_explicit(object, expected, \ - desired, memory_order_seq_cst, memory_order_seq_cst) -#define atomic_compare_exchange_weak(object, expected, desired) \ - atomic_compare_exchange_weak_explicit(object, expected, \ - desired, memory_order_seq_cst, memory_order_seq_cst) -#define atomic_exchange(object, desired) \ - atomic_exchange_explicit(object, desired, memory_order_seq_cst) -#define atomic_fetch_add(object, operand) \ - atomic_fetch_add_explicit(object, operand, memory_order_seq_cst) -#define atomic_fetch_and(object, operand) \ - atomic_fetch_and_explicit(object, operand, memory_order_seq_cst) -#define atomic_fetch_or(object, operand) \ - atomic_fetch_or_explicit(object, operand, memory_order_seq_cst) -#define atomic_fetch_sub(object, operand) \ - atomic_fetch_sub_explicit(object, operand, memory_order_seq_cst) -#define atomic_fetch_xor(object, operand) \ - atomic_fetch_xor_explicit(object, operand, memory_order_seq_cst) -#define atomic_load(object) \ - atomic_load_explicit(object, memory_order_seq_cst) -#define atomic_store(object, desired) \ - atomic_store_explicit(object, desired, memory_order_seq_cst) -#endif /* !_KERNEL */ - -/* - * 7.17.8 Atomic flag type and operations. - * - * XXX: Assume atomic_bool can be used as an atomic_flag. Is there some - * kind of compiler built-in type we could use? - */ - -typedef struct { - atomic_bool __flag; -} atomic_flag; - -#define ATOMIC_FLAG_INIT { ATOMIC_VAR_INIT(0) } - -static __inline _Bool -atomic_flag_test_and_set_explicit(volatile atomic_flag *__object, - memory_order __order) -{ - return (atomic_exchange_explicit(&__object->__flag, 1, __order)); -} - -static __inline void -atomic_flag_clear_explicit(volatile atomic_flag *__object, memory_order __order) -{ - - atomic_store_explicit(&__object->__flag, 0, __order); -} - -#ifndef _KERNEL -static __inline _Bool -atomic_flag_test_and_set(volatile atomic_flag *__object) -{ - - return (atomic_flag_test_and_set_explicit(__object, - memory_order_seq_cst)); -} - -static __inline void -atomic_flag_clear(volatile atomic_flag *__object) -{ - - atomic_flag_clear_explicit(__object, memory_order_seq_cst); -} -#endif /* !_KERNEL */ - -#endif /* !_STDATOMIC_H_ */ diff --git a/components/newlib/include/stdint.h b/components/newlib/include/stdint.h deleted file mode 100644 index 7386164b9d..0000000000 --- a/components/newlib/include/stdint.h +++ /dev/null @@ -1,511 +0,0 @@ -/* - * Copyright (c) 2004, 2005 by - * Ralf Corsepius, Ulm/Germany. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#ifndef _STDINT_H -#define _STDINT_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef ___int8_t_defined -typedef __int8_t int8_t ; -typedef __uint8_t uint8_t ; -#define __int8_t_defined 1 -#endif - -#ifdef ___int_least8_t_defined -typedef __int_least8_t int_least8_t; -typedef __uint_least8_t uint_least8_t; -#define __int_least8_t_defined 1 -#endif - -#ifdef ___int16_t_defined -typedef __int16_t int16_t ; -typedef __uint16_t uint16_t ; -#define __int16_t_defined 1 -#endif - -#ifdef ___int_least16_t_defined -typedef __int_least16_t int_least16_t; -typedef __uint_least16_t uint_least16_t; -#define __int_least16_t_defined 1 -#endif - -#ifdef ___int32_t_defined -typedef __int32_t int32_t ; -typedef __uint32_t uint32_t ; -#define __int32_t_defined 1 -#endif - -#ifdef ___int_least32_t_defined -typedef __int_least32_t int_least32_t; -typedef __uint_least32_t uint_least32_t; -#define __int_least32_t_defined 1 -#endif - -#ifdef ___int64_t_defined -typedef __int64_t int64_t ; -typedef __uint64_t uint64_t ; -#define __int64_t_defined 1 -#endif - -#ifdef ___int_least64_t_defined -typedef __int_least64_t int_least64_t; -typedef __uint_least64_t uint_least64_t; -#define __int_least64_t_defined 1 -#endif - -/* - * Fastest minimum-width integer types - * - * Assume int to be the fastest type for all types with a width - * less than __INT_MAX__ rsp. INT_MAX - */ -#ifdef __INT_FAST8_TYPE__ - typedef __INT_FAST8_TYPE__ int_fast8_t; - typedef __UINT_FAST8_TYPE__ uint_fast8_t; -#define __int_fast8_t_defined 1 -#elif __STDINT_EXP(INT_MAX) >= 0x7f - typedef signed int int_fast8_t; - typedef unsigned int uint_fast8_t; -#define __int_fast8_t_defined 1 -#endif - -#ifdef __INT_FAST16_TYPE__ - typedef __INT_FAST16_TYPE__ int_fast16_t; - typedef __UINT_FAST16_TYPE__ uint_fast16_t; -#define __int_fast16_t_defined 1 -#elif __STDINT_EXP(INT_MAX) >= 0x7fff - typedef signed int int_fast16_t; - typedef unsigned int uint_fast16_t; -#define __int_fast16_t_defined 1 -#endif - -#ifdef __INT_FAST32_TYPE__ - typedef __INT_FAST32_TYPE__ int_fast32_t; - typedef __UINT_FAST32_TYPE__ uint_fast32_t; -#define __int_fast32_t_defined 1 -#elif __STDINT_EXP(INT_MAX) >= 0x7fffffff - typedef signed int int_fast32_t; - typedef unsigned int uint_fast32_t; -#define __int_fast32_t_defined 1 -#endif - -#ifdef __INT_FAST64_TYPE__ - typedef __INT_FAST64_TYPE__ int_fast64_t; - typedef __UINT_FAST64_TYPE__ uint_fast64_t; -#define __int_fast64_t_defined 1 -#elif __STDINT_EXP(INT_MAX) > 0x7fffffff - typedef signed int int_fast64_t; - typedef unsigned int uint_fast64_t; -#define __int_fast64_t_defined 1 -#endif - -/* - * Fall back to [u]int_least_t for [u]int_fast_t types - * not having been defined, yet. - * Leave undefined, if [u]int_least_t should not be available. - */ -#if !__int_fast8_t_defined -#if __int_least8_t_defined - typedef int_least8_t int_fast8_t; - typedef uint_least8_t uint_fast8_t; -#define __int_fast8_t_defined 1 -#endif -#endif - -#if !__int_fast16_t_defined -#if __int_least16_t_defined - typedef int_least16_t int_fast16_t; - typedef uint_least16_t uint_fast16_t; -#define __int_fast16_t_defined 1 -#endif -#endif - -#if !__int_fast32_t_defined -#if __int_least32_t_defined - typedef int_least32_t int_fast32_t; - typedef uint_least32_t uint_fast32_t; -#define __int_fast32_t_defined 1 -#endif -#endif - -#if !__int_fast64_t_defined -#if __int_least64_t_defined - typedef int_least64_t int_fast64_t; - typedef uint_least64_t uint_fast64_t; -#define __int_fast64_t_defined 1 -#endif -#endif - -/* Greatest-width integer types */ -/* Modern GCCs provide __INTMAX_TYPE__ */ -#if defined(__INTMAX_TYPE__) - typedef __INTMAX_TYPE__ intmax_t; -#elif __have_longlong64 - typedef signed long long intmax_t; -#else - typedef signed long intmax_t; -#endif - -/* Modern GCCs provide __UINTMAX_TYPE__ */ -#if defined(__UINTMAX_TYPE__) - typedef __UINTMAX_TYPE__ uintmax_t; -#elif __have_longlong64 - typedef unsigned long long uintmax_t; -#else - typedef unsigned long uintmax_t; -#endif - -typedef __intptr_t intptr_t; -typedef __uintptr_t uintptr_t; - -#ifdef __INTPTR_TYPE__ -#define INTPTR_MIN (-__INTPTR_MAX__ - 1) -#define INTPTR_MAX __INTPTR_MAX__ -#define UINTPTR_MAX __UINTPTR_MAX__ -#elif defined(__PTRDIFF_TYPE__) -#define INTPTR_MAX PTRDIFF_MAX -#define INTPTR_MIN PTRDIFF_MIN -#ifdef __UINTPTR_MAX__ -#define UINTPTR_MAX __UINTPTR_MAX__ -#else -#define UINTPTR_MAX (2UL * PTRDIFF_MAX + 1) -#endif -#else -/* - * Fallback to hardcoded values, - * should be valid on cpu's with 32bit int/32bit void* - */ -#define INTPTR_MAX __STDINT_EXP(LONG_MAX) -#define INTPTR_MIN (-__STDINT_EXP(LONG_MAX) - 1) -#define UINTPTR_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1) -#endif - -/* Limits of Specified-Width Integer Types */ - -#ifdef __INT8_MAX__ -#define INT8_MIN (-__INT8_MAX__ - 1) -#define INT8_MAX __INT8_MAX__ -#define UINT8_MAX __UINT8_MAX__ -#elif defined(__int8_t_defined) -#define INT8_MIN -128 -#define INT8_MAX 127 -#define UINT8_MAX 255 -#endif - -#ifdef __INT_LEAST8_MAX__ -#define INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1) -#define INT_LEAST8_MAX __INT_LEAST8_MAX__ -#define UINT_LEAST8_MAX __UINT_LEAST8_MAX__ -#elif defined(__int_least8_t_defined) -#define INT_LEAST8_MIN -128 -#define INT_LEAST8_MAX 127 -#define UINT_LEAST8_MAX 255 -#else -#error required type int_least8_t missing -#endif - -#ifdef __INT16_MAX__ -#define INT16_MIN (-__INT16_MAX__ - 1) -#define INT16_MAX __INT16_MAX__ -#define UINT16_MAX __UINT16_MAX__ -#elif defined(__int16_t_defined) -#define INT16_MIN -32768 -#define INT16_MAX 32767 -#define UINT16_MAX 65535 -#endif - -#ifdef __INT_LEAST16_MAX__ -#define INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1) -#define INT_LEAST16_MAX __INT_LEAST16_MAX__ -#define UINT_LEAST16_MAX __UINT_LEAST16_MAX__ -#elif defined(__int_least16_t_defined) -#define INT_LEAST16_MIN -32768 -#define INT_LEAST16_MAX 32767 -#define UINT_LEAST16_MAX 65535 -#else -#error required type int_least16_t missing -#endif - -#ifdef __INT32_MAX__ -#define INT32_MIN (-__INT32_MAX__ - 1) -#define INT32_MAX __INT32_MAX__ -#define UINT32_MAX __UINT32_MAX__ -#elif defined(__int32_t_defined) -#if __have_long32 -#define INT32_MIN (-2147483647L-1) -#define INT32_MAX 2147483647L -#define UINT32_MAX 4294967295UL -#else -#define INT32_MIN (-2147483647-1) -#define INT32_MAX 2147483647 -#define UINT32_MAX 4294967295U -#endif -#endif - -#ifdef __INT_LEAST32_MAX__ -#define INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1) -#define INT_LEAST32_MAX __INT_LEAST32_MAX__ -#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__ -#elif defined(__int_least32_t_defined) -#if __have_long32 -#define INT_LEAST32_MIN (-2147483647L-1) -#define INT_LEAST32_MAX 2147483647L -#define UINT_LEAST32_MAX 4294967295UL -#else -#define INT_LEAST32_MIN (-2147483647-1) -#define INT_LEAST32_MAX 2147483647 -#define UINT_LEAST32_MAX 4294967295U -#endif -#else -#error required type int_least32_t missing -#endif - -#ifdef __INT64_MAX__ -#define INT64_MIN (-__INT64_MAX__ - 1) -#define INT64_MAX __INT64_MAX__ -#define UINT64_MAX __UINT64_MAX__ -#elif defined(__int64_t_defined) -#if __have_long64 -#define INT64_MIN (-9223372036854775807L-1L) -#define INT64_MAX 9223372036854775807L -#define UINT64_MAX 18446744073709551615U -#elif __have_longlong64 -#define INT64_MIN (-9223372036854775807LL-1LL) -#define INT64_MAX 9223372036854775807LL -#define UINT64_MAX 18446744073709551615ULL -#endif -#endif - -#ifdef __INT_LEAST64_MAX__ -#define INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1) -#define INT_LEAST64_MAX __INT_LEAST64_MAX__ -#define UINT_LEAST64_MAX __UINT_LEAST64_MAX__ -#elif defined(__int_least64_t_defined) -#if __have_long64 -#define INT_LEAST64_MIN (-9223372036854775807L-1L) -#define INT_LEAST64_MAX 9223372036854775807L -#define UINT_LEAST64_MAX 18446744073709551615U -#elif __have_longlong64 -#define INT_LEAST64_MIN (-9223372036854775807LL-1LL) -#define INT_LEAST64_MAX 9223372036854775807LL -#define UINT_LEAST64_MAX 18446744073709551615ULL -#endif -#endif - -#ifdef __INT_FAST8_MAX__ -#define INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1) -#define INT_FAST8_MAX __INT_FAST8_MAX__ -#define UINT_FAST8_MAX __UINT_FAST8_MAX__ -#elif defined(__int_fast8_t_defined) -#if __STDINT_EXP(INT_MAX) >= 0x7f -#define INT_FAST8_MIN (-__STDINT_EXP(INT_MAX)-1) -#define INT_FAST8_MAX __STDINT_EXP(INT_MAX) -#define UINT_FAST8_MAX (__STDINT_EXP(INT_MAX)*2U+1U) -#else -#define INT_FAST8_MIN INT_LEAST8_MIN -#define INT_FAST8_MAX INT_LEAST8_MAX -#define UINT_FAST8_MAX UINT_LEAST8_MAX -#endif -#endif - -#ifdef __INT_FAST16_MAX__ -#define INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1) -#define INT_FAST16_MAX __INT_FAST16_MAX__ -#define UINT_FAST16_MAX __UINT_FAST16_MAX__ -#elif defined(__int_fast16_t_defined) -#if __STDINT_EXP(INT_MAX) >= 0x7fff -#define INT_FAST16_MIN (-__STDINT_EXP(INT_MAX)-1) -#define INT_FAST16_MAX __STDINT_EXP(INT_MAX) -#define UINT_FAST16_MAX (__STDINT_EXP(INT_MAX)*2U+1U) -#else -#define INT_FAST16_MIN INT_LEAST16_MIN -#define INT_FAST16_MAX INT_LEAST16_MAX -#define UINT_FAST16_MAX UINT_LEAST16_MAX -#endif -#endif - -#ifdef __INT_FAST32_MAX__ -#define INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1) -#define INT_FAST32_MAX __INT_FAST32_MAX__ -#define UINT_FAST32_MAX __UINT_FAST32_MAX__ -#elif defined(__int_fast32_t_defined) -#if __STDINT_EXP(INT_MAX) >= 0x7fffffff -#define INT_FAST32_MIN (-__STDINT_EXP(INT_MAX)-1) -#define INT_FAST32_MAX __STDINT_EXP(INT_MAX) -#define UINT_FAST32_MAX (__STDINT_EXP(INT_MAX)*2U+1U) -#else -#define INT_FAST32_MIN INT_LEAST32_MIN -#define INT_FAST32_MAX INT_LEAST32_MAX -#define UINT_FAST32_MAX UINT_LEAST32_MAX -#endif -#endif - -#ifdef __INT_FAST64_MAX__ -#define INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1) -#define INT_FAST64_MAX __INT_FAST64_MAX__ -#define UINT_FAST64_MAX __UINT_FAST64_MAX__ -#elif defined(__int_fast64_t_defined) -#if __STDINT_EXP(INT_MAX) > 0x7fffffff -#define INT_FAST64_MIN (-__STDINT_EXP(INT_MAX)-1) -#define INT_FAST64_MAX __STDINT_EXP(INT_MAX) -#define UINT_FAST64_MAX (__STDINT_EXP(INT_MAX)*2U+1U) -#else -#define INT_FAST64_MIN INT_LEAST64_MIN -#define INT_FAST64_MAX INT_LEAST64_MAX -#define UINT_FAST64_MAX UINT_LEAST64_MAX -#endif -#endif - -#ifdef __INTMAX_MAX__ -#define INTMAX_MAX __INTMAX_MAX__ -#define INTMAX_MIN (-INTMAX_MAX - 1) -#elif defined(__INTMAX_TYPE__) -/* All relevant GCC versions prefer long to long long for intmax_t. */ -#define INTMAX_MAX INT64_MAX -#define INTMAX_MIN INT64_MIN -#endif - -#ifdef __UINTMAX_MAX__ -#define UINTMAX_MAX __UINTMAX_MAX__ -#elif defined(__UINTMAX_TYPE__) -/* All relevant GCC versions prefer long to long long for intmax_t. */ -#define UINTMAX_MAX UINT64_MAX -#endif - -/* This must match size_t in stddef.h, currently long unsigned int */ -#ifdef __SIZE_MAX__ -#define SIZE_MAX __SIZE_MAX__ -#else -#define SIZE_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1) -#endif - -/* This must match sig_atomic_t in (currently int) */ -#define SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1) -#define SIG_ATOMIC_MAX __STDINT_EXP(INT_MAX) - -/* This must match ptrdiff_t in (currently long int) */ -#ifdef __PTRDIFF_MAX__ -#define PTRDIFF_MAX __PTRDIFF_MAX__ -#else -#define PTRDIFF_MAX __STDINT_EXP(LONG_MAX) -#endif -#define PTRDIFF_MIN (-PTRDIFF_MAX - 1) - -/* This must match definition in */ -#ifndef WCHAR_MIN -#ifdef __WCHAR_MIN__ -#define WCHAR_MIN __WCHAR_MIN__ -#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0) -#define WCHAR_MIN (0 + L'\0') -#else -#define WCHAR_MIN (-0x7fffffff - 1 + L'\0') -#endif -#endif - -/* This must match definition in */ -#ifndef WCHAR_MAX -#ifdef __WCHAR_MAX__ -#define WCHAR_MAX __WCHAR_MAX__ -#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0) -#define WCHAR_MAX (0xffffffffu + L'\0') -#else -#define WCHAR_MAX (0x7fffffff + L'\0') -#endif -#endif - -/* wint_t is unsigned int on almost all GCC targets. */ -#ifdef __WINT_MAX__ -#define WINT_MAX __WINT_MAX__ -#else -#define WINT_MAX (__STDINT_EXP(INT_MAX) * 2U + 1U) -#endif -#ifdef __WINT_MIN__ -#define WINT_MIN __WINT_MIN__ -#else -#define WINT_MIN 0U -#endif - -/** Macros for minimum-width integer constant expressions */ -#ifdef __INT8_C -#define INT8_C(x) __INT8_C(x) -#define UINT8_C(x) __UINT8_C(x) -#else -#define INT8_C(x) x -#if __STDINT_EXP(INT_MAX) > 0x7f -#define UINT8_C(x) x -#else -#define UINT8_C(x) x##U -#endif -#endif - -#ifdef __INT16_C -#define INT16_C(x) __INT16_C(x) -#define UINT16_C(x) __UINT16_C(x) -#else -#define INT16_C(x) x -#if __STDINT_EXP(INT_MAX) > 0x7fff -#define UINT16_C(x) x -#else -#define UINT16_C(x) x##U -#endif -#endif - -#ifdef __INT32_C -#define INT32_C(x) __INT32_C(x) -#define UINT32_C(x) __UINT32_C(x) -#else -#if __have_long32 -#define INT32_C(x) x##L -#define UINT32_C(x) x##UL -#else -#define INT32_C(x) x -#define UINT32_C(x) x##U -#endif -#endif - -#ifdef __INT64_C -#define INT64_C(x) __INT64_C(x) -#define UINT64_C(x) __UINT64_C(x) -#else -#if __int64_t_defined -#if __have_long64 -#define INT64_C(x) x##L -#define UINT64_C(x) x##UL -#else -#define INT64_C(x) x##LL -#define UINT64_C(x) x##ULL -#endif -#endif -#endif - -/** Macros for greatest-width integer constant expression */ -#ifdef __INTMAX_C -#define INTMAX_C(x) __INTMAX_C(x) -#define UINTMAX_C(x) __UINTMAX_C(x) -#else -#if __have_long64 -#define INTMAX_C(x) x##L -#define UINTMAX_C(x) x##UL -#else -#define INTMAX_C(x) x##LL -#define UINTMAX_C(x) x##ULL -#endif -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _STDINT_H */ diff --git a/components/newlib/include/stdio.h b/components/newlib/include/stdio.h deleted file mode 100644 index e336ee6eba..0000000000 --- a/components/newlib/include/stdio.h +++ /dev/null @@ -1,727 +0,0 @@ -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * advertising materials, and other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - * - * @(#)stdio.h 5.3 (Berkeley) 3/15/86 - */ - -/* - * NB: to fit things in six character monocase externals, the - * stdio code uses the prefix `__s' for stdio objects, typically - * followed by a three-character attempt at a mnemonic. - */ - -#ifndef _STDIO_H_ -#define _STDIO_H_ - -#include "_ansi.h" - -#define _FSTDIO /* ``function stdio'' */ - -#define __need_size_t -#define __need_NULL -#include -#include - -#define __need___va_list -#include - -/* - * defines __FILE, _fpos_t. - * They must be defined there because struct _reent needs them (and we don't - * want reent.h to include this file. - */ - -#include -#include - -_BEGIN_STD_C - -typedef __FILE FILE; - -#ifdef __CYGWIN__ -typedef _fpos64_t fpos_t; -#else -typedef _fpos_t fpos_t; -#ifdef __LARGE64_FILES -typedef _fpos64_t fpos64_t; -#endif -#endif /* !__CYGWIN__ */ - -#include - -#define __SLBF 0x0001 /* line buffered */ -#define __SNBF 0x0002 /* unbuffered */ -#define __SRD 0x0004 /* OK to read */ -#define __SWR 0x0008 /* OK to write */ - /* RD and WR are never simultaneously asserted */ -#define __SRW 0x0010 /* open for reading & writing */ -#define __SEOF 0x0020 /* found EOF */ -#define __SERR 0x0040 /* found error */ -#define __SMBF 0x0080 /* _buf is from malloc */ -#define __SAPP 0x0100 /* fdopen()ed in append mode - so must write to end */ -#define __SSTR 0x0200 /* this is an sprintf/snprintf string */ -#define __SOPT 0x0400 /* do fseek() optimisation */ -#define __SNPT 0x0800 /* do not do fseek() optimisation */ -#define __SOFF 0x1000 /* set iff _offset is in fact correct */ -#define __SORD 0x2000 /* true => stream orientation (byte/wide) decided */ -#if defined(__CYGWIN__) -# define __SCLE 0x4000 /* convert line endings CR/LF <-> NL */ -#endif -#define __SL64 0x8000 /* is 64-bit offset large file */ - -/* _flags2 flags */ -#define __SNLK 0x0001 /* stdio functions do not lock streams themselves */ -#define __SWID 0x2000 /* true => stream orientation wide, false => byte, only valid if __SORD in _flags is true */ - -/* - * The following three definitions are for ANSI C, which took them - * from System V, which stupidly took internal interface macros and - * made them official arguments to setvbuf(), without renaming them. - * Hence, these ugly _IOxxx names are *supposed* to appear in user code. - * - * Although these happen to match their counterparts above, the - * implementation does not rely on that (so these could be renumbered). - */ -#define _IOFBF 0 /* setvbuf should set fully buffered */ -#define _IOLBF 1 /* setvbuf should set line buffered */ -#define _IONBF 2 /* setvbuf should set unbuffered */ - -#define EOF (-1) - -#ifdef __BUFSIZ__ -#define BUFSIZ __BUFSIZ__ -#else -#define BUFSIZ 1024 -#endif - -#ifdef __FOPEN_MAX__ -#define FOPEN_MAX __FOPEN_MAX__ -#else -#define FOPEN_MAX 20 -#endif - -#ifdef __FILENAME_MAX__ -#define FILENAME_MAX __FILENAME_MAX__ -#else -#define FILENAME_MAX 1024 -#endif - -#ifdef __L_tmpnam__ -#define L_tmpnam __L_tmpnam__ -#else -#define L_tmpnam FILENAME_MAX -#endif - -#ifndef __STRICT_ANSI__ -#define P_tmpdir "/tmp" -#endif - -#ifndef SEEK_SET -#define SEEK_SET 0 /* set file offset to offset */ -#endif -#ifndef SEEK_CUR -#define SEEK_CUR 1 /* set file offset to current plus offset */ -#endif -#ifndef SEEK_END -#define SEEK_END 2 /* set file offset to EOF plus offset */ -#endif - -#define TMP_MAX 26 - -#define stdin (_REENT->_stdin) -#define stdout (_REENT->_stdout) -#define stderr (_REENT->_stderr) - -#define _stdin_r(x) ((x)->_stdin) -#define _stdout_r(x) ((x)->_stdout) -#define _stderr_r(x) ((x)->_stderr) - -/* - * Functions defined in ANSI C standard. - */ - -#ifndef __VALIST -#ifdef __GNUC__ -#define __VALIST __gnuc_va_list -#else -#define __VALIST char* -#endif -#endif - -FILE * _EXFUN(tmpfile, (void)); -char * _EXFUN(tmpnam, (char *)); -#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 -char * _EXFUN(tempnam, (const char *, const char *)); -#endif -int _EXFUN(fclose, (FILE *)); -int _EXFUN(fflush, (FILE *)); -FILE * _EXFUN(freopen, (const char *__restrict, const char *__restrict, FILE *__restrict)); -void _EXFUN(setbuf, (FILE *__restrict, char *__restrict)); -int _EXFUN(setvbuf, (FILE *__restrict, char *__restrict, int, size_t)); -int _EXFUN(fprintf, (FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -int _EXFUN(fscanf, (FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3)))); -int _EXFUN(printf, (const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 1, 2)))); -int _EXFUN(scanf, (const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 1, 2)))); -int _EXFUN(sscanf, (const char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3)))); -int _EXFUN(vfprintf, (FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(vprintf, (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 1, 0)))); -int _EXFUN(vsprintf, (char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(fgetc, (FILE *)); -char * _EXFUN(fgets, (char *__restrict, int, FILE *__restrict)); -int _EXFUN(fputc, (int, FILE *)); -int _EXFUN(fputs, (const char *__restrict, FILE *__restrict)); -int _EXFUN(getc, (FILE *)); -int _EXFUN(getchar, (void)); -char * _EXFUN(gets, (char *)); -int _EXFUN(putc, (int, FILE *)); -int _EXFUN(putchar, (int)); -int _EXFUN(puts, (const char *)); -int _EXFUN(ungetc, (int, FILE *)); -size_t _EXFUN(fread, (_PTR __restrict, size_t _size, size_t _n, FILE *__restrict)); -size_t _EXFUN(fwrite, (const _PTR __restrict , size_t _size, size_t _n, FILE *)); -#ifdef _COMPILING_NEWLIB -int _EXFUN(fgetpos, (FILE *, _fpos_t *)); -#else -int _EXFUN(fgetpos, (FILE *__restrict, fpos_t *__restrict)); -#endif -int _EXFUN(fseek, (FILE *, long, int)); -#ifdef _COMPILING_NEWLIB -int _EXFUN(fsetpos, (FILE *, const _fpos_t *)); -#else -int _EXFUN(fsetpos, (FILE *, const fpos_t *)); -#endif -long _EXFUN(ftell, ( FILE *)); -void _EXFUN(rewind, (FILE *)); -void _EXFUN(clearerr, (FILE *)); -int _EXFUN(feof, (FILE *)); -int _EXFUN(ferror, (FILE *)); -void _EXFUN(perror, (const char *)); -#ifndef _REENT_ONLY -FILE * _EXFUN(fopen, (const char *__restrict _name, const char *__restrict _type)); -int _EXFUN(sprintf, (char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -int _EXFUN(remove, (const char *)); -int _EXFUN(rename, (const char *, const char *)); -#ifdef _COMPILING_NEWLIB -int _EXFUN(_rename, (const char *, const char *)); -#endif -#endif -#if !defined(__STRICT_ANSI__) || defined(__USE_XOPEN2K) -#ifdef _COMPILING_NEWLIB -int _EXFUN(fseeko, (FILE *, _off_t, int)); -_off_t _EXFUN(ftello, ( FILE *)); -#else -int _EXFUN(fseeko, (FILE *, off_t, int)); -off_t _EXFUN(ftello, ( FILE *)); -#endif -#endif -#if __GNU_VISIBLE -int _EXFUN(fcloseall, (_VOID)); -#endif -#if !defined(__STRICT_ANSI__) || (__STDC_VERSION__ >= 199901L) || (__cplusplus >= 201103L) -#ifndef _REENT_ONLY -int _EXFUN(asiprintf, (char **, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -char * _EXFUN(asniprintf, (char *, size_t *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -char * _EXFUN(asnprintf, (char *__restrict, size_t *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(asprintf, (char **__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -#ifndef diprintf -int _EXFUN(diprintf, (int, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -#endif -int _EXFUN(fiprintf, (FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -int _EXFUN(fiscanf, (FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3)))); -int _EXFUN(iprintf, (const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 1, 2)))); -int _EXFUN(iscanf, (const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 1, 2)))); -int _EXFUN(siprintf, (char *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -int _EXFUN(siscanf, (const char *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3)))); -int _EXFUN(snprintf, (char *__restrict, size_t, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(sniprintf, (char *, size_t, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(vasiprintf, (char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -char * _EXFUN(vasniprintf, (char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -char * _EXFUN(vasnprintf, (char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(vasprintf, (char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(vdiprintf, (int, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(vfiprintf, (FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(vfiscanf, (FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); -int _EXFUN(vfscanf, (FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); -int _EXFUN(viprintf, (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 1, 0)))); -int _EXFUN(viscanf, (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 1, 0)))); -int _EXFUN(vscanf, (const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 1, 0)))); -int _EXFUN(vsiprintf, (char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(vsiscanf, (const char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); -int _EXFUN(vsniprintf, (char *, size_t, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(vsnprintf, (char *__restrict, size_t, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(vsscanf, (const char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); -#endif /* !_REENT_ONLY */ -#endif /* !__STRICT_ANSI__ */ - -/* - * Routines in POSIX 1003.1:2001. - */ - -#ifndef __STRICT_ANSI__ -#ifndef _REENT_ONLY -FILE * _EXFUN(fdopen, (int, const char *)); -#endif -int _EXFUN(fileno, (FILE *)); -int _EXFUN(getw, (FILE *)); -int _EXFUN(pclose, (FILE *)); -FILE * _EXFUN(popen, (const char *, const char *)); -int _EXFUN(putw, (int, FILE *)); -void _EXFUN(setbuffer, (FILE *, char *, int)); -int _EXFUN(setlinebuf, (FILE *)); -int _EXFUN(getc_unlocked, (FILE *)); -int _EXFUN(getchar_unlocked, (void)); -void _EXFUN(flockfile, (FILE *)); -int _EXFUN(ftrylockfile, (FILE *)); -void _EXFUN(funlockfile, (FILE *)); -int _EXFUN(putc_unlocked, (int, FILE *)); -int _EXFUN(putchar_unlocked, (int)); -#endif /* ! __STRICT_ANSI__ */ - -/* - * Routines in POSIX 1003.1:200x. - */ - -#ifndef __STRICT_ANSI__ -# ifndef _REENT_ONLY -# ifndef dprintf -int _EXFUN(dprintf, (int, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -# endif -FILE * _EXFUN(fmemopen, (void *__restrict, size_t, const char *__restrict)); -/* getdelim - see __getdelim for now */ -/* getline - see __getline for now */ -FILE * _EXFUN(open_memstream, (char **, size_t *)); -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 -int _EXFUN(renameat, (int, const char *, int, const char *)); -#endif -int _EXFUN(vdprintf, (int, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -# endif -#endif - -/* - * Recursive versions of the above. - */ - -int _EXFUN(_asiprintf_r, (struct _reent *, char **, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -char * _EXFUN(_asniprintf_r, (struct _reent *, char *, size_t *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5)))); -char * _EXFUN(_asnprintf_r, (struct _reent *, char *__restrict, size_t *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5)))); -int _EXFUN(_asprintf_r, (struct _reent *, char **__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(_diprintf_r, (struct _reent *, int, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(_dprintf_r, (struct _reent *, int, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(_fclose_r, (struct _reent *, FILE *)); -int _EXFUN(_fcloseall_r, (struct _reent *)); -FILE * _EXFUN(_fdopen_r, (struct _reent *, int, const char *)); -int _EXFUN(_fflush_r, (struct _reent *, FILE *)); -int _EXFUN(_fgetc_r, (struct _reent *, FILE *)); -int _EXFUN(_fgetc_unlocked_r, (struct _reent *, FILE *)); -char * _EXFUN(_fgets_r, (struct _reent *, char *__restrict, int, FILE *__restrict)); -char * _EXFUN(_fgets_unlocked_r, (struct _reent *, char *__restrict, int, FILE *__restrict)); -#ifdef _COMPILING_NEWLIB -int _EXFUN(_fgetpos_r, (struct _reent *, FILE *__restrict, _fpos_t *__restrict)); -int _EXFUN(_fsetpos_r, (struct _reent *, FILE *, const _fpos_t *)); -#else -int _EXFUN(_fgetpos_r, (struct _reent *, FILE *, fpos_t *)); -int _EXFUN(_fsetpos_r, (struct _reent *, FILE *, const fpos_t *)); -#endif -int _EXFUN(_fiprintf_r, (struct _reent *, FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(_fiscanf_r, (struct _reent *, FILE *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4)))); -FILE * _EXFUN(_fmemopen_r, (struct _reent *, void *__restrict, size_t, const char *__restrict)); -FILE * _EXFUN(_fopen_r, (struct _reent *, const char *__restrict, const char *__restrict)); -FILE * _EXFUN(_freopen_r, (struct _reent *, const char *__restrict, const char *__restrict, FILE *__restrict)); -int _EXFUN(_fprintf_r, (struct _reent *, FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(_fpurge_r, (struct _reent *, FILE *)); -int _EXFUN(_fputc_r, (struct _reent *, int, FILE *)); -int _EXFUN(_fputc_unlocked_r, (struct _reent *, int, FILE *)); -int _EXFUN(_fputs_r, (struct _reent *, const char *__restrict, FILE *__restrict)); -int _EXFUN(_fputs_unlocked_r, (struct _reent *, const char *__restrict, FILE *__restrict)); -size_t _EXFUN(_fread_r, (struct _reent *, _PTR __restrict, size_t _size, size_t _n, FILE *__restrict)); -size_t _EXFUN(_fread_unlocked_r, (struct _reent *, _PTR __restrict, size_t _size, size_t _n, FILE *__restrict)); -int _EXFUN(_fscanf_r, (struct _reent *, FILE *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4)))); -int _EXFUN(_fseek_r, (struct _reent *, FILE *, long, int)); -int _EXFUN(_fseeko_r,(struct _reent *, FILE *, _off_t, int)); -long _EXFUN(_ftell_r, (struct _reent *, FILE *)); -_off_t _EXFUN(_ftello_r,(struct _reent *, FILE *)); -void _EXFUN(_rewind_r, (struct _reent *, FILE *)); -size_t _EXFUN(_fwrite_r, (struct _reent *, const _PTR __restrict, size_t _size, size_t _n, FILE *__restrict)); -size_t _EXFUN(_fwrite_unlocked_r, (struct _reent *, const _PTR __restrict, size_t _size, size_t _n, FILE *__restrict)); -int _EXFUN(_getc_r, (struct _reent *, FILE *)); -int _EXFUN(_getc_unlocked_r, (struct _reent *, FILE *)); -int _EXFUN(_getchar_r, (struct _reent *)); -int _EXFUN(_getchar_unlocked_r, (struct _reent *)); -char * _EXFUN(_gets_r, (struct _reent *, char *)); -int _EXFUN(_iprintf_r, (struct _reent *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -int _EXFUN(_iscanf_r, (struct _reent *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3)))); -FILE * _EXFUN(_open_memstream_r, (struct _reent *, char **, size_t *)); -void _EXFUN(_perror_r, (struct _reent *, const char *)); -int _EXFUN(_printf_r, (struct _reent *, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 2, 3)))); -int _EXFUN(_putc_r, (struct _reent *, int, FILE *)); -int _EXFUN(_putc_unlocked_r, (struct _reent *, int, FILE *)); -int _EXFUN(_putchar_unlocked_r, (struct _reent *, int)); -int _EXFUN(_putchar_r, (struct _reent *, int)); -int _EXFUN(_puts_r, (struct _reent *, const char *)); -int _EXFUN(_remove_r, (struct _reent *, const char *)); -int _EXFUN(_rename_r, (struct _reent *, - const char *_old, const char *_new)); -int _EXFUN(_scanf_r, (struct _reent *, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 2, 3)))); -int _EXFUN(_siprintf_r, (struct _reent *, char *, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(_siscanf_r, (struct _reent *, const char *, const char *, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4)))); -int _EXFUN(_sniprintf_r, (struct _reent *, char *, size_t, const char *, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5)))); -int _EXFUN(_snprintf_r, (struct _reent *, char *__restrict, size_t, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 4, 5)))); -int _EXFUN(_sprintf_r, (struct _reent *, char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__printf__, 3, 4)))); -int _EXFUN(_sscanf_r, (struct _reent *, const char *__restrict, const char *__restrict, ...) - _ATTRIBUTE ((__format__ (__scanf__, 3, 4)))); -char * _EXFUN(_tempnam_r, (struct _reent *, const char *, const char *)); -FILE * _EXFUN(_tmpfile_r, (struct _reent *)); -char * _EXFUN(_tmpnam_r, (struct _reent *, char *)); -int _EXFUN(_ungetc_r, (struct _reent *, int, FILE *)); -int _EXFUN(_vasiprintf_r, (struct _reent *, char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -char * _EXFUN(_vasniprintf_r, (struct _reent*, char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0)))); -char * _EXFUN(_vasnprintf_r, (struct _reent*, char *, size_t *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0)))); -int _EXFUN(_vasprintf_r, (struct _reent *, char **, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(_vdiprintf_r, (struct _reent *, int, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(_vdprintf_r, (struct _reent *, int, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(_vfiprintf_r, (struct _reent *, FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(_vfiscanf_r, (struct _reent *, FILE *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0)))); -int _EXFUN(_vfprintf_r, (struct _reent *, FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(_vfscanf_r, (struct _reent *, FILE *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0)))); -int _EXFUN(_viprintf_r, (struct _reent *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(_viscanf_r, (struct _reent *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); -int _EXFUN(_vprintf_r, (struct _reent *, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 2, 0)))); -int _EXFUN(_vscanf_r, (struct _reent *, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 2, 0)))); -int _EXFUN(_vsiprintf_r, (struct _reent *, char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(_vsiscanf_r, (struct _reent *, const char *, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0)))); -int _EXFUN(_vsniprintf_r, (struct _reent *, char *, size_t, const char *, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0)))); -int _EXFUN(_vsnprintf_r, (struct _reent *, char *__restrict, size_t, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 4, 0)))); -int _EXFUN(_vsprintf_r, (struct _reent *, char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__printf__, 3, 0)))); -int _EXFUN(_vsscanf_r, (struct _reent *, const char *__restrict, const char *__restrict, __VALIST) - _ATTRIBUTE ((__format__ (__scanf__, 3, 0)))); - -/* Other extensions. */ - -int _EXFUN(fpurge, (FILE *)); -ssize_t _EXFUN(__getdelim, (char **, size_t *, int, FILE *)); -ssize_t _EXFUN(__getline, (char **, size_t *, FILE *)); - -#if __BSD_VISIBLE -void _EXFUN(clearerr_unlocked, (FILE *)); -int _EXFUN(feof_unlocked, (FILE *)); -int _EXFUN(ferror_unlocked, (FILE *)); -int _EXFUN(fileno_unlocked, (FILE *)); -int _EXFUN(fflush_unlocked, (FILE *)); -int _EXFUN(fgetc_unlocked, (FILE *)); -int _EXFUN(fputc_unlocked, (int, FILE *)); -size_t _EXFUN(fread_unlocked, (_PTR __restrict, size_t _size, size_t _n, FILE *__restrict)); -size_t _EXFUN(fwrite_unlocked, (const _PTR __restrict , size_t _size, size_t _n, FILE *)); -#endif - -#if __GNU_VISIBLE -char * _EXFUN(fgets_unlocked, (char *__restrict, int, FILE *__restrict)); -int _EXFUN(fputs_unlocked, (const char *__restrict, FILE *__restrict)); -#endif - -#ifdef __LARGE64_FILES -#if !defined(__CYGWIN__) || defined(_COMPILING_NEWLIB) -FILE * _EXFUN(fdopen64, (int, const char *)); -FILE * _EXFUN(fopen64, (const char *, const char *)); -FILE * _EXFUN(freopen64, (_CONST char *, _CONST char *, FILE *)); -_off64_t _EXFUN(ftello64, (FILE *)); -_off64_t _EXFUN(fseeko64, (FILE *, _off64_t, int)); -int _EXFUN(fgetpos64, (FILE *, _fpos64_t *)); -int _EXFUN(fsetpos64, (FILE *, const _fpos64_t *)); -FILE * _EXFUN(tmpfile64, (void)); - -FILE * _EXFUN(_fdopen64_r, (struct _reent *, int, const char *)); -FILE * _EXFUN(_fopen64_r, (struct _reent *,const char *, const char *)); -FILE * _EXFUN(_freopen64_r, (struct _reent *, _CONST char *, _CONST char *, FILE *)); -_off64_t _EXFUN(_ftello64_r, (struct _reent *, FILE *)); -_off64_t _EXFUN(_fseeko64_r, (struct _reent *, FILE *, _off64_t, int)); -int _EXFUN(_fgetpos64_r, (struct _reent *, FILE *, _fpos64_t *)); -int _EXFUN(_fsetpos64_r, (struct _reent *, FILE *, const _fpos64_t *)); -FILE * _EXFUN(_tmpfile64_r, (struct _reent *)); -#endif /* !__CYGWIN__ */ -#endif /* __LARGE64_FILES */ - -/* - * Routines internal to the implementation. - */ - -int _EXFUN(__srget_r, (struct _reent *, FILE *)); -int _EXFUN(__swbuf_r, (struct _reent *, int, FILE *)); - -/* - * Stdio function-access interface. - */ - -#ifndef __STRICT_ANSI__ -# ifdef __LARGE64_FILES -FILE *_EXFUN(funopen,(const _PTR __cookie, - int (*__readfn)(_PTR __c, char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(_PTR __c, const char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - _fpos64_t (*__seekfn)(_PTR __c, _fpos64_t __off, int __whence), - int (*__closefn)(_PTR __c))); -FILE *_EXFUN(_funopen_r,(struct _reent *, const _PTR __cookie, - int (*__readfn)(_PTR __c, char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(_PTR __c, const char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - _fpos64_t (*__seekfn)(_PTR __c, _fpos64_t __off, int __whence), - int (*__closefn)(_PTR __c))); -# else -FILE *_EXFUN(funopen,(const _PTR __cookie, - int (*__readfn)(_PTR __cookie, char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(_PTR __cookie, const char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - fpos_t (*__seekfn)(_PTR __cookie, fpos_t __off, int __whence), - int (*__closefn)(_PTR __cookie))); -FILE *_EXFUN(_funopen_r,(struct _reent *, const _PTR __cookie, - int (*__readfn)(_PTR __cookie, char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - int (*__writefn)(_PTR __cookie, const char *__buf, - _READ_WRITE_BUFSIZE_TYPE __n), - fpos_t (*__seekfn)(_PTR __cookie, fpos_t __off, int __whence), - int (*__closefn)(_PTR __cookie))); -# endif /* !__LARGE64_FILES */ - -# define fropen(__cookie, __fn) funopen(__cookie, __fn, (int (*)())0, \ - (fpos_t (*)())0, (int (*)())0) -# define fwopen(__cookie, __fn) funopen(__cookie, (int (*)())0, __fn, \ - (fpos_t (*)())0, (int (*)())0) - -typedef ssize_t cookie_read_function_t(void *__cookie, char *__buf, size_t __n); -typedef ssize_t cookie_write_function_t(void *__cookie, const char *__buf, - size_t __n); -# ifdef __LARGE64_FILES -typedef int cookie_seek_function_t(void *__cookie, _off64_t *__off, - int __whence); -# else -typedef int cookie_seek_function_t(void *__cookie, off_t *__off, int __whence); -# endif /* !__LARGE64_FILES */ -typedef int cookie_close_function_t(void *__cookie); -typedef struct -{ - /* These four struct member names are dictated by Linux; hopefully, - they don't conflict with any macros. */ - cookie_read_function_t *read; - cookie_write_function_t *write; - cookie_seek_function_t *seek; - cookie_close_function_t *close; -} cookie_io_functions_t; -FILE *_EXFUN(fopencookie,(void *__cookie, - const char *__mode, cookie_io_functions_t __functions)); -FILE *_EXFUN(_fopencookie_r,(struct _reent *, void *__cookie, - const char *__mode, cookie_io_functions_t __functions)); -#endif /* ! __STRICT_ANSI__ */ - -#ifndef __CUSTOM_FILE_IO__ -/* - * The __sfoo macros are here so that we can - * define function versions in the C library. - */ -#define __sgetc_raw_r(__ptr, __f) (--(__f)->_r < 0 ? __srget_r(__ptr, __f) : (int)(*(__f)->_p++)) - -#ifdef __SCLE -/* For a platform with CR/LF, additional logic is required by - __sgetc_r which would otherwise simply be a macro; therefore we - use an inlined function. The function is only meant to be inlined - in place as used and the function body should never be emitted. - - There are two possible means to this end when compiling with GCC, - one when compiling with a standard C99 compiler, and for other - compilers we're just stuck. At the moment, this issue only - affects the Cygwin target, so we'll most likely be using GCC. */ - -_ELIDABLE_INLINE int __sgetc_r(struct _reent *__ptr, FILE *__p); - -_ELIDABLE_INLINE int __sgetc_r(struct _reent *__ptr, FILE *__p) - { - int __c = __sgetc_raw_r(__ptr, __p); - if ((__p->_flags & __SCLE) && (__c == '\r')) - { - int __c2 = __sgetc_raw_r(__ptr, __p); - if (__c2 == '\n') - __c = __c2; - else - ungetc(__c2, __p); - } - return __c; - } -#else -#define __sgetc_r(__ptr, __p) __sgetc_raw_r(__ptr, __p) -#endif - -#ifdef _never /* __GNUC__ */ -/* If this inline is actually used, then systems using coff debugging - info get hopelessly confused. 21sept93 rich@cygnus.com. */ -_ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { - if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n')) - return (*_p->_p++ = _c); - else - return (__swbuf_r(_ptr, _c, _p)); -} -#else -/* - * This has been tuned to generate reasonable code on the vax using pcc - */ -#define __sputc_raw_r(__ptr, __c, __p) \ - (--(__p)->_w < 0 ? \ - (__p)->_w >= (__p)->_lbfsize ? \ - (*(__p)->_p = (__c)), *(__p)->_p != '\n' ? \ - (int)*(__p)->_p++ : \ - __swbuf_r(__ptr, '\n', __p) : \ - __swbuf_r(__ptr, (int)(__c), __p) : \ - (*(__p)->_p = (__c), (int)*(__p)->_p++)) -#ifdef __SCLE -#define __sputc_r(__ptr, __c, __p) \ - ((((__p)->_flags & __SCLE) && ((__c) == '\n')) \ - ? __sputc_raw_r(__ptr, '\r', (__p)) : 0 , \ - __sputc_raw_r((__ptr), (__c), (__p))) -#else -#define __sputc_r(__ptr, __c, __p) __sputc_raw_r(__ptr, __c, __p) -#endif -#endif - -#define __sfeof(p) ((int)(((p)->_flags & __SEOF) != 0)) -#define __sferror(p) ((int)(((p)->_flags & __SERR) != 0)) -#define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF))) -#define __sfileno(p) ((p)->_file) - -#ifndef _REENT_SMALL -#define feof(p) __sfeof(p) -#define ferror(p) __sferror(p) -#define clearerr(p) __sclearerr(p) - -#if __BSD_VISIBLE -#define feof_unlocked(p) __sfeof(p) -#define ferror_unlocked(p) __sferror(p) -#define clearerr_unlocked(p) __sclearerr(p) -#endif /* __BSD_VISIBLE */ -#endif /* _REENT_SMALL */ - -#if 0 /*ndef __STRICT_ANSI__ - FIXME: must initialize stdio first, use fn */ -#define fileno(p) __sfileno(p) -#endif - -#ifndef __CYGWIN__ -#ifndef lint -#define getc(fp) __sgetc_r(_REENT, fp) -#define putc(x, fp) __sputc_r(_REENT, x, fp) -#endif /* lint */ -#endif /* __CYGWIN__ */ - -#ifndef __STRICT_ANSI__ -/* fast always-buffered version, true iff error */ -#define fast_putc(x,p) (--(p)->_w < 0 ? \ - __swbuf_r(_REENT, (int)(x), p) == EOF : (*(p)->_p = (x), (p)->_p++, 0)) - -#define L_cuserid 9 /* posix says it goes in stdio.h :( */ -#ifdef __CYGWIN__ -#define L_ctermid 16 -#endif -#endif - -#endif /* !__CUSTOM_FILE_IO__ */ - -#define getchar() getc(stdin) -#define putchar(x) putc(x, stdout) - -#ifndef __STRICT_ANSI__ -#define getchar_unlocked() getc_unlocked(stdin) -#define putchar_unlocked(x) putc_unlocked(x, stdout) -#endif - -_END_STD_C - -#endif /* _STDIO_H_ */ diff --git a/components/newlib/include/stdio_ext.h b/components/newlib/include/stdio_ext.h deleted file mode 100644 index 029ab02535..0000000000 --- a/components/newlib/include/stdio_ext.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * stdio_ext.h - * - * Definitions for I/O internal operations, originally from Solaris. - */ - -#ifndef _STDIO_EXT_H_ -#define _STDIO_EXT_H_ - -#ifdef __rtems__ -#error " not supported" -#endif - -#include - -#define FSETLOCKING_QUERY 0 -#define FSETLOCKING_INTERNAL 1 -#define FSETLOCKING_BYCALLER 2 - -_BEGIN_STD_C - -void _EXFUN(__fpurge,(FILE *)); -int _EXFUN(__fsetlocking,(FILE *, int)); - -/* TODO: - - void _flushlbf (void); -*/ - -#ifdef __GNUC__ - -_ELIDABLE_INLINE size_t -__fbufsize (FILE *__fp) { return (size_t) __fp->_bf._size; } - -_ELIDABLE_INLINE int -__freading (FILE *__fp) { return (__fp->_flags & __SRD) != 0; } - -_ELIDABLE_INLINE int -__fwriting (FILE *__fp) { return (__fp->_flags & __SWR) != 0; } - -_ELIDABLE_INLINE int -__freadable (FILE *__fp) { return (__fp->_flags & (__SRD | __SRW)) != 0; } - -_ELIDABLE_INLINE int -__fwritable (FILE *__fp) { return (__fp->_flags & (__SWR | __SRW)) != 0; } - -_ELIDABLE_INLINE int -__flbf (FILE *__fp) { return (__fp->_flags & __SLBF) != 0; } - -_ELIDABLE_INLINE size_t -__fpending (FILE *__fp) { return __fp->_p - __fp->_bf._base; } - -#else - -size_t _EXFUN(__fbufsize,(FILE *)); -int _EXFUN(__freading,(FILE *)); -int _EXFUN(__fwriting,(FILE *)); -int _EXFUN(__freadable,(FILE *)); -int _EXFUN(__fwritable,(FILE *)); -int _EXFUN(__flbf,(FILE *)); -size_t _EXFUN(__fpending,(FILE *)); - -#ifndef __cplusplus - -#define __fbufsize(__fp) ((size_t) (__fp)->_bf._size) -#define __freading(__fp) (((__fp)->_flags & __SRD) != 0) -#define __fwriting(__fp) (((__fp)->_flags & __SWR) != 0) -#define __freadable(__fp) (((__fp)->_flags & (__SRD | __SRW)) != 0) -#define __fwritable(__fp) (((__fp)->_flags & (__SWR | __SRW)) != 0) -#define __flbf(__fp) (((__fp)->_flags & __SLBF) != 0) -#define __fpending(__fp) ((size_t) ((__fp)->_p - (__fp)->_bf._base)) - -#endif /* __cplusplus */ - -#endif /* __GNUC__ */ - -_END_STD_C - -#endif /* _STDIO_EXT_H_ */ diff --git a/components/newlib/include/stdlib.h b/components/newlib/include/stdlib.h deleted file mode 100644 index 254ddd71f7..0000000000 --- a/components/newlib/include/stdlib.h +++ /dev/null @@ -1,297 +0,0 @@ -/* - * stdlib.h - * - * Definitions for common types, variables, and functions. - */ - -#ifndef _STDLIB_H_ -#define _STDLIB_H_ - -#include -#include "_ansi.h" - -#define __need_size_t -#define __need_wchar_t -#define __need_NULL -#include - -#include -#include -#include -#ifndef __STRICT_ANSI__ -#include -#endif - -#ifdef __CYGWIN__ -#include -#endif - -_BEGIN_STD_C - -typedef struct -{ - int quot; /* quotient */ - int rem; /* remainder */ -} div_t; - -typedef struct -{ - long quot; /* quotient */ - long rem; /* remainder */ -} ldiv_t; - -#if !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) -typedef struct -{ - long long int quot; /* quotient */ - long long int rem; /* remainder */ -} lldiv_t; -#endif - -#ifndef __compar_fn_t_defined -#define __compar_fn_t_defined -typedef int (*__compar_fn_t) (const _PTR, const _PTR); -#endif - -#ifndef NULL -#define NULL 0 -#endif - -#define EXIT_FAILURE 1 -#define EXIT_SUCCESS 0 - -#define RAND_MAX __RAND_MAX - -int _EXFUN(__locale_mb_cur_max,(_VOID)); - -#define MB_CUR_MAX __locale_mb_cur_max() - -_VOID _EXFUN(abort,(_VOID) _ATTRIBUTE ((__noreturn__))); -int _EXFUN(abs,(int)); -int _EXFUN(atexit,(_VOID (*__func)(_VOID))); -double _EXFUN(atof,(const char *__nptr)); -#ifndef __STRICT_ANSI__ -float _EXFUN(atoff,(const char *__nptr)); -#endif -int _EXFUN(atoi,(const char *__nptr)); -int _EXFUN(_atoi_r,(struct _reent *, const char *__nptr)); -long _EXFUN(atol,(const char *__nptr)); -long _EXFUN(_atol_r,(struct _reent *, const char *__nptr)); -_PTR _EXFUN(bsearch,(const _PTR __key, - const _PTR __base, - size_t __nmemb, - size_t __size, - __compar_fn_t _compar)); -_PTR _EXFUN_NOTHROW(calloc,(size_t __nmemb, size_t __size)); -div_t _EXFUN(div,(int __numer, int __denom)); -_VOID _EXFUN(exit,(int __status) _ATTRIBUTE ((__noreturn__))); -_VOID _EXFUN_NOTHROW(free,(_PTR)); -char * _EXFUN(getenv,(const char *__string)); -char * _EXFUN(_getenv_r,(struct _reent *, const char *__string)); -char * _EXFUN(_findenv,(_CONST char *, int *)); -char * _EXFUN(_findenv_r,(struct _reent *, _CONST char *, int *)); -#ifndef __STRICT_ANSI__ -extern char *suboptarg; /* getsubopt(3) external variable */ -int _EXFUN(getsubopt,(char **, char * const *, char **)); -#endif -long _EXFUN(labs,(long)); -ldiv_t _EXFUN(ldiv,(long __numer, long __denom)); -_PTR _EXFUN_NOTHROW(malloc,(size_t __size)); -int _EXFUN(mblen,(const char *, size_t)); -int _EXFUN(_mblen_r,(struct _reent *, const char *, size_t, _mbstate_t *)); -int _EXFUN(mbtowc,(wchar_t *__restrict, const char *__restrict, size_t)); -int _EXFUN(_mbtowc_r,(struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *)); -int _EXFUN(wctomb,(char *, wchar_t)); -int _EXFUN(_wctomb_r,(struct _reent *, char *, wchar_t, _mbstate_t *)); -size_t _EXFUN(mbstowcs,(wchar_t *__restrict, const char *__restrict, size_t)); -size_t _EXFUN(_mbstowcs_r,(struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *)); -size_t _EXFUN(wcstombs,(char *__restrict, const wchar_t *__restrict, size_t)); -size_t _EXFUN(_wcstombs_r,(struct _reent *, char *__restrict, const wchar_t *__restrict, size_t, _mbstate_t *)); -#ifndef __STRICT_ANSI__ -#ifndef _REENT_ONLY -char * _EXFUN(mkdtemp,(char *)); -int _EXFUN(mkostemp,(char *, int)); -int _EXFUN(mkostemps,(char *, int, int)); -int _EXFUN(mkstemp,(char *)); -int _EXFUN(mkstemps,(char *, int)); -#if (__GNUC__ < 4) || defined(__XTENSA__) -char * _EXFUN(mktemp,(char *)); -#else -char * _EXFUN(mktemp,(char *) _ATTRIBUTE ((__warning__ ("the use of `mktemp' is dangerous; use `mkstemp' instead")))); -#endif -#endif -char * _EXFUN(_mkdtemp_r, (struct _reent *, char *)); -int _EXFUN(_mkostemp_r, (struct _reent *, char *, int)); -int _EXFUN(_mkostemps_r, (struct _reent *, char *, int, int)); -int _EXFUN(_mkstemp_r, (struct _reent *, char *)); -int _EXFUN(_mkstemps_r, (struct _reent *, char *, int)); -#if (__GNUC__ < 4) || defined(__XTENSA__) -char * _EXFUN(_mktemp_r, (struct _reent *, char *)); -#else -char * _EXFUN(_mktemp_r, (struct _reent *, char *) _ATTRIBUTE ((__warning__ ("the use of `mktemp' is dangerous; use `mkstemp' instead")))); -#endif -#endif -_VOID _EXFUN(qsort,(_PTR __base, size_t __nmemb, size_t __size, __compar_fn_t _compar)); -int _EXFUN(rand,(_VOID)); -_PTR _EXFUN_NOTHROW(realloc,(_PTR __r, size_t __size)); -#ifndef __STRICT_ANSI__ -_PTR _EXFUN(reallocf,(_PTR __r, size_t __size)); -char * _EXFUN(realpath, (const char *__restrict path, char *__restrict resolved_path)); -#endif -_VOID _EXFUN(srand,(unsigned __seed)); -double _EXFUN(strtod,(const char *__restrict __n, char **__restrict __end_PTR)); -double _EXFUN(_strtod_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR)); -#if !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) -float _EXFUN(strtof,(const char *__restrict __n, char **__restrict __end_PTR)); -#endif -#ifndef __STRICT_ANSI__ -/* the following strtodf interface is deprecated...use strtof instead */ -# ifndef strtodf -# define strtodf strtof -# endif -#endif -long _EXFUN(strtol,(const char *__restrict __n, char **__restrict __end_PTR, int __base)); -long _EXFUN(_strtol_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base)); -unsigned long _EXFUN(strtoul,(const char *__restrict __n, char **__restrict __end_PTR, int __base)); -unsigned long _EXFUN(_strtoul_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base)); - -int _EXFUN(system,(const char *__string)); - -#ifndef __STRICT_ANSI__ -long _EXFUN(a64l,(const char *__input)); -char * _EXFUN(l64a,(long __input)); -char * _EXFUN(_l64a_r,(struct _reent *,long __input)); -int _EXFUN(on_exit,(_VOID (*__func)(int, _PTR),_PTR __arg)); -#endif /* ! __STRICT_ANSI__ */ -#if !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) -_VOID _EXFUN(_Exit,(int __status) _ATTRIBUTE ((__noreturn__))); -#endif -#ifndef __STRICT_ANSI__ -int _EXFUN(putenv,(char *__string)); -int _EXFUN(_putenv_r,(struct _reent *, char *__string)); -_PTR _EXFUN(_reallocf_r,(struct _reent *, _PTR, size_t)); -int _EXFUN(setenv,(const char *__string, const char *__value, int __overwrite)); -int _EXFUN(_setenv_r,(struct _reent *, const char *__string, const char *__value, int __overwrite)); - -char * _EXFUN(gcvt,(double,int,char *)); -char * _EXFUN(gcvtf,(float,int,char *)); -char * _EXFUN(fcvt,(double,int,int *,int *)); -char * _EXFUN(fcvtf,(float,int,int *,int *)); -char * _EXFUN(ecvt,(double,int,int *,int *)); -char * _EXFUN(ecvtbuf,(double, int, int*, int*, char *)); -char * _EXFUN(fcvtbuf,(double, int, int*, int*, char *)); -char * _EXFUN(ecvtf,(float,int,int *,int *)); -char * _EXFUN(dtoa,(double, int, int, int *, int*, char**)); -#endif -char * _EXFUN(__itoa,(int, char *, int)); -char * _EXFUN(__utoa,(unsigned, char *, int)); -#ifndef __STRICT_ANSI__ -char * _EXFUN(itoa,(int, char *, int)); -char * _EXFUN(utoa,(unsigned, char *, int)); -int _EXFUN(rand_r,(unsigned *__seed)); - -double _EXFUN(drand48,(_VOID)); -double _EXFUN(_drand48_r,(struct _reent *)); -double _EXFUN(erand48,(unsigned short [3])); -double _EXFUN(_erand48_r,(struct _reent *, unsigned short [3])); -long _EXFUN(jrand48,(unsigned short [3])); -long _EXFUN(_jrand48_r,(struct _reent *, unsigned short [3])); -_VOID _EXFUN(lcong48,(unsigned short [7])); -_VOID _EXFUN(_lcong48_r,(struct _reent *, unsigned short [7])); -long _EXFUN(lrand48,(_VOID)); -long _EXFUN(_lrand48_r,(struct _reent *)); -long _EXFUN(mrand48,(_VOID)); -long _EXFUN(_mrand48_r,(struct _reent *)); -long _EXFUN(nrand48,(unsigned short [3])); -long _EXFUN(_nrand48_r,(struct _reent *, unsigned short [3])); -unsigned short * - _EXFUN(seed48,(unsigned short [3])); -unsigned short * - _EXFUN(_seed48_r,(struct _reent *, unsigned short [3])); -_VOID _EXFUN(srand48,(long)); -_VOID _EXFUN(_srand48_r,(struct _reent *, long)); -#endif /* ! __STRICT_ANSI__ */ -#if !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) -long long _EXFUN(atoll,(const char *__nptr)); -#endif -#ifndef __STRICT_ANSI__ -long long _EXFUN(_atoll_r,(struct _reent *, const char *__nptr)); -#endif /* ! __STRICT_ANSI__ */ -#if !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) -long long _EXFUN(llabs,(long long)); -lldiv_t _EXFUN(lldiv,(long long __numer, long long __denom)); -long long _EXFUN(strtoll,(const char *__restrict __n, char **__restrict __end_PTR, int __base)); -#endif -#ifndef __STRICT_ANSI__ -long long _EXFUN(_strtoll_r,(struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base)); -#endif /* ! __STRICT_ANSI__ */ -#if !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) -unsigned long long _EXFUN(strtoull,(const char *__restrict __n, char **__restrict __end_PTR, int __base)); -#endif -#ifndef __STRICT_ANSI__ -unsigned long long _EXFUN(_strtoull_r,(struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base)); - -#ifndef __CYGWIN__ -_VOID _EXFUN(cfree,(_PTR)); -int _EXFUN(unsetenv,(const char *__string)); -int _EXFUN(_unsetenv_r,(struct _reent *, const char *__string)); -#endif - -#ifdef __rtems__ -int _EXFUN(posix_memalign,(void **, size_t, size_t)); -#endif - -#endif /* ! __STRICT_ANSI__ */ - -char * _EXFUN(_dtoa_r,(struct _reent *, double, int, int, int *, int*, char**)); -#ifndef __CYGWIN__ -_PTR _EXFUN_NOTHROW(_malloc_r,(struct _reent *, size_t)); -_PTR _EXFUN_NOTHROW(_calloc_r,(struct _reent *, size_t, size_t)); -_VOID _EXFUN_NOTHROW(_free_r,(struct _reent *, _PTR)); -_PTR _EXFUN_NOTHROW(_realloc_r,(struct _reent *, _PTR, size_t)); -_VOID _EXFUN(_mstats_r,(struct _reent *, char *)); -#endif -int _EXFUN(_system_r,(struct _reent *, const char *)); - -_VOID _EXFUN(__eprintf,(const char *, const char *, unsigned int, const char *)); - -/* There are two common qsort_r variants. If you request - _BSD_SOURCE, you get the BSD version; otherwise you get the GNU - version. We want that #undef qsort_r will still let you - invoke the underlying function, but that requires gcc support. */ -#ifdef _BSD_SOURCE -# ifdef __GNUC__ -_VOID _EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, _PTR __thunk, int (*_compar)(_PTR, const _PTR, const _PTR))) - __asm__ (__ASMNAME ("__bsd_qsort_r")); -# else -_VOID _EXFUN(__bsd_qsort_r,(_PTR __base, size_t __nmemb, size_t __size, _PTR __thunk, int (*_compar)(_PTR, const _PTR, const _PTR))); -# define qsort_r __bsd_qsort_r -# endif -#elif __GNU_VISIBLE -_VOID _EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, int (*_compar)(const _PTR, const _PTR, _PTR), _PTR __thunk)); -#endif - -/* On platforms where long double equals double. */ -#ifdef _HAVE_LONG_DOUBLE -#if !defined(__STRICT_ANSI__) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) -extern long double strtold (const char *__restrict, char **__restrict); -#endif -#endif /* _HAVE_LONG_DOUBLE */ - -_END_STD_C - -#endif /* _STDLIB_H_ */ diff --git a/components/newlib/include/string.h b/components/newlib/include/string.h deleted file mode 100644 index af5c9da4d1..0000000000 --- a/components/newlib/include/string.h +++ /dev/null @@ -1,167 +0,0 @@ -/* - * string.h - * - * Definitions for memory and string functions. - */ - -#ifndef _STRING_H_ -#define _STRING_H_ - -#include "_ansi.h" -#include -#include -#include - -#define __need_size_t -#define __need_NULL -#include - -_BEGIN_STD_C - -_PTR _EXFUN(memchr,(const _PTR, int, size_t)); -int _EXFUN(memcmp,(const _PTR, const _PTR, size_t)); -_PTR _EXFUN(memcpy,(_PTR __restrict, const _PTR __restrict, size_t)); -_PTR _EXFUN(memmove,(_PTR, const _PTR, size_t)); -_PTR _EXFUN(memset,(_PTR, int, size_t)); -char *_EXFUN(strcat,(char *__restrict, const char *__restrict)); -char *_EXFUN(strchr,(const char *, int)); -int _EXFUN(strcmp,(const char *, const char *)); -int _EXFUN(strcoll,(const char *, const char *)); -char *_EXFUN(strcpy,(char *__restrict, const char *__restrict)); -size_t _EXFUN(strcspn,(const char *, const char *)); -char *_EXFUN(strerror,(int)); -size_t _EXFUN(strlen,(const char *)); -char *_EXFUN(strncat,(char *__restrict, const char *__restrict, size_t)); -int _EXFUN(strncmp,(const char *, const char *, size_t)); -char *_EXFUN(strncpy,(char *__restrict, const char *__restrict, size_t)); -char *_EXFUN(strpbrk,(const char *, const char *)); -char *_EXFUN(strrchr,(const char *, int)); -size_t _EXFUN(strspn,(const char *, const char *)); -char *_EXFUN(strstr,(const char *, const char *)); -#ifndef _REENT_ONLY -char *_EXFUN(strtok,(char *__restrict, const char *__restrict)); -#endif -size_t _EXFUN(strxfrm,(char *__restrict, const char *__restrict, size_t)); - -#if __POSIX_VISIBLE -char *_EXFUN(strtok_r,(char *__restrict, const char *__restrict, char **__restrict)); -#endif -#if __BSD_VISIBLE -int _EXFUN(bcmp,(const void *, const void *, size_t)); -void _EXFUN(bcopy,(const void *, void *, size_t)); -void _EXFUN(bzero,(void *, size_t)); -int _EXFUN(ffs,(int)); -char *_EXFUN(index,(const char *, int)); -#endif -#if __BSD_VISIBLE || __XSI_VISIBLE -_PTR _EXFUN(memccpy,(_PTR __restrict, const _PTR __restrict, int, size_t)); -#endif -#if __GNU_VISIBLE -_PTR _EXFUN(mempcpy,(_PTR, const _PTR, size_t)); -_PTR _EXFUN(memmem, (const _PTR, size_t, const _PTR, size_t)); -#endif -_PTR _EXFUN(memrchr,(const _PTR, int, size_t)); -#if __GNU_VISIBLE -_PTR _EXFUN(rawmemchr,(const _PTR, int)); -#endif -#if __BSD_VISIBLE -char *_EXFUN(rindex,(const char *, int)); -#endif -char *_EXFUN(stpcpy,(char *__restrict, const char *__restrict)); -char *_EXFUN(stpncpy,(char *__restrict, const char *__restrict, size_t)); -#if __BSD_VISIBLE || __POSIX_VISIBLE -int _EXFUN(strcasecmp,(const char *, const char *)); -#endif -#if __GNU_VISIBLE -char *_EXFUN(strcasestr,(const char *, const char *)); -char *_EXFUN(strchrnul,(const char *, int)); -#endif -#if __XSI_VISIBLE >= 500 -char *_EXFUN(strdup,(const char *)); -#endif -#ifndef __STRICT_ANSI__ -char *_EXFUN(_strdup_r,(struct _reent *, const char *)); -#endif -#if __XSI_VISIBLE >= 700 -char *_EXFUN(strndup,(const char *, size_t)); -#endif - -#ifndef __STRICT_ANSI__ -char *_EXFUN(_strndup_r,(struct _reent *, const char *, size_t)); -#endif - -#if __GNU_VISIBLE -int _EXFUN(ffsl,(long)); -int _EXFUN(ffsll, (long long)); -#endif - -/* There are two common strerror_r variants. If you request - _GNU_SOURCE, you get the GNU version; otherwise you get the POSIX - version. POSIX requires that #undef strerror_r will still let you - invoke the underlying function, but that requires gcc support. */ -#if __GNU_VISIBLE -char *_EXFUN(strerror_r,(int, char *, size_t)); -#else -# ifdef __GNUC__ -int _EXFUN(strerror_r,(int, char *, size_t)) - __asm__ (__ASMNAME ("__xpg_strerror_r")); -# else -int _EXFUN(__xpg_strerror_r,(int, char *, size_t)); -# define strerror_r __xpg_strerror_r -# endif -#endif - -/* Reentrant version of strerror. */ -char * _EXFUN(_strerror_r, (struct _reent *, int, int, int *)); - -#if __BSD_VISIBLE -size_t _EXFUN(strlcat,(char *, const char *, size_t)); -size_t _EXFUN(strlcpy,(char *, const char *, size_t)); -#endif -#if __BSD_VISIBLE || __POSIX_VISIBLE -int _EXFUN(strncasecmp,(const char *, const char *, size_t)); -#endif -#if !defined(__STRICT_ANSI__) || __POSIX_VISIBLE >= 200809 || \ - __XSI_VISIBLE >= 700 -size_t _EXFUN(strnlen,(const char *, size_t)); -#endif -#if __BSD_VISIBLE -char *_EXFUN(strsep,(char **, const char *)); -#endif - -/* - * The origin of these is unknown to me so I am conditionalizing them - * on __STRICT_ANSI__. Finetuning this is definitely needed. --joel - */ -#if !defined(__STRICT_ANSI__) -char *_EXFUN(strlwr,(char *)); -char *_EXFUN(strupr,(char *)); -#endif - -#ifndef DEFS_H /* Kludge to work around problem compiling in gdb */ -char *_EXFUN(strsignal, (int __signo)); -#endif - -#ifdef __CYGWIN__ -int _EXFUN(strtosigno, (const char *__name)); -#endif - -#if defined _GNU_SOURCE && defined __GNUC__ -#define strdupa(__s) \ - (__extension__ ({const char *__in = (__s); \ - size_t __len = strlen (__in) + 1; \ - char * __out = (char *) __builtin_alloca (__len); \ - (char *) memcpy (__out, __in, __len);})) -#define strndupa(__s, __n) \ - (__extension__ ({const char *__in = (__s); \ - size_t __len = strnlen (__in, (__n)) + 1; \ - char *__out = (char *) __builtin_alloca (__len); \ - __out[__len-1] = '\0'; \ - (char *) memcpy (__out, __in, __len-1);})) -#endif /* _GNU_SOURCE && __GNUC__ */ - -#include - -_END_STD_C - -#endif /* _STRING_H_ */ diff --git a/components/newlib/include/strings.h b/components/newlib/include/strings.h deleted file mode 100644 index 131d81d20c..0000000000 --- a/components/newlib/include/strings.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * strings.h - * - * Definitions for string operations. - */ - -#ifndef _STRINGS_H_ -#define _STRINGS_H_ - -#include "_ansi.h" -#include - -#include /* for size_t */ - -_BEGIN_STD_C - -#if !defined __STRICT_ANSI__ && _POSIX_VERSION < 200809L -/* - * Marked LEGACY in Open Group Base Specifications Issue 6/IEEE Std 1003.1-2004 - * Removed from Open Group Base Specifications Issue 7/IEEE Std 1003.1-2008 - */ -int _EXFUN(bcmp,(const void *, const void *, size_t)); -void _EXFUN(bcopy,(const void *, void *, size_t)); -void _EXFUN(bzero,(void *, size_t)); -char *_EXFUN(index,(const char *, int)); -char *_EXFUN(rindex,(const char *, int)); -#endif /* ! __STRICT_ANSI__ */ - -int _EXFUN(ffs,(int)); -int _EXFUN(strcasecmp,(const char *, const char *)); -int _EXFUN(strncasecmp,(const char *, const char *, size_t)); - -_END_STD_C - -#endif /* _STRINGS_H_ */ diff --git a/components/newlib/include/sys/_default_fcntl.h b/components/newlib/include/sys/_default_fcntl.h deleted file mode 100644 index eb674ae797..0000000000 --- a/components/newlib/include/sys/_default_fcntl.h +++ /dev/null @@ -1,213 +0,0 @@ - -#ifndef _SYS__DEFAULT_FCNTL_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _SYS__DEFAULT_FCNTL_H_ -#include <_ansi.h> -#include -#define _FOPEN (-1) /* from sys/file.h, kernel use only */ -#define _FREAD 0x0001 /* read enabled */ -#define _FWRITE 0x0002 /* write enabled */ -#define _FAPPEND 0x0008 /* append (writes guaranteed at the end) */ -#define _FMARK 0x0010 /* internal; mark during gc() */ -#define _FDEFER 0x0020 /* internal; defer for next gc pass */ -#define _FASYNC 0x0040 /* signal pgrp when data ready */ -#define _FSHLOCK 0x0080 /* BSD flock() shared lock present */ -#define _FEXLOCK 0x0100 /* BSD flock() exclusive lock present */ -#define _FCREAT 0x0200 /* open with file create */ -#define _FTRUNC 0x0400 /* open with truncation */ -#define _FEXCL 0x0800 /* error on open if file exists */ -#define _FNBIO 0x1000 /* non blocking I/O (sys5 style) */ -#define _FSYNC 0x2000 /* do all writes synchronously */ -#define _FNONBLOCK 0x4000 /* non blocking I/O (POSIX style) */ -#define _FNDELAY _FNONBLOCK /* non blocking I/O (4.2 style) */ -#define _FNOCTTY 0x8000 /* don't assign a ctty on this open */ - -#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) - -/* - * Flag values for open(2) and fcntl(2) - * The kernel adds 1 to the open modes to turn it into some - * combination of FREAD and FWRITE. - */ -#define O_RDONLY 0 /* +1 == FREAD */ -#define O_WRONLY 1 /* +1 == FWRITE */ -#define O_RDWR 2 /* +1 == FREAD|FWRITE */ -#define O_APPEND _FAPPEND -#define O_CREAT _FCREAT -#define O_TRUNC _FTRUNC -#define O_EXCL _FEXCL -#define O_SYNC _FSYNC -/* O_NDELAY _FNDELAY set in include/fcntl.h */ -/* O_NDELAY _FNBIO set in include/fcntl.h */ -#define O_NONBLOCK _FNONBLOCK -#define O_NOCTTY _FNOCTTY -/* For machines which care - */ -#if defined (__CYGWIN__) -#define _FBINARY 0x10000 -#define _FTEXT 0x20000 -#define _FNOINHERIT 0x40000 -#define _FDIRECT 0x80000 -#define _FNOFOLLOW 0x100000 -#define _FDIRECTORY 0x200000 -#define _FEXECSRCH 0x400000 - -#define O_BINARY _FBINARY -#define O_TEXT _FTEXT -#define O_CLOEXEC _FNOINHERIT -#define O_DIRECT _FDIRECT -#define O_NOFOLLOW _FNOFOLLOW -#define O_DSYNC _FSYNC -#define O_RSYNC _FSYNC -#define O_DIRECTORY _FDIRECTORY -#define O_EXEC _FEXECSRCH -#define O_SEARCH _FEXECSRCH -#endif - -#ifndef _POSIX_SOURCE - -/* - * Flags that work for fcntl(fd, F_SETFL, FXXXX) - */ -#define FAPPEND _FAPPEND -#define FSYNC _FSYNC -#define FASYNC _FASYNC -#define FNBIO _FNBIO -#define FNONBIO _FNONBLOCK /* XXX fix to be NONBLOCK everywhere */ -#define FNDELAY _FNDELAY - -/* - * Flags that are disallowed for fcntl's (FCNTLCANT); - * used for opens, internal state, or locking. - */ -#define FREAD _FREAD -#define FWRITE _FWRITE -#define FMARK _FMARK -#define FDEFER _FDEFER -#define FSHLOCK _FSHLOCK -#define FEXLOCK _FEXLOCK - -/* - * The rest of the flags, used only for opens - */ -#define FOPEN _FOPEN -#define FCREAT _FCREAT -#define FTRUNC _FTRUNC -#define FEXCL _FEXCL -#define FNOCTTY _FNOCTTY - -#endif /* !_POSIX_SOURCE */ - -/* XXX close on exec request; must match UF_EXCLOSE in user.h */ -#define FD_CLOEXEC 1 /* posix */ - -/* fcntl(2) requests */ -#define F_DUPFD 0 /* Duplicate fildes */ -#define F_GETFD 1 /* Get fildes flags (close on exec) */ -#define F_SETFD 2 /* Set fildes flags (close on exec) */ -#define F_GETFL 3 /* Get file flags */ -#define F_SETFL 4 /* Set file flags */ -#ifndef _POSIX_SOURCE -#define F_GETOWN 5 /* Get owner - for ASYNC */ -#define F_SETOWN 6 /* Set owner - for ASYNC */ -#endif /* !_POSIX_SOURCE */ -#define F_GETLK 7 /* Get record-locking information */ -#define F_SETLK 8 /* Set or Clear a record-lock (Non-Blocking) */ -#define F_SETLKW 9 /* Set or Clear a record-lock (Blocking) */ -#ifndef _POSIX_SOURCE -#define F_RGETLK 10 /* Test a remote lock to see if it is blocked */ -#define F_RSETLK 11 /* Set or unlock a remote lock */ -#define F_CNVT 12 /* Convert a fhandle to an open fd */ -#define F_RSETLKW 13 /* Set or Clear remote record-lock(Blocking) */ -#endif /* !_POSIX_SOURCE */ -#ifdef __CYGWIN__ -#define F_DUPFD_CLOEXEC 14 /* As F_DUPFD, but set close-on-exec flag */ -#endif - -/* fcntl(2) flags (l_type field of flock structure) */ -#define F_RDLCK 1 /* read lock */ -#define F_WRLCK 2 /* write lock */ -#define F_UNLCK 3 /* remove lock(s) */ -#ifndef _POSIX_SOURCE -#define F_UNLKSYS 4 /* remove remote locks for a given system */ -#endif /* !_POSIX_SOURCE */ - -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined(__CYGWIN__) -/* Special descriptor value to denote the cwd in calls to openat(2) etc. */ -#define AT_FDCWD -2 - -/* Flag values for faccessat2) et al. */ -#define AT_EACCESS 1 -#define AT_SYMLINK_NOFOLLOW 2 -#define AT_SYMLINK_FOLLOW 4 -#define AT_REMOVEDIR 8 -#endif - -#if __BSD_VISIBLE -/* lock operations for flock(2) */ -#define LOCK_SH 0x01 /* shared file lock */ -#define LOCK_EX 0x02 /* exclusive file lock */ -#define LOCK_NB 0x04 /* don't block when locking */ -#define LOCK_UN 0x08 /* unlock file */ -#endif - -/*#include */ - -#ifndef __CYGWIN__ -/* file segment locking set data type - information passed to system by user */ -struct flock { - short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ - short l_whence; /* flag to choose starting offset */ - long l_start; /* relative offset, in bytes */ - long l_len; /* length, in bytes; 0 means lock to EOF */ - short l_pid; /* returned with F_GETLK */ - short l_xxx; /* reserved for future use */ -}; -#endif /* __CYGWIN__ */ - -#ifndef _POSIX_SOURCE -/* extended file segment locking set data type */ -struct eflock { - short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ - short l_whence; /* flag to choose starting offset */ - long l_start; /* relative offset, in bytes */ - long l_len; /* length, in bytes; 0 means lock to EOF */ - short l_pid; /* returned with F_GETLK */ - short l_xxx; /* reserved for future use */ - long l_rpid; /* Remote process id wanting this lock */ - long l_rsys; /* Remote system id wanting this lock */ -}; -#endif /* !_POSIX_SOURCE */ - -#include -#include /* sigh. for the mode bits for open/creat */ - -extern int open _PARAMS ((const char *, int, ...)); -#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined(__CYGWIN__) -extern int openat _PARAMS ((int, const char *, int, ...)); -#endif -extern int creat _PARAMS ((const char *, mode_t)); -extern int fcntl _PARAMS ((int, int, ...)); -#if __BSD_VISIBLE -extern int flock _PARAMS ((int, int)); -#endif -#ifdef __CYGWIN__ -#include -extern int futimesat _PARAMS ((int, const char *, const struct timeval *)); -#endif - -/* Provide _ prototypes for functions provided by some versions - of newlib. */ -#ifdef _COMPILING_NEWLIB -extern int _open _PARAMS ((const char *, int, ...)); -extern int _fcntl _PARAMS ((int, int, ...)); -#ifdef __LARGE64_FILES -extern int _open64 _PARAMS ((const char *, int, ...)); -#endif -#endif - -#ifdef __cplusplus -} -#endif -#endif /* !_SYS__DEFAULT_FCNTL_H_ */ diff --git a/components/newlib/include/sys/_intsup.h b/components/newlib/include/sys/_intsup.h deleted file mode 100644 index fa78426c52..0000000000 --- a/components/newlib/include/sys/_intsup.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (c) 2004, 2005 by - * Ralf Corsepius, Ulm/Germany. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - * - * Modified for xtensa arch & non-long int32_t, removes automatic setting of __have_long32. - */ - -#ifndef _SYS__INTSUP_H -#define _SYS__INTSUP_H - -#include - -#define __STDINT_EXP(x) __##x##__ - -#define __have_longlong64 1 - -#endif /* _SYS__INTSUP_H */ diff --git a/components/newlib/include/sys/_types.h b/components/newlib/include/sys/_types.h deleted file mode 100644 index 07bc27675a..0000000000 --- a/components/newlib/include/sys/_types.h +++ /dev/null @@ -1,91 +0,0 @@ -/* ANSI C namespace clean utility typedefs */ - -/* This file defines various typedefs needed by the system calls that support - the C library. Basically, they're just the POSIX versions with an '_' - prepended. This file lives in the `sys' directory so targets can provide - their own if desired (or they can put target dependant conditionals here). -*/ - -#ifndef _SYS__TYPES_H -#define _SYS__TYPES_H - -#include -#include - -#ifndef __off_t_defined -typedef long _off_t; -#endif - -#ifndef __dev_t_defined -typedef short __dev_t; -#endif - -#ifndef __uid_t_defined -typedef unsigned short __uid_t; -#endif -#ifndef __gid_t_defined -typedef unsigned short __gid_t; -#endif - -#ifndef __off64_t_defined -__extension__ typedef long long _off64_t; -#endif - -/* - * We need fpos_t for the following, but it doesn't have a leading "_", - * so we use _fpos_t instead. - */ -#ifndef __fpos_t_defined -typedef long _fpos_t; /* XXX must match off_t in */ - /* (and must be `long' for now) */ -#endif - -#ifdef __LARGE64_FILES -#ifndef __fpos64_t_defined -typedef _off64_t _fpos64_t; -#endif -#endif - -#ifndef __ssize_t_defined -#ifdef __SIZE_TYPE__ -/* If __SIZE_TYPE__ is defined (gcc) we define ssize_t based on size_t. - We simply change "unsigned" to "signed" for this single definition - to make sure ssize_t and size_t only differ by their signedness. */ -#define unsigned signed -typedef __SIZE_TYPE__ _ssize_t; -#undef unsigned -#else -#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647 -typedef int _ssize_t; -#else -typedef long _ssize_t; -#endif -#endif -#endif - -#define __need_wint_t -#include - -#ifndef __mbstate_t_defined -/* Conversion state information. */ -typedef struct -{ - int __count; - union - { - wint_t __wch; - unsigned char __wchb[4]; - } __value; /* Value so far. */ -} _mbstate_t; -#endif - -#ifndef __flock_t_defined -typedef _LOCK_RECURSIVE_T _flock_t; -#endif - -#ifndef __iconv_t_defined -/* Iconv descriptor type */ -typedef void *_iconv_t; -#endif - -#endif /* _SYS__TYPES_H */ diff --git a/components/newlib/include/sys/cdefs.h b/components/newlib/include/sys/cdefs.h deleted file mode 100644 index a5e613c63c..0000000000 --- a/components/newlib/include/sys/cdefs.h +++ /dev/null @@ -1,710 +0,0 @@ -/* libc/sys/linux/sys/cdefs.h - Helper macros for K&R vs. ANSI C compat. */ - -/* Written 2000 by Werner Almesberger */ - -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Berkeley Software Design, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * @(#)cdefs.h 8.8 (Berkeley) 1/9/95 - * $FreeBSD$ - */ - -#ifndef _SYS_CDEFS_H_ -#define _SYS_CDEFS_H_ - -#include -#include -#include - -#define __PMT(args) args -#define __DOTS , ... -#define __THROW - -#ifdef __GNUC__ -# define __ASMNAME(cname) __XSTRING (__USER_LABEL_PREFIX__) cname -#endif - -#define __ptr_t void * -#define __long_double_t long double - -#define __attribute_malloc__ -#define __attribute_pure__ -#define __attribute_format_strfmon__(a,b) -#define __flexarr [0] - -#ifndef __BOUNDED_POINTERS__ -# define __bounded /* nothing */ -# define __unbounded /* nothing */ -# define __ptrvalue /* nothing */ -#endif - -/* - * Testing against Clang-specific extensions. - */ - -#ifndef __has_extension -#define __has_extension __has_feature -#endif -#ifndef __has_feature -#define __has_feature(x) 0 -#endif -#ifndef __has_include -#define __has_include(x) 0 -#endif -#ifndef __has_builtin -#define __has_builtin(x) 0 -#endif - -#if defined(__cplusplus) -#define __BEGIN_DECLS extern "C" { -#define __END_DECLS } -#else -#define __BEGIN_DECLS -#define __END_DECLS -#endif - -/* - * This code has been put in place to help reduce the addition of - * compiler specific defines in FreeBSD code. It helps to aid in - * having a compiler-agnostic source tree. - */ - -#if defined(__GNUC__) || defined(__INTEL_COMPILER) - -#if __GNUC__ >= 3 || defined(__INTEL_COMPILER) -#define __GNUCLIKE_ASM 3 -#define __GNUCLIKE_MATH_BUILTIN_CONSTANTS -#else -#define __GNUCLIKE_ASM 2 -#endif -#define __GNUCLIKE___TYPEOF 1 -#define __GNUCLIKE___OFFSETOF 1 -#define __GNUCLIKE___SECTION 1 - -#ifndef __INTEL_COMPILER -# define __GNUCLIKE_CTOR_SECTION_HANDLING 1 -#endif - -#define __GNUCLIKE_BUILTIN_CONSTANT_P 1 -# if defined(__INTEL_COMPILER) && defined(__cplusplus) \ - && __INTEL_COMPILER < 800 -# undef __GNUCLIKE_BUILTIN_CONSTANT_P -# endif - -#if (__GNUC_MINOR__ > 95 || __GNUC__ >= 3) && !defined(__INTEL_COMPILER) -# define __GNUCLIKE_BUILTIN_VARARGS 1 -# define __GNUCLIKE_BUILTIN_STDARG 1 -# define __GNUCLIKE_BUILTIN_VAALIST 1 -#endif - -#if defined(__GNUC__) -# define __GNUC_VA_LIST_COMPATIBILITY 1 -#endif - -/* - * Compiler memory barriers, specific to gcc and clang. - */ -#if defined(__GNUC__) -#define __compiler_membar() __asm __volatile(" " : : : "memory") -#endif - -#ifndef __INTEL_COMPILER -# define __GNUCLIKE_BUILTIN_NEXT_ARG 1 -# define __GNUCLIKE_MATH_BUILTIN_RELOPS -#endif - -#define __GNUCLIKE_BUILTIN_MEMCPY 1 - -/* XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced */ -#define __CC_SUPPORTS_INLINE 1 -#define __CC_SUPPORTS___INLINE 1 -#define __CC_SUPPORTS___INLINE__ 1 - -#define __CC_SUPPORTS___FUNC__ 1 -#define __CC_SUPPORTS_WARNING 1 - -#define __CC_SUPPORTS_VARADIC_XXX 1 /* see varargs.h */ - -#define __CC_SUPPORTS_DYNAMIC_ARRAY_INIT 1 - -#endif /* __GNUC__ || __INTEL_COMPILER */ - -/* - * The __CONCAT macro is used to concatenate parts of symbol names, e.g. - * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. - * The __CONCAT macro is a bit tricky to use if it must work in non-ANSI - * mode -- there must be no spaces between its arguments, and for nested - * __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also - * concatenate double-quoted strings produced by the __STRING macro, but - * this only works with ANSI C. - * - * __XSTRING is like __STRING, but it expands any macros in its argument - * first. It is only available with ANSI C. - */ -#if defined(__STDC__) || defined(__cplusplus) -#define __P(protos) protos /* full-blown ANSI C */ -#define __CONCAT1(x,y) x ## y -#define __CONCAT(x,y) __CONCAT1(x,y) -#define __STRING(x) #x /* stringify without expanding x */ -#define __XSTRING(x) __STRING(x) /* expand x, then stringify */ - -#define __const const /* define reserved names to standard */ -#define __signed signed -#define __volatile volatile -#if defined(__cplusplus) -#define __inline inline /* convert to C++ keyword */ -#else -#if !(defined(__CC_SUPPORTS___INLINE)) -#define __inline /* delete GCC keyword */ -#endif /* ! __CC_SUPPORTS___INLINE */ -#endif /* !__cplusplus */ - -#else /* !(__STDC__ || __cplusplus) */ -#define __P(protos) () /* traditional C preprocessor */ -#define __CONCAT(x,y) x/**/y -#define __STRING(x) "x" - -#if !defined(__CC_SUPPORTS___INLINE) -#define __const /* delete pseudo-ANSI C keywords */ -#define __inline -#define __signed -#define __volatile -/* - * In non-ANSI C environments, new programs will want ANSI-only C keywords - * deleted from the program and old programs will want them left alone. - * When using a compiler other than gcc, programs using the ANSI C keywords - * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. - * When using "gcc -traditional", we assume that this is the intent; if - * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. - */ -#ifndef NO_ANSI_KEYWORDS -#define const /* delete ANSI C keywords */ -#define inline -#define signed -#define volatile -#endif /* !NO_ANSI_KEYWORDS */ -#endif /* !__CC_SUPPORTS___INLINE */ -#endif /* !(__STDC__ || __cplusplus) */ - -/* - * Compiler-dependent macros to help declare dead (non-returning) and - * pure (no side effects) functions, and unused variables. They are - * null except for versions of gcc that are known to support the features - * properly (old versions of gcc-2 supported the dead and pure features - * in a different (wrong) way). If we do not provide an implementation - * for a given compiler, let the compile fail if it is told to use - * a feature that we cannot live without. - */ -#ifdef lint -#define __dead2 -#define __pure2 -#define __unused -#define __packed -#define __aligned(x) -#define __section(x) -#else -#if !__GNUC_PREREQ__(2, 5) && !defined(__INTEL_COMPILER) -#define __dead2 -#define __pure2 -#define __unused -#endif -#if __GNUC__ == 2 && __GNUC_MINOR__ >= 5 && __GNUC_MINOR__ < 7 && !defined(__INTEL_COMPILER) -#define __dead2 __attribute__((__noreturn__)) -#define __pure2 __attribute__((__const__)) -#define __unused -/* XXX Find out what to do for __packed, __aligned and __section */ -#endif -#if __GNUC_PREREQ__(2, 7) -#define __dead2 __attribute__((__noreturn__)) -#define __pure2 __attribute__((__const__)) -#define __unused __attribute__((__unused__)) -#define __used __attribute__((__used__)) -#define __packed __attribute__((__packed__)) -#define __aligned(x) __attribute__((__aligned__(x))) -#define __section(x) __attribute__((__section__(x))) -#endif -#if defined(__INTEL_COMPILER) -#define __dead2 __attribute__((__noreturn__)) -#define __pure2 __attribute__((__const__)) -#define __unused __attribute__((__unused__)) -#define __used __attribute__((__used__)) -#define __packed __attribute__((__packed__)) -#define __aligned(x) __attribute__((__aligned__(x))) -#define __section(x) __attribute__((__section__(x))) -#endif -#endif - -#if !__GNUC_PREREQ__(2, 95) -#define __alignof(x) __offsetof(struct { char __a; x __b; }, __b) -#endif - -/* - * Keywords added in C11. - */ - -#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L - -#if !__has_extension(c_alignas) -#if (defined(__cplusplus) && __cplusplus >= 201103L) || \ - __has_extension(cxx_alignas) -#define _Alignas(x) alignas(x) -#else -/* XXX: Only emulates _Alignas(constant-expression); not _Alignas(type-name). */ -#define _Alignas(x) __aligned(x) -#endif -#endif - -#if defined(__cplusplus) && __cplusplus >= 201103L -#define _Alignof(x) alignof(x) -#else -#define _Alignof(x) __alignof(x) -#endif - -#if !__has_extension(c_atomic) && !__has_extension(cxx_atomic) -/* - * No native support for _Atomic(). Place object in structure to prevent - * most forms of direct non-atomic access. - */ -#define _Atomic(T) struct { T volatile __val; } -#endif - -#if defined(__cplusplus) && __cplusplus >= 201103L -#define _Noreturn [[noreturn]] -#else -#define _Noreturn __dead2 -#endif - -#if __GNUC_PREREQ__(4, 6) && !defined(__cplusplus) -/* Do nothing: _Static_assert() works as per C11 */ -#elif !__has_extension(c_static_assert) -#if (defined(__cplusplus) && __cplusplus >= 201103L) || \ - __has_extension(cxx_static_assert) -#define _Static_assert(x, y) static_assert(x, y) -#elif defined(__COUNTER__) -#define _Static_assert(x, y) __Static_assert(x, __COUNTER__) -#define __Static_assert(x, y) ___Static_assert(x, y) -#define ___Static_assert(x, y) typedef char __assert_ ## y[(x) ? 1 : -1] -#else -#define _Static_assert(x, y) struct __hack -#endif -#endif - -#if !__has_extension(c_thread_local) -/* XXX: Change this to test against C++11 when clang in base supports it. */ -#if /* (defined(__cplusplus) && __cplusplus >= 201103L) || */ \ - __has_extension(cxx_thread_local) -#define _Thread_local thread_local -#else -#define _Thread_local __thread -#endif -#endif - -#endif /* __STDC_VERSION__ || __STDC_VERSION__ < 201112L */ - -/* - * Emulation of C11 _Generic(). Unlike the previously defined C11 - * keywords, it is not possible to implement this using exactly the same - * syntax. Therefore implement something similar under the name - * __generic(). Unlike _Generic(), this macro can only distinguish - * between a single type, so it requires nested invocations to - * distinguish multiple cases. - */ - -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -#define __generic(expr, t, yes, no) \ - _Generic(expr, t: yes, default: no) -#elif __GNUC_PREREQ__(3, 1) && !defined(__cplusplus) -#define __generic(expr, t, yes, no) \ - __builtin_choose_expr( \ - __builtin_types_compatible_p(__typeof(expr), t), yes, no) -#endif - -#if __GNUC_PREREQ__(2, 96) -#define __malloc_like __attribute__((__malloc__)) -#define __pure __attribute__((__pure__)) -#else -#define __malloc_like -#define __pure -#endif - -#if __GNUC_PREREQ__(3, 1) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800) -#define __always_inline __attribute__((__always_inline__)) -#else -#define __always_inline -#endif - -#if __GNUC_PREREQ__(3, 1) -#define __noinline __attribute__ ((__noinline__)) -#else -#define __noinline -#endif - -#if __GNUC_PREREQ__(3, 3) -#define __nonnull(x) __attribute__((__nonnull__(x))) -#else -#define __nonnull(x) -#endif - -#if __GNUC_PREREQ__(3, 4) -#define __fastcall __attribute__((__fastcall__)) -#else -#define __fastcall -#endif - -#if __GNUC_PREREQ__(4, 1) -#define __returns_twice __attribute__((__returns_twice__)) -#else -#define __returns_twice -#endif - -/* XXX: should use `#if __STDC_VERSION__ < 199901'. */ -#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER) -#define __func__ NULL -#endif - -/* - * GCC 2.95 provides `__restrict' as an extension to C90 to support the - * C99-specific `restrict' type qualifier. We happen to use `__restrict' as - * a way to define the `restrict' type qualifier without disturbing older - * software that is unaware of C99 keywords. - */ -#if !(__GNUC__ == 2 && __GNUC_MINOR__ == 95) -#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901 || defined(lint) -#define __restrict -#else -#define __restrict restrict -#endif -#endif - -/* - * GNU C version 2.96 adds explicit branch prediction so that - * the CPU back-end can hint the processor and also so that - * code blocks can be reordered such that the predicted path - * sees a more linear flow, thus improving cache behavior, etc. - * - * The following two macros provide us with a way to utilize this - * compiler feature. Use __predict_true() if you expect the expression - * to evaluate to true, and __predict_false() if you expect the - * expression to evaluate to false. - * - * A few notes about usage: - * - * * Generally, __predict_false() error condition checks (unless - * you have some _strong_ reason to do otherwise, in which case - * document it), and/or __predict_true() `no-error' condition - * checks, assuming you want to optimize for the no-error case. - * - * * Other than that, if you don't know the likelihood of a test - * succeeding from empirical or other `hard' evidence, don't - * make predictions. - * - * * These are meant to be used in places that are run `a lot'. - * It is wasteful to make predictions in code that is run - * seldomly (e.g. at subsystem initialization time) as the - * basic block reordering that this affects can often generate - * larger code. - */ -#if __GNUC_PREREQ__(2, 96) -#define __predict_true(exp) __builtin_expect((exp), 1) -#define __predict_false(exp) __builtin_expect((exp), 0) -#else -#define __predict_true(exp) (exp) -#define __predict_false(exp) (exp) -#endif - -#if __GNUC_PREREQ__(4, 2) -#define __hidden __attribute__((__visibility__("hidden"))) -#define __exported __attribute__((__visibility__("default"))) -#else -#define __hidden -#define __exported -#endif - -#define __offsetof(type, field) offsetof(type, field) -#define __rangeof(type, start, end) \ - (__offsetof(type, end) - __offsetof(type, start)) - -/* - * Given the pointer x to the member m of the struct s, return - * a pointer to the containing structure. When using GCC, we first - * assign pointer x to a local variable, to check that its type is - * compatible with member m. - */ -#if __GNUC_PREREQ__(3, 1) -#define __containerof(x, s, m) ({ \ - const volatile __typeof__(((s *)0)->m) *__x = (x); \ - __DEQUALIFY(s *, (const volatile char *)__x - __offsetof(s, m));\ -}) -#else -#define __containerof(x, s, m) \ - __DEQUALIFY(s *, (const volatile char *)(x) - __offsetof(s, m)) -#endif - -/* - * Compiler-dependent macros to declare that functions take printf-like - * or scanf-like arguments. They are null except for versions of gcc - * that are known to support the features properly (old versions of gcc-2 - * didn't permit keeping the keywords out of the application namespace). - */ -#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER) -#define __printflike(fmtarg, firstvararg) -#define __scanflike(fmtarg, firstvararg) -#define __format_arg(fmtarg) -#define __strfmonlike(fmtarg, firstvararg) -#define __strftimelike(fmtarg, firstvararg) -#else -#define __printflike(fmtarg, firstvararg) \ - __attribute__((__format__ (__printf__, fmtarg, firstvararg))) -#define __scanflike(fmtarg, firstvararg) \ - __attribute__((__format__ (__scanf__, fmtarg, firstvararg))) -#define __format_arg(fmtarg) __attribute__((__format_arg__ (fmtarg))) -#define __strfmonlike(fmtarg, firstvararg) \ - __attribute__((__format__ (__strfmon__, fmtarg, firstvararg))) -#define __strftimelike(fmtarg, firstvararg) \ - __attribute__((__format__ (__strftime__, fmtarg, firstvararg))) -#endif - -/* Compiler-dependent macros that rely on FreeBSD-specific extensions. */ -#if defined(__FreeBSD_cc_version) && __FreeBSD_cc_version >= 300001 && \ - defined(__GNUC__) && !defined(__INTEL_COMPILER) -#define __printf0like(fmtarg, firstvararg) \ - __attribute__((__format__ (__printf0__, fmtarg, firstvararg))) -#else -#define __printf0like(fmtarg, firstvararg) -#endif - -#if defined(__GNUC__) || defined(__INTEL_COMPILER) -#ifndef __INTEL_COMPILER -#define __strong_reference(sym,aliassym) \ - extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym))) -#endif -#ifdef __ELF__ -#ifdef __STDC__ -#define __weak_reference(sym,alias) \ - __asm__(".weak " #alias); \ - __asm__(".equ " #alias ", " #sym) -#define __warn_references(sym,msg) \ - __asm__(".section .gnu.warning." #sym); \ - __asm__(".asciz \"" msg "\""); \ - __asm__(".previous") -#define __sym_compat(sym,impl,verid) \ - __asm__(".symver " #impl ", " #sym "@" #verid) -#define __sym_default(sym,impl,verid) \ - __asm__(".symver " #impl ", " #sym "@@" #verid) -#else -#define __weak_reference(sym,alias) \ - __asm__(".weak alias"); \ - __asm__(".equ alias, sym") -#define __warn_references(sym,msg) \ - __asm__(".section .gnu.warning.sym"); \ - __asm__(".asciz \"msg\""); \ - __asm__(".previous") -#define __sym_compat(sym,impl,verid) \ - __asm__(".symver impl, sym@verid") -#define __sym_default(impl,sym,verid) \ - __asm__(".symver impl, sym@@verid") -#endif /* __STDC__ */ -#else /* !__ELF__ */ -#ifdef __STDC__ -#define __weak_reference(sym,alias) \ - __asm__(".stabs \"_" #alias "\",11,0,0,0"); \ - __asm__(".stabs \"_" #sym "\",1,0,0,0") -#define __warn_references(sym,msg) \ - __asm__(".stabs \"" msg "\",30,0,0,0"); \ - __asm__(".stabs \"_" #sym "\",1,0,0,0") -#else -#define __weak_reference(sym,alias) \ - __asm__(".stabs \"_/**/alias\",11,0,0,0"); \ - __asm__(".stabs \"_/**/sym\",1,0,0,0") -#define __warn_references(sym,msg) \ - __asm__(".stabs msg,30,0,0,0"); \ - __asm__(".stabs \"_/**/sym\",1,0,0,0") -#endif /* __STDC__ */ -#endif /* __ELF__ */ -#endif /* __GNUC__ || __INTEL_COMPILER */ - -#ifndef __FBSDID -#define __FBSDID(s) struct __hack -#endif - -#ifndef __RCSID -#define __RCSID(s) struct __hack -#endif - -#ifndef __RCSID_SOURCE -#define __RCSID_SOURCE(s) struct __hack -#endif - -#ifndef __SCCSID -#define __SCCSID(s) struct __hack -#endif - -#ifndef __COPYRIGHT -#define __COPYRIGHT(s) struct __hack -#endif - -#ifndef __DECONST -#define __DECONST(type, var) ((type)(__uintptr_t)(const void *)(var)) -#endif - -#ifndef __DEVOLATILE -#define __DEVOLATILE(type, var) ((type)(__uintptr_t)(volatile void *)(var)) -#endif - -#ifndef __DEQUALIFY -#define __DEQUALIFY(type, var) ((type)(__uintptr_t)(const volatile void *)(var)) -#endif - -/*- - * The following definitions are an extension of the behavior originally - * implemented in , but with a different level of granularity. - * POSIX.1 requires that the macros we test be defined before any standard - * header file is included. - * - * Here's a quick run-down of the versions: - * defined(_POSIX_SOURCE) 1003.1-1988 - * _POSIX_C_SOURCE == 1 1003.1-1990 - * _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option - * _POSIX_C_SOURCE == 199309 1003.1b-1993 - * _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, - * and the omnibus ISO/IEC 9945-1: 1996 - * _POSIX_C_SOURCE == 200112 1003.1-2001 - * _POSIX_C_SOURCE == 200809 1003.1-2008 - * - * In addition, the X/Open Portability Guide, which is now the Single UNIX - * Specification, defines a feature-test macro which indicates the version of - * that specification, and which subsumes _POSIX_C_SOURCE. - * - * Our macros begin with two underscores to avoid namespace screwage. - */ - -/* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. */ -#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1 -#undef _POSIX_C_SOURCE /* Probably illegal, but beyond caring now. */ -#define _POSIX_C_SOURCE 199009 -#endif - -/* Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. */ -#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 2 -#undef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 199209 -#endif - -/* Deal with various X/Open Portability Guides and Single UNIX Spec. */ -#ifdef _XOPEN_SOURCE -#if _XOPEN_SOURCE - 0 >= 700 -#define __XSI_VISIBLE 700 -#undef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 200809 -#elif _XOPEN_SOURCE - 0 >= 600 -#define __XSI_VISIBLE 600 -#undef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 200112 -#elif _XOPEN_SOURCE - 0 >= 500 -#define __XSI_VISIBLE 500 -#undef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 199506 -#endif -#endif - -/* - * Deal with all versions of POSIX. The ordering relative to the tests above is - * important. - */ -#if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) -#define _POSIX_C_SOURCE 198808 -#endif -#ifdef _POSIX_C_SOURCE -#if _POSIX_C_SOURCE >= 200809 -#define __POSIX_VISIBLE 200809 -#define __ISO_C_VISIBLE 1999 -#elif _POSIX_C_SOURCE >= 200112 -#define __POSIX_VISIBLE 200112 -#define __ISO_C_VISIBLE 1999 -#elif _POSIX_C_SOURCE >= 199506 -#define __POSIX_VISIBLE 199506 -#define __ISO_C_VISIBLE 1990 -#elif _POSIX_C_SOURCE >= 199309 -#define __POSIX_VISIBLE 199309 -#define __ISO_C_VISIBLE 1990 -#elif _POSIX_C_SOURCE >= 199209 -#define __POSIX_VISIBLE 199209 -#define __ISO_C_VISIBLE 1990 -#elif _POSIX_C_SOURCE >= 199009 -#define __POSIX_VISIBLE 199009 -#define __ISO_C_VISIBLE 1990 -#else -#define __POSIX_VISIBLE 198808 -#define __ISO_C_VISIBLE 0 -#endif /* _POSIX_C_SOURCE */ -#else -/*- - * Deal with _ANSI_SOURCE: - * If it is defined, and no other compilation environment is explicitly - * requested, then define our internal feature-test macros to zero. This - * makes no difference to the preprocessor (undefined symbols in preprocessing - * expressions are defined to have value zero), but makes it more convenient for - * a test program to print out the values. - * - * If a program mistakenly defines _ANSI_SOURCE and some other macro such as - * _POSIX_C_SOURCE, we will assume that it wants the broader compilation - * environment (and in fact we will never get here). - */ -#if defined(_ANSI_SOURCE) /* Hide almost everything. */ -#define __POSIX_VISIBLE 0 -#define __XSI_VISIBLE 0 -#define __BSD_VISIBLE 0 -#define __ISO_C_VISIBLE 1990 -#elif defined(_C99_SOURCE) /* Localism to specify strict C99 env. */ -#define __POSIX_VISIBLE 0 -#define __XSI_VISIBLE 0 -#define __BSD_VISIBLE 0 -#define __ISO_C_VISIBLE 1999 -#elif defined(_C11_SOURCE) /* Localism to specify strict C11 env. */ -#define __POSIX_VISIBLE 0 -#define __XSI_VISIBLE 0 -#define __BSD_VISIBLE 0 -#define __ISO_C_VISIBLE 2011 -#elif defined(_GNU_SOURCE) /* Everything and the kitchen sink. */ -#define __POSIX_VISIBLE 200809 -#define __XSI_VISIBLE 700 -#define __BSD_VISIBLE 1 -#define __ISO_C_VISIBLE 2011 -#define __GNU_VISIBLE 1 -#else /* Default: everything except __GNU_VISIBLE. */ -#define __POSIX_VISIBLE 200809 -#define __XSI_VISIBLE 700 -#define __BSD_VISIBLE 1 -#define __ISO_C_VISIBLE 2011 -#endif -#endif - -#endif /* !_SYS_CDEFS_H_ */ diff --git a/components/newlib/include/sys/config.h b/components/newlib/include/sys/config.h deleted file mode 100644 index b5adfe1025..0000000000 --- a/components/newlib/include/sys/config.h +++ /dev/null @@ -1,300 +0,0 @@ -#ifndef __SYS_CONFIG_H__ -#define __SYS_CONFIG_H__ - -#include /* floating point macros */ -#include /* POSIX defs */ - -#ifdef __aarch64__ -#define MALLOC_ALIGNMENT 16 -#endif - -/* exceptions first */ -#if defined(__H8500__) || defined(__W65__) -#define __SMALL_BITFIELDS -/* ??? This conditional is true for the h8500 and the w65, defining H8300 - in those cases probably isn't the right thing to do. */ -#define H8300 1 -#endif - -/* 16 bit integer machines */ -#if defined(__Z8001__) || defined(__Z8002__) || defined(__H8500__) || defined(__W65__) || defined (__mn10200__) || defined (__AVR__) - -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX 32767 -#define UINT_MAX 65535 -#endif - -#if defined (__H8300__) || defined (__H8300H__) || defined(__H8300S__) || defined (__H8300SX__) -#define __SMALL_BITFIELDS -#define H8300 1 -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#endif - -#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__)) -#ifndef __INT32__ -#define __SMALL_BITFIELDS -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX 32767 -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#else /* INT32 */ -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX 2147483647 -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#endif /* INT32 */ - -#endif /* CR16C */ - -#if defined (__xc16x__) || defined (__xc16xL__) || defined (__xc16xS__) -#define __SMALL_BITFIELDS -#endif - -#ifdef __W65__ -#define __SMALL_BITFIELDS -#endif - -#if defined(__D10V__) -#define __SMALL_BITFIELDS -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#define _POINTER_INT short -#endif - -#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__) -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#define _POINTER_INT short -#endif - -#if defined(__m68k__) || defined(__mc68000__) -#define _READ_WRITE_RETURN_TYPE _ssize_t -#endif - -#ifdef ___AM29K__ -#define _FLOAT_RET double -#endif - -#ifdef __i386__ -#ifndef __unix__ -/* in other words, go32 */ -#define _FLOAT_RET double -#endif -#if defined(__linux__) || defined(__RDOS__) -/* we want the reentrancy structure to be returned by a function */ -#define __DYNAMIC_REENT__ -#define HAVE_GETDATE -#define _HAVE_SYSTYPES -#define _READ_WRITE_RETURN_TYPE _ssize_t -#define __LARGE64_FILES 1 -/* we use some glibc header files so turn on glibc large file feature */ -#define _LARGEFILE64_SOURCE 1 -#endif -#endif - -#ifdef __mn10200__ -#define __SMALL_BITFIELDS -#endif - -#ifdef __AVR__ -#define __SMALL_BITFIELDS -#define _POINTER_INT short -#endif - -#ifdef __v850 -#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__sda__)) -#endif - -/* For the PowerPC eabi, force the _impure_ptr to be in .sdata */ -#if defined(__PPC__) -#if defined(_CALL_SYSV) -#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata"))) -#endif -#ifdef __SPE__ -#define _LONG_DOUBLE double -#endif -#endif - -/* Configure small REENT structure for Xilinx MicroBlaze platforms */ -#if defined (__MICROBLAZE__) -#ifndef _REENT_SMALL -#define _REENT_SMALL -#endif -/* Xilinx XMK uses Unix98 mutex */ -#ifdef __XMK__ -#define _UNIX98_THREAD_MUTEX_ATTRIBUTES -#endif -#endif - -#if defined(__mips__) && !defined(__rtems__) -#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata"))) -#endif - -#ifdef __xstormy16__ -#define __SMALL_BITFIELDS -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#define MALLOC_ALIGNMENT 8 -#define _POINTER_INT short -#define __BUFSIZ__ 16 -#define _REENT_SMALL -#endif - -#if defined __MSP430__ -#ifndef _REENT_SMALL -#define _REENT_SMALL -#endif - -#define __SMALL_BITFIELDS - -#ifdef __MSP430X_LARGE__ -#define _POINTER_INT long -#else -#define _POINTER_INT int -#endif -#endif - -#ifdef __m32c__ -#define __SMALL_BITFIELDS -#undef INT_MAX -#undef UINT_MAX -#define INT_MAX __INT_MAX__ -#define UINT_MAX (__INT_MAX__ * 2U + 1) -#define MALLOC_ALIGNMENT 8 -#if defined(__r8c_cpu__) || defined(__m16c_cpu__) -#define _POINTER_INT short -#else -#define _POINTER_INT long -#endif -#define __BUFSIZ__ 16 -#define _REENT_SMALL -#endif /* __m32c__ */ - -#ifdef __SPU__ -#define MALLOC_ALIGNMENT 16 -#define __CUSTOM_FILE_IO__ -#endif - -#ifdef __XTENSA__ -#include -#define MALLOC_ALIGNMENT ((XCHAL_DATA_WIDTH) < 16 ? 16 : (XCHAL_DATA_WIDTH)) -/* esp8266-specific: shrink the default fd buffer size */ -#define __BUFSIZ__ 128 -#ifndef __DYNAMIC_REENT__ -#define __DYNAMIC_REENT__ -#endif -#ifndef _REENT_SMALL -#define _REENT_SMALL -#endif -#define HAVE_GETOPT -#endif - -/* This block should be kept in sync with GCC's limits.h. The point - of having these definitions here is to not include limits.h, which - would pollute the user namespace, while still using types of the - the correct widths when deciding how to define __int32_t and - __int64_t. */ -#ifndef __INT_MAX__ -# ifdef INT_MAX -# define __INT_MAX__ INT_MAX -# else -# define __INT_MAX__ 2147483647 -# endif -#endif - -#ifndef __LONG_MAX__ -# ifdef LONG_MAX -# define __LONG_MAX__ LONG_MAX -# else -# if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) \ - || defined (__sparcv9) -# define __LONG_MAX__ 9223372036854775807L -# else -# define __LONG_MAX__ 2147483647L -# endif /* __alpha__ || sparc64 */ -# endif -#endif -/* End of block that should be kept in sync with GCC's limits.h. */ - -#ifndef _POINTER_INT -#define _POINTER_INT long -#endif - -#ifdef __frv__ -#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata"))) -#endif -#undef __RAND_MAX -#if __INT_MAX__ == 32767 -#define __RAND_MAX 32767 -#else -#define __RAND_MAX 0x7fffffff -#endif - -#if defined(__CYGWIN__) -#include -#if !defined (__STRICT_ANSI__) || (__STDC_VERSION__ >= 199901L) -#define __USE_XOPEN2K 1 -#endif -#endif - -#if defined(__rtems__) -#define __FILENAME_MAX__ 255 -#define _READ_WRITE_RETURN_TYPE _ssize_t -#define __DYNAMIC_REENT__ -#define _REENT_GLOBAL_ATEXIT -#endif - -#ifndef __EXPORT -#define __EXPORT -#endif - -#ifndef __IMPORT -#define __IMPORT -#endif - -/* Define return type of read/write routines. In POSIX, the return type - for read()/write() is "ssize_t" but legacy newlib code has been using - "int" for some time. If not specified, "int" is defaulted. */ -#ifndef _READ_WRITE_RETURN_TYPE -#define _READ_WRITE_RETURN_TYPE int -#endif -/* Define `count' parameter of read/write routines. In POSIX, the `count' - parameter is "size_t" but legacy newlib code has been using "int" for some - time. If not specified, "int" is defaulted. */ -#ifndef _READ_WRITE_BUFSIZE_TYPE -#define _READ_WRITE_BUFSIZE_TYPE int -#endif - -#ifndef __WCHAR_MAX__ -#if __INT_MAX__ == 32767 || defined (_WIN32) -#define __WCHAR_MAX__ 0xffffu -#endif -#endif - -/* See if small reent asked for at configuration time and - is not chosen by the platform by default. */ -#ifdef _WANT_REENT_SMALL -#ifndef _REENT_SMALL -#define _REENT_SMALL -#endif -#endif - -/* If _MB_EXTENDED_CHARSETS_ALL is set, we want all of the extended - charsets. The extended charsets add a few functions and a couple - of tables of a few K each. */ -#ifdef _MB_EXTENDED_CHARSETS_ALL -#define _MB_EXTENDED_CHARSETS_ISO 1 -#define _MB_EXTENDED_CHARSETS_WINDOWS 1 -#endif - -#endif /* __SYS_CONFIG_H__ */ diff --git a/components/newlib/include/sys/custom_file.h b/components/newlib/include/sys/custom_file.h deleted file mode 100644 index 96314fb916..0000000000 --- a/components/newlib/include/sys/custom_file.h +++ /dev/null @@ -1,2 +0,0 @@ -#error System-specific custom_file.h is missing. - diff --git a/components/newlib/include/sys/dir.h b/components/newlib/include/sys/dir.h deleted file mode 100644 index 220150dc95..0000000000 --- a/components/newlib/include/sys/dir.h +++ /dev/null @@ -1,10 +0,0 @@ -/* BSD predecessor of POSIX.1 and struct dirent */ - -#ifndef _SYS_DIR_H_ -#define _SYS_DIR_H_ - -#include - -#define direct dirent - -#endif /*_SYS_DIR_H_*/ diff --git a/components/newlib/include/sys/errno.h b/components/newlib/include/sys/errno.h deleted file mode 100644 index a72c37320a..0000000000 --- a/components/newlib/include/sys/errno.h +++ /dev/null @@ -1,192 +0,0 @@ -/* errno is not a global variable, because that would make using it - non-reentrant. Instead, its address is returned by the function - __errno. */ - -#ifndef _SYS_ERRNO_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _SYS_ERRNO_H_ - -#include - -#ifndef _REENT_ONLY -#define errno (*__errno()) -extern int *__errno _PARAMS ((void)); -#endif - -/* Please don't use these variables directly. - Use strerror instead. */ -extern __IMPORT _CONST char * _CONST _sys_errlist[]; -extern __IMPORT int _sys_nerr; -#ifdef __CYGWIN__ -extern __IMPORT const char * const sys_errlist[]; -extern __IMPORT int sys_nerr; -extern __IMPORT char *program_invocation_name; -extern __IMPORT char *program_invocation_short_name; -#endif - -#define __errno_r(ptr) ((ptr)->_errno) - -#define EPERM 1 /* Not owner */ -#define ENOENT 2 /* No such file or directory */ -#define ESRCH 3 /* No such process */ -#define EINTR 4 /* Interrupted system call */ -#define EIO 5 /* I/O error */ -#define ENXIO 6 /* No such device or address */ -#define E2BIG 7 /* Arg list too long */ -#define ENOEXEC 8 /* Exec format error */ -#define EBADF 9 /* Bad file number */ -#define ECHILD 10 /* No children */ -#define EAGAIN 11 /* No more processes */ -#define ENOMEM 12 /* Not enough space */ -#define EACCES 13 /* Permission denied */ -#define EFAULT 14 /* Bad address */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ENOTBLK 15 /* Block device required */ -#endif -#define EBUSY 16 /* Device or resource busy */ -#define EEXIST 17 /* File exists */ -#define EXDEV 18 /* Cross-device link */ -#define ENODEV 19 /* No such device */ -#define ENOTDIR 20 /* Not a directory */ -#define EISDIR 21 /* Is a directory */ -#define EINVAL 22 /* Invalid argument */ -#define ENFILE 23 /* Too many open files in system */ -#define EMFILE 24 /* File descriptor value too large */ -#define ENOTTY 25 /* Not a character device */ -#define ETXTBSY 26 /* Text file busy */ -#define EFBIG 27 /* File too large */ -#define ENOSPC 28 /* No space left on device */ -#define ESPIPE 29 /* Illegal seek */ -#define EROFS 30 /* Read-only file system */ -#define EMLINK 31 /* Too many links */ -#define EPIPE 32 /* Broken pipe */ -#define EDOM 33 /* Mathematics argument out of domain of function */ -#define ERANGE 34 /* Result too large */ -#define ENOMSG 35 /* No message of desired type */ -#define EIDRM 36 /* Identifier removed */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ECHRNG 37 /* Channel number out of range */ -#define EL2NSYNC 38 /* Level 2 not synchronized */ -#define EL3HLT 39 /* Level 3 halted */ -#define EL3RST 40 /* Level 3 reset */ -#define ELNRNG 41 /* Link number out of range */ -#define EUNATCH 42 /* Protocol driver not attached */ -#define ENOCSI 43 /* No CSI structure available */ -#define EL2HLT 44 /* Level 2 halted */ -#endif -#define EDEADLK 45 /* Deadlock */ -#define ENOLCK 46 /* No lock */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define EBADE 50 /* Invalid exchange */ -#define EBADR 51 /* Invalid request descriptor */ -#define EXFULL 52 /* Exchange full */ -#define ENOANO 53 /* No anode */ -#define EBADRQC 54 /* Invalid request code */ -#define EBADSLT 55 /* Invalid slot */ -#define EDEADLOCK 56 /* File locking deadlock error */ -#define EBFONT 57 /* Bad font file fmt */ -#endif -#define ENOSTR 60 /* Not a stream */ -#define ENODATA 61 /* No data (for no delay io) */ -#define ETIME 62 /* Stream ioctl timeout */ -#define ENOSR 63 /* No stream resources */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ENONET 64 /* Machine is not on the network */ -#define ENOPKG 65 /* Package not installed */ -#define EREMOTE 66 /* The object is remote */ -#endif -#define ENOLINK 67 /* Virtual circuit is gone */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define EADV 68 /* Advertise error */ -#define ESRMNT 69 /* Srmount error */ -#define ECOMM 70 /* Communication error on send */ -#endif -#define EPROTO 71 /* Protocol error */ -#define EMULTIHOP 74 /* Multihop attempted */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ELBIN 75 /* Inode is remote (not really error) */ -#define EDOTDOT 76 /* Cross mount point (not really error) */ -#endif -#define EBADMSG 77 /* Bad message */ -#define EFTYPE 79 /* Inappropriate file type or format */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ENOTUNIQ 80 /* Given log. name not unique */ -#define EBADFD 81 /* f.d. invalid for this operation */ -#define EREMCHG 82 /* Remote address changed */ -#define ELIBACC 83 /* Can't access a needed shared lib */ -#define ELIBBAD 84 /* Accessing a corrupted shared lib */ -#define ELIBSCN 85 /* .lib section in a.out corrupted */ -#define ELIBMAX 86 /* Attempting to link in too many libs */ -#define ELIBEXEC 87 /* Attempting to exec a shared library */ -#endif -#define ENOSYS 88 /* Function not implemented */ -#ifdef __CYGWIN__ -#define ENMFILE 89 /* No more files */ -#endif -#define ENOTEMPTY 90 /* Directory not empty */ -#define ENAMETOOLONG 91 /* File or path name too long */ -#define ELOOP 92 /* Too many symbolic links */ -#define EOPNOTSUPP 95 /* Operation not supported on socket */ -#define EPFNOSUPPORT 96 /* Protocol family not supported */ -#define ECONNRESET 104 /* Connection reset by peer */ -#define ENOBUFS 105 /* No buffer space available */ -#define EAFNOSUPPORT 106 /* Address family not supported by protocol family */ -#define EPROTOTYPE 107 /* Protocol wrong type for socket */ -#define ENOTSOCK 108 /* Socket operation on non-socket */ -#define ENOPROTOOPT 109 /* Protocol not available */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ESHUTDOWN 110 /* Can't send after socket shutdown */ -#endif -#define ECONNREFUSED 111 /* Connection refused */ -#define EADDRINUSE 112 /* Address already in use */ -#define ECONNABORTED 113 /* Software caused connection abort */ -#define ENETUNREACH 114 /* Network is unreachable */ -#define ENETDOWN 115 /* Network interface is not configured */ -#define ETIMEDOUT 116 /* Connection timed out */ -#define EHOSTDOWN 117 /* Host is down */ -#define EHOSTUNREACH 118 /* Host is unreachable */ -#define EINPROGRESS 119 /* Connection already in progress */ -#define EALREADY 120 /* Socket already connected */ -#define EDESTADDRREQ 121 /* Destination address required */ -#define EMSGSIZE 122 /* Message too long */ -#define EPROTONOSUPPORT 123 /* Unknown protocol */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ESOCKTNOSUPPORT 124 /* Socket type not supported */ -#endif -#define EADDRNOTAVAIL 125 /* Address not available */ -#define ENETRESET 126 /* Connection aborted by network */ -#define EISCONN 127 /* Socket is already connected */ -#define ENOTCONN 128 /* Socket is not connected */ -#define ETOOMANYREFS 129 -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define EPROCLIM 130 -#define EUSERS 131 -#endif -#define EDQUOT 132 -#define ESTALE 133 -#define ENOTSUP 134 /* Not supported */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ENOMEDIUM 135 /* No medium (in tape drive) */ -#endif -#ifdef __CYGWIN__ -#define ENOSHARE 136 /* No such host or network path */ -#define ECASECLASH 137 /* Filename exists with different case */ -#endif -#define EILSEQ 138 /* Illegal byte sequence */ -#define EOVERFLOW 139 /* Value too large for defined data type */ -#define ECANCELED 140 /* Operation canceled */ -#define ENOTRECOVERABLE 141 /* State not recoverable */ -#define EOWNERDEAD 142 /* Previous owner died */ -#ifdef __LINUX_ERRNO_EXTENSIONS__ -#define ESTRPIPE 143 /* Streams pipe error */ -#endif -#define EWOULDBLOCK EAGAIN /* Operation would block */ - -#define __ELASTERROR 2000 /* Users can add values starting here */ - -#ifdef __cplusplus -} -#endif -#endif /* _SYS_ERRNO_H */ diff --git a/components/newlib/include/sys/fcntl.h b/components/newlib/include/sys/fcntl.h deleted file mode 100644 index be85f40c1b..0000000000 --- a/components/newlib/include/sys/fcntl.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef _SYS_FCNTL_H_ -#define _SYS_FCNTL_H_ -#include -#endif diff --git a/components/newlib/include/sys/features.h b/components/newlib/include/sys/features.h deleted file mode 100644 index 87f3314fd9..0000000000 --- a/components/newlib/include/sys/features.h +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 1989-2000. - * - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - * $Id$ - */ - -#ifndef _SYS_FEATURES_H -#define _SYS_FEATURES_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Macros to determine that newlib is being used. Put in this header to - * be similar to where glibc stores its version of these macros. - */ -#define __NEWLIB__ 2 -#define __NEWLIB_MINOR__ 1 - -/* Macro to test version of GCC. Returns 0 for non-GCC or too old GCC. */ -#ifndef __GNUC_PREREQ -# if defined __GNUC__ && defined __GNUC_MINOR__ -# define __GNUC_PREREQ(maj, min) \ - ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) -# else -# define __GNUC_PREREQ(maj, min) 0 -# endif -#endif /* __GNUC_PREREQ */ -/* Version with trailing underscores for BSD compatibility. */ -#define __GNUC_PREREQ__(ma, mi) __GNUC_PREREQ(ma, mi) - -/* RTEMS adheres to POSIX -- 1003.1b with some features from annexes. */ - -#ifdef __rtems__ -#define _POSIX_JOB_CONTROL 1 -#define _POSIX_SAVED_IDS 1 -#define _POSIX_VERSION 199309L -#define _POSIX_ASYNCHRONOUS_IO 1 -#define _POSIX_FSYNC 1 -#define _POSIX_MAPPED_FILES 1 -#define _POSIX_MEMLOCK 1 -#define _POSIX_MEMLOCK_RANGE 1 -#define _POSIX_MEMORY_PROTECTION 1 -#define _POSIX_MESSAGE_PASSING 1 -#define _POSIX_MONOTONIC_CLOCK 200112L -#define _POSIX_PRIORITIZED_IO 1 -#define _POSIX_PRIORITY_SCHEDULING 1 -#define _POSIX_REALTIME_SIGNALS 1 -#define _POSIX_SEMAPHORES 1 -/* #define _POSIX_SHARED_MEMORY_OBJECTS 1 */ -#define _POSIX_SYNCHRONIZED_IO 1 -#define _POSIX_TIMERS 1 -#define _POSIX_BARRIERS 200112L -#define _POSIX_READER_WRITER_LOCKS 200112L -#define _POSIX_SPIN_LOCKS 200112L - - -/* In P1003.1b but defined by drafts at least as early as P1003.1c/D10 */ -#define _POSIX_THREADS 1 -#define _POSIX_THREAD_ATTR_STACKADDR 1 -#define _POSIX_THREAD_ATTR_STACKSIZE 1 -#define _POSIX_THREAD_PRIORITY_SCHEDULING 1 -#define _POSIX_THREAD_PRIO_INHERIT 1 -#define _POSIX_THREAD_PRIO_PROTECT 1 -#define _POSIX_THREAD_PROCESS_SHARED 1 -#define _POSIX_THREAD_SAFE_FUNCTIONS 1 - -/* P1003.4b/D8 defines the constants below this comment. */ -#define _POSIX_SPAWN 1 -#define _POSIX_TIMEOUTS 1 -#define _POSIX_CPUTIME 1 -#define _POSIX_THREAD_CPUTIME 1 -#define _POSIX_SPORADIC_SERVER 1 -#define _POSIX_THREAD_SPORADIC_SERVER 1 -#define _POSIX_DEVICE_CONTROL 1 -#define _POSIX_DEVCTL_DIRECTION 1 -#define _POSIX_INTERRUPT_CONTROL 1 -#define _POSIX_ADVISORY_INFO 1 - -/* UNIX98 added some new pthread mutex attributes */ -#define _UNIX98_THREAD_MUTEX_ATTRIBUTES 1 - -#endif - -/* XMK loosely adheres to POSIX -- 1003.1 */ -#ifdef __XMK__ -#define _POSIX_THREADS 1 -#define _POSIX_THREAD_PRIORITY_SCHEDULING 1 -#endif - - -#ifdef __svr4__ -# define _POSIX_JOB_CONTROL 1 -# define _POSIX_SAVED_IDS 1 -# define _POSIX_VERSION 199009L -#endif - -#ifdef __CYGWIN__ - -#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L -#define _POSIX_VERSION 200112L -#define _POSIX2_VERSION 200112L -#define _XOPEN_VERSION 600 - -#define _POSIX_ADVISORY_INFO 200112L -/* #define _POSIX_ASYNCHRONOUS_IO -1 */ -/* #define _POSIX_BARRIERS -1 */ -#define _POSIX_CHOWN_RESTRICTED 1 -#define _POSIX_CLOCK_SELECTION 200112L -#define _POSIX_CPUTIME 200112L -#define _POSIX_FSYNC 200112L -#define _POSIX_IPV6 200112L -#define _POSIX_JOB_CONTROL 1 -#define _POSIX_MAPPED_FILES 200112L -/* #define _POSIX_MEMLOCK -1 */ -#define _POSIX_MEMLOCK_RANGE 200112L -#define _POSIX_MEMORY_PROTECTION 200112L -#define _POSIX_MESSAGE_PASSING 200112L -#define _POSIX_MONOTONIC_CLOCK 200112L -#define _POSIX_NO_TRUNC 1 -/* #define _POSIX_PRIORITIZED_IO -1 */ -#define _POSIX_PRIORITY_SCHEDULING 200112L -#define _POSIX_RAW_SOCKETS 200112L -#define _POSIX_READER_WRITER_LOCKS 200112L -#define _POSIX_REALTIME_SIGNALS 200112L -#define _POSIX_REGEXP 1 -#define _POSIX_SAVED_IDS 1 -#define _POSIX_SEMAPHORES 200112L -#define _POSIX_SHARED_MEMORY_OBJECTS 200112L -#define _POSIX_SHELL 1 -/* #define _POSIX_SPAWN -1 */ -#define _POSIX_SPIN_LOCKS 200112L -/* #define _POSIX_SPORADIC_SERVER -1 */ -#define _POSIX_SYNCHRONIZED_IO 200112L -#define _POSIX_THREAD_ATTR_STACKADDR 200112L -#define _POSIX_THREAD_ATTR_STACKSIZE 200112L -#define _POSIX_THREAD_CPUTIME 200112L -/* #define _POSIX_THREAD_PRIO_INHERIT -1 */ -/* #define _POSIX_THREAD_PRIO_PROTECT -1 */ -#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L -#define _POSIX_THREAD_PROCESS_SHARED 200112L -#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L -/* #define _POSIX_THREAD_SPORADIC_SERVER -1 */ -#define _POSIX_THREADS 200112L -/* #define _POSIX_TIMEOUTS -1 */ -#define _POSIX_TIMERS 1 -/* #define _POSIX_TRACE -1 */ -/* #define _POSIX_TRACE_EVENT_FILTER -1 */ -/* #define _POSIX_TRACE_INHERIT -1 */ -/* #define _POSIX_TRACE_LOG -1 */ -/* #define _POSIX_TYPED_MEMORY_OBJECTS -1 */ -#define _POSIX_VDISABLE '\0' -#define _POSIX2_C_BIND 200112L -#define _POSIX2_C_DEV 200112L -#define _POSIX2_CHAR_TERM 200112L -/* #define _POSIX2_FORT_DEV -1 */ -/* #define _POSIX2_FORT_RUN -1 */ -/* #define _POSIX2_LOCALEDEF -1 */ -/* #define _POSIX2_PBS -1 */ -/* #define _POSIX2_PBS_ACCOUNTING -1 */ -/* #define _POSIX2_PBS_CHECKPOINT -1 */ -/* #define _POSIX2_PBS_LOCATE -1 */ -/* #define _POSIX2_PBS_MESSAGE -1 */ -/* #define _POSIX2_PBS_TRACK -1 */ -#define _POSIX2_SW_DEV 200112L -#define _POSIX2_UPE 200112L -#define _POSIX_V6_ILP32_OFF32 -1 -#ifdef __LP64__ -#define _POSIX_V6_ILP32_OFFBIG -1 -#define _POSIX_V6_LP64_OFF64 1 -#define _POSIX_V6_LPBIG_OFFBIG 1 -#else -#define _POSIX_V6_ILP32_OFFBIG 1 -#define _POSIX_V6_LP64_OFF64 -1 -#define _POSIX_V6_LPBIG_OFFBIG -1 -#endif -#define _XBS5_ILP32_OFF32 _POSIX_V6_ILP32_OFF32 -#define _XBS5_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG -#define _XBS5_LP64_OFF64 _POSIX_V6_LP64_OFF64 -#define _XBS5_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG -#define _XOPEN_CRYPT 1 -#define _XOPEN_ENH_I18N 1 -/* #define _XOPEN_LEGACY -1 */ -/* #define _XOPEN_REALTIME -1 */ -/* #define _XOPEN_REALTIME_THREADS -1 */ -#define _XOPEN_SHM 1 -/* #define _XOPEN_STREAMS -1 */ -/* #define _XOPEN_UNIX -1 */ - -#endif /* !__STRICT_ANSI__ || __cplusplus || __STDC_VERSION__ >= 199901L */ - -/* The value corresponds to UNICODE version 4.0, which is the version - supported by XP. Newlib supports 5.2 (2011) but so far Cygwin needs - the MS conversions for double-byte charsets. */ -#define __STDC_ISO_10646__ 200305L - -#endif /* __CYGWIN__ */ - -/* ESP-IDF-specific: enable pthreads support */ -#ifdef __XTENSA__ -#define _POSIX_THREADS 1 -#define _UNIX98_THREAD_MUTEX_ATTRIBUTES 1 -#endif - -/* Per the permission given in POSIX.1-2008 section 2.2.1, define - * _POSIX_C_SOURCE if _XOPEN_SOURCE is defined and _POSIX_C_SOURCE is not. - * (_XOPEN_SOURCE indicates that XSI extensions are desired by an application.) - * This permission is first granted in 2008, but use it for older ones, also. - * Allow for _XOPEN_SOURCE to be empty (from the earliest form of it, before it - * was required to have specific values). - */ -#if !defined(_POSIX_C_SOURCE) && defined(_XOPEN_SOURCE) - #if (_XOPEN_SOURCE - 0) == 700 /* POSIX.1-2008 */ - #define _POSIX_C_SOURCE 200809L - #elif (_XOPEN_SOURCE - 0) == 600 /* POSIX.1-2001 or 2004 */ - #define _POSIX_C_SOURCE 200112L - #elif (_XOPEN_SOURCE - 0) == 500 /* POSIX.1-1995 */ - #define _POSIX_C_SOURCE 199506L - #elif (_XOPEN_SOURCE - 0) < 500 /* really old */ - #define _POSIX_C_SOURCE 2 - #endif -#endif - -#ifdef __cplusplus -} -#endif -#endif /* _SYS_FEATURES_H */ diff --git a/components/newlib/include/sys/file.h b/components/newlib/include/sys/file.h deleted file mode 100644 index be88c6a5ad..0000000000 --- a/components/newlib/include/sys/file.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (c) 2005-2006 Tensilica Inc. ALL RIGHTS RESERVED. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 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 TENSILICA - INCORPORATED BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#include - -/* Alternate names for values for the WHENCE argument to `lseek'. - These are the same as SEEK_SET, SEEK_CUR, and SEEK_END, respectively. */ -#ifndef L_SET -#define L_SET 0 /* Seek from beginning of file. */ -#define L_INCR 1 /* Seek from current position. */ -#define L_XTND 2 /* Seek from end of file. */ -#endif diff --git a/components/newlib/include/sys/iconvnls.h b/components/newlib/include/sys/iconvnls.h deleted file mode 100644 index 09ea183163..0000000000 --- a/components/newlib/include/sys/iconvnls.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2003-2004, Artem B. Bityuckiy. - * Rights transferred to Franklin Electronic Publishers. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. - */ - -/* - * Funtions, macros, etc implimented in iconv library but used by other - * NLS-related subsystems too. - */ -#ifndef __SYS_ICONVNLS_H__ -#define __SYS_ICONVNLS_H__ - -#include <_ansi.h> -#include -#include -#include - -/* Iconv data path environment variable name */ -#define NLS_ENVVAR_NAME "NLSPATH" -/* Default NLSPATH value */ -#define ICONV_DEFAULT_NLSPATH "/usr/locale" -/* Direction markers */ -#define ICONV_NLS_FROM 0 -#define ICONV_NLS_TO 1 - -_VOID -_EXFUN(_iconv_nls_get_state, (iconv_t cd, mbstate_t *ps, int direction)); - -int -_EXFUN(_iconv_nls_set_state, (iconv_t cd, mbstate_t *ps, int direction)); - -int -_EXFUN(_iconv_nls_is_stateful, (iconv_t cd, int direction)); - -int -_EXFUN(_iconv_nls_get_mb_cur_max, (iconv_t cd, int direction)); - -size_t -_EXFUN(_iconv_nls_conv, (struct _reent *rptr, iconv_t cd, - _CONST char **inbuf, size_t *inbytesleft, - char **outbuf, size_t *outbytesleft)); - -_CONST char * -_EXFUN(_iconv_nls_construct_filename, (struct _reent *rptr, _CONST char *file, - _CONST char *dir, _CONST char *ext)); - - -int -_EXFUN(_iconv_nls_open, (struct _reent *rptr, _CONST char *encoding, - iconv_t *towc, iconv_t *fromwc, int flag)); - -char * -_EXFUN(_iconv_resolve_encoding_name, (struct _reent *rptr, _CONST char *ca)); - -#endif /* __SYS_ICONVNLS_H__ */ - diff --git a/components/newlib/include/sys/lock.h b/components/newlib/include/sys/lock.h deleted file mode 100644 index 0ff3475836..0000000000 --- a/components/newlib/include/sys/lock.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef _XTENSA_LOCK_H__ -#define _XTENSA_LOCK_H__ - -/* generic lock implementation. - - Weak linked stub _lock functions in lock.c, can be - replaced with a lock implementation at link time. - - */ - -typedef int _lock_t; -typedef _lock_t _LOCK_RECURSIVE_T; -typedef _lock_t _LOCK_T; - -#include <_ansi.h> - -/* NOTE: some parts of newlib statically initialise locks via - __LOCK_INIT, some initialise at runtime via __lock_init. So need to - support possibility that a _lock_t is null during first call to - _lock_acquire or _lock_try_acquire. - - Lock functions all take a pointer to the _lock_t entry, so the - value stored there can be manipulated. -*/ -#define __LOCK_INIT(CLASS,NAME) CLASS _lock_t NAME = 0; -#define __LOCK_INIT_RECURSIVE(CLASS,NAME) CLASS _lock_t NAME = 0; - -void _lock_init(_lock_t *lock); -void _lock_init_recursive(_lock_t *lock); -void _lock_close(_lock_t *lock); -void _lock_close_recursive(_lock_t *lock); -void _lock_acquire(_lock_t *lock); -void _lock_acquire_recursive(_lock_t *lock); -int _lock_try_acquire(_lock_t *lock); -int _lock_try_acquire_recursive(_lock_t *lock); -void _lock_release(_lock_t *lock); -void _lock_release_recursive(_lock_t *lock); - -#define __lock_init(lock) _lock_init(&(lock)) -#define __lock_init_recursive(lock) _lock_init_recursive(&(lock)) -#define __lock_close(lock) _lock_close(&(lock)) -#define __lock_close_recursive(lock) _lock_close_recursive(&(lock)) -#define __lock_acquire(lock) _lock_acquire(&(lock)) -#define __lock_acquire_recursive(lock) _lock_acquire_recursive(&(lock)) -#define __lock_try_acquire(lock) _lock_try_acquire(&(lock)) -#define __lock_try_acquire_recursive(lock) _lock_try_acquire_recursive(&(lock)) -#define __lock_release(lock) _lock_release(&(lock)) -#define __lock_release_recursive(lock) _lock_release_recursive(&(lock)) - -#endif /* _XTENSA_LOCK_H__ */ diff --git a/components/newlib/include/sys/param.h b/components/newlib/include/sys/param.h deleted file mode 100644 index ef203d3ecf..0000000000 --- a/components/newlib/include/sys/param.h +++ /dev/null @@ -1,28 +0,0 @@ -/* This is a dummy file, not customized for any - particular system. If there is a param.h in libc/sys/SYSDIR/sys, - it will override this one. */ - -#ifndef _SYS_PARAM_H -# define _SYS_PARAM_H - -#include -#include -#include -#include - -#ifndef HZ -# define HZ (60) -#endif -#ifndef NOFILE -# define NOFILE (60) -#endif -#ifndef PATHSIZE -# define PATHSIZE (1024) -#endif - -#define MAXPATHLEN PATH_MAX - -#define MAX(a,b) ((a) > (b) ? (a) : (b)) -#define MIN(a,b) ((a) < (b) ? (a) : (b)) - -#endif diff --git a/components/newlib/include/sys/queue.h b/components/newlib/include/sys/queue.h deleted file mode 100644 index 4bc7dac0ef..0000000000 --- a/components/newlib/include/sys/queue.h +++ /dev/null @@ -1,691 +0,0 @@ -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * @(#)queue.h 8.5 (Berkeley) 8/20/94 - * $FreeBSD$ - */ - -#ifndef _SYS_QUEUE_H_ -#define _SYS_QUEUE_H_ - -#include - -/* - * This file defines four types of data structures: singly-linked lists, - * singly-linked tail queues, lists and tail queues. - * - * A singly-linked list is headed by a single forward pointer. The elements - * are singly linked for minimum space and pointer manipulation overhead at - * the expense of O(n) removal for arbitrary elements. New elements can be - * added to the list after an existing element or at the head of the list. - * Elements being removed from the head of the list should use the explicit - * macro for this purpose for optimum efficiency. A singly-linked list may - * only be traversed in the forward direction. Singly-linked lists are ideal - * for applications with large datasets and few or no removals or for - * implementing a LIFO queue. - * - * A singly-linked tail queue is headed by a pair of pointers, one to the - * head of the list and the other to the tail of the list. The elements are - * singly linked for minimum space and pointer manipulation overhead at the - * expense of O(n) removal for arbitrary elements. New elements can be added - * to the list after an existing element, at the head of the list, or at the - * end of the list. Elements being removed from the head of the tail queue - * should use the explicit macro for this purpose for optimum efficiency. - * A singly-linked tail queue may only be traversed in the forward direction. - * Singly-linked tail queues are ideal for applications with large datasets - * and few or no removals or for implementing a FIFO queue. - * - * A list is headed by a single forward pointer (or an array of forward - * pointers for a hash table header). The elements are doubly linked - * so that an arbitrary element can be removed without a need to - * traverse the list. New elements can be added to the list before - * or after an existing element or at the head of the list. A list - * may be traversed in either direction. - * - * A tail queue is headed by a pair of pointers, one to the head of the - * list and the other to the tail of the list. The elements are doubly - * linked so that an arbitrary element can be removed without a need to - * traverse the list. New elements can be added to the list before or - * after an existing element, at the head of the list, or at the end of - * the list. A tail queue may be traversed in either direction. - * - * For details on the use of these macros, see the queue(3) manual page. - * - * - * SLIST LIST STAILQ TAILQ - * _HEAD + + + + - * _HEAD_INITIALIZER + + + + - * _ENTRY + + + + - * _INIT + + + + - * _EMPTY + + + + - * _FIRST + + + + - * _NEXT + + + + - * _PREV - + - + - * _LAST - - + + - * _FOREACH + + + + - * _FOREACH_SAFE + + + + - * _FOREACH_REVERSE - - - + - * _FOREACH_REVERSE_SAFE - - - + - * _INSERT_HEAD + + + + - * _INSERT_BEFORE - + - + - * _INSERT_AFTER + + + + - * _INSERT_TAIL - - + + - * _CONCAT - - + + - * _REMOVE_AFTER + - + - - * _REMOVE_HEAD + - + - - * _REMOVE + + + + - * _SWAP + + + + - * - */ -#ifdef QUEUE_MACRO_DEBUG -/* Store the last 2 places the queue element or head was altered */ -struct qm_trace { - unsigned long lastline; - unsigned long prevline; - const char *lastfile; - const char *prevfile; -}; - -#define TRACEBUF struct qm_trace trace; -#define TRACEBUF_INITIALIZER { __FILE__, __LINE__, NULL, 0 } , -#define TRASHIT(x) do {(x) = (void *)-1;} while (0) -#define QMD_SAVELINK(name, link) void **name = (void *)&(link) - -#define QMD_TRACE_HEAD(head) do { \ - (head)->trace.prevline = (head)->trace.lastline; \ - (head)->trace.prevfile = (head)->trace.lastfile; \ - (head)->trace.lastline = __LINE__; \ - (head)->trace.lastfile = __FILE__; \ -} while (0) - -#define QMD_TRACE_ELEM(elem) do { \ - (elem)->trace.prevline = (elem)->trace.lastline; \ - (elem)->trace.prevfile = (elem)->trace.lastfile; \ - (elem)->trace.lastline = __LINE__; \ - (elem)->trace.lastfile = __FILE__; \ -} while (0) - -#else -#define QMD_TRACE_ELEM(elem) -#define QMD_TRACE_HEAD(head) -#define QMD_SAVELINK(name, link) -#define TRACEBUF -#define TRACEBUF_INITIALIZER -#define TRASHIT(x) -#endif /* QUEUE_MACRO_DEBUG */ - -/* - * Singly-linked List declarations. - */ -#define SLIST_HEAD(name, type) \ -struct name { \ - struct type *slh_first; /* first element */ \ -} - -#define SLIST_HEAD_INITIALIZER(head) \ - { NULL } - -#define SLIST_ENTRY(type) \ -struct { \ - struct type *sle_next; /* next element */ \ -} - -/* - * Singly-linked List functions. - */ -#define SLIST_EMPTY(head) ((head)->slh_first == NULL) - -#define SLIST_FIRST(head) ((head)->slh_first) - -#define SLIST_FOREACH(var, head, field) \ - for ((var) = SLIST_FIRST((head)); \ - (var); \ - (var) = SLIST_NEXT((var), field)) - -#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = SLIST_FIRST((head)); \ - (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ - for ((varp) = &SLIST_FIRST((head)); \ - ((var) = *(varp)) != NULL; \ - (varp) = &SLIST_NEXT((var), field)) - -#define SLIST_INIT(head) do { \ - SLIST_FIRST((head)) = NULL; \ -} while (0) - -#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ - SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \ - SLIST_NEXT((slistelm), field) = (elm); \ -} while (0) - -#define SLIST_INSERT_HEAD(head, elm, field) do { \ - SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \ - SLIST_FIRST((head)) = (elm); \ -} while (0) - -#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) - -#define SLIST_REMOVE(head, elm, type, field) do { \ - QMD_SAVELINK(oldnext, (elm)->field.sle_next); \ - if (SLIST_FIRST((head)) == (elm)) { \ - SLIST_REMOVE_HEAD((head), field); \ - } \ - else { \ - struct type *curelm = SLIST_FIRST((head)); \ - while (SLIST_NEXT(curelm, field) != (elm)) \ - curelm = SLIST_NEXT(curelm, field); \ - SLIST_REMOVE_AFTER(curelm, field); \ - } \ - TRASHIT(*oldnext); \ -} while (0) - -#define SLIST_REMOVE_AFTER(elm, field) do { \ - SLIST_NEXT(elm, field) = \ - SLIST_NEXT(SLIST_NEXT(elm, field), field); \ -} while (0) - -#define SLIST_REMOVE_HEAD(head, field) do { \ - SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \ -} while (0) - -#define SLIST_SWAP(head1, head2, type) do { \ - struct type *swap_first = SLIST_FIRST(head1); \ - SLIST_FIRST(head1) = SLIST_FIRST(head2); \ - SLIST_FIRST(head2) = swap_first; \ -} while (0) - -/* - * Singly-linked Tail queue declarations. - */ -#define STAILQ_HEAD(name, type) \ -struct name { \ - struct type *stqh_first;/* first element */ \ - struct type **stqh_last;/* addr of last next element */ \ -} - -#define STAILQ_HEAD_INITIALIZER(head) \ - { NULL, &(head).stqh_first } - -#define STAILQ_ENTRY(type) \ -struct { \ - struct type *stqe_next; /* next element */ \ -} - -/* - * Singly-linked Tail queue functions. - */ -#define STAILQ_CONCAT(head1, head2) do { \ - if (!STAILQ_EMPTY((head2))) { \ - *(head1)->stqh_last = (head2)->stqh_first; \ - (head1)->stqh_last = (head2)->stqh_last; \ - STAILQ_INIT((head2)); \ - } \ -} while (0) - -#define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) - -#define STAILQ_FIRST(head) ((head)->stqh_first) - -#define STAILQ_FOREACH(var, head, field) \ - for((var) = STAILQ_FIRST((head)); \ - (var); \ - (var) = STAILQ_NEXT((var), field)) - - -#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = STAILQ_FIRST((head)); \ - (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define STAILQ_INIT(head) do { \ - STAILQ_FIRST((head)) = NULL; \ - (head)->stqh_last = &STAILQ_FIRST((head)); \ -} while (0) - -#define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ - if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\ - (head)->stqh_last = &STAILQ_NEXT((elm), field); \ - STAILQ_NEXT((tqelm), field) = (elm); \ -} while (0) - -#define STAILQ_INSERT_HEAD(head, elm, field) do { \ - if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \ - (head)->stqh_last = &STAILQ_NEXT((elm), field); \ - STAILQ_FIRST((head)) = (elm); \ -} while (0) - -#define STAILQ_INSERT_TAIL(head, elm, field) do { \ - STAILQ_NEXT((elm), field) = NULL; \ - *(head)->stqh_last = (elm); \ - (head)->stqh_last = &STAILQ_NEXT((elm), field); \ -} while (0) - -#define STAILQ_LAST(head, type, field) \ - (STAILQ_EMPTY((head)) ? NULL : \ - __containerof((head)->stqh_last, struct type, field.stqe_next)) - -#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) - -#define STAILQ_REMOVE(head, elm, type, field) do { \ - QMD_SAVELINK(oldnext, (elm)->field.stqe_next); \ - if (STAILQ_FIRST((head)) == (elm)) { \ - STAILQ_REMOVE_HEAD((head), field); \ - } \ - else { \ - struct type *curelm = STAILQ_FIRST((head)); \ - while (STAILQ_NEXT(curelm, field) != (elm)) \ - curelm = STAILQ_NEXT(curelm, field); \ - STAILQ_REMOVE_AFTER(head, curelm, field); \ - } \ - TRASHIT(*oldnext); \ -} while (0) - -#define STAILQ_REMOVE_AFTER(head, elm, field) do { \ - if ((STAILQ_NEXT(elm, field) = \ - STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL) \ - (head)->stqh_last = &STAILQ_NEXT((elm), field); \ -} while (0) - -#define STAILQ_REMOVE_HEAD(head, field) do { \ - if ((STAILQ_FIRST((head)) = \ - STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \ - (head)->stqh_last = &STAILQ_FIRST((head)); \ -} while (0) - -#define STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do { \ - if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL) \ - (head)->stqh_last = &STAILQ_FIRST((head)); \ -} while (0) - -#define STAILQ_SWAP(head1, head2, type) do { \ - struct type *swap_first = STAILQ_FIRST(head1); \ - struct type **swap_last = (head1)->stqh_last; \ - STAILQ_FIRST(head1) = STAILQ_FIRST(head2); \ - (head1)->stqh_last = (head2)->stqh_last; \ - STAILQ_FIRST(head2) = swap_first; \ - (head2)->stqh_last = swap_last; \ - if (STAILQ_EMPTY(head1)) \ - (head1)->stqh_last = &STAILQ_FIRST(head1); \ - if (STAILQ_EMPTY(head2)) \ - (head2)->stqh_last = &STAILQ_FIRST(head2); \ -} while (0) - - -/* - * List declarations. - */ -#define LIST_HEAD(name, type) \ -struct name { \ - struct type *lh_first; /* first element */ \ -} - -#define LIST_HEAD_INITIALIZER(head) \ - { NULL } - -#define LIST_ENTRY(type) \ -struct { \ - struct type *le_next; /* next element */ \ - struct type **le_prev; /* address of previous next element */ \ -} - -/* - * List functions. - */ - -#if (defined(_KERNEL) && defined(INVARIANTS)) -#define QMD_LIST_CHECK_HEAD(head, field) do { \ - if (LIST_FIRST((head)) != NULL && \ - LIST_FIRST((head))->field.le_prev != \ - &LIST_FIRST((head))) \ - panic("Bad list head %p first->prev != head", (head)); \ -} while (0) - -#define QMD_LIST_CHECK_NEXT(elm, field) do { \ - if (LIST_NEXT((elm), field) != NULL && \ - LIST_NEXT((elm), field)->field.le_prev != \ - &((elm)->field.le_next)) \ - panic("Bad link elm %p next->prev != elm", (elm)); \ -} while (0) - -#define QMD_LIST_CHECK_PREV(elm, field) do { \ - if (*(elm)->field.le_prev != (elm)) \ - panic("Bad link elm %p prev->next != elm", (elm)); \ -} while (0) -#else -#define QMD_LIST_CHECK_HEAD(head, field) -#define QMD_LIST_CHECK_NEXT(elm, field) -#define QMD_LIST_CHECK_PREV(elm, field) -#endif /* (_KERNEL && INVARIANTS) */ - -#define LIST_EMPTY(head) ((head)->lh_first == NULL) - -#define LIST_FIRST(head) ((head)->lh_first) - -#define LIST_FOREACH(var, head, field) \ - for ((var) = LIST_FIRST((head)); \ - (var); \ - (var) = LIST_NEXT((var), field)) - -#define LIST_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = LIST_FIRST((head)); \ - (var) && ((tvar) = LIST_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define LIST_INIT(head) do { \ - LIST_FIRST((head)) = NULL; \ -} while (0) - -#define LIST_INSERT_AFTER(listelm, elm, field) do { \ - QMD_LIST_CHECK_NEXT(listelm, field); \ - if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\ - LIST_NEXT((listelm), field)->field.le_prev = \ - &LIST_NEXT((elm), field); \ - LIST_NEXT((listelm), field) = (elm); \ - (elm)->field.le_prev = &LIST_NEXT((listelm), field); \ -} while (0) - -#define LIST_INSERT_BEFORE(listelm, elm, field) do { \ - QMD_LIST_CHECK_PREV(listelm, field); \ - (elm)->field.le_prev = (listelm)->field.le_prev; \ - LIST_NEXT((elm), field) = (listelm); \ - *(listelm)->field.le_prev = (elm); \ - (listelm)->field.le_prev = &LIST_NEXT((elm), field); \ -} while (0) - -#define LIST_INSERT_HEAD(head, elm, field) do { \ - QMD_LIST_CHECK_HEAD((head), field); \ - if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \ - LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\ - LIST_FIRST((head)) = (elm); \ - (elm)->field.le_prev = &LIST_FIRST((head)); \ -} while (0) - -#define LIST_NEXT(elm, field) ((elm)->field.le_next) - -#define LIST_PREV(elm, head, type, field) \ - ((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL : \ - __containerof((elm)->field.le_prev, struct type, field.le_next)) - -#define LIST_REMOVE(elm, field) do { \ - QMD_SAVELINK(oldnext, (elm)->field.le_next); \ - QMD_SAVELINK(oldprev, (elm)->field.le_prev); \ - QMD_LIST_CHECK_NEXT(elm, field); \ - QMD_LIST_CHECK_PREV(elm, field); \ - if (LIST_NEXT((elm), field) != NULL) \ - LIST_NEXT((elm), field)->field.le_prev = \ - (elm)->field.le_prev; \ - *(elm)->field.le_prev = LIST_NEXT((elm), field); \ - TRASHIT(*oldnext); \ - TRASHIT(*oldprev); \ -} while (0) - -#define LIST_SWAP(head1, head2, type, field) do { \ - struct type *swap_tmp = LIST_FIRST((head1)); \ - LIST_FIRST((head1)) = LIST_FIRST((head2)); \ - LIST_FIRST((head2)) = swap_tmp; \ - if ((swap_tmp = LIST_FIRST((head1))) != NULL) \ - swap_tmp->field.le_prev = &LIST_FIRST((head1)); \ - if ((swap_tmp = LIST_FIRST((head2))) != NULL) \ - swap_tmp->field.le_prev = &LIST_FIRST((head2)); \ -} while (0) - -/* - * Tail queue declarations. - */ -#define TAILQ_HEAD(name, type) \ -struct name { \ - struct type *tqh_first; /* first element */ \ - struct type **tqh_last; /* addr of last next element */ \ - TRACEBUF \ -} - -#define TAILQ_HEAD_INITIALIZER(head) \ - { NULL, &(head).tqh_first, TRACEBUF_INITIALIZER } - -#define TAILQ_ENTRY(type) \ -struct { \ - struct type *tqe_next; /* next element */ \ - struct type **tqe_prev; /* address of previous next element */ \ - TRACEBUF \ -} - -/* - * Tail queue functions. - */ -#if (defined(_KERNEL) && defined(INVARIANTS)) -#define QMD_TAILQ_CHECK_HEAD(head, field) do { \ - if (!TAILQ_EMPTY(head) && \ - TAILQ_FIRST((head))->field.tqe_prev != \ - &TAILQ_FIRST((head))) \ - panic("Bad tailq head %p first->prev != head", (head)); \ -} while (0) - -#define QMD_TAILQ_CHECK_TAIL(head, field) do { \ - if (*(head)->tqh_last != NULL) \ - panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); \ -} while (0) - -#define QMD_TAILQ_CHECK_NEXT(elm, field) do { \ - if (TAILQ_NEXT((elm), field) != NULL && \ - TAILQ_NEXT((elm), field)->field.tqe_prev != \ - &((elm)->field.tqe_next)) \ - panic("Bad link elm %p next->prev != elm", (elm)); \ -} while (0) - -#define QMD_TAILQ_CHECK_PREV(elm, field) do { \ - if (*(elm)->field.tqe_prev != (elm)) \ - panic("Bad link elm %p prev->next != elm", (elm)); \ -} while (0) -#else -#define QMD_TAILQ_CHECK_HEAD(head, field) -#define QMD_TAILQ_CHECK_TAIL(head, headname) -#define QMD_TAILQ_CHECK_NEXT(elm, field) -#define QMD_TAILQ_CHECK_PREV(elm, field) -#endif /* (_KERNEL && INVARIANTS) */ - -#define TAILQ_CONCAT(head1, head2, field) do { \ - if (!TAILQ_EMPTY(head2)) { \ - *(head1)->tqh_last = (head2)->tqh_first; \ - (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \ - (head1)->tqh_last = (head2)->tqh_last; \ - TAILQ_INIT((head2)); \ - QMD_TRACE_HEAD(head1); \ - QMD_TRACE_HEAD(head2); \ - } \ -} while (0) - -#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) - -#define TAILQ_FIRST(head) ((head)->tqh_first) - -#define TAILQ_FOREACH(var, head, field) \ - for ((var) = TAILQ_FIRST((head)); \ - (var); \ - (var) = TAILQ_NEXT((var), field)) - -#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = TAILQ_FIRST((head)); \ - (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ - (var) = (tvar)) - -#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ - for ((var) = TAILQ_LAST((head), headname); \ - (var); \ - (var) = TAILQ_PREV((var), headname, field)) - -#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ - for ((var) = TAILQ_LAST((head), headname); \ - (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \ - (var) = (tvar)) - -#define TAILQ_INIT(head) do { \ - TAILQ_FIRST((head)) = NULL; \ - (head)->tqh_last = &TAILQ_FIRST((head)); \ - QMD_TRACE_HEAD(head); \ -} while (0) - -#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ - QMD_TAILQ_CHECK_NEXT(listelm, field); \ - if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\ - TAILQ_NEXT((elm), field)->field.tqe_prev = \ - &TAILQ_NEXT((elm), field); \ - else { \ - (head)->tqh_last = &TAILQ_NEXT((elm), field); \ - QMD_TRACE_HEAD(head); \ - } \ - TAILQ_NEXT((listelm), field) = (elm); \ - (elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field); \ - QMD_TRACE_ELEM(&(elm)->field); \ - QMD_TRACE_ELEM(&listelm->field); \ -} while (0) - -#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ - QMD_TAILQ_CHECK_PREV(listelm, field); \ - (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ - TAILQ_NEXT((elm), field) = (listelm); \ - *(listelm)->field.tqe_prev = (elm); \ - (listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field); \ - QMD_TRACE_ELEM(&(elm)->field); \ - QMD_TRACE_ELEM(&listelm->field); \ -} while (0) - -#define TAILQ_INSERT_HEAD(head, elm, field) do { \ - QMD_TAILQ_CHECK_HEAD(head, field); \ - if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \ - TAILQ_FIRST((head))->field.tqe_prev = \ - &TAILQ_NEXT((elm), field); \ - else \ - (head)->tqh_last = &TAILQ_NEXT((elm), field); \ - TAILQ_FIRST((head)) = (elm); \ - (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \ - QMD_TRACE_HEAD(head); \ - QMD_TRACE_ELEM(&(elm)->field); \ -} while (0) - -#define TAILQ_INSERT_TAIL(head, elm, field) do { \ - QMD_TAILQ_CHECK_TAIL(head, field); \ - TAILQ_NEXT((elm), field) = NULL; \ - (elm)->field.tqe_prev = (head)->tqh_last; \ - *(head)->tqh_last = (elm); \ - (head)->tqh_last = &TAILQ_NEXT((elm), field); \ - QMD_TRACE_HEAD(head); \ - QMD_TRACE_ELEM(&(elm)->field); \ -} while (0) - -#define TAILQ_LAST(head, headname) \ - (*(((struct headname *)((head)->tqh_last))->tqh_last)) - -#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) - -#define TAILQ_PREV(elm, headname, field) \ - (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) - -#define TAILQ_REMOVE(head, elm, field) do { \ - QMD_SAVELINK(oldnext, (elm)->field.tqe_next); \ - QMD_SAVELINK(oldprev, (elm)->field.tqe_prev); \ - QMD_TAILQ_CHECK_NEXT(elm, field); \ - QMD_TAILQ_CHECK_PREV(elm, field); \ - if ((TAILQ_NEXT((elm), field)) != NULL) \ - TAILQ_NEXT((elm), field)->field.tqe_prev = \ - (elm)->field.tqe_prev; \ - else { \ - (head)->tqh_last = (elm)->field.tqe_prev; \ - QMD_TRACE_HEAD(head); \ - } \ - *(elm)->field.tqe_prev = TAILQ_NEXT((elm), field); \ - TRASHIT(*oldnext); \ - TRASHIT(*oldprev); \ - QMD_TRACE_ELEM(&(elm)->field); \ -} while (0) - -#define TAILQ_SWAP(head1, head2, type, field) do { \ - struct type *swap_first = (head1)->tqh_first; \ - struct type **swap_last = (head1)->tqh_last; \ - (head1)->tqh_first = (head2)->tqh_first; \ - (head1)->tqh_last = (head2)->tqh_last; \ - (head2)->tqh_first = swap_first; \ - (head2)->tqh_last = swap_last; \ - if ((swap_first = (head1)->tqh_first) != NULL) \ - swap_first->field.tqe_prev = &(head1)->tqh_first; \ - else \ - (head1)->tqh_last = &(head1)->tqh_first; \ - if ((swap_first = (head2)->tqh_first) != NULL) \ - swap_first->field.tqe_prev = &(head2)->tqh_first; \ - else \ - (head2)->tqh_last = &(head2)->tqh_first; \ -} while (0) - -#ifdef _KERNEL - -/* - * XXX insque() and remque() are an old way of handling certain queues. - * They bogusly assumes that all queue heads look alike. - */ - -struct quehead { - struct quehead *qh_link; - struct quehead *qh_rlink; -}; - -#ifdef __GNUC__ - -static __inline void -insque(void *a, void *b) -{ - struct quehead *element = (struct quehead *)a, - *head = (struct quehead *)b; - - element->qh_link = head->qh_link; - element->qh_rlink = head; - head->qh_link = element; - element->qh_link->qh_rlink = element; -} - -static __inline void -remque(void *a) -{ - struct quehead *element = (struct quehead *)a; - - element->qh_link->qh_rlink = element->qh_rlink; - element->qh_rlink->qh_link = element->qh_link; - element->qh_rlink = 0; -} - -#else /* !__GNUC__ */ - -void insque(void *a, void *b); -void remque(void *a); - -#endif /* __GNUC__ */ - -#endif /* _KERNEL */ - -#endif /* !_SYS_QUEUE_H_ */ diff --git a/components/newlib/include/sys/reent.h b/components/newlib/include/sys/reent.h deleted file mode 100644 index b35595a7d4..0000000000 --- a/components/newlib/include/sys/reent.h +++ /dev/null @@ -1,798 +0,0 @@ -/* This header file provides the reentrancy. */ - -/* WARNING: All identifiers here must begin with an underscore. This file is - included by stdio.h and others and we therefore must only use identifiers - in the namespace allotted to us. */ - -#ifndef _SYS_REENT_H_ -#ifdef __cplusplus -extern "C" { -#endif -#define _SYS_REENT_H_ - -#include <_ansi.h> -#include -#include - -#define _NULL 0 - -#ifndef __Long -#if __LONG_MAX__ == 2147483647L -#define __Long long -typedef unsigned __Long __ULong; -#elif __INT_MAX__ == 2147483647 -#define __Long int -typedef unsigned __Long __ULong; -#endif -#endif - -#if !defined( __Long) -#include -#endif - -#ifndef __Long -#define __Long __int32_t -typedef __uint32_t __ULong; -#endif - -struct _reent; - -/* - * If _REENT_SMALL is defined, we make struct _reent as small as possible, - * by having nearly everything possible allocated at first use. - */ - -struct _Bigint -{ - struct _Bigint *_next; - int _k, _maxwds, _sign, _wds; - __ULong _x[1]; -}; - -/* needed by reentrant structure */ -struct __tm -{ - int __tm_sec; - int __tm_min; - int __tm_hour; - int __tm_mday; - int __tm_mon; - int __tm_year; - int __tm_wday; - int __tm_yday; - int __tm_isdst; -}; - -/* - * atexit() support. - */ - -#define _ATEXIT_SIZE 32 /* must be at least 32 to guarantee ANSI conformance */ - -struct _on_exit_args { - void * _fnargs[_ATEXIT_SIZE]; /* user fn args */ - void * _dso_handle[_ATEXIT_SIZE]; - /* Bitmask is set if user function takes arguments. */ - __ULong _fntypes; /* type of exit routine - - Must have at least _ATEXIT_SIZE bits */ - /* Bitmask is set if function was registered via __cxa_atexit. */ - __ULong _is_cxa; -}; - -#ifdef _REENT_SMALL -struct _atexit { - struct _atexit *_next; /* next in list */ - int _ind; /* next index in this table */ - void (*_fns[_ATEXIT_SIZE])(void); /* the table itself */ - struct _on_exit_args * _on_exit_args_ptr; -}; -# define _ATEXIT_INIT {_NULL, 0, {_NULL}, _NULL} -#else -struct _atexit { - struct _atexit *_next; /* next in list */ - int _ind; /* next index in this table */ - /* Some entries may already have been called, and will be NULL. */ - void (*_fns[_ATEXIT_SIZE])(void); /* the table itself */ - struct _on_exit_args _on_exit_args; -}; -# define _ATEXIT_INIT {_NULL, 0, {_NULL}, {{_NULL}, {_NULL}, 0, 0}} -#endif - -#ifdef _REENT_GLOBAL_ATEXIT -# define _REENT_INIT_ATEXIT -#else -# define _REENT_INIT_ATEXIT \ - _NULL, _ATEXIT_INIT, -#endif - -/* - * Stdio buffers. - * - * This and __FILE are defined here because we need them for struct _reent, - * but we don't want stdio.h included when stdlib.h is. - */ - -struct __sbuf { - unsigned char *_base; - int _size; -}; - -/* - * Stdio state variables. - * - * The following always hold: - * - * if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR), - * _lbfsize is -_bf._size, else _lbfsize is 0 - * if _flags&__SRD, _w is 0 - * if _flags&__SWR, _r is 0 - * - * This ensures that the getc and putc macros (or inline functions) never - * try to write or read from a file that is in `read' or `write' mode. - * (Moreover, they can, and do, automatically switch from read mode to - * write mode, and back, on "r+" and "w+" files.) - * - * _lbfsize is used only to make the inline line-buffered output stream - * code as compact as possible. - * - * _ub, _up, and _ur are used when ungetc() pushes back more characters - * than fit in the current _bf, or when ungetc() pushes back a character - * that does not match the previous one in _bf. When this happens, - * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff - * _ub._base!=NULL) and _up and _ur save the current values of _p and _r. - */ - -#ifdef _REENT_SMALL -/* - * struct __sFILE_fake is the start of a struct __sFILE, with only the - * minimal fields allocated. In __sinit() we really allocate the 3 - * standard streams, etc., and point away from this fake. - */ -struct __sFILE_fake { - unsigned char *_p; /* current position in (some) buffer */ - int _r; /* read space left for getc() */ - int _w; /* write space left for putc() */ - short _flags; /* flags, below; this FILE is free if 0 */ - short _file; /* fileno, if Unix descriptor, else -1 */ - struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */ - int _lbfsize; /* 0 or -_bf._size, for inline putc */ - - struct _reent *_data; -}; - -/* Following is needed both in libc/stdio and libc/stdlib so we put it - * here instead of libc/stdio/local.h where it was previously. */ - -extern _VOID _EXFUN(__sinit,(struct _reent *)); - -# define _REENT_SMALL_CHECK_INIT(ptr) \ - do \ - { \ - if ((ptr) && !(ptr)->__sdidinit) \ - __sinit (ptr); \ - } \ - while (0) -#else -# define _REENT_SMALL_CHECK_INIT(ptr) /* nothing */ -#endif - -struct __sFILE { - unsigned char *_p; /* current position in (some) buffer */ - int _r; /* read space left for getc() */ - int _w; /* write space left for putc() */ - short _flags; /* flags, below; this FILE is free if 0 */ - short _file; /* fileno, if Unix descriptor, else -1 */ - struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */ - int _lbfsize; /* 0 or -_bf._size, for inline putc */ - -#ifdef _REENT_SMALL - struct _reent *_data; -#endif - - /* operations */ - _PTR _cookie; /* cookie passed to io functions */ - - _READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR, - char *, _READ_WRITE_BUFSIZE_TYPE)); - _READ_WRITE_RETURN_TYPE _EXFNPTR(_write, (struct _reent *, _PTR, - const char *, - _READ_WRITE_BUFSIZE_TYPE)); - _fpos_t _EXFNPTR(_seek, (struct _reent *, _PTR, _fpos_t, int)); - int _EXFNPTR(_close, (struct _reent *, _PTR)); - - /* separate buffer for long sequences of ungetc() */ - struct __sbuf _ub; /* ungetc buffer */ - unsigned char *_up; /* saved _p when _p is doing ungetc data */ - int _ur; /* saved _r when _r is counting ungetc data */ - - /* tricks to meet minimum requirements even when malloc() fails */ - unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */ - unsigned char _nbuf[1]; /* guarantee a getc() buffer */ - - /* separate buffer for fgetline() when line crosses buffer boundary */ - struct __sbuf _lb; /* buffer for fgetline() */ - - /* Unix stdio files get aligned to block boundaries on fseek() */ - int _blksize; /* stat.st_blksize (may be != _bf._size) */ - _off_t _offset; /* current lseek offset */ - -#ifndef _REENT_SMALL - struct _reent *_data; /* Here for binary compatibility? Remove? */ -#endif - -#ifndef __SINGLE_THREAD__ - _flock_t _lock; /* for thread-safety locking */ -#endif - _mbstate_t _mbstate; /* for wide char stdio functions. */ - int _flags2; /* for future use */ -}; - -#ifdef __CUSTOM_FILE_IO__ - -/* Get custom _FILE definition. */ -#include - -#else /* !__CUSTOM_FILE_IO__ */ -#ifdef __LARGE64_FILES -struct __sFILE64 { - unsigned char *_p; /* current position in (some) buffer */ - int _r; /* read space left for getc() */ - int _w; /* write space left for putc() */ - short _flags; /* flags, below; this FILE is free if 0 */ - short _file; /* fileno, if Unix descriptor, else -1 */ - struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */ - int _lbfsize; /* 0 or -_bf._size, for inline putc */ - - struct _reent *_data; - - /* operations */ - _PTR _cookie; /* cookie passed to io functions */ - - _READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR, - char *, _READ_WRITE_BUFSIZE_TYPE)); - _READ_WRITE_RETURN_TYPE _EXFNPTR(_write, (struct _reent *, _PTR, - const char *, - _READ_WRITE_BUFSIZE_TYPE)); - _fpos_t _EXFNPTR(_seek, (struct _reent *, _PTR, _fpos_t, int)); - int _EXFNPTR(_close, (struct _reent *, _PTR)); - - /* separate buffer for long sequences of ungetc() */ - struct __sbuf _ub; /* ungetc buffer */ - unsigned char *_up; /* saved _p when _p is doing ungetc data */ - int _ur; /* saved _r when _r is counting ungetc data */ - - /* tricks to meet minimum requirements even when malloc() fails */ - unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */ - unsigned char _nbuf[1]; /* guarantee a getc() buffer */ - - /* separate buffer for fgetline() when line crosses buffer boundary */ - struct __sbuf _lb; /* buffer for fgetline() */ - - /* Unix stdio files get aligned to block boundaries on fseek() */ - int _blksize; /* stat.st_blksize (may be != _bf._size) */ - int _flags2; /* for future use */ - - _off64_t _offset; /* current lseek offset */ - _fpos64_t _EXFNPTR(_seek64, (struct _reent *, _PTR, _fpos64_t, int)); - -#ifndef __SINGLE_THREAD__ - _flock_t _lock; /* for thread-safety locking */ -#endif - _mbstate_t _mbstate; /* for wide char stdio functions. */ -}; -typedef struct __sFILE64 __FILE; -#else -typedef struct __sFILE __FILE; -#endif /* __LARGE64_FILES */ -#endif /* !__CUSTOM_FILE_IO__ */ - -struct _glue -{ - struct _glue *_next; - int _niobs; - __FILE *_iobs; -}; - -/* - * rand48 family support - * - * Copyright (c) 1993 Martin Birgmeier - * All rights reserved. - * - * You may redistribute unmodified or modified versions of this source - * code provided that the above copyright notice and this and the - * following conditions are retained. - * - * This software is provided ``as is'', and comes with no warranties - * of any kind. I shall in no event be liable for anything that happens - * to anyone/anything when using this software. - */ -#define _RAND48_SEED_0 (0x330e) -#define _RAND48_SEED_1 (0xabcd) -#define _RAND48_SEED_2 (0x1234) -#define _RAND48_MULT_0 (0xe66d) -#define _RAND48_MULT_1 (0xdeec) -#define _RAND48_MULT_2 (0x0005) -#define _RAND48_ADD (0x000b) -struct _rand48 { - unsigned short _seed[3]; - unsigned short _mult[3]; - unsigned short _add; -#ifdef _REENT_SMALL - /* Put this in here as well, for good luck. */ - __extension__ unsigned long long _rand_next; -#endif -}; - -/* How big the some arrays are. */ -#define _REENT_EMERGENCY_SIZE 25 -#define _REENT_ASCTIME_SIZE 26 -#define _REENT_SIGNAL_SIZE 24 - -/* - * struct _reent - * - * This structure contains *all* globals needed by the library. - * It's raison d'etre is to facilitate threads by making all library routines - * reentrant. IE: All state information is contained here. - */ - -#ifdef _REENT_SMALL - -struct _mprec -{ - /* used by mprec routines */ - struct _Bigint *_result; - int _result_k; - struct _Bigint *_p5s; - struct _Bigint **_freelist; -}; - - -struct _misc_reent -{ - /* miscellaneous reentrant data */ - char *_strtok_last; - _mbstate_t _mblen_state; - _mbstate_t _wctomb_state; - _mbstate_t _mbtowc_state; - char _l64a_buf[8]; - int _getdate_err; - _mbstate_t _mbrlen_state; - _mbstate_t _mbrtowc_state; - _mbstate_t _mbsrtowcs_state; - _mbstate_t _wcrtomb_state; - _mbstate_t _wcsrtombs_state; -}; - -/* This version of _reent is laid out with "int"s in pairs, to help - * ports with 16-bit int's but 32-bit pointers, align nicely. */ -struct _reent -{ - /* As an exception to the above put _errno first for binary - compatibility with non _REENT_SMALL targets. */ - int _errno; /* local copy of errno */ - - /* FILE is a big struct and may change over time. To try to achieve binary - compatibility with future versions, put stdin,stdout,stderr here. - These are pointers into member __sf defined below. */ - __FILE *_stdin, *_stdout, *_stderr; /* XXX */ - - int _inc; /* used by tmpnam */ - - char *_emergency; - - int __sdidinit; /* 1 means stdio has been init'd */ - - int _current_category; /* unused */ - _CONST char *_current_locale; /* unused */ - - struct _mprec *_mp; - - void _EXFNPTR(__cleanup, (struct _reent *)); - - int _gamma_signgam; - - /* used by some fp conversion routines */ - int _cvtlen; /* should be size_t */ - char *_cvtbuf; - - struct _rand48 *_r48; - struct __tm *_localtime_buf; - char *_asctime_buf; - - /* signal info */ - void (**_sig_func)(int); - -# ifndef _REENT_GLOBAL_ATEXIT - /* atexit stuff */ - struct _atexit *_atexit; - struct _atexit _atexit0; -# endif - - struct _glue __sglue; /* root of glue chain */ - __FILE *__sf; /* file descriptors */ - struct _misc_reent *_misc; /* strtok, multibyte states */ - char *_signal_buf; /* strsignal */ -}; - -extern const struct __sFILE_fake __sf_fake_stdin; -extern const struct __sFILE_fake __sf_fake_stdout; -extern const struct __sFILE_fake __sf_fake_stderr; - -# define _REENT_INIT(var) \ - { 0, \ - (__FILE *)&__sf_fake_stdin, \ - (__FILE *)&__sf_fake_stdout, \ - (__FILE *)&__sf_fake_stderr, \ - 0, \ - _NULL, \ - 0, \ - 0, \ - "C", \ - _NULL, \ - _NULL, \ - 0, \ - 0, \ - _NULL, \ - _NULL, \ - _NULL, \ - _NULL, \ - _NULL, \ - _REENT_INIT_ATEXIT \ - {_NULL, 0, _NULL}, \ - _NULL, \ - _NULL, \ - _NULL \ - } - -#ifndef ESP_PLATFORM -#define _REENT_INIT_PTR(var) \ - { memset((var), 0, sizeof(*(var))); \ - (var)->_stdin = (__FILE *)&__sf_fake_stdin; \ - (var)->_stdout = (__FILE *)&__sf_fake_stdout; \ - (var)->_stderr = (__FILE *)&__sf_fake_stderr; \ - (var)->_current_locale = "C"; \ - } -#else -extern void esp_reent_init(struct _reent* reent); -#define _REENT_INIT_PTR(var) esp_reent_init(var) -#endif - -/* Only built the assert() calls if we are built with debugging. */ -#if DEBUG -#include -#define __reent_assert(x) assert(x) -#else -#define __reent_assert(x) ((void)0) -#endif - -#ifdef __CUSTOM_FILE_IO__ -#error Custom FILE I/O and _REENT_SMALL not currently supported. -#endif - -/* Generic _REENT check macro. */ -#define _REENT_CHECK(var, what, type, size, init) do { \ - struct _reent *_r = (var); \ - if (_r->what == NULL) { \ - _r->what = (type)malloc(size); \ - __reent_assert(_r->what); \ - init; \ - } \ -} while (0) - -#define _REENT_CHECK_TM(var) \ - _REENT_CHECK(var, _localtime_buf, struct __tm *, sizeof *((var)->_localtime_buf), \ - /* nothing */) - -#define _REENT_CHECK_ASCTIME_BUF(var) \ - _REENT_CHECK(var, _asctime_buf, char *, _REENT_ASCTIME_SIZE, \ - memset((var)->_asctime_buf, 0, _REENT_ASCTIME_SIZE)) - -/* Handle the dynamically allocated rand48 structure. */ -#define _REENT_INIT_RAND48(var) do { \ - struct _reent *_r = (var); \ - _r->_r48->_seed[0] = _RAND48_SEED_0; \ - _r->_r48->_seed[1] = _RAND48_SEED_1; \ - _r->_r48->_seed[2] = _RAND48_SEED_2; \ - _r->_r48->_mult[0] = _RAND48_MULT_0; \ - _r->_r48->_mult[1] = _RAND48_MULT_1; \ - _r->_r48->_mult[2] = _RAND48_MULT_2; \ - _r->_r48->_add = _RAND48_ADD; \ - _r->_r48->_rand_next = 1; \ -} while (0) -#define _REENT_CHECK_RAND48(var) \ - _REENT_CHECK(var, _r48, struct _rand48 *, sizeof *((var)->_r48), _REENT_INIT_RAND48((var))) - -#define _REENT_INIT_MP(var) do { \ - struct _reent *_r = (var); \ - _r->_mp->_result_k = 0; \ - _r->_mp->_result = _r->_mp->_p5s = _NULL; \ - _r->_mp->_freelist = _NULL; \ -} while (0) -#define _REENT_CHECK_MP(var) \ - _REENT_CHECK(var, _mp, struct _mprec *, sizeof *((var)->_mp), _REENT_INIT_MP(var)) - -#define _REENT_CHECK_EMERGENCY(var) \ - _REENT_CHECK(var, _emergency, char *, _REENT_EMERGENCY_SIZE, /* nothing */) - -#define _REENT_INIT_MISC(var) do { \ - struct _reent *_r = (var); \ - _r->_misc->_strtok_last = _NULL; \ - _r->_misc->_mblen_state.__count = 0; \ - _r->_misc->_mblen_state.__value.__wch = 0; \ - _r->_misc->_wctomb_state.__count = 0; \ - _r->_misc->_wctomb_state.__value.__wch = 0; \ - _r->_misc->_mbtowc_state.__count = 0; \ - _r->_misc->_mbtowc_state.__value.__wch = 0; \ - _r->_misc->_mbrlen_state.__count = 0; \ - _r->_misc->_mbrlen_state.__value.__wch = 0; \ - _r->_misc->_mbrtowc_state.__count = 0; \ - _r->_misc->_mbrtowc_state.__value.__wch = 0; \ - _r->_misc->_mbsrtowcs_state.__count = 0; \ - _r->_misc->_mbsrtowcs_state.__value.__wch = 0; \ - _r->_misc->_wcrtomb_state.__count = 0; \ - _r->_misc->_wcrtomb_state.__value.__wch = 0; \ - _r->_misc->_wcsrtombs_state.__count = 0; \ - _r->_misc->_wcsrtombs_state.__value.__wch = 0; \ - _r->_misc->_l64a_buf[0] = '\0'; \ - _r->_misc->_getdate_err = 0; \ -} while (0) -#define _REENT_CHECK_MISC(var) \ - _REENT_CHECK(var, _misc, struct _misc_reent *, sizeof *((var)->_misc), _REENT_INIT_MISC(var)) - -#define _REENT_CHECK_SIGNAL_BUF(var) \ - _REENT_CHECK(var, _signal_buf, char *, _REENT_SIGNAL_SIZE, /* nothing */) - -#define _REENT_SIGNGAM(ptr) ((ptr)->_gamma_signgam) -#define _REENT_RAND_NEXT(ptr) ((ptr)->_r48->_rand_next) -#define _REENT_RAND48_SEED(ptr) ((ptr)->_r48->_seed) -#define _REENT_RAND48_MULT(ptr) ((ptr)->_r48->_mult) -#define _REENT_RAND48_ADD(ptr) ((ptr)->_r48->_add) -#define _REENT_MP_RESULT(ptr) ((ptr)->_mp->_result) -#define _REENT_MP_RESULT_K(ptr) ((ptr)->_mp->_result_k) -#define _REENT_MP_P5S(ptr) ((ptr)->_mp->_p5s) -#define _REENT_MP_FREELIST(ptr) ((ptr)->_mp->_freelist) -#define _REENT_ASCTIME_BUF(ptr) ((ptr)->_asctime_buf) -#define _REENT_TM(ptr) ((ptr)->_localtime_buf) -#define _REENT_EMERGENCY(ptr) ((ptr)->_emergency) -#define _REENT_STRTOK_LAST(ptr) ((ptr)->_misc->_strtok_last) -#define _REENT_MBLEN_STATE(ptr) ((ptr)->_misc->_mblen_state) -#define _REENT_MBTOWC_STATE(ptr)((ptr)->_misc->_mbtowc_state) -#define _REENT_WCTOMB_STATE(ptr)((ptr)->_misc->_wctomb_state) -#define _REENT_MBRLEN_STATE(ptr) ((ptr)->_misc->_mbrlen_state) -#define _REENT_MBRTOWC_STATE(ptr) ((ptr)->_misc->_mbrtowc_state) -#define _REENT_MBSRTOWCS_STATE(ptr) ((ptr)->_misc->_mbsrtowcs_state) -#define _REENT_WCRTOMB_STATE(ptr) ((ptr)->_misc->_wcrtomb_state) -#define _REENT_WCSRTOMBS_STATE(ptr) ((ptr)->_misc->_wcsrtombs_state) -#define _REENT_L64A_BUF(ptr) ((ptr)->_misc->_l64a_buf) -#define _REENT_GETDATE_ERR_P(ptr) (&((ptr)->_misc->_getdate_err)) -#define _REENT_SIGNAL_BUF(ptr) ((ptr)->_signal_buf) - -#else /* !_REENT_SMALL */ - -struct _reent -{ - int _errno; /* local copy of errno */ - - /* FILE is a big struct and may change over time. To try to achieve binary - compatibility with future versions, put stdin,stdout,stderr here. - These are pointers into member __sf defined below. */ - __FILE *_stdin, *_stdout, *_stderr; - - int _inc; /* used by tmpnam */ - char _emergency[_REENT_EMERGENCY_SIZE]; - - int _current_category; /* used by setlocale */ - _CONST char *_current_locale; - - int __sdidinit; /* 1 means stdio has been init'd */ - - void _EXFNPTR(__cleanup, (struct _reent *)); - - /* used by mprec routines */ - struct _Bigint *_result; - int _result_k; - struct _Bigint *_p5s; - struct _Bigint **_freelist; - - /* used by some fp conversion routines */ - int _cvtlen; /* should be size_t */ - char *_cvtbuf; - - union - { - struct - { - unsigned int _unused_rand; - char * _strtok_last; - char _asctime_buf[_REENT_ASCTIME_SIZE]; - struct __tm _localtime_buf; - int _gamma_signgam; - __extension__ unsigned long long _rand_next; - struct _rand48 _r48; - _mbstate_t _mblen_state; - _mbstate_t _mbtowc_state; - _mbstate_t _wctomb_state; - char _l64a_buf[8]; - char _signal_buf[_REENT_SIGNAL_SIZE]; - int _getdate_err; - _mbstate_t _mbrlen_state; - _mbstate_t _mbrtowc_state; - _mbstate_t _mbsrtowcs_state; - _mbstate_t _wcrtomb_state; - _mbstate_t _wcsrtombs_state; - int _h_errno; - } _reent; - /* Two next two fields were once used by malloc. They are no longer - used. They are used to preserve the space used before so as to - allow addition of new reent fields and keep binary compatibility. */ - struct - { -#define _N_LISTS 30 - unsigned char * _nextf[_N_LISTS]; - unsigned int _nmalloc[_N_LISTS]; - } _unused; - } _new; - -# ifndef _REENT_GLOBAL_ATEXIT - /* atexit stuff */ - struct _atexit *_atexit; /* points to head of LIFO stack */ - struct _atexit _atexit0; /* one guaranteed table, required by ANSI */ -# endif - - /* signal info */ - void (**(_sig_func))(int); - - /* These are here last so that __FILE can grow without changing the offsets - of the above members (on the off chance that future binary compatibility - would be broken otherwise). */ - struct _glue __sglue; /* root of glue chain */ - __FILE __sf[3]; /* first three file descriptors */ -}; - -#define _REENT_INIT(var) \ - { 0, \ - &(var).__sf[0], \ - &(var).__sf[1], \ - &(var).__sf[2], \ - 0, \ - "", \ - 0, \ - "C", \ - 0, \ - _NULL, \ - _NULL, \ - 0, \ - _NULL, \ - _NULL, \ - 0, \ - _NULL, \ - { \ - { \ - 0, \ - _NULL, \ - "", \ - {0, 0, 0, 0, 0, 0, 0, 0, 0}, \ - 0, \ - 1, \ - { \ - {_RAND48_SEED_0, _RAND48_SEED_1, _RAND48_SEED_2}, \ - {_RAND48_MULT_0, _RAND48_MULT_1, _RAND48_MULT_2}, \ - _RAND48_ADD \ - }, \ - {0, {0}}, \ - {0, {0}}, \ - {0, {0}}, \ - "", \ - "", \ - 0, \ - {0, {0}}, \ - {0, {0}}, \ - {0, {0}}, \ - {0, {0}}, \ - {0, {0}} \ - } \ - }, \ - _REENT_INIT_ATEXIT \ - _NULL, \ - {_NULL, 0, _NULL} \ - } - -#define _REENT_INIT_PTR(var) \ - { memset((var), 0, sizeof(*(var))); \ - (var)->_stdin = &(var)->__sf[0]; \ - (var)->_stdout = &(var)->__sf[1]; \ - (var)->_stderr = &(var)->__sf[2]; \ - (var)->_current_locale = "C"; \ - (var)->_new._reent._rand_next = 1; \ - (var)->_new._reent._r48._seed[0] = _RAND48_SEED_0; \ - (var)->_new._reent._r48._seed[1] = _RAND48_SEED_1; \ - (var)->_new._reent._r48._seed[2] = _RAND48_SEED_2; \ - (var)->_new._reent._r48._mult[0] = _RAND48_MULT_0; \ - (var)->_new._reent._r48._mult[1] = _RAND48_MULT_1; \ - (var)->_new._reent._r48._mult[2] = _RAND48_MULT_2; \ - (var)->_new._reent._r48._add = _RAND48_ADD; \ - } - -#define _REENT_CHECK_RAND48(ptr) /* nothing */ -#define _REENT_CHECK_MP(ptr) /* nothing */ -#define _REENT_CHECK_TM(ptr) /* nothing */ -#define _REENT_CHECK_ASCTIME_BUF(ptr) /* nothing */ -#define _REENT_CHECK_EMERGENCY(ptr) /* nothing */ -#define _REENT_CHECK_MISC(ptr) /* nothing */ -#define _REENT_CHECK_SIGNAL_BUF(ptr) /* nothing */ - -#define _REENT_SIGNGAM(ptr) ((ptr)->_new._reent._gamma_signgam) -#define _REENT_RAND_NEXT(ptr) ((ptr)->_new._reent._rand_next) -#define _REENT_RAND48_SEED(ptr) ((ptr)->_new._reent._r48._seed) -#define _REENT_RAND48_MULT(ptr) ((ptr)->_new._reent._r48._mult) -#define _REENT_RAND48_ADD(ptr) ((ptr)->_new._reent._r48._add) -#define _REENT_MP_RESULT(ptr) ((ptr)->_result) -#define _REENT_MP_RESULT_K(ptr) ((ptr)->_result_k) -#define _REENT_MP_P5S(ptr) ((ptr)->_p5s) -#define _REENT_MP_FREELIST(ptr) ((ptr)->_freelist) -#define _REENT_ASCTIME_BUF(ptr) ((ptr)->_new._reent._asctime_buf) -#define _REENT_TM(ptr) (&(ptr)->_new._reent._localtime_buf) -#define _REENT_EMERGENCY(ptr) ((ptr)->_emergency) -#define _REENT_STRTOK_LAST(ptr) ((ptr)->_new._reent._strtok_last) -#define _REENT_MBLEN_STATE(ptr) ((ptr)->_new._reent._mblen_state) -#define _REENT_MBTOWC_STATE(ptr)((ptr)->_new._reent._mbtowc_state) -#define _REENT_WCTOMB_STATE(ptr)((ptr)->_new._reent._wctomb_state) -#define _REENT_MBRLEN_STATE(ptr)((ptr)->_new._reent._mbrlen_state) -#define _REENT_MBRTOWC_STATE(ptr)((ptr)->_new._reent._mbrtowc_state) -#define _REENT_MBSRTOWCS_STATE(ptr)((ptr)->_new._reent._mbsrtowcs_state) -#define _REENT_WCRTOMB_STATE(ptr)((ptr)->_new._reent._wcrtomb_state) -#define _REENT_WCSRTOMBS_STATE(ptr)((ptr)->_new._reent._wcsrtombs_state) -#define _REENT_L64A_BUF(ptr) ((ptr)->_new._reent._l64a_buf) -#define _REENT_SIGNAL_BUF(ptr) ((ptr)->_new._reent._signal_buf) -#define _REENT_GETDATE_ERR_P(ptr) (&((ptr)->_new._reent._getdate_err)) - -#endif /* !_REENT_SMALL */ - -/* This value is used in stdlib/misc.c. reent/reent.c has to know it - as well to make sure the freelist is correctly free'd. Therefore - we define it here, rather than in stdlib/misc.c, as before. */ -#define _Kmax (sizeof (size_t) << 3) - -/* - * All references to struct _reent are via this pointer. - * Internally, newlib routines that need to reference it should use _REENT. - */ - -#ifndef __ATTRIBUTE_IMPURE_PTR__ -#define __ATTRIBUTE_IMPURE_PTR__ -#endif - -#if !defined(__DYNAMIC_REENT__) || defined(__SINGLE_THREAD__) -extern struct _reent *_impure_ptr __ATTRIBUTE_IMPURE_PTR__; -#endif - -extern struct _reent *_global_impure_ptr __ATTRIBUTE_IMPURE_PTR__; - -void _reclaim_reent _PARAMS ((struct _reent *)); - -/* #define _REENT_ONLY define this to get only reentrant routines */ - -#if defined(__DYNAMIC_REENT__) && !defined(__SINGLE_THREAD__) -#ifndef __getreent - struct _reent * _EXFUN(__getreent, (void)); -#endif -# define _REENT (__getreent()) -#else /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */ -# define _REENT _impure_ptr -#endif /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */ - -#define _GLOBAL_REENT _global_impure_ptr - -#ifdef _REENT_GLOBAL_ATEXIT -extern struct _atexit *_global_atexit; /* points to head of LIFO stack */ -# define _GLOBAL_ATEXIT _global_atexit -#else -# define _GLOBAL_ATEXIT (_GLOBAL_REENT->_atexit) -#endif - -#ifdef __cplusplus -} -#endif -#endif /* _SYS_REENT_H_ */ diff --git a/components/newlib/include/sys/resource.h b/components/newlib/include/sys/resource.h deleted file mode 100644 index c35ac2a465..0000000000 --- a/components/newlib/include/sys/resource.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _SYS_RESOURCE_H_ -#define _SYS_RESOURCE_H_ - -#include - -#define RUSAGE_SELF 0 /* calling process */ -#define RUSAGE_CHILDREN -1 /* terminated child processes */ - -struct rusage { - struct timeval ru_utime; /* user time used */ - struct timeval ru_stime; /* system time used */ -}; - -int _EXFUN(getrusage, (int, struct rusage*)); - -#endif - diff --git a/components/newlib/include/sys/sched.h b/components/newlib/include/sys/sched.h deleted file mode 100644 index 8554fc2b92..0000000000 --- a/components/newlib/include/sys/sched.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Written by Joel Sherrill . - * - * COPYRIGHT (c) 1989-2010. - * On-Line Applications Research Corporation (OAR). - * - * Permission to use, copy, modify, and distribute this software for any - * purpose without fee is hereby granted, provided that this entire notice - * is included in all copies of any software which is or includes a copy - * or modification of this software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION - * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS - * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - * - * $Id$ - */ - - -#ifndef _SYS_SCHED_H_ -#define _SYS_SCHED_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Scheduling Policies */ -/* Open Group Specifications Issue 6 */ -#if defined(__CYGWIN__) -#define SCHED_OTHER 3 -#else -#define SCHED_OTHER 0 -#endif - -#define SCHED_FIFO 1 -#define SCHED_RR 2 - -#if defined(_POSIX_SPORADIC_SERVER) -#define SCHED_SPORADIC 4 -#endif - -/* Scheduling Parameters */ -/* Open Group Specifications Issue 6 */ - -struct sched_param { - int sched_priority; /* Process execution scheduling priority */ - -#if defined(_POSIX_SPORADIC_SERVER) || defined(_POSIX_THREAD_SPORADIC_SERVER) - int sched_ss_low_priority; /* Low scheduling priority for sporadic */ - /* server */ - struct timespec sched_ss_repl_period; - /* Replenishment period for sporadic server */ - struct timespec sched_ss_init_budget; - /* Initial budget for sporadic server */ - int sched_ss_max_repl; /* Maximum pending replenishments for */ - /* sporadic server */ -#endif -}; - -int sched_yield( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ - diff --git a/components/newlib/include/sys/signal.h b/components/newlib/include/sys/signal.h deleted file mode 100644 index a29f525c1f..0000000000 --- a/components/newlib/include/sys/signal.h +++ /dev/null @@ -1,357 +0,0 @@ -/* sys/signal.h */ - -#ifndef _SYS_SIGNAL_H -#define _SYS_SIGNAL_H -#ifdef __cplusplus -extern "C" { -#endif - -#include "_ansi.h" -#include -#include - -/* #ifndef __STRICT_ANSI__*/ - -/* Cygwin defines it's own sigset_t in include/cygwin/signal.h */ -#ifndef __CYGWIN__ -typedef unsigned long sigset_t; -#endif - -#if defined(__rtems__) - -#if defined(_POSIX_REALTIME_SIGNALS) - -/* sigev_notify values - NOTE: P1003.1c/D10, p. 34 adds SIGEV_THREAD. */ - -#define SIGEV_NONE 1 /* No asynchronous notification shall be delivered */ - /* when the event of interest occurs. */ -#define SIGEV_SIGNAL 2 /* A queued signal, with an application defined */ - /* value, shall be delivered when the event of */ - /* interest occurs. */ -#define SIGEV_THREAD 3 /* A notification function shall be called to */ - /* perform notification. */ - -/* Signal Generation and Delivery, P1003.1b-1993, p. 63 - NOTE: P1003.1c/D10, p. 34 adds sigev_notify_function and - sigev_notify_attributes to the sigevent structure. */ - -union sigval { - int sival_int; /* Integer signal value */ - void *sival_ptr; /* Pointer signal value */ -}; - -struct sigevent { - int sigev_notify; /* Notification type */ - int sigev_signo; /* Signal number */ - union sigval sigev_value; /* Signal value */ - -#if defined(_POSIX_THREADS) - void (*sigev_notify_function)( union sigval ); - /* Notification function */ - pthread_attr_t *sigev_notify_attributes; /* Notification Attributes */ -#endif -}; - -/* Signal Actions, P1003.1b-1993, p. 64 */ -/* si_code values, p. 66 */ - -#define SI_USER 1 /* Sent by a user. kill(), abort(), etc */ -#define SI_QUEUE 2 /* Sent by sigqueue() */ -#define SI_TIMER 3 /* Sent by expiration of a timer_settime() timer */ -#define SI_ASYNCIO 4 /* Indicates completion of asycnhronous IO */ -#define SI_MESGQ 5 /* Indicates arrival of a message at an empty queue */ - -typedef struct { - int si_signo; /* Signal number */ - int si_code; /* Cause of the signal */ - union sigval si_value; /* Signal value */ -} siginfo_t; -#endif - -/* 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 */ - -#define SA_NOCLDSTOP 0x1 /* Do not generate SIGCHLD when children stop */ -#define SA_SIGINFO 0x2 /* Invoke the signal catching function with */ - /* three arguments instead of one. */ -#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 -#define SA_ONSTACK 0x4 /* Signal delivery will be on a separate stack. */ -#endif - -/* struct sigaction notes from POSIX: - * - * (1) Routines stored in sa_handler should take a single int as - * their argument although the POSIX standard does not require this. - * This is not longer true since at least POSIX.1-2008 - * (2) The fields sa_handler and sa_sigaction may overlap, and a conforming - * application should not use both simultaneously. - */ - -typedef void (*_sig_func_ptr)(int); - -struct sigaction { - int sa_flags; /* Special flags to affect behavior of signal */ - sigset_t sa_mask; /* Additional set of signals to be blocked */ - /* during execution of signal-catching */ - /* function. */ - union { - _sig_func_ptr _handler; /* SIG_DFL, SIG_IGN, or pointer to a function */ -#if defined(_POSIX_REALTIME_SIGNALS) - void (*_sigaction)( int, siginfo_t *, void * ); -#endif - } _signal_handlers; -}; - -#define sa_handler _signal_handlers._handler -#if defined(_POSIX_REALTIME_SIGNALS) -#define sa_sigaction _signal_handlers._sigaction -#endif - -#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 -/* - * Minimum and default signal stack constants. Allow for target overrides - * from . - */ -#ifndef MINSIGSTKSZ -#define MINSIGSTKSZ 2048 -#endif -#ifndef SIGSTKSZ -#define SIGSTKSZ 8192 -#endif - -/* - * Possible values for ss_flags in stack_t below. - */ -#define SS_ONSTACK 0x1 -#define SS_DISABLE 0x2 - -/* - * Structure used in sigaltstack call. - */ -typedef struct sigaltstack { - void *ss_sp; /* Stack base or pointer. */ - int ss_flags; /* Flags. */ - size_t ss_size; /* Stack size. */ -} stack_t; -#endif - -#elif defined(__CYGWIN__) -#include -#else -#define SA_NOCLDSTOP 1 /* only value supported now for sa_flags */ - -typedef void (*_sig_func_ptr)(int); - -struct sigaction -{ - _sig_func_ptr sa_handler; - sigset_t sa_mask; - int sa_flags; -}; -#endif /* defined(__rtems__) */ - -#define SIG_SETMASK 0 /* set mask with sigprocmask() */ -#define SIG_BLOCK 1 /* set of signals to block */ -#define SIG_UNBLOCK 2 /* set of signals to, well, unblock */ - -/* These depend upon the type of sigset_t, which right now - is always a long.. They're in the POSIX namespace, but - are not ANSI. */ -#define sigaddset(what,sig) (*(what) |= (1<<(sig)), 0) -#define sigdelset(what,sig) (*(what) &= ~(1<<(sig)), 0) -#define sigemptyset(what) (*(what) = 0, 0) -#define sigfillset(what) (*(what) = ~(0), 0) -#define sigismember(what,sig) (((*(what)) & (1<<(sig))) != 0) - -int _EXFUN(sigprocmask, (int how, const sigset_t *set, sigset_t *oset)); - -#if defined(_POSIX_THREADS) -int _EXFUN(pthread_sigmask, (int how, const sigset_t *set, sigset_t *oset)); -#endif - -#if defined(__CYGWIN__) || defined(__rtems__) -#undef sigaddset -#undef sigdelset -#undef sigemptyset -#undef sigfillset -#undef sigismember - -#ifdef _COMPILING_NEWLIB -int _EXFUN(_kill, (pid_t, int)); -#endif /* _COMPILING_NEWLIB */ -#endif /* __CYGWIN__ || __rtems__ */ -#if defined(__CYGWIN__) || defined(__rtems__) || defined(__SPU__) -int _EXFUN(kill, (pid_t, int)); -#endif /* __CYGWIN__ || __rtems__ || __SPU__ */ -#if defined(__CYGWIN__) || defined(__rtems__) -int _EXFUN(killpg, (pid_t, int)); -int _EXFUN(sigaction, (int, const struct sigaction *, struct sigaction *)); -int _EXFUN(sigaddset, (sigset_t *, const int)); -int _EXFUN(sigdelset, (sigset_t *, const int)); -int _EXFUN(sigismember, (const sigset_t *, int)); -int _EXFUN(sigfillset, (sigset_t *)); -int _EXFUN(sigemptyset, (sigset_t *)); -int _EXFUN(sigpending, (sigset_t *)); -int _EXFUN(sigsuspend, (const sigset_t *)); -int _EXFUN(sigpause, (int)); - -#ifdef __rtems__ -#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 -int _EXFUN(sigaltstack, (const stack_t *__restrict, stack_t *__restrict)); -#endif -#endif - -#if defined(_POSIX_THREADS) -#ifdef __CYGWIN__ -# ifndef _CYGWIN_TYPES_H -# error You need the winsup sources or a cygwin installation to compile the cygwin version of newlib. -# endif -#endif -int _EXFUN(pthread_kill, (pthread_t thread, int sig)); -#endif - -#if defined(_POSIX_REALTIME_SIGNALS) - -/* 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 - NOTE: P1003.1c/D10, p. 39 adds sigwait(). */ - -int _EXFUN(sigwaitinfo, (const sigset_t *set, siginfo_t *info)); -int _EXFUN(sigtimedwait, - (const sigset_t *set, siginfo_t *info, const struct timespec *timeout) -); -int _EXFUN(sigwait, (const sigset_t *set, int *sig)); - -/* 3.3.9 Queue a Signal to a Process, P1003.1b-1993, p. 78 */ -int _EXFUN(sigqueue, (pid_t pid, int signo, const union sigval value)); - -#endif /* defined(_POSIX_REALTIME_SIGNALS) */ - -#endif /* defined(__CYGWIN__) || defined(__rtems__) */ - -/* #endif __STRICT_ANSI__ */ - -#if defined(___AM29K__) -/* These all need to be defined for ANSI C, but I don't think they are - meaningful. */ -#define SIGABRT 1 -#define SIGFPE 1 -#define SIGILL 1 -#define SIGINT 1 -#define SIGSEGV 1 -#define SIGTERM 1 -/* These need to be defined for POSIX, and some others do too. */ -#define SIGHUP 1 -#define SIGQUIT 1 -#define NSIG 2 -#elif defined(__GO32__) -#define SIGINT 1 -#define SIGKILL 2 -#define SIGPIPE 3 -#define SIGFPE 4 -#define SIGHUP 5 -#define SIGTERM 6 -#define SIGSEGV 7 -#define SIGTSTP 8 -#define SIGQUIT 9 -#define SIGTRAP 10 -#define SIGILL 11 -#define SIGEMT 12 -#define SIGALRM 13 -#define SIGBUS 14 -#define SIGLOST 15 -#define SIGSTOP 16 -#define SIGABRT 17 -#define SIGUSR1 18 -#define SIGUSR2 19 -#define NSIG 20 -#elif !defined(SIGTRAP) -#define SIGHUP 1 /* hangup */ -#define SIGINT 2 /* interrupt */ -#define SIGQUIT 3 /* quit */ -#define SIGILL 4 /* illegal instruction (not reset when caught) */ -#define SIGTRAP 5 /* trace trap (not reset when caught) */ -#define SIGIOT 6 /* IOT instruction */ -#define SIGABRT 6 /* used by abort, replace SIGIOT in the future */ -#define SIGEMT 7 /* EMT instruction */ -#define SIGFPE 8 /* floating point exception */ -#define SIGKILL 9 /* kill (cannot be caught or ignored) */ -#define SIGBUS 10 /* bus error */ -#define SIGSEGV 11 /* segmentation violation */ -#define SIGSYS 12 /* bad argument to system call */ -#define SIGPIPE 13 /* write on a pipe with no one to read it */ -#define SIGALRM 14 /* alarm clock */ -#define SIGTERM 15 /* software termination signal from kill */ - -#if defined(__rtems__) -#define SIGURG 16 /* urgent condition on IO channel */ -#define SIGSTOP 17 /* sendable stop signal not from tty */ -#define SIGTSTP 18 /* stop signal from tty */ -#define SIGCONT 19 /* continue a stopped process */ -#define SIGCHLD 20 /* to parent on child stop or exit */ -#define SIGCLD 20 /* System V name for SIGCHLD */ -#define SIGTTIN 21 /* to readers pgrp upon background tty read */ -#define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */ -#define SIGIO 23 /* input/output possible signal */ -#define SIGPOLL SIGIO /* System V name for SIGIO */ -#define SIGWINCH 24 /* window changed */ -#define SIGUSR1 25 /* user defined signal 1 */ -#define SIGUSR2 26 /* user defined signal 2 */ - -/* Real-Time Signals Range, P1003.1b-1993, p. 61 - NOTE: By P1003.1b-1993, this should be at least RTSIG_MAX - (which is a minimum of 8) signals. - */ -#define SIGRTMIN 27 -#define SIGRTMAX 31 -#define __SIGFIRSTNOTRT SIGHUP -#define __SIGLASTNOTRT SIGUSR2 - -#define NSIG 32 /* signal 0 implied */ - -#elif defined(__svr4__) -/* svr4 specifics. different signals above 15, and sigaction. */ -#define SIGUSR1 16 -#define SIGUSR2 17 -#define SIGCLD 18 -#define SIGPWR 19 -#define SIGWINCH 20 -#define SIGPOLL 22 /* 20 for x.out binaries!!!! */ -#define SIGSTOP 23 /* sendable stop signal not from tty */ -#define SIGTSTP 24 /* stop signal from tty */ -#define SIGCONT 25 /* continue a stopped process */ -#define SIGTTIN 26 /* to readers pgrp upon background tty read */ -#define SIGTTOU 27 /* like TTIN for output if (tp->t_local<OSTOP) */ -#define NSIG 28 -#else -#define SIGURG 16 /* urgent condition on IO channel */ -#define SIGSTOP 17 /* sendable stop signal not from tty */ -#define SIGTSTP 18 /* stop signal from tty */ -#define SIGCONT 19 /* continue a stopped process */ -#define SIGCHLD 20 /* to parent on child stop or exit */ -#define SIGCLD 20 /* System V name for SIGCHLD */ -#define SIGTTIN 21 /* to readers pgrp upon background tty read */ -#define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */ -#define SIGIO 23 /* input/output possible signal */ -#define SIGPOLL SIGIO /* System V name for SIGIO */ -#define SIGXCPU 24 /* exceeded CPU time limit */ -#define SIGXFSZ 25 /* exceeded file size limit */ -#define SIGVTALRM 26 /* virtual time alarm */ -#define SIGPROF 27 /* profiling time alarm */ -#define SIGWINCH 28 /* window changed */ -#define SIGLOST 29 /* resource lost (eg, record-lock lost) */ -#define SIGUSR1 30 /* user defined signal 1 */ -#define SIGUSR2 31 /* user defined signal 2 */ -#define NSIG 32 /* signal 0 implied */ -#endif -#endif - -#ifdef __cplusplus -} -#endif - -#ifndef _SIGNAL_H_ -/* Some applications take advantage of the fact that - * and are equivalent in glibc. Allow for that here. */ -#include -#endif -#endif /* _SYS_SIGNAL_H */ diff --git a/components/newlib/include/sys/stat.h b/components/newlib/include/sys/stat.h deleted file mode 100644 index 11b9d8080f..0000000000 --- a/components/newlib/include/sys/stat.h +++ /dev/null @@ -1,192 +0,0 @@ -#ifndef _SYS_STAT_H -#define _SYS_STAT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <_ansi.h> -#include -#include -#include - -/* dj's stat defines _STAT_H_ */ -#ifndef _STAT_H_ - -/* It is intended that the layout of this structure not change when the - sizes of any of the basic types change (short, int, long) [via a compile - time option]. */ - -#ifdef __CYGWIN__ -#include -#ifdef _COMPILING_NEWLIB -#define stat64 stat -#endif -#else -struct stat -{ - dev_t st_dev; - ino_t st_ino; - mode_t st_mode; - nlink_t st_nlink; - uid_t st_uid; - gid_t st_gid; - dev_t st_rdev; - off_t st_size; -#if defined(__rtems__) - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; - blksize_t st_blksize; - blkcnt_t st_blocks; -#else - /* SysV/sco doesn't have the rest... But Solaris, eabi does. */ -#if defined(__svr4__) && !defined(__PPC__) && !defined(__sun__) - time_t st_atime; - time_t st_mtime; - time_t st_ctime; -#else - time_t st_atime; - long st_spare1; - time_t st_mtime; - long st_spare2; - time_t st_ctime; - long st_spare3; - long st_blksize; - long st_blocks; - long st_spare4[2]; -#endif -#endif -}; - -#if defined(__rtems__) -#define st_atime st_atim.tv_sec -#define st_ctime st_ctim.tv_sec -#define st_mtime st_mtim.tv_sec -#endif - -#endif - -#define _IFMT 0170000 /* type of file */ -#define _IFDIR 0040000 /* directory */ -#define _IFCHR 0020000 /* character special */ -#define _IFBLK 0060000 /* block special */ -#define _IFREG 0100000 /* regular */ -#define _IFLNK 0120000 /* symbolic link */ -#define _IFSOCK 0140000 /* socket */ -#define _IFIFO 0010000 /* fifo */ - -#define S_BLKSIZE 1024 /* size of a block */ - -#define S_ISUID 0004000 /* set user id on execution */ -#define S_ISGID 0002000 /* set group id on execution */ -#define S_ISVTX 0001000 /* save swapped text even after use */ -#ifndef _POSIX_SOURCE -#define S_IREAD 0000400 /* read permission, owner */ -#define S_IWRITE 0000200 /* write permission, owner */ -#define S_IEXEC 0000100 /* execute/search permission, owner */ -#define S_ENFMT 0002000 /* enforcement-mode locking */ -#endif /* !_POSIX_SOURCE */ - -#define S_IFMT _IFMT -#define S_IFDIR _IFDIR -#define S_IFCHR _IFCHR -#define S_IFBLK _IFBLK -#define S_IFREG _IFREG -#define S_IFLNK _IFLNK -#define S_IFSOCK _IFSOCK -#define S_IFIFO _IFIFO - -#ifdef _WIN32 -/* The Windows header files define _S_ forms of these, so we do too - for easier portability. */ -#define _S_IFMT _IFMT -#define _S_IFDIR _IFDIR -#define _S_IFCHR _IFCHR -#define _S_IFIFO _IFIFO -#define _S_IFREG _IFREG -#define _S_IREAD 0000400 -#define _S_IWRITE 0000200 -#define _S_IEXEC 0000100 -#endif - -#define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) -#define S_IRUSR 0000400 /* read permission, owner */ -#define S_IWUSR 0000200 /* write permission, owner */ -#define S_IXUSR 0000100/* execute/search permission, owner */ -#define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) -#define S_IRGRP 0000040 /* read permission, group */ -#define S_IWGRP 0000020 /* write permission, grougroup */ -#define S_IXGRP 0000010/* execute/search permission, group */ -#define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) -#define S_IROTH 0000004 /* read permission, other */ -#define S_IWOTH 0000002 /* write permission, other */ -#define S_IXOTH 0000001/* execute/search permission, other */ - -#ifndef _POSIX_SOURCE -#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) /* 0777 */ -#define ALLPERMS (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO) /* 07777 */ -#define DEFFILEMODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) /* 0666 */ -#endif - -#define S_ISBLK(m) (((m)&_IFMT) == _IFBLK) -#define S_ISCHR(m) (((m)&_IFMT) == _IFCHR) -#define S_ISDIR(m) (((m)&_IFMT) == _IFDIR) -#define S_ISFIFO(m) (((m)&_IFMT) == _IFIFO) -#define S_ISREG(m) (((m)&_IFMT) == _IFREG) -#define S_ISLNK(m) (((m)&_IFMT) == _IFLNK) -#define S_ISSOCK(m) (((m)&_IFMT) == _IFSOCK) - -#if defined(__CYGWIN__) -/* Special tv_nsec values for futimens(2) and utimensat(2). */ -#define UTIME_NOW -2L -#define UTIME_OMIT -1L -#endif - -int _EXFUN(chmod,( const char *__path, mode_t __mode )); -int _EXFUN(fchmod,(int __fd, mode_t __mode)); -int _EXFUN(fstat,( int __fd, struct stat *__sbuf )); -int _EXFUN(mkdir,( const char *_path, mode_t __mode )); -int _EXFUN(mkfifo,( const char *__path, mode_t __mode )); -int _EXFUN(stat,( const char *__restrict __path, struct stat *__restrict __sbuf )); -mode_t _EXFUN(umask,( mode_t __mask )); - -#if defined (__SPU__) || defined(__rtems__) || defined(__CYGWIN__) && !defined(__INSIDE_CYGWIN__) -int _EXFUN(lstat,( const char *__restrict __path, struct stat *__restrict __buf )); -int _EXFUN(mknod,( const char *__path, mode_t __mode, dev_t __dev )); -#endif - -#if (__POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__) -int _EXFUN(fchmodat, (int, const char *, mode_t, int)); -#endif -#if (__BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__) -int _EXFUN(fstatat, (int, const char *__restrict , struct stat *__restrict, int)); -int _EXFUN(mkdirat, (int, const char *, mode_t)); -int _EXFUN(mkfifoat, (int, const char *, mode_t)); -#endif -#if (__BSD_VISIBLE || __XSI_VISIBLE >= 700 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__) -int _EXFUN(mknodat, (int, const char *, mode_t, dev_t)); -#endif -#if (__BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__) -int _EXFUN(utimensat, (int, const char *, const struct timespec *, int)); -int _EXFUN(futimens, (int, const struct timespec *)); -#endif - -/* Provide prototypes for most of the _ names that are - provided in newlib for some compilers. */ -#ifdef _COMPILING_NEWLIB -int _EXFUN(_fstat,( int __fd, struct stat *__sbuf )); -int _EXFUN(_stat,( const char *__restrict __path, struct stat *__restrict __sbuf )); -int _EXFUN(_mkdir,( const char *_path, mode_t __mode )); -#ifdef __LARGE64_FILES -struct stat64; -int _EXFUN(_stat64,( const char *__restrict __path, struct stat64 *__restrict __sbuf )); -int _EXFUN(_fstat64,( int __fd, struct stat64 *__sbuf )); -#endif -#endif - -#endif /* !_STAT_H_ */ -#ifdef __cplusplus -} -#endif -#endif /* _SYS_STAT_H */ diff --git a/components/newlib/include/sys/stdio.h b/components/newlib/include/sys/stdio.h deleted file mode 100644 index 0918fe157d..0000000000 --- a/components/newlib/include/sys/stdio.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef _NEWLIB_STDIO_H -#define _NEWLIB_STDIO_H - -#include -#include - -/* Internal locking macros, used to protect stdio functions. In the - general case, expand to nothing. Use __SSTR flag in FILE _flags to - detect if FILE is private to sprintf/sscanf class of functions; if - set then do nothing as lock is not initialised. */ -#if !defined(_flockfile) -#ifndef __SINGLE_THREAD__ -# define _flockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_acquire_recursive((fp)->_lock)) -#else -# define _flockfile(fp) (_CAST_VOID 0) -#endif -#endif - -#if !defined(_funlockfile) -#ifndef __SINGLE_THREAD__ -# define _funlockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_release_recursive((fp)->_lock)) -#else -# define _funlockfile(fp) (_CAST_VOID 0) -#endif -#endif - -#endif /* _NEWLIB_STDIO_H */ diff --git a/components/newlib/include/sys/string.h b/components/newlib/include/sys/string.h deleted file mode 100644 index ceedf4be10..0000000000 --- a/components/newlib/include/sys/string.h +++ /dev/null @@ -1,2 +0,0 @@ -/* This is a dummy used as a placeholder for - systems that need to have a special header file. */ diff --git a/components/newlib/include/sys/syslimits.h b/components/newlib/include/sys/syslimits.h deleted file mode 100644 index c778f0faf3..0000000000 --- a/components/newlib/include/sys/syslimits.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 1988, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * @(#)syslimits.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD: src/sys/sys/syslimits.h,v 1.10 2001/06/18 20:24:54 wollman Exp $ - */ - -#ifndef _SYS_SYSLIMITS_H_ -#define _SYS_SYSLIMITS_H_ - -#define ARG_MAX 4096 /* max bytes for an exec function */ -#ifndef CHILD_MAX -#define CHILD_MAX 40 /* max simultaneous processes */ -#endif -#define LINK_MAX 32767 /* max file link count */ -#define MAX_CANON 255 /* max bytes in term canon input line */ -#define MAX_INPUT 255 /* max bytes in terminal input */ -#define NAME_MAX 255 /* max bytes in a file name */ -#define NGROUPS_MAX 16 /* max supplemental group id's */ -#ifndef OPEN_MAX -#define OPEN_MAX 64 /* max open files per process */ -#endif -#define PATH_MAX 1024 /* max bytes in pathname */ -#define PIPE_BUF 512 /* max bytes for atomic pipe writes */ - - -#define BC_BASE_MAX 99 /* max ibase/obase values in bc(1) */ -#define BC_DIM_MAX 2048 /* max array elements in bc(1) */ -#define BC_SCALE_MAX 99 /* max scale value in bc(1) */ -#define BC_STRING_MAX 1000 /* max const string length in bc(1) */ -#define COLL_WEIGHTS_MAX 0 /* max weights for order keyword */ -#define EXPR_NEST_MAX 32 /* max expressions nested in expr(1) */ -#define LINE_MAX 2048 /* max bytes in an input line */ -#define RE_DUP_MAX 255 /* max RE's in interval notation */ - -#endif diff --git a/components/newlib/include/sys/time.h b/components/newlib/include/sys/time.h deleted file mode 100644 index be16497fc5..0000000000 --- a/components/newlib/include/sys/time.h +++ /dev/null @@ -1,91 +0,0 @@ -/* time.h -- An implementation of the standard Unix file. - Written by Geoffrey Noer - Public domain; no rights reserved. */ - -#ifndef _SYS_TIME_H_ -#define _SYS_TIME_H_ - -#include <_ansi.h> -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _TIMEVAL_DEFINED -#define _TIMEVAL_DEFINED -struct timeval { - time_t tv_sec; - suseconds_t tv_usec; -}; - -/* BSD time macros used by RTEMS code */ -#if defined (__rtems__) || defined (__CYGWIN__) - -/* Convenience macros for operations on timevals. - NOTE: `timercmp' does not work for >= or <=. */ -#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) -#define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) -#define timercmp(a, b, CMP) \ - (((a)->tv_sec == (b)->tv_sec) ? \ - ((a)->tv_usec CMP (b)->tv_usec) : \ - ((a)->tv_sec CMP (b)->tv_sec)) -#define timeradd(a, b, result) \ - do { \ - (result)->tv_sec = (a)->tv_sec + (b)->tv_sec; \ - (result)->tv_usec = (a)->tv_usec + (b)->tv_usec; \ - if ((result)->tv_usec >= 1000000) \ - { \ - ++(result)->tv_sec; \ - (result)->tv_usec -= 1000000; \ - } \ - } while (0) -#define timersub(a, b, result) \ - do { \ - (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \ - (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \ - if ((result)->tv_usec < 0) { \ - --(result)->tv_sec; \ - (result)->tv_usec += 1000000; \ - } \ - } while (0) -#endif /* defined (__rtems__) || defined (__CYGWIN__) */ -#endif /* !_TIMEVAL_DEFINED */ - -struct timezone { - int tz_minuteswest; - int tz_dsttime; -}; - -#ifdef __CYGWIN__ -#include -#endif /* __CYGWIN__ */ - -#define ITIMER_REAL 0 -#define ITIMER_VIRTUAL 1 -#define ITIMER_PROF 2 - -struct itimerval { - struct timeval it_interval; - struct timeval it_value; -}; - -#ifdef _COMPILING_NEWLIB -int _EXFUN(_gettimeofday, (struct timeval *__p, void *__tz)); -#endif - -int _EXFUN(gettimeofday, (struct timeval *__restrict __p, - void *__restrict __tz)); -#if __BSD_VISIBLE -int _EXFUN(settimeofday, (const struct timeval *, const struct timezone *)); -int _EXFUN(adjtime, (const struct timeval *, struct timeval *)); -#endif -int _EXFUN(utimes, (const char *__path, const struct timeval *__tvp)); -int _EXFUN(getitimer, (int __which, struct itimerval *__value)); -int _EXFUN(setitimer, (int __which, const struct itimerval *__restrict __value, - struct itimerval *__restrict __ovalue)); - -#ifdef __cplusplus -} -#endif -#endif /* _SYS_TIME_H_ */ diff --git a/components/newlib/include/sys/timeb.h b/components/newlib/include/sys/timeb.h deleted file mode 100644 index 0a2c3de8bd..0000000000 --- a/components/newlib/include/sys/timeb.h +++ /dev/null @@ -1,39 +0,0 @@ -/* timeb.h -- An implementation of the standard Unix file. - Written by Ian Lance Taylor - Public domain; no rights reserved. - - declares the structure used by the ftime function, as - well as the ftime function itself. Newlib does not provide an - implementation of ftime. */ - -#ifndef _SYS_TIMEB_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define _SYS_TIMEB_H - -#include <_ansi.h> -#include - -#ifndef __time_t_defined -typedef _TIME_T_ time_t; -#define __time_t_defined -#endif - -struct timeb -{ - time_t time; - unsigned short millitm; - short timezone; - short dstflag; -}; - -extern int ftime _PARAMS ((struct timeb *)); - -#ifdef __cplusplus -} -#endif - -#endif /* ! defined (_SYS_TIMEB_H) */ diff --git a/components/newlib/include/sys/times.h b/components/newlib/include/sys/times.h deleted file mode 100644 index 927812cb85..0000000000 --- a/components/newlib/include/sys/times.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef _SYS_TIMES_H -#ifdef __cplusplus -extern "C" { -#endif -#define _SYS_TIMES_H - -#include <_ansi.h> -#include - -#ifndef __clock_t_defined -typedef _CLOCK_T_ clock_t; -#define __clock_t_defined -#endif - -/* Get Process Times, P1003.1b-1993, p. 92 */ -struct tms { - clock_t tms_utime; /* user time */ - clock_t tms_stime; /* system time */ - clock_t tms_cutime; /* user time, children */ - clock_t tms_cstime; /* system time, children */ -}; - -clock_t _EXFUN(times,(struct tms *)); -#ifdef _COMPILING_NEWLIB -clock_t _EXFUN(_times,(struct tms *)); -#endif - -#ifdef __cplusplus -} -#endif -#endif /* !_SYS_TIMES_H */ diff --git a/components/newlib/include/sys/types.h b/components/newlib/include/sys/types.h deleted file mode 100644 index ed33e0a617..0000000000 --- a/components/newlib/include/sys/types.h +++ /dev/null @@ -1,521 +0,0 @@ -/* unified sys/types.h: - start with sef's sysvi386 version. - merge go32 version -- a few ifdefs. - h8300hms, h8300xray, and sysvnecv70 disagree on the following types: - - typedef int gid_t; - typedef int uid_t; - typedef int dev_t; - typedef int ino_t; - typedef int mode_t; - typedef int caddr_t; - - however, these aren't "reasonable" values, the sysvi386 ones make far - more sense, and should work sufficiently well (in particular, h8300 - doesn't have a stat, and the necv70 doesn't matter.) -- eichin - */ - -#ifndef _SYS_TYPES_H - -#include <_ansi.h> - -#ifndef __INTTYPES_DEFINED__ -#define __INTTYPES_DEFINED__ - -#include - -#if defined(__rtems__) || defined(__XMK__) -/* - * The following section is RTEMS specific and is needed to more - * closely match the types defined in the BSD sys/types.h. - * This is needed to let the RTEMS/BSD TCP/IP stack compile. - */ - -/* deprecated */ -#if ___int8_t_defined -typedef __uint8_t u_int8_t; -#endif -#if ___int16_t_defined -typedef __uint16_t u_int16_t; -#endif -#if ___int32_t_defined -typedef __uint32_t u_int32_t; -#endif - -#if ___int64_t_defined -typedef __uint64_t u_int64_t; - -/* deprecated */ -typedef __uint64_t u_quad_t; -typedef __int64_t quad_t; -typedef quad_t * qaddr_t; -#endif - -#endif - -#endif /* ! __INTTYPES_DEFINED */ - -#ifndef __need_inttypes - -#define _SYS_TYPES_H -#include - -#ifdef __i386__ -#if defined (GO32) || defined (__MSDOS__) -#define __MS_types__ -#endif -#endif - -# include -# include - -/* To ensure the stat struct's layout doesn't change when sizeof(int), etc. - changes, we assume sizeof short and long never change and have all types - used to define struct stat use them and not int where possible. - Where not possible, _ST_INTxx are used. It would be preferable to not have - such assumptions, but until the extra fluff is necessary, it's avoided. - No 64 bit targets use stat yet. What to do about them is postponed - until necessary. */ -#ifdef __GNUC__ -#define _ST_INT32 __attribute__ ((__mode__ (__SI__))) -#else -#define _ST_INT32 -#endif - -# ifndef _POSIX_SOURCE - -# define physadr physadr_t -# define quad quad_t - -#ifndef _BSDTYPES_DEFINED -/* also defined in mingw/gmon.h and in w32api/winsock[2].h */ -#ifndef __u_char_defined -typedef unsigned char u_char; -#define __u_char_defined -#endif -#ifndef __u_short_defined -typedef unsigned short u_short; -#define __u_short_defined -#endif -#ifndef __u_int_defined -typedef unsigned int u_int; -#define __u_int_defined -#endif -#ifndef __u_long_defined -typedef unsigned long u_long; -#define __u_long_defined -#endif -#define _BSDTYPES_DEFINED -#endif - -typedef unsigned short ushort; /* System V compatibility */ -typedef unsigned int uint; /* System V compatibility */ -typedef unsigned long ulong; /* System V compatibility */ -# endif /*!_POSIX_SOURCE */ - -#ifndef __clock_t_defined -typedef _CLOCK_T_ clock_t; -#define __clock_t_defined -#endif - -#ifndef __time_t_defined -typedef _TIME_T_ time_t; -#define __time_t_defined -#endif - -#ifndef __timespec_defined -#define __timespec_defined -/* Time Value Specification Structures, P1003.1b-1993, p. 261 */ - -struct timespec { - time_t tv_sec; /* Seconds */ - long tv_nsec; /* Nanoseconds */ -}; -#endif - -struct itimerspec { - struct timespec it_interval; /* Timer period */ - struct timespec it_value; /* Timer expiration */ -}; - -#ifndef __daddr_t_defined -typedef long daddr_t; -#define __daddr_t_defined -#endif -#ifndef __caddr_t_defined -typedef char * caddr_t; -#define __caddr_t_defined -#endif - -#ifndef __CYGWIN__ -#if defined(__MS_types__) || defined(__rtems__) || \ - defined(__sparc__) || defined(__SPU__) -typedef unsigned long ino_t; -#else -typedef unsigned short ino_t; -#endif -#endif /*__CYGWIN__*/ - -#ifdef __MS_types__ -typedef unsigned long vm_offset_t; -typedef unsigned long vm_size_t; - -#define __BIT_TYPES_DEFINED__ - -typedef signed char int8_t; -typedef unsigned char u_int8_t; -typedef short int16_t; -typedef unsigned short u_int16_t; -typedef int int32_t; -typedef unsigned int u_int32_t; -typedef long long int64_t; -typedef unsigned long long u_int64_t; -typedef int32_t register_t; -#endif /* __MS_types__ */ - -/* - * All these should be machine specific - right now they are all broken. - * However, for all of Cygnus' embedded targets, we want them to all be - * the same. Otherwise things like sizeof (struct stat) might depend on - * how the file was compiled (e.g. -mint16 vs -mint32, etc.). - */ - -#ifndef __CYGWIN__ /* which defines these types in it's own types.h. */ -typedef _off_t off_t; -typedef __dev_t dev_t; -typedef __uid_t uid_t; -typedef __gid_t gid_t; -#endif - -#if defined(__XMK__) -typedef signed char pid_t; -#else -typedef int pid_t; -#endif - -#if defined(__rtems__) -typedef _mode_t mode_t; -#endif - -#ifndef __CYGWIN__ -typedef long key_t; -#endif -typedef _ssize_t ssize_t; - -#if !defined(__CYGWIN__) && !defined(__rtems__) -#ifdef __MS_types__ -typedef char * addr_t; -typedef int mode_t; -#else -#if defined (__sparc__) && !defined (__sparc_v9__) -#ifdef __svr4__ -typedef unsigned long mode_t; -#else -typedef unsigned short mode_t; -#endif -#else -typedef unsigned int mode_t _ST_INT32; -#endif -#endif /* ! __MS_types__ */ -#endif /*__CYGWIN__*/ - -typedef unsigned short nlink_t; - -/* We don't define fd_set and friends if we are compiling POSIX - source, or if we have included (or may include as indicated - by __USE_W32_SOCKETS) the W32api winsock[2].h header which - defines Windows versions of them. Note that a program which - includes the W32api winsock[2].h header must know what it is doing; - it must not call the cygwin32 select function. -*/ -# if !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) -# define _SYS_TYPES_FD_SET -# define NBBY 8 /* number of bits in a byte */ -/* - * Select uses bit masks of file descriptors in longs. - * These macros manipulate such bit fields (the filesystem macros use chars). - * FD_SETSIZE may be defined by the user, but the default here - * should be >= NOFILE (param.h). - */ -# ifndef FD_SETSIZE -# define FD_SETSIZE 64 -# endif - -typedef long fd_mask; -# define NFDBITS (sizeof (fd_mask) * NBBY) /* bits per mask */ -# ifndef howmany -# define howmany(x,y) (((x)+((y)-1))/(y)) -# endif - -/* We use a macro for fd_set so that including Sockets.h afterwards - can work. */ -typedef struct _types_fd_set { - fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; -} _types_fd_set; - -#define fd_set _types_fd_set - -# define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1L << ((n) % NFDBITS))) -# define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1L << ((n) % NFDBITS))) -# define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1L << ((n) % NFDBITS))) -# define FD_ZERO(p) (__extension__ (void)({ \ - size_t __i; \ - char *__tmp = (char *)p; \ - for (__i = 0; __i < sizeof (*(p)); ++__i) \ - *__tmp++ = 0; \ -})) - -# endif /* !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) */ - -#undef __MS_types__ -#undef _ST_INT32 - - -#ifndef __clockid_t_defined -typedef _CLOCKID_T_ clockid_t; -#define __clockid_t_defined -#endif - -#ifndef __timer_t_defined -typedef _TIMER_T_ timer_t; -#define __timer_t_defined -#endif - -typedef unsigned long useconds_t; -typedef long suseconds_t; - -#include - - -/* Cygwin will probably never have full posix compliance due to little things - * like an inability to set the stackaddress. Cygwin is also using void * - * pointers rather than structs to ensure maximum binary compatability with - * previous releases. - * This means that we don't use the types defined here, but rather in - * - */ -#if defined(_POSIX_THREADS) && !defined(__CYGWIN__) - -#include - -/* - * 2.5 Primitive System Data Types, P1003.1c/D10, p. 19. - */ - -#if defined(__XMK__) -typedef unsigned int pthread_t; /* identify a thread */ -#else -typedef __uint32_t pthread_t; /* identify a thread */ -#endif - -/* P1003.1c/D10, p. 118-119 */ -#define PTHREAD_SCOPE_PROCESS 0 -#define PTHREAD_SCOPE_SYSTEM 1 - -/* P1003.1c/D10, p. 111 */ -#define PTHREAD_INHERIT_SCHED 1 /* scheduling policy and associated */ - /* attributes are inherited from */ - /* the calling thread. */ -#define PTHREAD_EXPLICIT_SCHED 2 /* set from provided attribute object */ - -/* P1003.1c/D10, p. 141 */ -#define PTHREAD_CREATE_DETACHED 0 -#define PTHREAD_CREATE_JOINABLE 1 - -#if defined(__rtems__) - #include -#endif - -#if defined(__XMK__) -typedef struct pthread_attr_s { - int contentionscope; - struct sched_param schedparam; - int detachstate; - void *stackaddr; - size_t stacksize; -} pthread_attr_t; - -#define PTHREAD_STACK_MIN 200 - -#else /* !defined(__XMK__) */ -typedef struct { - int is_initialized; - void *stackaddr; - int stacksize; - int contentionscope; - int inheritsched; - int schedpolicy; - struct sched_param schedparam; -#if defined(__rtems__) - size_t guardsize; -#endif - - /* P1003.4b/D8, p. 54 adds cputime_clock_allowed attribute. */ -#if defined(_POSIX_THREAD_CPUTIME) - int cputime_clock_allowed; /* see time.h */ -#endif - int detachstate; -#if defined(__rtems__) - size_t affinitysetsize; - cpu_set_t *affinityset; - cpu_set_t affinitysetpreallocated; -#endif -} pthread_attr_t; - -#endif /* !defined(__XMK__) */ - -#if defined(_POSIX_THREAD_PROCESS_SHARED) -/* NOTE: P1003.1c/D10, p. 81 defines following values for process_shared. */ - -#define PTHREAD_PROCESS_PRIVATE 0 /* visible within only the creating process */ -#define PTHREAD_PROCESS_SHARED 1 /* visible too all processes with access to */ - /* the memory where the resource is */ - /* located */ -#endif - -#if defined(_POSIX_THREAD_PRIO_PROTECT) -/* Mutexes */ - -/* Values for blocking protocol. */ - -#define PTHREAD_PRIO_NONE 0 -#define PTHREAD_PRIO_INHERIT 1 -#define PTHREAD_PRIO_PROTECT 2 -#endif - -#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) - -/* Values for mutex type */ - -/* The following defines are part of the X/Open System Interface (XSI). */ - -/* - * This type of mutex does not detect deadlock. A thread attempting to - * relock this mutex without first unlocking it shall deadlock. Attempting - * to unlock a mutex locked by a different thread results in undefined - * behavior. Attempting to unlock an unlocked mutex results in undefined - * behavior. - */ -#define PTHREAD_MUTEX_NORMAL 0 - -/* - * A thread attempting to relock this mutex without first unlocking - * it shall succeed in locking the mutex. The relocking deadlock which - * can occur with mutexes of type PTHREAD_MUTEX_NORMAL cannot occur with - * this type of mutex. Multiple locks of this mutex shall require the - * same number of unlocks to release the mutex before another thread can - * acquire the mutex. A thread attempting to unlock a mutex which another - * thread has locked shall return with an error. A thread attempting to - * unlock an unlocked mutex shall return with an error. - */ -#define PTHREAD_MUTEX_RECURSIVE 1 - -/* - * This type of mutex provides error checking. A thread attempting - * to relock this mutex without first unlocking it shall return with an - * error. A thread attempting to unlock a mutex which another thread has - * locked shall return with an error. A thread attempting to unlock an - * unlocked mutex shall return with an error. - */ -#define PTHREAD_MUTEX_ERRORCHECK 2 - -/* - * Attempting to recursively lock a mutex of this type results - * in undefined behavior. Attempting to unlock a mutex of this type - * which was not locked by the calling thread results in undefined - * behavior. Attempting to unlock a mutex of this type which is not locked - * results in undefined behavior. An implementation may map this mutex to - * one of the other mutex types. - */ -#define PTHREAD_MUTEX_DEFAULT 3 - -#endif /* !defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) */ - -#if defined(__XMK__) -typedef unsigned int pthread_mutex_t; /* identify a mutex */ - -typedef struct { - int type; -} pthread_mutexattr_t; - -#else /* !defined(__XMK__) */ -typedef __uint32_t pthread_mutex_t; /* identify a mutex */ - -typedef struct { - int is_initialized; -#if defined(_POSIX_THREAD_PROCESS_SHARED) - int process_shared; /* allow mutex to be shared amongst processes */ -#endif -#if defined(_POSIX_THREAD_PRIO_PROTECT) - int prio_ceiling; - int protocol; -#endif -#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) - int type; -#endif - int recursive; -} pthread_mutexattr_t; -#endif /* !defined(__XMK__) */ - -/* Condition Variables */ - -typedef __uint32_t pthread_cond_t; /* identify a condition variable */ - -typedef struct { - int is_initialized; -#if defined(_POSIX_THREAD_PROCESS_SHARED) - int process_shared; /* allow this to be shared amongst processes */ -#endif -} pthread_condattr_t; /* a condition attribute object */ - -/* Keys */ - -typedef __uint32_t pthread_key_t; /* thread-specific data keys */ - -typedef struct { - int is_initialized; /* is this structure initialized? */ - int init_executed; /* has the initialization routine been run? */ -} pthread_once_t; /* dynamic package initialization */ -#else -#if defined (__CYGWIN__) -#include -#endif -#endif /* defined(_POSIX_THREADS) */ - -/* POSIX Barrier Types */ - -#if defined(_POSIX_BARRIERS) -typedef __uint32_t pthread_barrier_t; /* POSIX Barrier Object */ -typedef struct { - int is_initialized; /* is this structure initialized? */ -#if defined(_POSIX_THREAD_PROCESS_SHARED) - int process_shared; /* allow this to be shared amongst processes */ -#endif -} pthread_barrierattr_t; -#endif /* defined(_POSIX_BARRIERS) */ - -/* POSIX Spin Lock Types */ - -#if !defined (__CYGWIN__) -#if defined(_POSIX_SPIN_LOCKS) -typedef __uint32_t pthread_spinlock_t; /* POSIX Spin Lock Object */ -#endif /* defined(_POSIX_SPIN_LOCKS) */ - -/* POSIX Reader/Writer Lock Types */ - -#if defined(_POSIX_READER_WRITER_LOCKS) -typedef __uint32_t pthread_rwlock_t; /* POSIX RWLock Object */ -typedef struct { - int is_initialized; /* is this structure initialized? */ -#if defined(_POSIX_THREAD_PROCESS_SHARED) - int process_shared; /* allow this to be shared amongst processes */ -#endif -} pthread_rwlockattr_t; -#endif /* defined(_POSIX_READER_WRITER_LOCKS) */ -#endif /* __CYGWIN__ */ - -#endif /* !__need_inttypes */ - -#undef __need_inttypes - -#endif /* _SYS_TYPES_H */ diff --git a/components/newlib/include/sys/unistd.h b/components/newlib/include/sys/unistd.h deleted file mode 100644 index a741383d06..0000000000 --- a/components/newlib/include/sys/unistd.h +++ /dev/null @@ -1,516 +0,0 @@ -#ifndef _SYS_UNISTD_H -#define _SYS_UNISTD_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <_ansi.h> -#define __need_size_t -#define __need_ptrdiff_t -#include -#include -#include -#include - -extern char **environ; - -void _EXFUN(_exit, (int __status ) _ATTRIBUTE ((__noreturn__))); - -int _EXFUN(access,(const char *__path, int __amode )); -unsigned _EXFUN(alarm, (unsigned __secs )); -int _EXFUN(chdir, (const char *__path )); -int _EXFUN(chmod, (const char *__path, mode_t __mode )); -#if !defined(__INSIDE_CYGWIN__) -int _EXFUN(chown, (const char *__path, uid_t __owner, gid_t __group )); -#endif -#if defined(__CYGWIN__) || defined(__rtems__) -int _EXFUN(chroot, (const char *__path )); -#endif -int _EXFUN(close, (int __fildes )); -#if defined(__CYGWIN__) -size_t _EXFUN(confstr, (int __name, char *__buf, size_t __len)); -#endif -char * _EXFUN(ctermid, (char *__s )); -char * _EXFUN(cuserid, (char *__s )); -#if defined(__CYGWIN__) -int _EXFUN(daemon, (int nochdir, int noclose)); -#endif -int _EXFUN(dup, (int __fildes )); -int _EXFUN(dup2, (int __fildes, int __fildes2 )); -#if defined(__CYGWIN__) -int _EXFUN(dup3, (int __fildes, int __fildes2, int flags)); -int _EXFUN(eaccess, (const char *__path, int __mode)); -void _EXFUN(endusershell, (void)); -int _EXFUN(euidaccess, (const char *__path, int __mode)); -#endif -int _EXFUN(execl, (const char *__path, const char *, ... )); -int _EXFUN(execle, (const char *__path, const char *, ... )); -int _EXFUN(execlp, (const char *__file, const char *, ... )); -#if defined(__CYGWIN__) -int _EXFUN(execlpe, (const char *__file, const char *, ... )); -#endif -int _EXFUN(execv, (const char *__path, char * const __argv[] )); -int _EXFUN(execve, (const char *__path, char * const __argv[], char * const __envp[] )); -int _EXFUN(execvp, (const char *__file, char * const __argv[] )); -#if defined(__CYGWIN__) -int _EXFUN(execvpe, (const char *__file, char * const __argv[], char * const __envp[] )); -#endif -#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__) -int _EXFUN(faccessat, (int __dirfd, const char *__path, int __mode, int __flags)); -#endif -#if defined(__CYGWIN__) || defined(__rtems__) || defined(__SPU__) -int _EXFUN(fchdir, (int __fildes)); -#endif -int _EXFUN(fchmod, (int __fildes, mode_t __mode )); -#if !defined(__INSIDE_CYGWIN__) -int _EXFUN(fchown, (int __fildes, uid_t __owner, gid_t __group )); -#endif -#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__) -int _EXFUN(fchownat, (int __dirfd, const char *__path, uid_t __owner, gid_t __group, int __flags)); -#endif -#if defined(__CYGWIN__) -int _EXFUN(fexecve, (int __fd, char * const __argv[], char * const __envp[] )); -#endif -pid_t _EXFUN(fork, (void )); -long _EXFUN(fpathconf, (int __fd, int __name )); -int _EXFUN(fsync, (int __fd)); -int _EXFUN(fdatasync, (int __fd)); -#if defined(__CYGWIN__) -char * _EXFUN(get_current_dir_name, (void)); -#endif -char * _EXFUN(getcwd, (char *__buf, size_t __size )); -#if defined(__CYGWIN__) -int _EXFUN(getdomainname ,(char *__name, size_t __len)); -#endif -#if !defined(__INSIDE_CYGWIN__) -gid_t _EXFUN(getegid, (void )); -uid_t _EXFUN(geteuid, (void )); -gid_t _EXFUN(getgid, (void )); -#endif -int _EXFUN(getgroups, (int __gidsetsize, gid_t __grouplist[] )); -#if defined(__CYGWIN__) -long _EXFUN(gethostid, (void)); -#endif -char * _EXFUN(getlogin, (void )); -#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) -int _EXFUN(getlogin_r, (char *name, size_t namesize) ); -#endif -char * _EXFUN(getpass, (const char *__prompt)); -int _EXFUN(getpagesize, (void)); -#if defined(__CYGWIN__) -int _EXFUN(getpeereid, (int, uid_t *, gid_t *)); -#endif -pid_t _EXFUN(getpgid, (pid_t)); -pid_t _EXFUN(getpgrp, (void )); -pid_t _EXFUN(getpid, (void )); -pid_t _EXFUN(getppid, (void )); -#if defined(__CYGWIN__) || defined(__rtems__) -pid_t _EXFUN(getsid, (pid_t)); -#endif -#if !defined(__INSIDE_CYGWIN__) -uid_t _EXFUN(getuid, (void )); -#endif -#ifdef __CYGWIN__ -char * _EXFUN(getusershell, (void)); -char * _EXFUN(getwd, (char *__buf )); -int _EXFUN(iruserok, (unsigned long raddr, int superuser, const char *ruser, const char *luser)); -#endif -int _EXFUN(isatty, (int __fildes )); -#if !defined(__INSIDE_CYGWIN__) -int _EXFUN(lchown, (const char *__path, uid_t __owner, gid_t __group )); -#endif -int _EXFUN(link, (const char *__path1, const char *__path2 )); -#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__) -int _EXFUN(linkat, (int __dirfd1, const char *__path1, int __dirfd2, const char *__path2, int __flags )); -#endif -int _EXFUN(nice, (int __nice_value )); -#if !defined(__INSIDE_CYGWIN__) -off_t _EXFUN(lseek, (int __fildes, off_t __offset, int __whence )); -#endif -#if defined(__SPU__) || defined(__CYGWIN__) -#define F_ULOCK 0 -#define F_LOCK 1 -#define F_TLOCK 2 -#define F_TEST 3 -int _EXFUN(lockf, (int __fd, int __cmd, off_t __len)); -#endif -long _EXFUN(pathconf, (const char *__path, int __name )); -int _EXFUN(pause, (void )); -#ifdef __CYGWIN__ -int _EXFUN(pthread_atfork, (void (*)(void), void (*)(void), void (*)(void))); -#endif -int _EXFUN(pipe, (int __fildes[2] )); -#ifdef __CYGWIN__ -int _EXFUN(pipe2, (int __fildes[2], int flags)); -#endif -ssize_t _EXFUN(pread, (int __fd, void *__buf, size_t __nbytes, off_t __offset)); -ssize_t _EXFUN(pwrite, (int __fd, const void *__buf, size_t __nbytes, off_t __offset)); -_READ_WRITE_RETURN_TYPE _EXFUN(read, (int __fd, void *__buf, size_t __nbyte )); -#if defined(__CYGWIN__) -int _EXFUN(rresvport, (int *__alport)); -int _EXFUN(revoke, (char *__path)); -#endif -int _EXFUN(rmdir, (const char *__path )); -#if defined(__CYGWIN__) -int _EXFUN(ruserok, (const char *rhost, int superuser, const char *ruser, const char *luser)); -#endif -void * _EXFUN(sbrk, (ptrdiff_t __incr)); -#if !defined(__INSIDE_CYGWIN__) -#if defined(__CYGWIN__) || defined(__rtems__) -int _EXFUN(setegid, (gid_t __gid )); -int _EXFUN(seteuid, (uid_t __uid )); -#endif -int _EXFUN(setgid, (gid_t __gid )); -#endif -#if defined(__CYGWIN__) -int _EXFUN(setgroups, (int ngroups, const gid_t *grouplist )); -#endif -#if __BSD_VISIBLE || (defined(_XOPEN_SOURCE) && __XSI_VISIBLE < 500) -int _EXFUN(sethostname, (const char *, size_t)); -#endif -int _EXFUN(setpgid, (pid_t __pid, pid_t __pgid )); -int _EXFUN(setpgrp, (void )); -#if defined(__CYGWIN__) && !defined(__INSIDE_CYGWIN__) -int _EXFUN(setregid, (gid_t __rgid, gid_t __egid)); -int _EXFUN(setreuid, (uid_t __ruid, uid_t __euid)); -#endif -pid_t _EXFUN(setsid, (void )); -#if !defined(__INSIDE_CYGWIN__) -int _EXFUN(setuid, (uid_t __uid )); -#endif -#if defined(__CYGWIN__) -void _EXFUN(setusershell, (void)); -#endif -unsigned _EXFUN(sleep, (unsigned int __seconds )); -void _EXFUN(swab, (const void *__restrict, void *__restrict, ssize_t)); -long _EXFUN(sysconf, (int __name )); -pid_t _EXFUN(tcgetpgrp, (int __fildes )); -int _EXFUN(tcsetpgrp, (int __fildes, pid_t __pgrp_id )); -char * _EXFUN(ttyname, (int __fildes )); -#if defined(__CYGWIN__) || defined(__rtems__) -int _EXFUN(ttyname_r, (int, char *, size_t)); -#endif -int _EXFUN(unlink, (const char *__path )); -int _EXFUN(usleep, (useconds_t __useconds)); -int _EXFUN(vhangup, (void )); -_READ_WRITE_RETURN_TYPE _EXFUN(write, (int __fd, const void *__buf, size_t __nbyte )); - -#ifdef __CYGWIN__ -# define __UNISTD_GETOPT__ -# include -# undef __UNISTD_GETOPT__ -#else -extern char *optarg; /* getopt(3) external variables */ -extern int optind, opterr, optopt; -int getopt(int, char * const [], const char *); -extern int optreset; /* getopt(3) external variable */ -#endif - -#ifndef _POSIX_SOURCE -pid_t _EXFUN(vfork, (void )); -#endif /* _POSIX_SOURCE */ - -#ifdef _COMPILING_NEWLIB -/* Provide prototypes for most of the _ names that are - provided in newlib for some compilers. */ -int _EXFUN(_close, (int __fildes )); -pid_t _EXFUN(_fork, (void )); -pid_t _EXFUN(_getpid, (void )); -int _EXFUN(_isatty, (int __fildes )); -int _EXFUN(_link, (const char *__path1, const char *__path2 )); -_off_t _EXFUN(_lseek, (int __fildes, _off_t __offset, int __whence )); -#ifdef __LARGE64_FILES -_off64_t _EXFUN(_lseek64, (int __filedes, _off64_t __offset, int __whence )); -#endif -_READ_WRITE_RETURN_TYPE _EXFUN(_read, (int __fd, void *__buf, size_t __nbyte )); -void * _EXFUN(_sbrk, (ptrdiff_t __incr)); -int _EXFUN(_unlink, (const char *__path )); -_READ_WRITE_RETURN_TYPE _EXFUN(_write, (int __fd, const void *__buf, size_t __nbyte )); -int _EXFUN(_execve, (const char *__path, char * const __argv[], char * const __envp[] )); -#endif - -#if defined(__CYGWIN__) || defined(__rtems__) || defined(__aarch64__) || defined (__arm__) || defined(__sh__) || defined(__SPU__) -#if !defined(__INSIDE_CYGWIN__) -int _EXFUN(ftruncate, (int __fd, off_t __length)); -int _EXFUN(truncate, (const char *, off_t __length)); -#endif -#endif - -#if defined(__CYGWIN__) || defined(__rtems__) -int _EXFUN(getdtablesize, (void)); -int _EXFUN(setdtablesize, (int)); -useconds_t _EXFUN(ualarm, (useconds_t __useconds, useconds_t __interval)); -#if !(defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) -/* winsock[2].h defines as __stdcall, and with int as 2nd arg */ - int _EXFUN(gethostname, (char *__name, size_t __len)); -#endif -char * _EXFUN(mktemp, (char *)); -#endif - -#if defined(__CYGWIN__) || defined(__SPU__) || defined(__rtems__) -void _EXFUN(sync, (void)); -#endif - -ssize_t _EXFUN(readlink, (const char *__restrict __path, - char *__restrict __buf, size_t __buflen)); -#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__) -ssize_t _EXFUN(readlinkat, (int __dirfd1, const char *__restrict __path, - char *__restrict __buf, size_t __buflen)); -#endif -int _EXFUN(symlink, (const char *__name1, const char *__name2)); -#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__) -int _EXFUN(symlinkat, (const char *, int, const char *)); -int _EXFUN(unlinkat, (int, const char *, int)); -#endif - -#define F_OK 0 -#define R_OK 4 -#define W_OK 2 -#define X_OK 1 - -# define SEEK_SET 0 -# define SEEK_CUR 1 -# define SEEK_END 2 - -#include - -#define STDIN_FILENO 0 /* standard input file descriptor */ -#define STDOUT_FILENO 1 /* standard output file descriptor */ -#define STDERR_FILENO 2 /* standard error file descriptor */ - -/* - * sysconf values per IEEE Std 1003.1, 2008 Edition - */ - -#define _SC_ARG_MAX 0 -#define _SC_CHILD_MAX 1 -#define _SC_CLK_TCK 2 -#define _SC_NGROUPS_MAX 3 -#define _SC_OPEN_MAX 4 -#define _SC_JOB_CONTROL 5 -#define _SC_SAVED_IDS 6 -#define _SC_VERSION 7 -#define _SC_PAGESIZE 8 -#define _SC_PAGE_SIZE _SC_PAGESIZE -/* These are non-POSIX values we accidentally introduced in 2000 without - guarding them. Keeping them unguarded for backward compatibility. */ -#define _SC_NPROCESSORS_CONF 9 -#define _SC_NPROCESSORS_ONLN 10 -#define _SC_PHYS_PAGES 11 -#define _SC_AVPHYS_PAGES 12 -/* End of non-POSIX values. */ -#define _SC_MQ_OPEN_MAX 13 -#define _SC_MQ_PRIO_MAX 14 -#define _SC_RTSIG_MAX 15 -#define _SC_SEM_NSEMS_MAX 16 -#define _SC_SEM_VALUE_MAX 17 -#define _SC_SIGQUEUE_MAX 18 -#define _SC_TIMER_MAX 19 -#define _SC_TZNAME_MAX 20 -#define _SC_ASYNCHRONOUS_IO 21 -#define _SC_FSYNC 22 -#define _SC_MAPPED_FILES 23 -#define _SC_MEMLOCK 24 -#define _SC_MEMLOCK_RANGE 25 -#define _SC_MEMORY_PROTECTION 26 -#define _SC_MESSAGE_PASSING 27 -#define _SC_PRIORITIZED_IO 28 -#define _SC_REALTIME_SIGNALS 29 -#define _SC_SEMAPHORES 30 -#define _SC_SHARED_MEMORY_OBJECTS 31 -#define _SC_SYNCHRONIZED_IO 32 -#define _SC_TIMERS 33 -#define _SC_AIO_LISTIO_MAX 34 -#define _SC_AIO_MAX 35 -#define _SC_AIO_PRIO_DELTA_MAX 36 -#define _SC_DELAYTIMER_MAX 37 -#define _SC_THREAD_KEYS_MAX 38 -#define _SC_THREAD_STACK_MIN 39 -#define _SC_THREAD_THREADS_MAX 40 -#define _SC_TTY_NAME_MAX 41 -#define _SC_THREADS 42 -#define _SC_THREAD_ATTR_STACKADDR 43 -#define _SC_THREAD_ATTR_STACKSIZE 44 -#define _SC_THREAD_PRIORITY_SCHEDULING 45 -#define _SC_THREAD_PRIO_INHERIT 46 -/* _SC_THREAD_PRIO_PROTECT was _SC_THREAD_PRIO_CEILING in early drafts */ -#define _SC_THREAD_PRIO_PROTECT 47 -#define _SC_THREAD_PRIO_CEILING _SC_THREAD_PRIO_PROTECT -#define _SC_THREAD_PROCESS_SHARED 48 -#define _SC_THREAD_SAFE_FUNCTIONS 49 -#define _SC_GETGR_R_SIZE_MAX 50 -#define _SC_GETPW_R_SIZE_MAX 51 -#define _SC_LOGIN_NAME_MAX 52 -#define _SC_THREAD_DESTRUCTOR_ITERATIONS 53 -#define _SC_ADVISORY_INFO 54 -#define _SC_ATEXIT_MAX 55 -#define _SC_BARRIERS 56 -#define _SC_BC_BASE_MAX 57 -#define _SC_BC_DIM_MAX 58 -#define _SC_BC_SCALE_MAX 59 -#define _SC_BC_STRING_MAX 60 -#define _SC_CLOCK_SELECTION 61 -#define _SC_COLL_WEIGHTS_MAX 62 -#define _SC_CPUTIME 63 -#define _SC_EXPR_NEST_MAX 64 -#define _SC_HOST_NAME_MAX 65 -#define _SC_IOV_MAX 66 -#define _SC_IPV6 67 -#define _SC_LINE_MAX 68 -#define _SC_MONOTONIC_CLOCK 69 -#define _SC_RAW_SOCKETS 70 -#define _SC_READER_WRITER_LOCKS 71 -#define _SC_REGEXP 72 -#define _SC_RE_DUP_MAX 73 -#define _SC_SHELL 74 -#define _SC_SPAWN 75 -#define _SC_SPIN_LOCKS 76 -#define _SC_SPORADIC_SERVER 77 -#define _SC_SS_REPL_MAX 78 -#define _SC_SYMLOOP_MAX 79 -#define _SC_THREAD_CPUTIME 80 -#define _SC_THREAD_SPORADIC_SERVER 81 -#define _SC_TIMEOUTS 82 -#define _SC_TRACE 83 -#define _SC_TRACE_EVENT_FILTER 84 -#define _SC_TRACE_EVENT_NAME_MAX 85 -#define _SC_TRACE_INHERIT 86 -#define _SC_TRACE_LOG 87 -#define _SC_TRACE_NAME_MAX 88 -#define _SC_TRACE_SYS_MAX 89 -#define _SC_TRACE_USER_EVENT_MAX 90 -#define _SC_TYPED_MEMORY_OBJECTS 91 -#define _SC_V7_ILP32_OFF32 92 -#define _SC_V6_ILP32_OFF32 _SC_V7_ILP32_OFF32 -#define _SC_XBS5_ILP32_OFF32 _SC_V7_ILP32_OFF32 -#define _SC_V7_ILP32_OFFBIG 93 -#define _SC_V6_ILP32_OFFBIG _SC_V7_ILP32_OFFBIG -#define _SC_XBS5_ILP32_OFFBIG _SC_V7_ILP32_OFFBIG -#define _SC_V7_LP64_OFF64 94 -#define _SC_V6_LP64_OFF64 _SC_V7_LP64_OFF64 -#define _SC_XBS5_LP64_OFF64 _SC_V7_LP64_OFF64 -#define _SC_V7_LPBIG_OFFBIG 95 -#define _SC_V6_LPBIG_OFFBIG _SC_V7_LPBIG_OFFBIG -#define _SC_XBS5_LPBIG_OFFBIG _SC_V7_LPBIG_OFFBIG -#define _SC_XOPEN_CRYPT 96 -#define _SC_XOPEN_ENH_I18N 97 -#define _SC_XOPEN_LEGACY 98 -#define _SC_XOPEN_REALTIME 99 -#define _SC_STREAM_MAX 100 -#define _SC_PRIORITY_SCHEDULING 101 -#define _SC_XOPEN_REALTIME_THREADS 102 -#define _SC_XOPEN_SHM 103 -#define _SC_XOPEN_STREAMS 104 -#define _SC_XOPEN_UNIX 105 -#define _SC_XOPEN_VERSION 106 -#define _SC_2_CHAR_TERM 107 -#define _SC_2_C_BIND 108 -#define _SC_2_C_DEV 109 -#define _SC_2_FORT_DEV 110 -#define _SC_2_FORT_RUN 111 -#define _SC_2_LOCALEDEF 112 -#define _SC_2_PBS 113 -#define _SC_2_PBS_ACCOUNTING 114 -#define _SC_2_PBS_CHECKPOINT 115 -#define _SC_2_PBS_LOCATE 116 -#define _SC_2_PBS_MESSAGE 117 -#define _SC_2_PBS_TRACK 118 -#define _SC_2_SW_DEV 119 -#define _SC_2_UPE 120 -#define _SC_2_VERSION 121 -#define _SC_THREAD_ROBUST_PRIO_INHERIT 122 -#define _SC_THREAD_ROBUST_PRIO_PROTECT 123 -#define _SC_XOPEN_UUCP 124 - -/* - * pathconf values per IEEE Std 1003.1, 2008 Edition - */ - -#define _PC_LINK_MAX 0 -#define _PC_MAX_CANON 1 -#define _PC_MAX_INPUT 2 -#define _PC_NAME_MAX 3 -#define _PC_PATH_MAX 4 -#define _PC_PIPE_BUF 5 -#define _PC_CHOWN_RESTRICTED 6 -#define _PC_NO_TRUNC 7 -#define _PC_VDISABLE 8 -#define _PC_ASYNC_IO 9 -#define _PC_PRIO_IO 10 -#define _PC_SYNC_IO 11 -#define _PC_FILESIZEBITS 12 -#define _PC_2_SYMLINKS 13 -#define _PC_SYMLINK_MAX 14 -#define _PC_ALLOC_SIZE_MIN 15 -#define _PC_REC_INCR_XFER_SIZE 16 -#define _PC_REC_MAX_XFER_SIZE 17 -#define _PC_REC_MIN_XFER_SIZE 18 -#define _PC_REC_XFER_ALIGN 19 -#define _PC_TIMESTAMP_RESOLUTION 20 -#ifdef __CYGWIN__ -/* Ask for POSIX permission bits support. */ -#define _PC_POSIX_PERMISSIONS 90 -/* Ask for full POSIX permission support including uid/gid settings. */ -#define _PC_POSIX_SECURITY 91 -#endif - -/* - * confstr values per IEEE Std 1003.1, 2004 Edition - */ - -#ifdef __CYGWIN__ /* Only defined on Cygwin for now. */ -#define _CS_PATH 0 -#define _CS_POSIX_V7_ILP32_OFF32_CFLAGS 1 -#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V7_ILP32_OFF32_CFLAGS -#define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_POSIX_V7_ILP32_OFF32_CFLAGS -#define _CS_POSIX_V7_ILP32_OFF32_LDFLAGS 2 -#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V7_ILP32_OFF32_LDFLAGS -#define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_POSIX_V7_ILP32_OFF32_LDFLAGS -#define _CS_POSIX_V7_ILP32_OFF32_LIBS 3 -#define _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V7_ILP32_OFF32_LIBS -#define _CS_XBS5_ILP32_OFF32_LIBS _CS_POSIX_V7_ILP32_OFF32_LIBS -#define _CS_XBS5_ILP32_OFF32_LINTFLAGS 4 -#define _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS 5 -#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS -#define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS -#define _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS 6 -#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS -#define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS -#define _CS_POSIX_V7_ILP32_OFFBIG_LIBS 7 -#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V7_ILP32_OFFBIG_LIBS -#define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_POSIX_V7_ILP32_OFFBIG_LIBS -#define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS 8 -#define _CS_POSIX_V7_LP64_OFF64_CFLAGS 9 -#define _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V7_LP64_OFF64_CFLAGS -#define _CS_XBS5_LP64_OFF64_CFLAGS _CS_POSIX_V7_LP64_OFF64_CFLAGS -#define _CS_POSIX_V7_LP64_OFF64_LDFLAGS 10 -#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V7_LP64_OFF64_LDFLAGS -#define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_POSIX_V7_LP64_OFF64_LDFLAGS -#define _CS_POSIX_V7_LP64_OFF64_LIBS 11 -#define _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V7_LP64_OFF64_LIBS -#define _CS_XBS5_LP64_OFF64_LIBS _CS_POSIX_V7_LP64_OFF64_LIBS -#define _CS_XBS5_LP64_OFF64_LINTFLAGS 12 -#define _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS 13 -#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS -#define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS -#define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS 14 -#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS -#define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS -#define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS 15 -#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS -#define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS -#define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS 16 -#define _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS 17 -#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS -#define _CS_XBS5_WIDTH_RESTRICTED_ENVS _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS -#define _CS_POSIX_V7_THREADS_CFLAGS 18 -#define _CS_POSIX_V7_THREADS_LDFLAGS 19 -#define _CS_V7_ENV 20 -#define _CS_V6_ENV _CS_V7_ENV -#endif - -#ifdef __cplusplus -} -#endif -#endif /* _SYS_UNISTD_H */ diff --git a/components/newlib/include/sys/utime.h b/components/newlib/include/sys/utime.h deleted file mode 100644 index 5e937f1038..0000000000 --- a/components/newlib/include/sys/utime.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef _SYS_UTIME_H -#define _SYS_UTIME_H - -/* This is a dummy file, not customized for any - particular system. If there is a utime.h in libc/sys/SYSDIR/sys, - it will override this one. */ - -#ifdef __cplusplus -extern "C" { -#endif - -struct utimbuf -{ - time_t actime; - time_t modtime; -}; - -#ifdef __cplusplus -}; -#endif - -#endif /* _SYS_UTIME_H */ diff --git a/components/newlib/include/sys/wait.h b/components/newlib/include/sys/wait.h deleted file mode 100644 index 73fe372024..0000000000 --- a/components/newlib/include/sys/wait.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef _SYS_WAIT_H -#define _SYS_WAIT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#define WNOHANG 1 -#define WUNTRACED 2 - -/* A status looks like: - <2 bytes info> <2 bytes code> - - == 0, child has exited, info is the exit value - == 1..7e, child has exited, info is the signal number. - == 7f, child has stopped, info was the signal number. - == 80, there was a core dump. -*/ - -#define WIFEXITED(w) (((w) & 0xff) == 0) -#define WIFSIGNALED(w) (((w) & 0x7f) > 0 && (((w) & 0x7f) < 0x7f)) -#define WIFSTOPPED(w) (((w) & 0xff) == 0x7f) -#define WEXITSTATUS(w) (((w) >> 8) & 0xff) -#define WTERMSIG(w) ((w) & 0x7f) -#define WSTOPSIG WEXITSTATUS - -pid_t wait (int *); -pid_t waitpid (pid_t, int *, int); - -#ifdef _COMPILING_NEWLIB -pid_t _wait (int *); -#endif - -/* Provide prototypes for most of the _ names that are - provided in newlib for some compilers. */ -pid_t _wait (int *); - -#ifdef __cplusplus -}; -#endif - -#endif diff --git a/components/newlib/include/tar.h b/components/newlib/include/tar.h deleted file mode 100644 index 07b06dd7fb..0000000000 --- a/components/newlib/include/tar.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * tar.h - */ - -#ifndef _TAR_H -#define _TAR_H - -/* General definitions */ -#define TMAGIC "ustar" /* ustar plus null byte. */ -#define TMAGLEN 6 /* Length of the above. */ -#define TVERSION "00" /* 00 without a null byte. */ -#define TVERSLEN 2 /* Length of the above. */ - -/* Typeflag field definitions */ -#define REGTYPE '0' /* Regular file. */ -#define AREGTYPE '\0' /* Regular file. */ -#define LNKTYPE '1' /* Link. */ -#define SYMTYPE '2' /* Symbolic link. */ -#define CHRTYPE '3' /* Character special. */ -#define BLKTYPE '4' /* Block special. */ -#define DIRTYPE '5' /* Directory. */ -#define FIFOTYPE '6' /* FIFO special. */ -#define CONTTYPE '7' /* Reserved. */ - -/* Mode field bit definitions (octal) */ -#define TSUID 04000 /* Set UID on execution. */ -#define TSGID 02000 /* Set GID on execution. */ -#define TSVTX 01000 /* On directories, restricted deletion flag. */ -#define TUREAD 00400 /* Read by owner. */ -#define TUWRITE 00200 /* Write by owner. */ -#define TUEXEC 00100 /* Execute/search by owner. */ -#define TGREAD 00040 /* Read by group. */ -#define TGWRITE 00020 /* Write by group. */ -#define TGEXEC 00010 /* Execute/search by group. */ -#define TOREAD 00004 /* Read by other. */ -#define TOWRITE 00002 /* Write by other. */ -#define TOEXEC 00001 /* Execute/search by other. */ - -#endif diff --git a/components/newlib/include/termios.h b/components/newlib/include/termios.h deleted file mode 100644 index ee1820ce04..0000000000 --- a/components/newlib/include/termios.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif -#include -#ifdef __cplusplus -} -#endif diff --git a/components/newlib/include/tgmath.h b/components/newlib/include/tgmath.h deleted file mode 100644 index f9c8311cc3..0000000000 --- a/components/newlib/include/tgmath.h +++ /dev/null @@ -1,184 +0,0 @@ -/* http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/tgmath.h.html */ -/*- - * Copyright (c) 2004 Stefan Farfeleder. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. - * - * $FreeBSD$ - */ - -#ifndef _TGMATH_H_ -#define _TGMATH_H_ - -#include -#include - -#ifdef log2 -#undef log2 -#endif - -/* - * This implementation of requires two implementation-dependent - * macros to be defined: - * __tg_impl_simple(x, y, z, fn, fnf, fnl, ...) - * Invokes fnl() if the corresponding real type of x, y or z is long - * double, fn() if it is double or any has an integer type, and fnf() - * otherwise. - * __tg_impl_full(x, y, z, fn, fnf, fnl, cfn, cfnf, cfnl, ...) - * Invokes [c]fnl() if the corresponding real type of x, y or z is long - * double, [c]fn() if it is double or any has an integer type, and - * [c]fnf() otherwise. The function with the 'c' prefix is called if - * any of x, y or z is a complex number. - * Both macros call the chosen function with all additional arguments passed - * to them, as given by __VA_ARGS__. - * - * Note that these macros cannot be implemented with C's ?: operator, - * because the return type of the whole expression would incorrectly be long - * double complex regardless of the argument types. - */ - -/* requires GCC >= 3.1 */ -#if !__GNUC_PREREQ (3, 1) -#error " not implemented for this compiler" -#endif - -#define __tg_type(__e, __t) \ - __builtin_types_compatible_p(__typeof__(__e), __t) -#define __tg_type3(__e1, __e2, __e3, __t) \ - (__tg_type(__e1, __t) || __tg_type(__e2, __t) || \ - __tg_type(__e3, __t)) -#define __tg_type_corr(__e1, __e2, __e3, __t) \ - (__tg_type3(__e1, __e2, __e3, __t) || \ - __tg_type3(__e1, __e2, __e3, __t _Complex)) -#define __tg_integer(__e1, __e2, __e3) \ - (((__typeof__(__e1))1.5 == 1) || ((__typeof__(__e2))1.5 == 1) || \ - ((__typeof__(__e3))1.5 == 1)) -#define __tg_is_complex(__e1, __e2, __e3) \ - (__tg_type3(__e1, __e2, __e3, float _Complex) || \ - __tg_type3(__e1, __e2, __e3, double _Complex) || \ - __tg_type3(__e1, __e2, __e3, long double _Complex) || \ - __tg_type3(__e1, __e2, __e3, __typeof__(_Complex_I))) - -#ifdef _LDBL_EQ_DBL -#define __tg_impl_simple(x, y, z, fn, fnf, fnl, ...) \ - __builtin_choose_expr(__tg_type_corr(x, y, z, long double), \ - fnl(__VA_ARGS__), __builtin_choose_expr( \ - __tg_type_corr(x, y, z, double) || __tg_integer(x, y, z),\ - fn(__VA_ARGS__), fnf(__VA_ARGS__))) -#else -#define __tg_impl_simple(__x, __y, __z, __fn, __fnf, __fnl, ...) \ - (__tg_type_corr(__x, __y, __z, double) || __tg_integer(__x, __y, __z)) \ - ? __fn(__VA_ARGS__) : __fnf(__VA_ARGS__) -#endif - -#define __tg_impl_full(__x, __y, __z, __fn, __fnf, __fnl, __cfn, __cfnf, __cfnl, ...) \ - __builtin_choose_expr(__tg_is_complex(__x, __y, __z), \ - __tg_impl_simple(__x, __y, __z, __cfn, __cfnf, __cfnl, __VA_ARGS__), \ - __tg_impl_simple(__x, __y, __z, __fn, __fnf, __fnl, __VA_ARGS__)) - -/* Macros to save lots of repetition below */ -#define __tg_simple(__x, __fn) \ - __tg_impl_simple(__x, __x, __x, __fn, __fn##f, __fn##l, __x) -#define __tg_simple2(__x, __y, __fn) \ - __tg_impl_simple(__x, __x, __y, __fn, __fn##f, __fn##l, __x, __y) -#define __tg_simplev(__x, __fn, ...) \ - __tg_impl_simple(__x, __x, __x, __fn, __fn##f, __fn##l, __VA_ARGS__) -#define __tg_full(__x, __fn) \ - __tg_impl_full(__x, __x, __x, __fn, __fn##f, __fn##l, c##__fn, c##__fn##f, c##__fn##l, __x) - -/* 7.22#4 -- These macros expand to real or complex functions, depending on - * the type of their arguments. */ -#define acos(__x) __tg_full(__x, acos) -#define asin(__x) __tg_full(__x, asin) -#define atan(__x) __tg_full(__x, atan) -#define acosh(__x) __tg_full(__x, acosh) -#define asinh(__x) __tg_full(__x, asinh) -#define atanh(__x) __tg_full(__x, atanh) -#define cos(__x) __tg_full(__x, cos) -#define sin(__x) __tg_full(__x, sin) -#define tan(__x) __tg_full(__x, tan) -#define cosh(__x) __tg_full(__x, cosh) -#define sinh(__x) __tg_full(__x, sinh) -#define tanh(__x) __tg_full(__x, tanh) -#define exp(__x) __tg_full(__x, exp) -#define log(__x) __tg_full(__x, log) -#define pow(__x, __y) __tg_impl_full(__x, __x, __y, pow, powf, powl, \ - cpow, cpowf, cpowl, __x, __y) -#define sqrt(__x) __tg_full(__x, sqrt) - -/* "The corresponding type-generic macro for fabs and cabs is fabs." */ -#define fabs(__x) __tg_impl_full(__x, __x, __x, fabs, fabsf, fabsl, \ - cabs, cabsf, cabsl, __x) - -/* 7.22#5 -- These macros are only defined for arguments with real type. */ -#define atan2(__x, __y) __tg_simple2(__x, __y, atan2) -#define cbrt(__x) __tg_simple(__x, cbrt) -#define ceil(__x) __tg_simple(__x, ceil) -#define copysign(__x, __y) __tg_simple2(__x, __y, copysign) -#define erf(__x) __tg_simple(__x, erf) -#define erfc(__x) __tg_simple(__x, erfc) -#define exp2(__x) __tg_simple(__x, exp2) -#define expm1(__x) __tg_simple(__x, expm1) -#define fdim(__x, __y) __tg_simple2(__x, __y, fdim) -#define floor(__x) __tg_simple(__x, floor) -#define fma(__x, __y, __z) __tg_impl_simple(__x, __y, __z, fma, fmaf, fmal, \ - __x, __y, __z) -#define fmax(__x, __y) __tg_simple2(__x, __y, fmax) -#define fmin(__x, __y) __tg_simple2(__x, __y, fmin) -#define fmod(__x, __y) __tg_simple2(__x, __y, fmod) -#define frexp(__x, __y) __tg_simplev(__x, frexp, __x, __y) -#define hypot(__x, __y) __tg_simple2(__x, __y, hypot) -#define ilogb(__x) __tg_simple(__x, ilogb) -#define ldexp(__x, __y) __tg_simplev(__x, ldexp, __x, __y) -#define lgamma(__x) __tg_simple(__x, lgamma) -#define llrint(__x) __tg_simple(__x, llrint) -#define llround(__x) __tg_simple(__x, llround) -#define log10(__x) __tg_simple(__x, log10) -#define log1p(__x) __tg_simple(__x, log1p) -#define log2(__x) __tg_simple(__x, log2) -#define logb(__x) __tg_simple(__x, logb) -#define lrint(__x) __tg_simple(__x, lrint) -#define lround(__x) __tg_simple(__x, lround) -#define nearbyint(__x) __tg_simple(__x, nearbyint) -#define nextafter(__x, __y) __tg_simple2(__x, __y, nextafter) -/* not yet implemented even for _LDBL_EQ_DBL platforms -#define nexttoward(__x, __y) __tg_simplev(__x, nexttoward, __x, __y) -*/ -#define remainder(__x, __y) __tg_simple2(__x, __y, remainder) -#define remquo(__x, __y, __z) __tg_impl_simple(__x, __x, __y, remquo, remquof, \ - remquol, __x, __y, __z) -#define rint(__x) __tg_simple(__x, rint) -#define round(__x) __tg_simple(__x, round) -#define scalbn(__x, __y) __tg_simplev(__x, scalbn, __x, __y) -#define scalbln(__x, __y) __tg_simplev(__x, scalbln, __x, __y) -#define tgamma(__x) __tg_simple(__x, tgamma) -#define trunc(__x) __tg_simple(__x, trunc) - -/* 7.22#6 -- These macros always expand to complex functions. */ -#define carg(__x) __tg_simple(__x, carg) -#define cimag(__x) __tg_simple(__x, cimag) -#define conj(__x) __tg_simple(__x, conj) -#define cproj(__x) __tg_simple(__x, cproj) -#define creal(__x) __tg_simple(__x, creal) - -#endif /* !_TGMATH_H_ */ diff --git a/components/newlib/include/time.h b/components/newlib/include/time.h deleted file mode 100644 index d7b6612db1..0000000000 --- a/components/newlib/include/time.h +++ /dev/null @@ -1,291 +0,0 @@ -/* - * time.h - * - * Struct and function declarations for dealing with time. - */ - -#ifndef _TIME_H_ -#define _TIME_H_ - -#include "_ansi.h" -#include - -#define __need_size_t -#define __need_NULL -#include - -/* Get _CLOCKS_PER_SEC_ */ -#include - -#ifndef _CLOCKS_PER_SEC_ -#define _CLOCKS_PER_SEC_ 1000 -#endif - -#define CLOCKS_PER_SEC _CLOCKS_PER_SEC_ -#define CLK_TCK CLOCKS_PER_SEC - -#include - -_BEGIN_STD_C - -struct tm -{ - int tm_sec; - int tm_min; - int tm_hour; - int tm_mday; - int tm_mon; - int tm_year; - int tm_wday; - int tm_yday; - int tm_isdst; -#ifdef __TM_GMTOFF - long __TM_GMTOFF; -#endif -#ifdef __TM_ZONE - const char *__TM_ZONE; -#endif -}; - -clock_t _EXFUN(clock, (void)); -double _EXFUN(difftime, (time_t _time2, time_t _time1)); -time_t _EXFUN(mktime, (struct tm *_timeptr)); -time_t _EXFUN(time, (time_t *_timer)); -#ifndef _REENT_ONLY -char *_EXFUN(asctime, (const struct tm *_tblock)); -char *_EXFUN(ctime, (const time_t *_time)); -struct tm *_EXFUN(gmtime, (const time_t *_timer)); -struct tm *_EXFUN(localtime,(const time_t *_timer)); -#endif -size_t _EXFUN(strftime, (char *__restrict _s, - size_t _maxsize, const char *__restrict _fmt, - const struct tm *__restrict _t)); - -char *_EXFUN(asctime_r, (const struct tm *__restrict, - char *__restrict)); -char *_EXFUN(ctime_r, (const time_t *, char *)); -struct tm *_EXFUN(gmtime_r, (const time_t *__restrict, - struct tm *__restrict)); -struct tm *_EXFUN(localtime_r, (const time_t *__restrict, - struct tm *__restrict)); - -_END_STD_C - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef __STRICT_ANSI__ -char *_EXFUN(strptime, (const char *__restrict, - const char *__restrict, - struct tm *__restrict)); -_VOID _EXFUN(tzset, (_VOID)); -_VOID _EXFUN(_tzset_r, (struct _reent *)); - -typedef struct __tzrule_struct -{ - char ch; - int m; - int n; - int d; - int s; - time_t change; - long offset; /* Match type of _timezone. */ -} __tzrule_type; - -typedef struct __tzinfo_struct -{ - int __tznorth; - int __tzyear; - __tzrule_type __tzrule[2]; -} __tzinfo_type; - -__tzinfo_type *_EXFUN (__gettzinfo, (_VOID)); - -/* getdate functions */ - -#ifdef HAVE_GETDATE -#ifndef _REENT_ONLY -#define getdate_err (*__getdate_err()) -int *_EXFUN(__getdate_err,(_VOID)); - -struct tm * _EXFUN(getdate, (const char *)); -/* getdate_err is set to one of the following values to indicate the error. - 1 the DATEMSK environment variable is null or undefined, - 2 the template file cannot be opened for reading, - 3 failed to get file status information, - 4 the template file is not a regular file, - 5 an error is encountered while reading the template file, - 6 memory allication failed (not enough memory available), - 7 there is no line in the template that matches the input, - 8 invalid input specification */ -#endif /* !_REENT_ONLY */ - -/* getdate_r returns the error code as above */ -int _EXFUN(getdate_r, (const char *, struct tm *)); -#endif /* HAVE_GETDATE */ - -/* defines for the opengroup specifications Derived from Issue 1 of the SVID. */ -extern __IMPORT long _timezone; -extern __IMPORT int _daylight; -extern __IMPORT char *_tzname[2]; - -/* POSIX defines the external tzname being defined in time.h */ -#ifndef tzname -#define tzname _tzname -#endif -#endif /* !__STRICT_ANSI__ */ - -#ifdef __cplusplus -} -#endif - -#include - -#ifdef __CYGWIN__ -#include -#endif /*__CYGWIN__*/ - -#if defined(_POSIX_TIMERS) - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Clocks, P1003.1b-1993, p. 263 */ - -int _EXFUN(clock_settime, (clockid_t clock_id, const struct timespec *tp)); -int _EXFUN(clock_gettime, (clockid_t clock_id, struct timespec *tp)); -int _EXFUN(clock_getres, (clockid_t clock_id, struct timespec *res)); - -/* Create a Per-Process Timer, P1003.1b-1993, p. 264 */ - -int _EXFUN(timer_create, - (clockid_t clock_id, - struct sigevent *__restrict evp, - timer_t *__restrict timerid)); - -/* Delete a Per_process Timer, P1003.1b-1993, p. 266 */ - -int _EXFUN(timer_delete, (timer_t timerid)); - -/* Per-Process Timers, P1003.1b-1993, p. 267 */ - -int _EXFUN(timer_settime, - (timer_t timerid, int flags, - const struct itimerspec *__restrict value, - struct itimerspec *__restrict ovalue)); -int _EXFUN(timer_gettime, (timer_t timerid, struct itimerspec *value)); -int _EXFUN(timer_getoverrun, (timer_t timerid)); - -/* High Resolution Sleep, P1003.1b-1993, p. 269 */ - -int _EXFUN(nanosleep, (const struct timespec *rqtp, struct timespec *rmtp)); - -#ifdef __cplusplus -} -#endif -#endif /* _POSIX_TIMERS */ - -#if defined(_POSIX_CLOCK_SELECTION) - -#ifdef __cplusplus -extern "C" { -#endif - -int _EXFUN(clock_nanosleep, - (clockid_t clock_id, int flags, const struct timespec *rqtp, - struct timespec *rmtp)); - -#ifdef __cplusplus -} -#endif - -#endif /* _POSIX_CLOCK_SELECTION */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* CPU-time Clock Attributes, P1003.4b/D8, p. 54 */ - -/* values for the clock enable attribute */ - -#define CLOCK_ENABLED 1 /* clock is enabled, i.e. counting execution time */ -#define CLOCK_DISABLED 0 /* clock is disabled */ - -/* values for the pthread cputime_clock_allowed attribute */ - -#define CLOCK_ALLOWED 1 /* If a thread is created with this value a */ - /* CPU-time clock attached to that thread */ - /* shall be accessible. */ -#define CLOCK_DISALLOWED 0 /* If a thread is created with this value, the */ - /* thread shall not have a CPU-time clock */ - /* accessible. */ - -/* Manifest Constants, P1003.1b-1993, p. 262 */ - -#define CLOCK_REALTIME (clockid_t)1 - -/* Flag indicating time is "absolute" with respect to the clock - associated with a time. */ - -#define TIMER_ABSTIME 4 - -/* Manifest Constants, P1003.4b/D8, p. 55 */ - -#if defined(_POSIX_CPUTIME) - -/* When used in a clock or timer function call, this is interpreted as - the identifier of the CPU_time clock associated with the PROCESS - making the function call. */ - -#define CLOCK_PROCESS_CPUTIME_ID (clockid_t)2 - -#endif - -#if defined(_POSIX_THREAD_CPUTIME) - -/* When used in a clock or timer function call, this is interpreted as - the identifier of the CPU_time clock associated with the THREAD - making the function call. */ - -#define CLOCK_THREAD_CPUTIME_ID (clockid_t)3 - -#endif - -#if defined(_POSIX_MONOTONIC_CLOCK) - -/* The identifier for the system-wide monotonic clock, which is defined - * as a clock whose value cannot be set via clock_settime() and which - * cannot have backward clock jumps. */ - -#define CLOCK_MONOTONIC (clockid_t)4 - -#endif - -#if defined(_POSIX_CPUTIME) - -/* Accessing a Process CPU-time CLock, P1003.4b/D8, p. 55 */ - -int _EXFUN(clock_getcpuclockid, (pid_t pid, clockid_t *clock_id)); - -#endif /* _POSIX_CPUTIME */ - -#if defined(_POSIX_CPUTIME) || defined(_POSIX_THREAD_CPUTIME) - -/* CPU-time Clock Attribute Access, P1003.4b/D8, p. 56 */ - -int _EXFUN(clock_setenable_attr, (clockid_t clock_id, int attr)); -int _EXFUN(clock_getenable_attr, (clockid_t clock_id, int *attr)); - -#endif /* _POSIX_CPUTIME or _POSIX_THREAD_CPUTIME */ - -#ifdef __cplusplus -} -#endif - -#endif /* _TIME_H_ */ - diff --git a/components/newlib/include/unctrl.h b/components/newlib/include/unctrl.h deleted file mode 100644 index 0040752329..0000000000 --- a/components/newlib/include/unctrl.h +++ /dev/null @@ -1,46 +0,0 @@ -/* From curses.h. */ -/* - * Copyright (c) 1981, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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 _UNCTRL_H_ -#define _UNCTRL_H_ - -#include <_ansi.h> - -#define unctrl(c) __unctrl[(c) & 0xff] -#define unctrllen(ch) __unctrllen[(ch) & 0xff] - -extern __IMPORT _CONST char * _CONST __unctrl[256]; /* Control strings. */ -extern __IMPORT _CONST char __unctrllen[256]; /* Control strings length. */ - -#endif /* _UNCTRL_H_ */ diff --git a/components/newlib/include/unistd.h b/components/newlib/include/unistd.h deleted file mode 100644 index 4f6fd29a4d..0000000000 --- a/components/newlib/include/unistd.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _UNISTD_H_ -#define _UNISTD_H_ - -# include - -#ifndef L_SET -/* Old BSD names for the same constants; just for compatibility. */ -#define L_SET SEEK_SET -#define L_INCR SEEK_CUR -#define L_XTND SEEK_END -#endif - -#endif /* _UNISTD_H_ */ diff --git a/components/newlib/include/utime.h b/components/newlib/include/utime.h deleted file mode 100644 index 652891aab1..0000000000 --- a/components/newlib/include/utime.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif - -#include <_ansi.h> - -/* The utime function is defined in libc/sys//sys if it exists. */ -#include - -#ifdef __cplusplus -} -#endif diff --git a/components/newlib/include/utmp.h b/components/newlib/include/utmp.h deleted file mode 100644 index 88cf6f8528..0000000000 --- a/components/newlib/include/utmp.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif -#include -#ifdef __cplusplus -} -#endif - diff --git a/components/newlib/include/wchar.h b/components/newlib/include/wchar.h deleted file mode 100644 index 810a6c0e33..0000000000 --- a/components/newlib/include/wchar.h +++ /dev/null @@ -1,254 +0,0 @@ -#ifndef _WCHAR_H_ -#define _WCHAR_H_ - -#include <_ansi.h> - -#include - -#define __need_size_t -#define __need_wchar_t -#define __need_wint_t -#define __need_NULL -#include - -#define __need___va_list -#include - -/* For _mbstate_t definition. */ -#include -#include -/* For __STDC_ISO_10646__ */ -#include - -#ifndef WEOF -# define WEOF ((wint_t)-1) -#endif - -/* This must match definition in */ -#ifndef WCHAR_MIN -#ifdef __WCHAR_MIN__ -#define WCHAR_MIN __WCHAR_MIN__ -#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0) -#define WCHAR_MIN (0 + L'\0') -#else -#define WCHAR_MIN (-0x7fffffff - 1 + L'\0') -#endif -#endif - -/* This must match definition in */ -#ifndef WCHAR_MAX -#ifdef __WCHAR_MAX__ -#define WCHAR_MAX __WCHAR_MAX__ -#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0) -#define WCHAR_MAX (0xffffffffu + L'\0') -#else -#define WCHAR_MAX (0x7fffffff + L'\0') -#endif -#endif - -_BEGIN_STD_C - -/* As in stdio.h, defines __FILE. */ -typedef __FILE FILE; - -/* As required by POSIX.1-2008, declare tm as incomplete type. - The actual definition is in time.h. */ -struct tm; - -#ifndef _MBSTATE_T -#define _MBSTATE_T -typedef _mbstate_t mbstate_t; -#endif /* _MBSTATE_T */ - -wint_t _EXFUN(btowc, (int)); -int _EXFUN(wctob, (wint_t)); -size_t _EXFUN(mbrlen, (const char *__restrict, size_t, mbstate_t *__restrict)); -size_t _EXFUN(mbrtowc, (wchar_t *__restrict, const char *__restrict, size_t, - mbstate_t *__restrict)); -size_t _EXFUN(_mbrtowc_r, (struct _reent *, wchar_t * , const char * , - size_t, mbstate_t *)); -int _EXFUN(mbsinit, (const mbstate_t *)); -size_t _EXFUN(mbsnrtowcs, (wchar_t *__restrict, const char **__restrict, - size_t, size_t, mbstate_t *__restrict)); -size_t _EXFUN(_mbsnrtowcs_r, (struct _reent *, wchar_t * , const char ** , - size_t, size_t, mbstate_t *)); -size_t _EXFUN(mbsrtowcs, (wchar_t *__restrict, const char **__restrict, size_t, - mbstate_t *__restrict)); -size_t _EXFUN(_mbsrtowcs_r, (struct _reent *, wchar_t * , const char ** , size_t, mbstate_t *)); -size_t _EXFUN(wcrtomb, (char *__restrict, wchar_t, mbstate_t *__restrict)); -size_t _EXFUN(_wcrtomb_r, (struct _reent *, char * , wchar_t, mbstate_t *)); -size_t _EXFUN(wcsnrtombs, (char *__restrict, const wchar_t **__restrict, - size_t, size_t, mbstate_t *__restrict)); -size_t _EXFUN(_wcsnrtombs_r, (struct _reent *, char * , const wchar_t ** , - size_t, size_t, mbstate_t *)); -size_t _EXFUN(wcsrtombs, (char *__restrict, const wchar_t **__restrict, - size_t, mbstate_t *__restrict)); -size_t _EXFUN(_wcsrtombs_r, (struct _reent *, char * , const wchar_t ** , - size_t, mbstate_t *)); -int _EXFUN(wcscasecmp, (const wchar_t *, const wchar_t *)); -wchar_t *_EXFUN(wcscat, (wchar_t *__restrict, const wchar_t *__restrict)); -wchar_t *_EXFUN(wcschr, (const wchar_t *, wchar_t)); -int _EXFUN(wcscmp, (const wchar_t *, const wchar_t *)); -int _EXFUN(wcscoll, (const wchar_t *, const wchar_t *)); -wchar_t *_EXFUN(wcscpy, (wchar_t *__restrict, const wchar_t *__restrict)); -wchar_t *_EXFUN(wcpcpy, (wchar_t *__restrict, - const wchar_t *__restrict)); -wchar_t *_EXFUN(wcsdup, (const wchar_t *)); -wchar_t *_EXFUN(_wcsdup_r, (struct _reent *, const wchar_t * )); -size_t _EXFUN(wcscspn, (const wchar_t *, const wchar_t *)); -size_t _EXFUN(wcsftime, (wchar_t *__restrict, size_t, - const wchar_t *__restrict, const struct tm *__restrict)); -size_t _EXFUN(wcslcat, (wchar_t *, const wchar_t *, size_t)); -size_t _EXFUN(wcslcpy, (wchar_t *, const wchar_t *, size_t)); -size_t _EXFUN(wcslen, (const wchar_t *)); -int _EXFUN(wcsncasecmp, (const wchar_t *, const wchar_t *, size_t)); -wchar_t *_EXFUN(wcsncat, (wchar_t *__restrict, - const wchar_t *__restrict, size_t)); -int _EXFUN(wcsncmp, (const wchar_t *, const wchar_t *, size_t)); -wchar_t *_EXFUN(wcsncpy, (wchar_t *__restrict, - const wchar_t *__restrict, size_t)); -wchar_t *_EXFUN(wcpncpy, (wchar_t *__restrict, - const wchar_t *__restrict, size_t)); -size_t _EXFUN(wcsnlen, (const wchar_t *, size_t)); -wchar_t *_EXFUN(wcspbrk, (const wchar_t *, const wchar_t *)); -wchar_t *_EXFUN(wcsrchr, (const wchar_t *, wchar_t)); -size_t _EXFUN(wcsspn, (const wchar_t *, const wchar_t *)); -wchar_t *_EXFUN(wcsstr, (const wchar_t *__restrict, - const wchar_t *__restrict)); -wchar_t *_EXFUN(wcstok, (wchar_t *__restrict, const wchar_t *__restrict, - wchar_t **__restrict)); -double _EXFUN(wcstod, (const wchar_t *__restrict, wchar_t **__restrict)); -double _EXFUN(_wcstod_r, (struct _reent *, const wchar_t *, wchar_t **)); -float _EXFUN(wcstof, (const wchar_t *__restrict, wchar_t **__restrict)); -float _EXFUN(_wcstof_r, (struct _reent *, const wchar_t *, wchar_t **)); -#ifdef _LDBL_EQ_DBL -long double _EXFUN(wcstold, (const wchar_t *, wchar_t **)); -#endif /* _LDBL_EQ_DBL */ -int _EXFUN(wcswidth, (const wchar_t *, size_t)); -size_t _EXFUN(wcsxfrm, (wchar_t *__restrict, const wchar_t *__restrict, - size_t)); -int _EXFUN(wcwidth, (const wchar_t)); -wchar_t *_EXFUN(wmemchr, (const wchar_t *, wchar_t, size_t)); -int _EXFUN(wmemcmp, (const wchar_t *, const wchar_t *, size_t)); -wchar_t *_EXFUN(wmemcpy, (wchar_t *__restrict, const wchar_t *__restrict, - size_t)); -wchar_t *_EXFUN(wmemmove, (wchar_t *, const wchar_t *, size_t)); -wchar_t *_EXFUN(wmemset, (wchar_t *, wchar_t, size_t)); - -long _EXFUN(wcstol, (const wchar_t *__restrict, wchar_t **__restrict, int)); -long long _EXFUN(wcstoll, (const wchar_t *__restrict, wchar_t **__restrict, - int)); -unsigned long _EXFUN(wcstoul, (const wchar_t *__restrict, wchar_t **__restrict, - int)); -unsigned long long _EXFUN(wcstoull, (const wchar_t *__restrict, - wchar_t **__restrict, int)); -long _EXFUN(_wcstol_r, (struct _reent *, const wchar_t *, wchar_t **, int)); -long long _EXFUN(_wcstoll_r, (struct _reent *, const wchar_t *, wchar_t **, int)); -unsigned long _EXFUN(_wcstoul_r, (struct _reent *, const wchar_t *, wchar_t **, int)); -unsigned long long _EXFUN(_wcstoull_r, (struct _reent *, const wchar_t *, wchar_t **, int)); -/* On platforms where long double equals double. */ -#ifdef _LDBL_EQ_DBL -long double _EXFUN(wcstold, (const wchar_t *, wchar_t **)); -#endif /* _LDBL_EQ_DBL */ - -wint_t _EXFUN(fgetwc, (__FILE *)); -wchar_t *_EXFUN(fgetws, (wchar_t *__restrict, int, __FILE *__restrict)); -wint_t _EXFUN(fputwc, (wchar_t, __FILE *)); -int _EXFUN(fputws, (const wchar_t *__restrict, __FILE *__restrict)); -int _EXFUN (fwide, (__FILE *, int)); -wint_t _EXFUN (getwc, (__FILE *)); -wint_t _EXFUN (getwchar, (void)); -wint_t _EXFUN(putwc, (wchar_t, __FILE *)); -wint_t _EXFUN(putwchar, (wchar_t)); -wint_t _EXFUN (ungetwc, (wint_t wc, __FILE *)); - -wint_t _EXFUN(_fgetwc_r, (struct _reent *, __FILE *)); -wint_t _EXFUN(_fgetwc_unlocked_r, (struct _reent *, __FILE *)); -wchar_t *_EXFUN(_fgetws_r, (struct _reent *, wchar_t *, int, __FILE *)); -wchar_t *_EXFUN(_fgetws_unlocked_r, (struct _reent *, wchar_t *, int, __FILE *)); -wint_t _EXFUN(_fputwc_r, (struct _reent *, wchar_t, __FILE *)); -wint_t _EXFUN(_fputwc_unlocked_r, (struct _reent *, wchar_t, __FILE *)); -int _EXFUN(_fputws_r, (struct _reent *, const wchar_t *, __FILE *)); -int _EXFUN(_fputws_unlocked_r, (struct _reent *, const wchar_t *, __FILE *)); -int _EXFUN (_fwide_r, (struct _reent *, __FILE *, int)); -wint_t _EXFUN (_getwc_r, (struct _reent *, __FILE *)); -wint_t _EXFUN (_getwc_unlocked_r, (struct _reent *, __FILE *)); -wint_t _EXFUN (_getwchar_r, (struct _reent *ptr)); -wint_t _EXFUN (_getwchar_unlocked_r, (struct _reent *ptr)); -wint_t _EXFUN(_putwc_r, (struct _reent *, wchar_t, __FILE *)); -wint_t _EXFUN(_putwc_unlocked_r, (struct _reent *, wchar_t, __FILE *)); -wint_t _EXFUN(_putwchar_r, (struct _reent *, wchar_t)); -wint_t _EXFUN(_putwchar_unlocked_r, (struct _reent *, wchar_t)); -wint_t _EXFUN (_ungetwc_r, (struct _reent *, wint_t wc, __FILE *)); - -#if __GNU_VISIBLE -wint_t _EXFUN(fgetwc_unlocked, (__FILE *)); -wchar_t *_EXFUN(fgetws_unlocked, (wchar_t *__restrict, int, __FILE *__restrict)); -wint_t _EXFUN(fputwc_unlocked, (wchar_t, __FILE *)); -int _EXFUN(fputws_unlocked, (const wchar_t *__restrict, __FILE *__restrict)); -wint_t _EXFUN(getwc_unlocked, (__FILE *)); -wint_t _EXFUN(getwchar_unlocked, (void)); -wint_t _EXFUN(putwc_unlocked, (wchar_t, __FILE *)); -wint_t _EXFUN(putwchar_unlocked, (wchar_t)); -#endif - -__FILE *_EXFUN (open_wmemstream, (wchar_t **, size_t *)); -__FILE *_EXFUN (_open_wmemstream_r, (struct _reent *, wchar_t **, size_t *)); - -#ifndef __VALIST -#ifdef __GNUC__ -#define __VALIST __gnuc_va_list -#else -#define __VALIST char* -#endif -#endif - -int _EXFUN(fwprintf, (__FILE *__restrict, const wchar_t *__restrict, ...)); -int _EXFUN(swprintf, (wchar_t *__restrict, size_t, - const wchar_t *__restrict, ...)); -int _EXFUN(vfwprintf, (__FILE *__restrict, const wchar_t *__restrict, - __VALIST)); -int _EXFUN(vswprintf, (wchar_t *__restrict, size_t, - const wchar_t *__restrict, __VALIST)); -int _EXFUN(vwprintf, (const wchar_t *__restrict, __VALIST)); -int _EXFUN(wprintf, (const wchar_t *__restrict, ...)); - -int _EXFUN(_fwprintf_r, (struct _reent *, __FILE *, const wchar_t *, ...)); -int _EXFUN(_swprintf_r, (struct _reent *, wchar_t *, size_t, const wchar_t *, ...)); -int _EXFUN(_vfwprintf_r, (struct _reent *, __FILE *, const wchar_t *, __VALIST)); -int _EXFUN(_vswprintf_r, (struct _reent *, wchar_t *, size_t, const wchar_t *, __VALIST)); -int _EXFUN(_vwprintf_r, (struct _reent *, const wchar_t *, __VALIST)); -int _EXFUN(_wprintf_r, (struct _reent *, const wchar_t *, ...)); - -int _EXFUN(fwscanf, (__FILE *__restrict, const wchar_t *__restrict, ...)); -int _EXFUN(swscanf, (const wchar_t *__restrict, - const wchar_t *__restrict, ...)); -int _EXFUN(vfwscanf, (__FILE *__restrict, const wchar_t *__restrict, - __VALIST)); -int _EXFUN(vswscanf, (const wchar_t *__restrict, const wchar_t *__restrict, - __VALIST)); -int _EXFUN(vwscanf, (const wchar_t *__restrict, __VALIST)); -int _EXFUN(wscanf, (const wchar_t *__restrict, ...)); - -int _EXFUN(_fwscanf_r, (struct _reent *, __FILE *, const wchar_t *, ...)); -int _EXFUN(_swscanf_r, (struct _reent *, const wchar_t *, const wchar_t *, ...)); -int _EXFUN(_vfwscanf_r, (struct _reent *, __FILE *, const wchar_t *, __VALIST)); -int _EXFUN(_vswscanf_r, (struct _reent *, const wchar_t *, const wchar_t *, __VALIST)); -int _EXFUN(_vwscanf_r, (struct _reent *, const wchar_t *, __VALIST)); -int _EXFUN(_wscanf_r, (struct _reent *, const wchar_t *, ...)); - -#define getwc(fp) fgetwc(fp) -#define putwc(wc,fp) fputwc((wc), (fp)) -#define getwchar() fgetwc(_REENT->_stdin) -#define putwchar(wc) fputwc((wc), _REENT->_stdout) - -#if __GNU_VISIBLE -#define getwc_unlocked(fp) fgetwc_unlocked(fp) -#define putwc_unlocked(wc,fp) fputwc_unlocked((wc), (fp)) -#define getwchar_unlocked() fgetwc_unlocked(_REENT->_stdin) -#define putwchar_unlocked(wc) fputwc_unlocked((wc), _REENT->_stdout) -#endif - -_END_STD_C - -#endif /* _WCHAR_H_ */ diff --git a/components/newlib/include/wctype.h b/components/newlib/include/wctype.h deleted file mode 100644 index c72c9decff..0000000000 --- a/components/newlib/include/wctype.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef _WCTYPE_H_ -#define _WCTYPE_H_ - -#include <_ansi.h> -#include - -#define __need_wint_t -#include - -#ifndef WEOF -# define WEOF ((wint_t)-1) -#endif - -_BEGIN_STD_C - -#ifndef _WCTYPE_T -#define _WCTYPE_T -typedef int wctype_t; -#endif - -#ifndef _WCTRANS_T -#define _WCTRANS_T -typedef int wctrans_t; -#endif - -int _EXFUN(iswalpha, (wint_t)); -int _EXFUN(iswalnum, (wint_t)); -int _EXFUN(iswblank, (wint_t)); -int _EXFUN(iswcntrl, (wint_t)); -int _EXFUN(iswctype, (wint_t, wctype_t)); -int _EXFUN(iswdigit, (wint_t)); -int _EXFUN(iswgraph, (wint_t)); -int _EXFUN(iswlower, (wint_t)); -int _EXFUN(iswprint, (wint_t)); -int _EXFUN(iswpunct, (wint_t)); -int _EXFUN(iswspace, (wint_t)); -int _EXFUN(iswupper, (wint_t)); -int _EXFUN(iswxdigit, (wint_t)); -wint_t _EXFUN(towctrans, (wint_t, wctrans_t)); -wint_t _EXFUN(towupper, (wint_t)); -wint_t _EXFUN(towlower, (wint_t)); -wctrans_t _EXFUN(wctrans, (const char *)); -wctype_t _EXFUN(wctype, (const char *)); - -_END_STD_C - -#endif /* _WCTYPE_H_ */ diff --git a/components/newlib/include/wordexp.h b/components/newlib/include/wordexp.h deleted file mode 100644 index 1f09a64c5e..0000000000 --- a/components/newlib/include/wordexp.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (C) 2002, 2010 by Red Hat, Incorporated. All rights reserved. - * - * Permission to use, copy, modify, and distribute this software - * is freely granted, provided that this notice is preserved. - */ - -#ifndef _WORDEXP_H_ -#define _WORDEXP_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct _wordexp_t -{ - size_t we_wordc; /* Count of words matched by words. */ - char **we_wordv; /* Pointer to list of expanded words. */ - size_t we_offs; /* Slots to reserve at the beginning of we_wordv. */ -}; - -typedef struct _wordexp_t wordexp_t; - -#define WRDE_DOOFFS 0x0001 /* Use we_offs. */ -#define WRDE_APPEND 0x0002 /* Append to output from previous call. */ -#define WRDE_NOCMD 0x0004 /* Don't perform command substitution. */ -#define WRDE_REUSE 0x0008 /* pwordexp points to a wordexp_t struct returned from - a previous successful call to wordexp. */ -#define WRDE_SHOWERR 0x0010 /* Print error messages to stderr. */ -#define WRDE_UNDEF 0x0020 /* Report attempt to expand undefined shell variable. */ - -enum { - WRDE_SUCCESS, - WRDE_NOSPACE, - WRDE_BADCHAR, - WRDE_BADVAL, - WRDE_CMDSUB, - WRDE_SYNTAX, - WRDE_NOSYS -}; - -/* Note: This implementation of wordexp requires a version of bash - that supports the --wordexp and --protected arguments to be present - on the system. It does not support the WRDE_UNDEF flag. */ -int wordexp(const char *__restrict, wordexp_t *__restrict, int); -void wordfree(wordexp_t *); - -#ifdef __cplusplus -} -#endif - -#endif /* _WORDEXP_H_ */ diff --git a/components/newlib/include/xtensa/config/core-isa.h b/components/newlib/include/xtensa/config/core-isa.h deleted file mode 100644 index f3f4e45f00..0000000000 --- a/components/newlib/include/xtensa/config/core-isa.h +++ /dev/null @@ -1,655 +0,0 @@ -/* - * xtensa/config/core-isa.h -- HAL definitions that are dependent on Xtensa - * processor CORE configuration - * - * See , which includes this file, for more details. - */ - -/* Xtensa processor core configuration information. - - Copyright (c) 1999-2016 Tensilica Inc. - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#ifndef _XTENSA_CORE_CONFIGURATION_H -#define _XTENSA_CORE_CONFIGURATION_H - - -/**************************************************************************** - Parameters Useful for Any Code, USER or PRIVILEGED - ****************************************************************************/ - -/* - * Note: Macros of the form XCHAL_HAVE_*** have a value of 1 if the option is - * configured, and a value of 0 otherwise. These macros are always defined. - */ - - -/*---------------------------------------------------------------------- - ISA - ----------------------------------------------------------------------*/ - -#define XCHAL_HAVE_BE 0 /* big-endian byte ordering */ -#define XCHAL_HAVE_WINDOWED 1 /* windowed registers option */ -#define XCHAL_NUM_AREGS 64 /* num of physical addr regs */ -#define XCHAL_NUM_AREGS_LOG2 6 /* log2(XCHAL_NUM_AREGS) */ -#define XCHAL_MAX_INSTRUCTION_SIZE 3 /* max instr bytes (3..8) */ -#define XCHAL_HAVE_DEBUG 1 /* debug option */ -#define XCHAL_HAVE_DENSITY 1 /* 16-bit instructions */ -#define XCHAL_HAVE_LOOPS 1 /* zero-overhead loops */ -#define XCHAL_LOOP_BUFFER_SIZE 256 /* zero-ov. loop instr buffer size */ -#define XCHAL_HAVE_NSA 1 /* NSA/NSAU instructions */ -#define XCHAL_HAVE_MINMAX 1 /* MIN/MAX instructions */ -#define XCHAL_HAVE_SEXT 1 /* SEXT instruction */ -#define XCHAL_HAVE_DEPBITS 0 /* DEPBITS instruction */ -#define XCHAL_HAVE_CLAMPS 1 /* CLAMPS instruction */ -#define XCHAL_HAVE_MUL16 1 /* MUL16S/MUL16U instructions */ -#define XCHAL_HAVE_MUL32 1 /* MULL instruction */ -#define XCHAL_HAVE_MUL32_HIGH 1 /* MULUH/MULSH instructions */ -#define XCHAL_HAVE_DIV32 1 /* QUOS/QUOU/REMS/REMU instructions */ -#define XCHAL_HAVE_L32R 1 /* L32R instruction */ -#define XCHAL_HAVE_ABSOLUTE_LITERALS 0 /* non-PC-rel (extended) L32R */ -#define XCHAL_HAVE_CONST16 0 /* CONST16 instruction */ -#define XCHAL_HAVE_ADDX 1 /* ADDX#/SUBX# instructions */ -#define XCHAL_HAVE_WIDE_BRANCHES 0 /* B*.W18 or B*.W15 instr's */ -#define XCHAL_HAVE_PREDICTED_BRANCHES 0 /* B[EQ/EQZ/NE/NEZ]T instr's */ -#define XCHAL_HAVE_CALL4AND12 1 /* (obsolete option) */ -#define XCHAL_HAVE_ABS 1 /* ABS instruction */ -/*#define XCHAL_HAVE_POPC 0*/ /* POPC instruction */ -/*#define XCHAL_HAVE_CRC 0*/ /* CRC instruction */ -#define XCHAL_HAVE_RELEASE_SYNC 1 /* L32AI/S32RI instructions */ -#define XCHAL_HAVE_S32C1I 1 /* S32C1I instruction */ -#define XCHAL_HAVE_SPECULATION 0 /* speculation */ -#define XCHAL_HAVE_FULL_RESET 1 /* all regs/state reset */ -#define XCHAL_NUM_CONTEXTS 1 /* */ -#define XCHAL_NUM_MISC_REGS 4 /* num of scratch regs (0..4) */ -#define XCHAL_HAVE_TAP_MASTER 0 /* JTAG TAP control instr's */ -#define XCHAL_HAVE_PRID 1 /* processor ID register */ -#define XCHAL_HAVE_EXTERN_REGS 1 /* WER/RER instructions */ -#define XCHAL_HAVE_MX 0 /* MX core (Tensilica internal) */ -#define XCHAL_HAVE_MP_INTERRUPTS 0 /* interrupt distributor port */ -#define XCHAL_HAVE_MP_RUNSTALL 0 /* core RunStall control port */ -#define XCHAL_HAVE_PSO 0 /* Power Shut-Off */ -#define XCHAL_HAVE_PSO_CDM 0 /* core/debug/mem pwr domains */ -#define XCHAL_HAVE_PSO_FULL_RETENTION 0 /* all regs preserved on PSO */ -#define XCHAL_HAVE_THREADPTR 1 /* THREADPTR register */ -#define XCHAL_HAVE_BOOLEANS 1 /* boolean registers */ -#define XCHAL_HAVE_CP 1 /* CPENABLE reg (coprocessor) */ -#define XCHAL_CP_MAXCFG 8 /* max allowed cp id plus one */ -#define XCHAL_HAVE_MAC16 1 /* MAC16 package */ - -#define XCHAL_HAVE_FUSION 0 /* Fusion*/ -#define XCHAL_HAVE_FUSION_FP 0 /* Fusion FP option */ -#define XCHAL_HAVE_FUSION_LOW_POWER 0 /* Fusion Low Power option */ -#define XCHAL_HAVE_FUSION_AES 0 /* Fusion BLE/Wifi AES-128 CCM option */ -#define XCHAL_HAVE_FUSION_CONVENC 0 /* Fusion Conv Encode option */ -#define XCHAL_HAVE_FUSION_LFSR_CRC 0 /* Fusion LFSR-CRC option */ -#define XCHAL_HAVE_FUSION_BITOPS 0 /* Fusion Bit Operations Support option */ -#define XCHAL_HAVE_FUSION_AVS 0 /* Fusion AVS option */ -#define XCHAL_HAVE_FUSION_16BIT_BASEBAND 0 /* Fusion 16-bit Baseband option */ -#define XCHAL_HAVE_FUSION_VITERBI 0 /* Fusion Viterbi option */ -#define XCHAL_HAVE_FUSION_SOFTDEMAP 0 /* Fusion Soft Bit Demap option */ -#define XCHAL_HAVE_HIFIPRO 0 /* HiFiPro Audio Engine pkg */ -#define XCHAL_HAVE_HIFI4 0 /* HiFi4 Audio Engine pkg */ -#define XCHAL_HAVE_HIFI4_VFPU 0 /* HiFi4 Audio Engine VFPU option */ -#define XCHAL_HAVE_HIFI3 0 /* HiFi3 Audio Engine pkg */ -#define XCHAL_HAVE_HIFI3_VFPU 0 /* HiFi3 Audio Engine VFPU option */ -#define XCHAL_HAVE_HIFI2 0 /* HiFi2 Audio Engine pkg */ -#define XCHAL_HAVE_HIFI2EP 0 /* HiFi2EP */ -#define XCHAL_HAVE_HIFI_MINI 0 - - -#define XCHAL_HAVE_VECTORFPU2005 0 /* vector or user floating-point pkg */ -#define XCHAL_HAVE_USER_DPFPU 0 /* user DP floating-point pkg */ -#define XCHAL_HAVE_USER_SPFPU 0 /* user DP floating-point pkg */ -#define XCHAL_HAVE_FP 1 /* single prec floating point */ -#define XCHAL_HAVE_FP_DIV 1 /* FP with DIV instructions */ -#define XCHAL_HAVE_FP_RECIP 1 /* FP with RECIP instructions */ -#define XCHAL_HAVE_FP_SQRT 1 /* FP with SQRT instructions */ -#define XCHAL_HAVE_FP_RSQRT 1 /* FP with RSQRT instructions */ -#define XCHAL_HAVE_DFP 0 /* double precision FP pkg */ -#define XCHAL_HAVE_DFP_DIV 0 /* DFP with DIV instructions */ -#define XCHAL_HAVE_DFP_RECIP 0 /* DFP with RECIP instructions*/ -#define XCHAL_HAVE_DFP_SQRT 0 /* DFP with SQRT instructions */ -#define XCHAL_HAVE_DFP_RSQRT 0 /* DFP with RSQRT instructions*/ -#define XCHAL_HAVE_DFP_ACCEL 1 /* double precision FP acceleration pkg */ -#define XCHAL_HAVE_DFP_accel XCHAL_HAVE_DFP_ACCEL /* for backward compatibility */ - -#define XCHAL_HAVE_DFPU_SINGLE_ONLY 1 /* DFPU Coprocessor, single precision only */ -#define XCHAL_HAVE_DFPU_SINGLE_DOUBLE 0 /* DFPU Coprocessor, single and double precision */ -#define XCHAL_HAVE_VECTRA1 0 /* Vectra I pkg */ -#define XCHAL_HAVE_VECTRALX 0 /* Vectra LX pkg */ -#define XCHAL_HAVE_PDX4 0 /* PDX4 */ -#define XCHAL_HAVE_CONNXD2 0 /* ConnX D2 pkg */ -#define XCHAL_HAVE_CONNXD2_DUALLSFLIX 0 /* ConnX D2 & Dual LoadStore Flix */ -#define XCHAL_HAVE_BBE16 0 /* ConnX BBE16 pkg */ -#define XCHAL_HAVE_BBE16_RSQRT 0 /* BBE16 & vector recip sqrt */ -#define XCHAL_HAVE_BBE16_VECDIV 0 /* BBE16 & vector divide */ -#define XCHAL_HAVE_BBE16_DESPREAD 0 /* BBE16 & despread */ -#define XCHAL_HAVE_BBENEP 0 /* ConnX BBENEP pkgs */ -#define XCHAL_HAVE_BSP3 0 /* ConnX BSP3 pkg */ -#define XCHAL_HAVE_BSP3_TRANSPOSE 0 /* BSP3 & transpose32x32 */ -#define XCHAL_HAVE_SSP16 0 /* ConnX SSP16 pkg */ -#define XCHAL_HAVE_SSP16_VITERBI 0 /* SSP16 & viterbi */ -#define XCHAL_HAVE_TURBO16 0 /* ConnX Turbo16 pkg */ -#define XCHAL_HAVE_BBP16 0 /* ConnX BBP16 pkg */ -#define XCHAL_HAVE_FLIX3 0 /* basic 3-way FLIX option */ -#define XCHAL_HAVE_GRIVPEP 0 /* GRIVPEP is General Release of IVPEP */ -#define XCHAL_HAVE_GRIVPEP_HISTOGRAM 0 /* Histogram option on GRIVPEP */ - - -/*---------------------------------------------------------------------- - MISC - ----------------------------------------------------------------------*/ - -#define XCHAL_NUM_LOADSTORE_UNITS 1 /* load/store units */ -#define XCHAL_NUM_WRITEBUFFER_ENTRIES 4 /* size of write buffer */ -#define XCHAL_INST_FETCH_WIDTH 4 /* instr-fetch width in bytes */ -#define XCHAL_DATA_WIDTH 4 /* data width in bytes */ -#define XCHAL_DATA_PIPE_DELAY 2 /* d-side pipeline delay - (1 = 5-stage, 2 = 7-stage) */ -#define XCHAL_CLOCK_GATING_GLOBAL 1 /* global clock gating */ -#define XCHAL_CLOCK_GATING_FUNCUNIT 1 /* funct. unit clock gating */ -/* In T1050, applies to selected core load and store instructions (see ISA): */ -#define XCHAL_UNALIGNED_LOAD_EXCEPTION 0 /* unaligned loads cause exc. */ -#define XCHAL_UNALIGNED_STORE_EXCEPTION 0 /* unaligned stores cause exc.*/ -#define XCHAL_UNALIGNED_LOAD_HW 1 /* unaligned loads work in hw */ -#define XCHAL_UNALIGNED_STORE_HW 1 /* unaligned stores work in hw*/ - -#define XCHAL_SW_VERSION 1100003 /* sw version of this header */ - -#define XCHAL_CORE_ID "esp32_v3_49_prod" /* alphanum core name - (CoreID) set in the Xtensa - Processor Generator */ - -#define XCHAL_BUILD_UNIQUE_ID 0x0005FE96 /* 22-bit sw build ID */ - -/* - * These definitions describe the hardware targeted by this software. - */ -#define XCHAL_HW_CONFIGID0 0xC2BCFFFE /* ConfigID hi 32 bits*/ -#define XCHAL_HW_CONFIGID1 0x1CC5FE96 /* ConfigID lo 32 bits*/ -#define XCHAL_HW_VERSION_NAME "LX6.0.3" /* full version name */ -#define XCHAL_HW_VERSION_MAJOR 2600 /* major ver# of targeted hw */ -#define XCHAL_HW_VERSION_MINOR 3 /* minor ver# of targeted hw */ -#define XCHAL_HW_VERSION 260003 /* major*100+minor */ -#define XCHAL_HW_REL_LX6 1 -#define XCHAL_HW_REL_LX6_0 1 -#define XCHAL_HW_REL_LX6_0_3 1 -#define XCHAL_HW_CONFIGID_RELIABLE 1 -/* If software targets a *range* of hardware versions, these are the bounds: */ -#define XCHAL_HW_MIN_VERSION_MAJOR 2600 /* major v of earliest tgt hw */ -#define XCHAL_HW_MIN_VERSION_MINOR 3 /* minor v of earliest tgt hw */ -#define XCHAL_HW_MIN_VERSION 260003 /* earliest targeted hw */ -#define XCHAL_HW_MAX_VERSION_MAJOR 2600 /* major v of latest tgt hw */ -#define XCHAL_HW_MAX_VERSION_MINOR 3 /* minor v of latest tgt hw */ -#define XCHAL_HW_MAX_VERSION 260003 /* latest targeted hw */ - - -/*---------------------------------------------------------------------- - CACHE - ----------------------------------------------------------------------*/ - -#define XCHAL_ICACHE_LINESIZE 4 /* I-cache line size in bytes */ -#define XCHAL_DCACHE_LINESIZE 4 /* D-cache line size in bytes */ -#define XCHAL_ICACHE_LINEWIDTH 2 /* log2(I line size in bytes) */ -#define XCHAL_DCACHE_LINEWIDTH 2 /* log2(D line size in bytes) */ - -#define XCHAL_ICACHE_SIZE 0 /* I-cache size in bytes or 0 */ -#define XCHAL_DCACHE_SIZE 0 /* D-cache size in bytes or 0 */ - -#define XCHAL_DCACHE_IS_WRITEBACK 0 /* writeback feature */ -#define XCHAL_DCACHE_IS_COHERENT 0 /* MP coherence feature */ - -#define XCHAL_HAVE_PREFETCH 0 /* PREFCTL register */ -#define XCHAL_HAVE_PREFETCH_L1 0 /* prefetch to L1 dcache */ -#define XCHAL_PREFETCH_CASTOUT_LINES 0 /* dcache pref. castout bufsz */ -#define XCHAL_PREFETCH_ENTRIES 0 /* cache prefetch entries */ -#define XCHAL_PREFETCH_BLOCK_ENTRIES 0 /* prefetch block streams */ -#define XCHAL_HAVE_CACHE_BLOCKOPS 0 /* block prefetch for caches */ -#define XCHAL_HAVE_ICACHE_TEST 0 /* Icache test instructions */ -#define XCHAL_HAVE_DCACHE_TEST 0 /* Dcache test instructions */ -#define XCHAL_HAVE_ICACHE_DYN_WAYS 0 /* Icache dynamic way support */ -#define XCHAL_HAVE_DCACHE_DYN_WAYS 0 /* Dcache dynamic way support */ - - - - -/**************************************************************************** - Parameters Useful for PRIVILEGED (Supervisory or Non-Virtualized) Code - ****************************************************************************/ - - -#ifndef XTENSA_HAL_NON_PRIVILEGED_ONLY - -/*---------------------------------------------------------------------- - CACHE - ----------------------------------------------------------------------*/ - -#define XCHAL_HAVE_PIF 1 /* any outbound PIF present */ -#define XCHAL_HAVE_AXI 0 /* AXI bus */ - -#define XCHAL_HAVE_PIF_WR_RESP 0 /* pif write response */ -#define XCHAL_HAVE_PIF_REQ_ATTR 0 /* pif attribute */ - -/* If present, cache size in bytes == (ways * 2^(linewidth + setwidth)). */ - -/* Number of cache sets in log2(lines per way): */ -#define XCHAL_ICACHE_SETWIDTH 0 -#define XCHAL_DCACHE_SETWIDTH 0 - -/* Cache set associativity (number of ways): */ -#define XCHAL_ICACHE_WAYS 1 -#define XCHAL_DCACHE_WAYS 1 - -/* Cache features: */ -#define XCHAL_ICACHE_LINE_LOCKABLE 0 -#define XCHAL_DCACHE_LINE_LOCKABLE 0 -#define XCHAL_ICACHE_ECC_PARITY 0 -#define XCHAL_DCACHE_ECC_PARITY 0 - -/* Cache access size in bytes (affects operation of SICW instruction): */ -#define XCHAL_ICACHE_ACCESS_SIZE 1 -#define XCHAL_DCACHE_ACCESS_SIZE 1 - -#define XCHAL_DCACHE_BANKS 0 /* number of banks */ - -/* Number of encoded cache attr bits (see for decoded bits): */ -#define XCHAL_CA_BITS 4 - - -/*---------------------------------------------------------------------- - INTERNAL I/D RAM/ROMs and XLMI - ----------------------------------------------------------------------*/ - -#define XCHAL_NUM_INSTROM 1 /* number of core instr. ROMs */ -#define XCHAL_NUM_INSTRAM 2 /* number of core instr. RAMs */ -#define XCHAL_NUM_DATAROM 1 /* number of core data ROMs */ -#define XCHAL_NUM_DATARAM 2 /* number of core data RAMs */ -#define XCHAL_NUM_URAM 0 /* number of core unified RAMs*/ -#define XCHAL_NUM_XLMI 1 /* number of core XLMI ports */ - -/* Instruction ROM 0: */ -#define XCHAL_INSTROM0_VADDR 0x40800000 /* virtual address */ -#define XCHAL_INSTROM0_PADDR 0x40800000 /* physical address */ -#define XCHAL_INSTROM0_SIZE 4194304 /* size in bytes */ -#define XCHAL_INSTROM0_ECC_PARITY 0 /* ECC/parity type, 0=none */ - -/* Instruction RAM 0: */ -#define XCHAL_INSTRAM0_VADDR 0x40000000 /* virtual address */ -#define XCHAL_INSTRAM0_PADDR 0x40000000 /* physical address */ -#define XCHAL_INSTRAM0_SIZE 4194304 /* size in bytes */ -#define XCHAL_INSTRAM0_ECC_PARITY 0 /* ECC/parity type, 0=none */ - -/* Instruction RAM 1: */ -#define XCHAL_INSTRAM1_VADDR 0x40400000 /* virtual address */ -#define XCHAL_INSTRAM1_PADDR 0x40400000 /* physical address */ -#define XCHAL_INSTRAM1_SIZE 4194304 /* size in bytes */ -#define XCHAL_INSTRAM1_ECC_PARITY 0 /* ECC/parity type, 0=none */ - -/* Data ROM 0: */ -#define XCHAL_DATAROM0_VADDR 0x3F400000 /* virtual address */ -#define XCHAL_DATAROM0_PADDR 0x3F400000 /* physical address */ -#define XCHAL_DATAROM0_SIZE 4194304 /* size in bytes */ -#define XCHAL_DATAROM0_ECC_PARITY 0 /* ECC/parity type, 0=none */ -#define XCHAL_DATAROM0_BANKS 1 /* number of banks */ - -/* Data RAM 0: */ -#define XCHAL_DATARAM0_VADDR 0x3FF80000 /* virtual address */ -#define XCHAL_DATARAM0_PADDR 0x3FF80000 /* physical address */ -#define XCHAL_DATARAM0_SIZE 524288 /* size in bytes */ -#define XCHAL_DATARAM0_ECC_PARITY 0 /* ECC/parity type, 0=none */ -#define XCHAL_DATARAM0_BANKS 1 /* number of banks */ - -/* Data RAM 1: */ -#define XCHAL_DATARAM1_VADDR 0x3F800000 /* virtual address */ -#define XCHAL_DATARAM1_PADDR 0x3F800000 /* physical address */ -#define XCHAL_DATARAM1_SIZE 4194304 /* size in bytes */ -#define XCHAL_DATARAM1_ECC_PARITY 0 /* ECC/parity type, 0=none */ -#define XCHAL_DATARAM1_BANKS 1 /* number of banks */ - -/* XLMI Port 0: */ -#define XCHAL_XLMI0_VADDR 0x3FF00000 /* virtual address */ -#define XCHAL_XLMI0_PADDR 0x3FF00000 /* physical address */ -#define XCHAL_XLMI0_SIZE 524288 /* size in bytes */ -#define XCHAL_XLMI0_ECC_PARITY 0 /* ECC/parity type, 0=none */ - -#define XCHAL_HAVE_IMEM_LOADSTORE 1 /* can load/store to IROM/IRAM*/ - - -/*---------------------------------------------------------------------- - INTERRUPTS and TIMERS - ----------------------------------------------------------------------*/ - -#define XCHAL_HAVE_INTERRUPTS 1 /* interrupt option */ -#define XCHAL_HAVE_HIGHPRI_INTERRUPTS 1 /* med/high-pri. interrupts */ -#define XCHAL_HAVE_NMI 1 /* non-maskable interrupt */ -#define XCHAL_HAVE_CCOUNT 1 /* CCOUNT reg. (timer option) */ -#define XCHAL_NUM_TIMERS 3 /* number of CCOMPAREn regs */ -#define XCHAL_NUM_INTERRUPTS 32 /* number of interrupts */ -#define XCHAL_NUM_INTERRUPTS_LOG2 5 /* ceil(log2(NUM_INTERRUPTS)) */ -#define XCHAL_NUM_EXTINTERRUPTS 26 /* num of external interrupts */ -#define XCHAL_NUM_INTLEVELS 6 /* number of interrupt levels - (not including level zero) */ -#define XCHAL_EXCM_LEVEL 3 /* level masked by PS.EXCM */ - /* (always 1 in XEA1; levels 2 .. EXCM_LEVEL are "medium priority") */ - -/* Masks of interrupts at each interrupt level: */ -#define XCHAL_INTLEVEL1_MASK 0x000637FF -#define XCHAL_INTLEVEL2_MASK 0x00380000 -#define XCHAL_INTLEVEL3_MASK 0x28C08800 -#define XCHAL_INTLEVEL4_MASK 0x53000000 -#define XCHAL_INTLEVEL5_MASK 0x84010000 -#define XCHAL_INTLEVEL6_MASK 0x00000000 -#define XCHAL_INTLEVEL7_MASK 0x00004000 - -/* Masks of interrupts at each range 1..n of interrupt levels: */ -#define XCHAL_INTLEVEL1_ANDBELOW_MASK 0x000637FF -#define XCHAL_INTLEVEL2_ANDBELOW_MASK 0x003E37FF -#define XCHAL_INTLEVEL3_ANDBELOW_MASK 0x28FEBFFF -#define XCHAL_INTLEVEL4_ANDBELOW_MASK 0x7BFEBFFF -#define XCHAL_INTLEVEL5_ANDBELOW_MASK 0xFFFFBFFF -#define XCHAL_INTLEVEL6_ANDBELOW_MASK 0xFFFFBFFF -#define XCHAL_INTLEVEL7_ANDBELOW_MASK 0xFFFFFFFF - -/* Level of each interrupt: */ -#define XCHAL_INT0_LEVEL 1 -#define XCHAL_INT1_LEVEL 1 -#define XCHAL_INT2_LEVEL 1 -#define XCHAL_INT3_LEVEL 1 -#define XCHAL_INT4_LEVEL 1 -#define XCHAL_INT5_LEVEL 1 -#define XCHAL_INT6_LEVEL 1 -#define XCHAL_INT7_LEVEL 1 -#define XCHAL_INT8_LEVEL 1 -#define XCHAL_INT9_LEVEL 1 -#define XCHAL_INT10_LEVEL 1 -#define XCHAL_INT11_LEVEL 3 -#define XCHAL_INT12_LEVEL 1 -#define XCHAL_INT13_LEVEL 1 -#define XCHAL_INT14_LEVEL 7 -#define XCHAL_INT15_LEVEL 3 -#define XCHAL_INT16_LEVEL 5 -#define XCHAL_INT17_LEVEL 1 -#define XCHAL_INT18_LEVEL 1 -#define XCHAL_INT19_LEVEL 2 -#define XCHAL_INT20_LEVEL 2 -#define XCHAL_INT21_LEVEL 2 -#define XCHAL_INT22_LEVEL 3 -#define XCHAL_INT23_LEVEL 3 -#define XCHAL_INT24_LEVEL 4 -#define XCHAL_INT25_LEVEL 4 -#define XCHAL_INT26_LEVEL 5 -#define XCHAL_INT27_LEVEL 3 -#define XCHAL_INT28_LEVEL 4 -#define XCHAL_INT29_LEVEL 3 -#define XCHAL_INT30_LEVEL 4 -#define XCHAL_INT31_LEVEL 5 -#define XCHAL_DEBUGLEVEL 6 /* debug interrupt level */ -#define XCHAL_HAVE_DEBUG_EXTERN_INT 1 /* OCD external db interrupt */ -#define XCHAL_NMILEVEL 7 /* NMI "level" (for use with - EXCSAVE/EPS/EPC_n, RFI n) */ - -/* Type of each interrupt: */ -#define XCHAL_INT0_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT1_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT2_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT3_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT4_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT5_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT6_TYPE XTHAL_INTTYPE_TIMER -#define XCHAL_INT7_TYPE XTHAL_INTTYPE_SOFTWARE -#define XCHAL_INT8_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT9_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT10_TYPE XTHAL_INTTYPE_EXTERN_EDGE -#define XCHAL_INT11_TYPE XTHAL_INTTYPE_PROFILING -#define XCHAL_INT12_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT13_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT14_TYPE XTHAL_INTTYPE_NMI -#define XCHAL_INT15_TYPE XTHAL_INTTYPE_TIMER -#define XCHAL_INT16_TYPE XTHAL_INTTYPE_TIMER -#define XCHAL_INT17_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT18_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT19_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT20_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT21_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT22_TYPE XTHAL_INTTYPE_EXTERN_EDGE -#define XCHAL_INT23_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT24_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT25_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT26_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT27_TYPE XTHAL_INTTYPE_EXTERN_LEVEL -#define XCHAL_INT28_TYPE XTHAL_INTTYPE_EXTERN_EDGE -#define XCHAL_INT29_TYPE XTHAL_INTTYPE_SOFTWARE -#define XCHAL_INT30_TYPE XTHAL_INTTYPE_EXTERN_EDGE -#define XCHAL_INT31_TYPE XTHAL_INTTYPE_EXTERN_LEVEL - -/* Masks of interrupts for each type of interrupt: */ -#define XCHAL_INTTYPE_MASK_UNCONFIGURED 0x00000000 -#define XCHAL_INTTYPE_MASK_SOFTWARE 0x20000080 -#define XCHAL_INTTYPE_MASK_EXTERN_EDGE 0x50400400 -#define XCHAL_INTTYPE_MASK_EXTERN_LEVEL 0x8FBE333F -#define XCHAL_INTTYPE_MASK_TIMER 0x00018040 -#define XCHAL_INTTYPE_MASK_NMI 0x00004000 -#define XCHAL_INTTYPE_MASK_WRITE_ERROR 0x00000000 -#define XCHAL_INTTYPE_MASK_PROFILING 0x00000800 - -/* Interrupt numbers assigned to specific interrupt sources: */ -#define XCHAL_TIMER0_INTERRUPT 6 /* CCOMPARE0 */ -#define XCHAL_TIMER1_INTERRUPT 15 /* CCOMPARE1 */ -#define XCHAL_TIMER2_INTERRUPT 16 /* CCOMPARE2 */ -#define XCHAL_TIMER3_INTERRUPT XTHAL_TIMER_UNCONFIGURED -#define XCHAL_NMI_INTERRUPT 14 /* non-maskable interrupt */ -#define XCHAL_PROFILING_INTERRUPT 11 /* profiling interrupt */ - -/* Interrupt numbers for levels at which only one interrupt is configured: */ -#define XCHAL_INTLEVEL7_NUM 14 -/* (There are many interrupts each at level(s) 1, 2, 3, 4, 5.) */ - - -/* - * External interrupt mapping. - * These macros describe how Xtensa processor interrupt numbers - * (as numbered internally, eg. in INTERRUPT and INTENABLE registers) - * map to external BInterrupt pins, for those interrupts - * configured as external (level-triggered, edge-triggered, or NMI). - * See the Xtensa processor databook for more details. - */ - -/* Core interrupt numbers mapped to each EXTERNAL BInterrupt pin number: */ -#define XCHAL_EXTINT0_NUM 0 /* (intlevel 1) */ -#define XCHAL_EXTINT1_NUM 1 /* (intlevel 1) */ -#define XCHAL_EXTINT2_NUM 2 /* (intlevel 1) */ -#define XCHAL_EXTINT3_NUM 3 /* (intlevel 1) */ -#define XCHAL_EXTINT4_NUM 4 /* (intlevel 1) */ -#define XCHAL_EXTINT5_NUM 5 /* (intlevel 1) */ -#define XCHAL_EXTINT6_NUM 8 /* (intlevel 1) */ -#define XCHAL_EXTINT7_NUM 9 /* (intlevel 1) */ -#define XCHAL_EXTINT8_NUM 10 /* (intlevel 1) */ -#define XCHAL_EXTINT9_NUM 12 /* (intlevel 1) */ -#define XCHAL_EXTINT10_NUM 13 /* (intlevel 1) */ -#define XCHAL_EXTINT11_NUM 14 /* (intlevel 7) */ -#define XCHAL_EXTINT12_NUM 17 /* (intlevel 1) */ -#define XCHAL_EXTINT13_NUM 18 /* (intlevel 1) */ -#define XCHAL_EXTINT14_NUM 19 /* (intlevel 2) */ -#define XCHAL_EXTINT15_NUM 20 /* (intlevel 2) */ -#define XCHAL_EXTINT16_NUM 21 /* (intlevel 2) */ -#define XCHAL_EXTINT17_NUM 22 /* (intlevel 3) */ -#define XCHAL_EXTINT18_NUM 23 /* (intlevel 3) */ -#define XCHAL_EXTINT19_NUM 24 /* (intlevel 4) */ -#define XCHAL_EXTINT20_NUM 25 /* (intlevel 4) */ -#define XCHAL_EXTINT21_NUM 26 /* (intlevel 5) */ -#define XCHAL_EXTINT22_NUM 27 /* (intlevel 3) */ -#define XCHAL_EXTINT23_NUM 28 /* (intlevel 4) */ -#define XCHAL_EXTINT24_NUM 30 /* (intlevel 4) */ -#define XCHAL_EXTINT25_NUM 31 /* (intlevel 5) */ -/* EXTERNAL BInterrupt pin numbers mapped to each core interrupt number: */ -#define XCHAL_INT0_EXTNUM 0 /* (intlevel 1) */ -#define XCHAL_INT1_EXTNUM 1 /* (intlevel 1) */ -#define XCHAL_INT2_EXTNUM 2 /* (intlevel 1) */ -#define XCHAL_INT3_EXTNUM 3 /* (intlevel 1) */ -#define XCHAL_INT4_EXTNUM 4 /* (intlevel 1) */ -#define XCHAL_INT5_EXTNUM 5 /* (intlevel 1) */ -#define XCHAL_INT8_EXTNUM 6 /* (intlevel 1) */ -#define XCHAL_INT9_EXTNUM 7 /* (intlevel 1) */ -#define XCHAL_INT10_EXTNUM 8 /* (intlevel 1) */ -#define XCHAL_INT12_EXTNUM 9 /* (intlevel 1) */ -#define XCHAL_INT13_EXTNUM 10 /* (intlevel 1) */ -#define XCHAL_INT14_EXTNUM 11 /* (intlevel 7) */ -#define XCHAL_INT17_EXTNUM 12 /* (intlevel 1) */ -#define XCHAL_INT18_EXTNUM 13 /* (intlevel 1) */ -#define XCHAL_INT19_EXTNUM 14 /* (intlevel 2) */ -#define XCHAL_INT20_EXTNUM 15 /* (intlevel 2) */ -#define XCHAL_INT21_EXTNUM 16 /* (intlevel 2) */ -#define XCHAL_INT22_EXTNUM 17 /* (intlevel 3) */ -#define XCHAL_INT23_EXTNUM 18 /* (intlevel 3) */ -#define XCHAL_INT24_EXTNUM 19 /* (intlevel 4) */ -#define XCHAL_INT25_EXTNUM 20 /* (intlevel 4) */ -#define XCHAL_INT26_EXTNUM 21 /* (intlevel 5) */ -#define XCHAL_INT27_EXTNUM 22 /* (intlevel 3) */ -#define XCHAL_INT28_EXTNUM 23 /* (intlevel 4) */ -#define XCHAL_INT30_EXTNUM 24 /* (intlevel 4) */ -#define XCHAL_INT31_EXTNUM 25 /* (intlevel 5) */ - - -/*---------------------------------------------------------------------- - EXCEPTIONS and VECTORS - ----------------------------------------------------------------------*/ - -#define XCHAL_XEA_VERSION 2 /* Xtensa Exception Architecture - number: 1 == XEA1 (old) - 2 == XEA2 (new) - 0 == XEAX (extern) or TX */ -#define XCHAL_HAVE_XEA1 0 /* Exception Architecture 1 */ -#define XCHAL_HAVE_XEA2 1 /* Exception Architecture 2 */ -#define XCHAL_HAVE_XEAX 0 /* External Exception Arch. */ -#define XCHAL_HAVE_EXCEPTIONS 1 /* exception option */ -#define XCHAL_HAVE_HALT 0 /* halt architecture option */ -#define XCHAL_HAVE_BOOTLOADER 0 /* boot loader (for TX) */ -#define XCHAL_HAVE_MEM_ECC_PARITY 0 /* local memory ECC/parity */ -#define XCHAL_HAVE_VECTOR_SELECT 1 /* relocatable vectors */ -#define XCHAL_HAVE_VECBASE 1 /* relocatable vectors */ -#define XCHAL_VECBASE_RESET_VADDR 0x40000000 /* VECBASE reset value */ -#define XCHAL_VECBASE_RESET_PADDR 0x40000000 -#define XCHAL_RESET_VECBASE_OVERLAP 0 - -#define XCHAL_RESET_VECTOR0_VADDR 0x50000000 -#define XCHAL_RESET_VECTOR0_PADDR 0x50000000 -#define XCHAL_RESET_VECTOR1_VADDR 0x40000400 -#define XCHAL_RESET_VECTOR1_PADDR 0x40000400 -#define XCHAL_RESET_VECTOR_VADDR 0x40000400 -#define XCHAL_RESET_VECTOR_PADDR 0x40000400 -#define XCHAL_USER_VECOFS 0x00000340 -#define XCHAL_USER_VECTOR_VADDR 0x40000340 -#define XCHAL_USER_VECTOR_PADDR 0x40000340 -#define XCHAL_KERNEL_VECOFS 0x00000300 -#define XCHAL_KERNEL_VECTOR_VADDR 0x40000300 -#define XCHAL_KERNEL_VECTOR_PADDR 0x40000300 -#define XCHAL_DOUBLEEXC_VECOFS 0x000003C0 -#define XCHAL_DOUBLEEXC_VECTOR_VADDR 0x400003C0 -#define XCHAL_DOUBLEEXC_VECTOR_PADDR 0x400003C0 -#define XCHAL_WINDOW_OF4_VECOFS 0x00000000 -#define XCHAL_WINDOW_UF4_VECOFS 0x00000040 -#define XCHAL_WINDOW_OF8_VECOFS 0x00000080 -#define XCHAL_WINDOW_UF8_VECOFS 0x000000C0 -#define XCHAL_WINDOW_OF12_VECOFS 0x00000100 -#define XCHAL_WINDOW_UF12_VECOFS 0x00000140 -#define XCHAL_WINDOW_VECTORS_VADDR 0x40000000 -#define XCHAL_WINDOW_VECTORS_PADDR 0x40000000 -#define XCHAL_INTLEVEL2_VECOFS 0x00000180 -#define XCHAL_INTLEVEL2_VECTOR_VADDR 0x40000180 -#define XCHAL_INTLEVEL2_VECTOR_PADDR 0x40000180 -#define XCHAL_INTLEVEL3_VECOFS 0x000001C0 -#define XCHAL_INTLEVEL3_VECTOR_VADDR 0x400001C0 -#define XCHAL_INTLEVEL3_VECTOR_PADDR 0x400001C0 -#define XCHAL_INTLEVEL4_VECOFS 0x00000200 -#define XCHAL_INTLEVEL4_VECTOR_VADDR 0x40000200 -#define XCHAL_INTLEVEL4_VECTOR_PADDR 0x40000200 -#define XCHAL_INTLEVEL5_VECOFS 0x00000240 -#define XCHAL_INTLEVEL5_VECTOR_VADDR 0x40000240 -#define XCHAL_INTLEVEL5_VECTOR_PADDR 0x40000240 -#define XCHAL_INTLEVEL6_VECOFS 0x00000280 -#define XCHAL_INTLEVEL6_VECTOR_VADDR 0x40000280 -#define XCHAL_INTLEVEL6_VECTOR_PADDR 0x40000280 -#define XCHAL_DEBUG_VECOFS XCHAL_INTLEVEL6_VECOFS -#define XCHAL_DEBUG_VECTOR_VADDR XCHAL_INTLEVEL6_VECTOR_VADDR -#define XCHAL_DEBUG_VECTOR_PADDR XCHAL_INTLEVEL6_VECTOR_PADDR -#define XCHAL_NMI_VECOFS 0x000002C0 -#define XCHAL_NMI_VECTOR_VADDR 0x400002C0 -#define XCHAL_NMI_VECTOR_PADDR 0x400002C0 -#define XCHAL_INTLEVEL7_VECOFS XCHAL_NMI_VECOFS -#define XCHAL_INTLEVEL7_VECTOR_VADDR XCHAL_NMI_VECTOR_VADDR -#define XCHAL_INTLEVEL7_VECTOR_PADDR XCHAL_NMI_VECTOR_PADDR - - -/*---------------------------------------------------------------------- - DEBUG MODULE - ----------------------------------------------------------------------*/ - -/* Misc */ -#define XCHAL_HAVE_DEBUG_ERI 1 /* ERI to debug module */ -#define XCHAL_HAVE_DEBUG_APB 1 /* APB to debug module */ -#define XCHAL_HAVE_DEBUG_JTAG 1 /* JTAG to debug module */ - -/* On-Chip Debug (OCD) */ -#define XCHAL_HAVE_OCD 1 /* OnChipDebug option */ -#define XCHAL_NUM_IBREAK 2 /* number of IBREAKn regs */ -#define XCHAL_NUM_DBREAK 2 /* number of DBREAKn regs */ -#define XCHAL_HAVE_OCD_DIR_ARRAY 0 /* faster OCD option (to LX4) */ -#define XCHAL_HAVE_OCD_LS32DDR 1 /* L32DDR/S32DDR (faster OCD) */ - -/* TRAX (in core) */ -#define XCHAL_HAVE_TRAX 1 /* TRAX in debug module */ -#define XCHAL_TRAX_MEM_SIZE 16384 /* TRAX memory size in bytes */ -#define XCHAL_TRAX_MEM_SHAREABLE 1 /* start/end regs; ready sig. */ -#define XCHAL_TRAX_ATB_WIDTH 32 /* ATB width (bits), 0=no ATB */ -#define XCHAL_TRAX_TIME_WIDTH 0 /* timestamp bitwidth, 0=none */ - -/* Perf counters */ -#define XCHAL_NUM_PERF_COUNTERS 2 /* performance counters */ - - -/*---------------------------------------------------------------------- - MMU - ----------------------------------------------------------------------*/ - -/* See core-matmap.h header file for more details. */ - -#define XCHAL_HAVE_TLBS 1 /* inverse of HAVE_CACHEATTR */ -#define XCHAL_HAVE_SPANNING_WAY 1 /* one way maps I+D 4GB vaddr */ -#define XCHAL_SPANNING_WAY 0 /* TLB spanning way number */ -#define XCHAL_HAVE_IDENTITY_MAP 1 /* vaddr == paddr always */ -#define XCHAL_HAVE_CACHEATTR 0 /* CACHEATTR register present */ -#define XCHAL_HAVE_MIMIC_CACHEATTR 1 /* region protection */ -#define XCHAL_HAVE_XLT_CACHEATTR 0 /* region prot. w/translation */ -#define XCHAL_HAVE_PTP_MMU 0 /* full MMU (with page table - [autorefill] and protection) - usable for an MMU-based OS */ -/* If none of the above last 4 are set, it's a custom TLB configuration. */ - -#define XCHAL_MMU_ASID_BITS 0 /* number of bits in ASIDs */ -#define XCHAL_MMU_RINGS 1 /* number of rings (1..4) */ -#define XCHAL_MMU_RING_BITS 0 /* num of bits in RING field */ - -#endif /* !XTENSA_HAL_NON_PRIVILEGED_ONLY */ - - -#endif /* _XTENSA_CORE_CONFIGURATION_H */ - diff --git a/components/newlib/lib/libc-psram-workaround.a b/components/newlib/lib/libc-psram-workaround.a deleted file mode 100644 index 27557575ae29a8a1908365d368c67e192e8dbecf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5925086 zcmY$iNi0gvu;bEKKm`U!TnHPPR8TN9GBUIPt4ZKuU|{xRV6cD0z!2~Xf|INm7z)K0 z7^Yb>S6ynSF_Yb7B(%=gxl&ocDLZF_*$T1~B$H$G{aO z2ElE+7`Q-q!yyJP5WdpIz;&gIfty}l@kAV+_ckg201L0S@82Dc8V&E5#Lf`-?27VB(;$z?k;k7{w z{2+YSh=KpE5rcqW6a+iYV-WC^gW#?t1_2OW|B68Xgs&Dc2wW{<5L7$GAn11uf{QjW z2v#41;02Eu1VQ*x7=z%YFa{x+V+=y6Y!KX2#UKR2JB1j8K=|G&2BCYa7=#6#AlN>P zK^TNno-qi6@a;(qB8+(utagh*1cbff7(_t0W*&nG2rvA`Aadgw1i$*kAoA)HgQ&7 zLF`QzgE+SlZalqo9h^)4yZ9mojJ!Kb+ZnFUnnt1 zeL2M-%~-@B&8Ng5ExV3ET4x`Fv`rU-wD&v)>C9OS(q&By(ygx;q^IODNH1<;klx(K zAbn^NgY-o;2I+fV4AQT~z*vSkjsc9-y%=ObI8cf~CN_#ers)}j%<4P{zQo5M1H!MY z7-W84V~{mj1;_F-w;1GAUoprV^)bl1Y=hvaRSfbVTy={<9)u^&Vvr|7!(|(7!*8aF(?E`F(`!3Vo*q3#Guet$DlABiuYe)P&oGwf`6Z4 zQ22d{K~bTILD66qgJOgggJRk`1n$#gP@JE{ptxR(L26@4xu)Pt3Rzebk*3@GRTFZhM zw6;buXdMk=(7JtzLF?5r2Cbi)7_>QdF=&e)V$fDQ#-ME}#-JTw#h@MgjzPP?i9x&V z9E0}aWenP@)-h;rKE$AXa2W!h3u4d);cuT9w7-2~&{4R=pkr`|LC0YggHAvjgHA#m zgHF*q2A#f33_5fAAovs)gANFP?_<#U-p8P;5Cy^R#~5@|=0R}ZG6vo0+i>Fpc?`Pf z_?;bt?(b_1db~yqdJ3-?^vshO^j!NG^g@Fe^pbZm=#@WW&};K!(3{r8pto!ugWfhK z2ECg`V5}eQ#h{;ii9!GSDh2~yHUx&tot+H;KXE-ZU^abh^Y~7{bS3n6!_gVC2V24jt15FE3Q!8qp~gYkk-5PYSL!T6~XgYnm67}#{?F9u|6)*HoOVY!IG zQhgbNb-o*e&BR3vc9((}9JoF)ILPdSU@tQU2M{hXV{mBhVsMyT$KbH=5QD?kJO+ou z`xqRq)G;_bzQy41*^a@H=@f&b&@Bc>)g}f<(`^inuE!W0BfB8DK8wMze;tG4d@}~e zb+;HC_bV|tUKe9P7@RkrLf}1749*~Y^A&?L z6uU?)V*ulTBnFpgF9*D;;PT@ggR6WN1bf_La0TI_ zFa}pBc9-X3K*k(=L2>PkU5UjKff_?lLfw` zNeq!7Tw}%%*{#PAIqMcfv81FjzK9{w%p`{)KBY7_ zw=zC4DZi+MAu*|#AwE7aC9AZ!gdwpgy(&I2B?ZoiFHS9hataDk^Pm#R`K5VK#b66k zAxa=@gqD=loYWGiTxvy0QDQPwQ)XUqD#&V(ZF#8`P|>2)f}F%;sQTiPqRhPX%(O~| z#Ny6 z@oA-b$#5P+e0))AdS-D+YEe8W$P0?{lNq3)pIDNgmc{@gK}04)d}2v{CdkN={G1#x zFDD1eh4A8w7?P563mB4;^9w2&;^UKwQ{oGY^NUJA62+;YJ~cy9Nq%`ULwr(cT6|h& zUP^IE5kpc{YEeGOMc_z}&&f~D21R#bP7d5j#jvPNPRz;4PloYw!Mq}LZgNg)Vo_>Q z5d(}7Uz!IpH8q7H8ALNc!W~S4LOnjYq_QA2zM!NiKAr)}0lA~6USLdyl*}@Q`1ll9xI-E7MGR0DLwrh6VqS`g1xN_OVu(*E$xj5k z1;k)TOD-!(DotZZh0^iq$z>%B@hKn@BnMUikp`bQMp7$MljDmki$T#=%m7MY4DqgzoSj-xU}(S)pO&1HUz`ex>mmj? z8zvkN6Jv-^OUW-t%>xO584PKu`DtJR5w~fnMMe2V3=j$-93NktmQz}s0SetT7z@H+ zh=p=hnbWJDsw0a3aUYnRAhqkL{4T> zGAJi!#wQjPB~~)Try;U1jLDFeS)81hmj;pqGr+!2%d7yoKQSjYKD{Wvv>-DtJswnk zfh^5QOb3N>ZfY(pnL?Qi@o6BD@%Z8YEwV1RyMsP-#&*SYH8% z0TzIy#Ddb2WEd9`B&jK2ouwrxDWRaW1e_2+G((W(g=pZD;VNIqIrpV3?PBzjKre&A_h>ImyuY65JIvDDu=KMtPiRQq601m z6@~L5wx*=!Waff0T3$+OUKz+T5CzJiAU?>U>8T~4+N%hnJ|{CTl_9^NB(W$RL}lis zfGAMr&o3y+FDL<-fS}@Y^7GQ6LSS}$eqIi!ZIYe}QVcR4JBIietGKTbAkc*%c$Sd(lnd$M+hH5;R18vU6g99BTQjnMl z3J6dGEj}l)xFo(HF&$KfgLD?9mXsEO3Q`a!JGC+;u_O`H*2_$fFD}RdH`>!vOF#`g zkZ5Tdq`4js5&-3OkTFH6$vKIcxga4>Ln$>au{5V7J|nR>gCRaXCqLZ?lnfJ#Gvc9{ zCbgmPN&4D@=WGU2{1*LEoXC`Hq<5T{Ga$`=hK!Wd;*z5LN`?$*8x|@NUj&x|F(Hzm5Khm@PfE;* z&&(|-EdnsWOX`auV~h8DJF_ga(_FoL5qm!;o2=l9`@a!jM^TQ zfRj3$1&WKD8Zu>xLtvy zBsmeB@N@I?QcFNRU_6=-N}!tZN^?_-GL!LGgiry|0;vo^%^Xl6011Y8P?1%f3TjY6 z1#*+(lS_-@a}z<82289t9YbAmR(5<&BB)}8C`!)HD~m5;fLp?V5N3#vM>aJF9_vsR zsQ%1N%uWS$9x*z7(7r#sVSwCDfW-(_Neq*6lX6n?7~;WHd=W!#QW2D21nRp&L_jQt z+@xYqUIr;G&I3z=+CI5SFb-G(SscO!=>zF62Frt4U_(JHP&XKq-Q#ni9c2g&N@g&j z+|=CUv3rg96w6htsLH5bGKciVDPa|@tqi;^LV!I7AoU0jly3vSfsW~U&S zU{R1K;&Zd}!5omyFg8>IsvK$t1JnQpD8HBirX0=y34t^*y<&b=Vo=<4bcuH9?Y53aHuv>n}xHry^7FvsAPnH@Fg`amx45JzH8B?yGoT7Gz8qNyECLr`0CN!v z7~%`So#gl;1_*;89$X86#+x7vhJxbE^t{9zhImj11JVG5vJgT@trVynycGgb1Tr7o zKLJU@<)ET)K0`q%sAUJ%0&U@edm}|4iDIxYqy+>P05g#UQ5^x6MVJh7J-Dd^>VPCe zb-|?}4nb}zfs~;~5_sr}0Zf9zx+pQT7}PWe)1U;D4~Z#;Vi3&$C*q43iV{IV4$5%x zMWC^b{A5r7!S$l|0Tq-qMZEamI^M>K|@x>;MO`rX&#gj51~P3!NefNe^zb*1E_TlqCvGm zW*(?u2N_rfG6!a58bcbWkWEbkHP#A}a}tY-Gt(;57}APTD+*we4Ds=q#hH0&X$(*b z#Lolu;4_QCR89(5b#8u2S{egb1T?Y$Gc5&T8UtvYDhbr>hlWgMZfQ4~`@N92JWTM23e#AiY|NaAS>@vu={P#{2CeGJ8rRvSnX5%6H2q(D3b zG6Lig5Es-t1AB)7j~MIcqM;r} zVgAU2Sq@@AY|Mk2Qjk=X4YIfZT$PsO##g2$7R4ul2HA>BiomseaY+$qb^}B~%5o43 z;weywfIL-_4=N$R4b~KpX(jn-5DGN(4i*Ltn4mIppejKFabOupIRs%s99fbN4&Rde zQn;d0BvqxL`2w(dNIaAlfJ3Artq7EPk~6^h5ftGii6yD<{$65oNoIZ?oLdY@wxGmV zTm~Dl1M^DrK*JFrW_&SHL0Jq=M^NE1=+GXB3(^khoPcsee0(uj0G#BZ(vUm@;(#TQ zrO-9P2Ud#96O$O?ixKiLCPOhq4M-AZ5+osmhRMrP8Pf8LvKhdmOrQ~qg3J^U1&U_y zcmk*=SW;5Ske!*6!vHFR7;?bb0aV2^fHMuKBxe9+O$JcjEJ+155sE88%{T^-Da8z> zd0>6ziJ2t~kUUia?faL&`nd6+Mo@fiX%0gPsQV8Ya{;yV!9638F^E1Bl!xdOfdpW+ z8;D&DatElID`to<$t?g4F~=7%Kv`g+JV-kR)H;MPp)8Q1yu@6FlKezabC{tdAJUsF z$%ph9<3Ww(lA^>sP@5FaW+=&r_Bu=QpzSdDnooqVr5QddPWIDd`T6gwv7jMX^V0|nKK^B z1|{IqB+y7XLp(f5LKsj1aLWWN0vcE?Elw>0OZ+=R`Og z6cR`o4#q?lW{8K0LQO&Bo3gY_CQ6#`dLBt_uAzTa{S%)Zx<-Ib< z2r-f%$OM>dd|4XQcCdv|HbgPpk}~+fYJ4$*4P${c!m9ZAGAIiy2)2YFz6?_DgM=V% zWr#0>FhD{uMPM52Bc!%N8H~*kUj}VHfb~F31PQ{L0bpSm2P}bP1$@f544MGIsv!zM zYGHPlL0SMHA!tZ|6++oyVT4jh@Gz7iWT7mO9;jq|8H54ySA20fv`Y_RF_b5REB5ka zNW~sso?KLtpPLk4!~kV6lqVO%s!=er1T2yPQcw)4OF@F5Y8^xuRDvZz)p~q+axtVn zhcLi{L7)lc^5kMj^i@~*Zd2%tNwgxFL$p=+c5FwC4 zP`wT2WkYy5DNs6x0iqmI`+}8#Dqjc#q9zx#KmsfPcPX^u1`9$fZYUe#LXbR2b9rV; zNd|}kuDZ*UOY)N#Kx8hcw+=3`<6&F~4UT3A6XY;h$z7fdW`Tu3Q}Cep0}akG#K)H> z!z_W)(D4p%&nmZo0ZfBJJvTKMJk|jc0GHc{#0F(CK$03mJcI_jrMSE}wFJ_#i?1jE zPvn8i-}oX1ee`Aj;1&J22@?YY$fAFR1g@OSr1(T#*s>G7e0``0Z2bwQ2xwIax+r)> z3Ys8zX$ra+Xc0^*RzWPrLaKT+)zIZDXrhqm0W?9-f)+F(=*ku}QP4U8@Ddj!amZSi z_#$K>Xo-j{1S_Xd#302HvJkpRJanN3LJiW|6C^>zsuP4@d_1Uyf?)ut9}a5fBNW0! z;!Bal;A=!s#nLkKz)M9CqM#utP(uP)1k)SPsuf8Qs0CC~nuHJmui8jVNkJ0Iszn8jAA8d1R_55q0E!5Bb_+!W+-X4(flPBD3!#hTB!j23ki#PfHYbG8mjjy=LK1>b z=paNu^B$nlWu$}w63Q z10aNv#={YUpqz~u{6>g_Mwmgv)JS;}GOUbjH7LJ>vL1>ya4tYj^95z#c?cx`!v}H^ z8eyZj7$Qj8ij!dTWk^9%44z5=jU*zp7N>%i`K6^I>jjUWB0C;bG(iSOku;`ZGc64? zgP&P~)FJ?_eu590qG$(?pCXB1(+VDfM9SO6X^>%7ByAuO(0D4Q5Q+$Rz!FI$J`KC8 zAS1BI3N!Q4lJoP5kt#A+&j&>nX!IAUN-T~C5BwsFU^Xp^p}ikugD@OWl9HJppIU)z zKYW}KNh3t87&$|Mh7`d=jws5&-47HIa6O7Cf|3NFql+l2U>y=vK}_?(BZVl6K#4Fh z2SunPKO49PzuQiQAsBh|ph zcaRiev{>QeGf0Y{<21-3SV9J~RDzAoAZx^Q6m)bMNfCw`&}ax`h6JGsHu8ZYf?2d6 zhA~hSLWV3*gwV?k@Bl(?5>g6>i6ECQU@?@^1tx-~3OpKsY$0T12uTDwAb=1-?camM zxe(nwNWb3D#M0Q(%+%b-QbEDcz`y{BG&3<#P%tqDiGkE6aMio|xG^#^GQa>MLmUHw z$H0)o!@$76%)np*R-nNk!ypM}nK?2vGB7;gU}(}3mib-tvt64K>{Ts+O7S=J19>*9M7}&WP85o#6 zK}-hrgCMpSh~2=^1Y-M?fNW*t&;yy_58|*eGH@0#Ffd$WU|`_NW?*2DXW)L$z`)SM z6b$kR`)-i75D=4reFI2Ws46G`*l&Zx!z4jAv(E*w!wnc27&;huSU@ImYBDk~fH2fZ z9u|E@1_oXpmNt;H89Dxf!VhE(qZ-IKkfT7s#W<&ik%56fEsudw4Wt_+E>OV0s0Fg0 zrRoI3d_hhI1_qEK1|g79Ak4(Z%)ltfsLChI&CDmwC&(zoCLqqhz@);!&27ic%)!9G z3}x~$FtG45aC0*-u!=D-^I36Qb9)LiFt7g1C&r3=HhNa5)QZ1_ll!E-M2A zCnKY$Fi07fB7>)}J~smcH&{D2Ogj(A29UA5q73Si3=DjFjP{Zc%hV-3g+b19keKcy z2{MD9m4TT9q|sBDNt}T}zy!gSU|JvKvO7)2~q{3LHGw)eiO(D#@~Fr42+P>#K^$F zsHdlog7ouJ%X2c5^g-(;^@}Tu^(#ONY!VstGxBp&^|Mlo@>BElQ;Q2MjLghHw6PIX zM?6HKu92RRo`G&sW*#>3z#<@VMotb?5l$8c21Z8Ef(HdK0m_-h8Tmye z3Z;3V_E>6)0!Rpj6Q5ZepInj1;O-Zy;B089U<&e$f^IIz0MMXSv4U=HT4sfAYH@+F zk#0e8QDUxca$<5us%~a+acQc8Zn}c5e=!87<>l)pm1gFYfOkQpr{{g8h9$ zLtNv1JVRWA9DRaq4Y(YgJZ%lQKxr0MRX}KHB>|RT(Ew8nAag+p8$^Su6Q*xQi~FE81%rr642I1J@CqKy`P0t`JPb^BzOHV~L6uc<_Y6NJ~L@zl%Hy5;_ zLJyKG^dNSC9am8TaxK(~iW0qoqWl7o7f~=uATfOWk1WXys@#zTm>FQjB1Djxfepfd zlFSV3P!@z@W&l+s5H^TpX5a=IJ)%fq@$;4l+lC zi2DW8r&c&8KFTd z2+|8>gM14U2er%?q2|bfnov+S$V^6P=FvyeYlg(OMPj=kvAvPlK}hUKBz6K4I~|Fg zhr}*LVmBeN+mYB)kk|{5*lUp3JCWGek=T!s*r3)QEKGhQiL--hWoWorBC+j|*d8D@ zG~9d`85m%3kpL10mmUlZ#UM6RO)ZEGHM0?k4Ne14HK0NWW)4UxjLnY}N8q>y5ey6r zpfm%EM^Ku9soxLs3)IY$3=9lHQ1*E!8rQ z#ibb-7(PSUptSQH$_5ppAipqz5+H~Has!kNqG0YsPS2ox1`{^`sfW4~s+}MOvJ;f+ zp}_&}dw{|arV+*lxf#TEfJ&%vGJs1PDUh9@<~67+0|P@R%uz^kfoSH<;bdUg z!w4}Clzw35B_Zhnna9h-!0-vgfMS@@;5-f$15y8(7#Kih4~PxIFm<3B3S>4coFljy z7(nR+dlY+eJJKRUP(@dir!F!N@jndiXF!0-oT5ER4Q2P%g^ zdSLEb!_B}@0S#wR{sGB>+_w~J9?0z=BWze082-Zyfy#lnpbj61hN-h=V_>iWX@Fvo z90-HTHc&i5g&E4(7#Kil6~+gt0kKa*%?7bScs&~=oq^aO3{wZ{v4Y$R^M?u#B7cDD z4UinjA2-m<+m6M3AagIHg|h(<#2=t|6Nk!y%mdX=urv?S_nD1>0aX5g*dPpZABaXS z8m_Q2Fo3$hpnMH71LQtXc!Sa+vUx0=3=DE0gP<5>4v2|zsD@s?KH+f?b0g3wh=Ky) zagZ$_k6{@H0oe<}W{wO!!5z$o3=EyjwjUtSkb%LIxkvN?D??A(S~kdViR=eR9N-!k z(E^1d$g_M33~r#23XtIpER3ME!!v=AfdN!_gTz1zK{OK!cqD|0i9H%Tz5yO3VSvxK5$XVt{jhNmP*P+BbxuK(B@7GO4mQ2Y*3hh%%#S-38=3Kb2F&F z4`YMOCkBJu0;+Er<>B3y2NtFG?Vde}MFZOkg!$}5ohATf}>ED(W&L2@82`glqXsILT)fMSq&ASU{F z3P>F&&w}JY7^V(=JY@or<0+u=0WX-NKBF9tiF)}cK@)*<@2AI+4 z<0*%T98Z}-jBItFK?6pPo1p$K z6YDe(kBL1SY4n7J9W*o!A4FmA0jcC*=>n-_VSNMQv9K=y^Vq9EJVp-CunbEINa!Z0 zh-PI0EjnQXjcc%jqM3Q0Bgk@4LkX0S=ez_B4TH;Nwr;2dCuj)=BO565F$Qyi;t8aP zn=y*1h=H3inwg7{jhiussTee<4I0%1Vdh;V3~eAU)?kG#ufR6IfwsH?d5A+Cb%;ZP zfq@G#g29b6g297zd;-+bVPpsbQK0w$jZffTY5`IO4Igk3$;5C36n=wtd;+wG39`@v zG(}zv8J37ofu0JMmYi3T0}*3jfGoa{U}gj_yVOX| zK*~7C{4%UA0c8@{&;lsafSTwa8YB*G-jBRt19&?M6b2)4+yGS1gZvIk2cU5QP+tke z2VqeC0y%eFFBw9Ek5>XoF~Iuxpeh>FHwOuV*s!$@AU8OhFZc`jR03Lb;$W1eghG z1B1k2eVQHYpm`<8TsNo;1<8T>An1Kt(EKYXU4sol>Tja=ZI7@sFn}g>Ky7zWIKa#U zxd&uENDO3#4~Rg*AUO~hy>E+49eUpuqz;tkL1ut3$X*bQ-nYHOPTX375(WkaSd$rK z4$OV%eOna{28I|S)(T`YGBALq3qfXqFw8vkzAY%t5VKaGfs?qk0>(u4Z8so|ae!LX zpzs5w1Mrv{$iYw?%*4O|8vlWE;dKjo-}VZU`#^aBW*#VygZvJf#|4>T&CI~C5+nfP zfbta-gY!QF#E&4UCoGtKGmtj)zO4c)acc!4SczLJz`}*dANbY^B(Ngf3UV*VZ6F%d z=>hp2mfr-pAnHK*17F{E0xNNA1xnb6TPv`HodIRv0nB~y%}k)~s)B+7p}wu9i3$8% z1VVczIzWXIdf)Z~C{!32%nmZFWjf1fuvr1pzvW?4*AnUw z3u^~xy@DmkSP{??BoSdv&l+ZRAf3Yb~gH!(3V@G3DeFi5cK z&Hx#w3zF3bF&X&cvl&~sbO-c%+A1{GFQbtVP|Zje7&%|WI!aEpOVu>i4IxIt?+p z4sKmG1_o9u5SxcPhnaza)f&VW;C2VGZ9r@h?rxA?TM%1<`x!{w4#bw>-U<@82eB0x z1hPP`VPy442ig3Ck%58L6U2n9k7e}&u^R+EKstOtZf0N<1eH*%{vZwuBLjyaBLhP@ z6VxN}47{bx3=BQ2!COGafkP|=#AM)}4GJd61{ZG7Mg!KcT}%uN9Nbx;APc|91lr)j z&jK=u;}jDE0|MSd0IF%nt=Qw*Suof|Tuz&&{qR@AU$1RJvt(*K%8DM$3WyH$ZdUKdrU-*fMg~xK4fQL zun;)_^1?*M=j;p&HXxa}Zeyl9|f*gPnoFMFbQBtTP!w!R{gA4081>Mo_r= zh%|tVp3CUO#=vkxBo)M&2M&WLB7q>&<}C#&Q&<=n zGFUfPure_4#TPKJZUHG`;EOL}VBHD|Qx?AXat79IASMU*B9PJBLD`*$y8-019UwLz zUwl#;1MAM~ObiSH+~74iyFltCxX*)pxfc{oGTap)y$3<5N`c!EBz|}?D+7ZHH)vfR z>(NWB3=A6F_dy|f;u|XigAVt3kohMCKqWt4d}$H`>lu*wCVcUw1q`fbL9Vpni!Uu= zU_A%2%YoY;Wd21lHU}Ms zKSmCARt5%s7Eo}4HGq-}k_Iprs^Kgv1A_!e7eC8NRt5&KwG0dlAg?1S2MLKomEQoV z0kJ_rf>6W2&+-RU%Y!lo$iv{g#RMrr&DfyXmw|yb2;?nUMn4t?2H~l!3=BN1ij3uK z3=AURysQjnGl<*)MT`nK!Lo>)2l-wVoRBye_*p=yi=PE#rZ8ykR)W=*@hHfElOU7r zz-$H)c~HpPgE?#>u^^5EBd8+a5h(>Jb7qVMcR4sfVpn0#V`31V&B(wYz#7IV4ywUL zK^8|cf=gr(caW2!piY_wO7+oT84i&-AZ0ONEj$eTEFk5=fvgM+0jvp(yFlg`gX~WR zr*{UCPLTa6jG%~R5m^N?Cl$=$5qSzymImgCh|C6Y(!u&=M6y7f46xlQBCkLRCKIeo zLu59{fGjY_Km;^x!I}-`Scrhy=&U(lj)O=vNLenJS<;Jk)T>c5|r~{Dc~Pi@-3K@WoKYunaa$-z*YsSTv^Q77#P@QgF=<% zBohMz+YV5|X6Xkh*a;fYW&utAu6ppGf`Rb~bTc3Dvl1_mZ>2UZ3Kb~zu=Dmv~RAaVI{4p6aw zm5G6YUBQe4v>fglNR6T+2Ll5S_gxTM31ki*w*^SOvH}OFxcJV(z`$ zep$;S)dNeSA+$q$<}5CAKKZ}k*JGK-agK?t&RQW&fVys0Y|$Qc~0OGC;#e;9X#P8K8Y~C@K<5Ac8P?&}tFr zqz*GDBQrB%S_it97BbPp!YRza$jJm+bBeP4GCn;sCBB3q9yGha06y9l!~-3~ZejtR z?E!I9!AG9uC47i3LM`S{leT;61X%CGn-1DGc#>nfXb@45i>i4VgPb)dyMvoR|Z-HVJxp zD1-y?4fxQ^42JT|yb_SnpnwJiPhxtp5!iF!^Vz}Y$S{E88gy_tLws&#aWVraYCt&^ zWl=F$Q7-7hi$w6voS?{0$xO)vE$EJixE~Uxpo3;WHiB;N$jK}&VTkwfclM4Ca&-<3 z3ib?hjSm6Y56+-y6Pod09~YOzXXfQYXBNS62g)s#DT$R-pRSFMF9xOfVo)B2Cdha< zPajus`h%Q04)P|75JNnuNP%qsE(YBW1iG{pdOZv@cW34$Gk~|s!%xZvAH0(aI$t&? zH8Br#lzeVtMR`gw1MH?Z(ESM@Y4DA+@$qGe;9C{JCwe1pwT({$-9!gEOg=sl6v_$O{w?pm|)-W_3_}gG#N;;$)bc zAa|}ncm9KpCIlVB4!T+`9(({2=-^b)8Qu)>V2^+zsT>qZ(7P&fKvyz>LKl?jK-bD8 zGsNeC`5={<#VMea0S*_CS0E`Da{hU738*LsIj#s?LPJlAg9I+I^*MBS5>&*-gAXr+ z1`EiAnR)r~B?Gqm9@OjyHEuvOY%mqXhfO|%CL=&|L@*lEF@!aWKzc^kuaCI>_n^6B zP!a(p1JFD)@_ZVovxI1nAr}^)3=mAk=UT^doXj< zk;F}q*p5hS(7s5R`XD56&|D)-yc9_sd0#&0fGC(6(4kB)_HiWjmyy`_k=U=1*x!-Z z%%Ijh%wI@sX(YA=65AAs4I1}^xxp7nJPL_jfy8b>VuMDrVS48viLXFn-#}tNL1KSE zVuRN0!psq1W`M6(08Pcf#6jbsFt$088W$usXk;0tCJsqF8;ME1dSsRB(@?FTMvnCjl}jxV%H$CJCN9*xd52o*C2`S zKw=+3VqZXF-$7!(Kw?Xmb_)`FA`*KZ5_>fgdj}Hx8WQ_468i%Z`!5okiyh%MIV83=659fa?TW+> zLSn}wv2&2vl}PM1B=%$^_5vjKS|m0%2f}S)NNhzUwhj{89Et6O#P&sEM}n)-I}&>`5_>)pdo>b!I}-aa68k(7`!*8$ITHIb68k?Ao0}664&q2`WhAyf659uf z9R^~9+Kdbg3{jkjGgtCK;@~zT14BQE4OO!i#D?bOjYw>8T@O_Qs_$WIn?OooY*N=e zeFc^CP%}YiJAl@yfb0Q{n1k4$bv>Y|U=SPBz5q=!gV>-ph&X62lZk-=w0;6q7l6cJ zZ4z?VMS<3jP-FiOG+04i0k^L}4D>Zp1>%S`AfTo`C`>^U`RHq;KobI>wjIa}5C*9O z(dcWWYQzz1KtSOJQU@{*eT`HaNHY=!*$v{NuaUx~4%}t}X@KGk21HvBBm}Y-M5C{f zS|d)}8mS2k3=BJ9iz`9x8<1gG_WyhlXJ7!WKLO37fRuym1^E~KJQWWv28Q`CPa>Iz zzDDXfH*x2w%#cTfGsr%ey`Z@cBx@Krc!)bs<%B$O=c#Cb%!B3?P>{gvLSG~GMjo-x z1(auC?n7TA<-y0mU<+N72s004Ci)twRuSUXNF5X*ZjIDW5#rWJIVd3V2Pluj`~hzN zf*cIRjG~zC14*H;k@8W1r~{=Jd~2j^MTuJ@r65M!8mRzr1_scXParpeFer>cH01u5 zL^Bi6G1)|{kuou{Fn}zlBE0|S059YKHBjCM@yPISH!WZ* z>)@Qk#bC=l!Dh16Djv>F3le;IbpG;9uJczwWeT?aM4+8KJfMxL zphbe9zyT=)(M&At&7f^ROzb+Kl~j;ZYT;XlSaLyfjBKFex|kR_I6*un)=Ch?!45im zi;0C5v_+PQg&lOb3lj@F=+G`EMhu&;Bxf)%x`Q->!k9CYfzbmrmCKb5s?oqq&_*RLaOcYt)XxSj zTV}vFDT(W-6v#{+8;%J&1_pN2Ls2-8=Ho#7i4a@{1}?c>OM(?SqCpJ_P@@}^ zQ$cD#4O|c#R9=I|ph1mPm^g?HYLJ1%K}7*f9K?o+`+-XkNJ9WrMu5x)sRw0!P(=@7 z!}2)DE`sCQgZ&&?tVhSf*SUj&2y+h=tfc^w1r?Z}Ry~9bBAMYm3lI+^51u23aKP0+ z^6qSqJSgzt(hSTDpiy09KBzT|%m+m-G9Q!(kollp&&YgGBqH;L!RIrAL_kp~1oAC3 zLx3odIOyau&{-v*QXf=_fY_kA0#u8@*q~|z#s>Ki#0Di3knJEgD0zY^B@i2w^gtNI z1|>HT2C+d&3}gq04NA5kyFp{spri)!6^IS0>p*y*$E`tqSlGA`@)$Nf&p!b*R$y)b zt!9IR^1*qQfdP4s)d?hV(0L#*Gan#{KLxR& z=77(cg_;Ah12)D0iZd7+q!h+R9(w?_&|u=A)n+g@sI3NLgZ3W5*r2u=j15{(2xA8$ z`7s=c9f!mQrA3(fOeFDKBsM5KVQN4vNEjP5KLBHc!WqT}9R>(vgO(7&*r4tjp?zfF z)AB*(HUk60Ug+L2Q1~5&vO%Q?sKE>xF9GEz(D8#HHmEcJHF-g7P(A=Pl|gJ!UkP-+ zB!~^#dI8#t4`M4bFff4H*dR72j6qumKx}me1_sb!cOW(>uYo4yKx|MRWo3k%s|%Ws z0i9z55(nj1L8v%r%mCCj2Z@97t}Ij>6hA6ZHYhJ^L)oCR!U)O+`68x$uXKf}^0 zsAPk&LHo#HY|z+aEt|kmi&X<3fr&b06hx^ z>(iInZK!kRF(M9h?jd8H@}JAoD=A9!L&k9yq?BW`U@k zj0_BYAO;k}+zvih8!85(Kx?3vff!H>QwK^{AhTiie&7Nv1%=oP%0D1EkiF&5aEEGV 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