From 85e45d084f7e5213fbdfd24c226331ed15e6d40b Mon Sep 17 00:00:00 2001 From: libretroadmin Date: Thu, 8 Oct 2026 07:44:50 +0200 Subject: [PATCH] Lock-free DSP thread on libretro-common; trim libretro-common The threaded DSP takes no mutex or condition variable. The emulation thread publishes a monotonic tick count with a release store and wakes the DSP thread through a retro_eventcount once per 32 ticks and at frame end; the DSP thread runs every posted tick and writes samples into a retro_spsc ring that upload hands to the frontend in place. Mode switches keep samples in order, and the thread runs out every posted tick before it exits. THREADED_DSP defines HAVE_THREADS and builds the eventcount and SPSC sources. libretro-common is synced with RetroArch master and holds only the sources the core builds and the headers they and the core include; rstrtod.c is built since file_stream needs it. --- Makefile.common | 7 +- libretro-common/Makefile.test | 240 - libretro-common/audio/audio_mix.c | 71 - libretro-common/audio/audio_mixer.c | 2797 ---- .../audio/conversion/float_to_s16.c | 275 - .../audio/conversion/float_to_s16_neon.S | 88 - .../audio/conversion/float_to_s16_neon.c | 64 - .../audio/conversion/mono_to_stereo_float.c | 44 - .../audio/conversion/s16_to_float.c | 205 - .../audio/conversion/s16_to_float_neon.S | 84 - .../audio/conversion/s16_to_float_neon.c | 71 - .../audio/conversion/stereo_to_mono_float.c | 45 - libretro-common/audio/dsp_filter.c | 381 - .../audio/dsp_filters/BassBoost.dsp | 11 - .../audio/dsp_filters/ChipTune-Lowpass.dsp | 7 - .../audio/dsp_filters/ChipTuneEnhance.dsp | 22 - libretro-common/audio/dsp_filters/Chorus.dsp | 14 - .../audio/dsp_filters/Crystalizer.dsp | 4 - libretro-common/audio/dsp_filters/EQ.dsp | 41 - libretro-common/audio/dsp_filters/Echo.dsp | 19 - .../audio/dsp_filters/EchoReverb.dsp | 12 - .../audio/dsp_filters/HighShelfDampen.dsp | 6 - libretro-common/audio/dsp_filters/IIR.dsp | 22 - .../audio/dsp_filters/LowPassCPS.dsp | 47 - libretro-common/audio/dsp_filters/Makefile | 135 - libretro-common/audio/dsp_filters/Mono.dsp | 12 - libretro-common/audio/dsp_filters/Panning.dsp | 22 - libretro-common/audio/dsp_filters/Phaser.dsp | 10 - libretro-common/audio/dsp_filters/Reverb.dsp | 9 - libretro-common/audio/dsp_filters/Tremolo.dsp | 6 - libretro-common/audio/dsp_filters/Vibrato.dsp | 6 - libretro-common/audio/dsp_filters/WahWah.dsp | 9 - libretro-common/audio/dsp_filters/chorus.c | 265 - libretro-common/audio/dsp_filters/configure | 3 - .../audio/dsp_filters/crystalizer.c | 129 - libretro-common/audio/dsp_filters/echo.c | 265 - libretro-common/audio/dsp_filters/eq.c | 418 - libretro-common/audio/dsp_filters/fft/fft.c | 204 - libretro-common/audio/dsp_filters/fft/fft.h | 44 - libretro-common/audio/dsp_filters/iir.c | 457 - libretro-common/audio/dsp_filters/link.T | 4 - libretro-common/audio/dsp_filters/panning.c | 153 - libretro-common/audio/dsp_filters/phaser.c | 196 - libretro-common/audio/dsp_filters/reverb.c | 442 - libretro-common/audio/dsp_filters/tremolo.c | 176 - libretro-common/audio/dsp_filters/vibrato.c | 281 - libretro-common/audio/dsp_filters/wahwah.c | 199 - .../audio/resampler/audio_resampler.c | 189 - .../resampler/drivers/README.sinc_int16.md | 153 - .../resampler/drivers/nearest_resampler.c | 84 - .../drivers/nearest_resampler_int16.c | 86 - .../audio/resampler/drivers/sinc_resampler.c | 988 -- .../resampler/drivers/sinc_resampler_int16.c | 563 - .../resampler/drivers/sinc_resampler_neon.S | 82 - .../audio/resampler/test/sinc_ref_float.c | 237 - .../audio/resampler/test/sinc_ref_float.h | 19 - .../audio/resampler/test/test_cc_int16.c | 362 - .../audio/resampler/test/test_nearest_int16.c | 287 - .../audio/resampler/test/test_sinc_int16.c | 170 - libretro-common/cdrom/cdrom.c | 20 +- libretro-common/compat/compat_fnmatch.c | 122 - libretro-common/compat/compat_getopt.c | 223 - libretro-common/compat/compat_ifaddrs.c | 662 - libretro-common/compat/compat_strl.c | 19 + libretro-common/compat/compat_strldup.c | 33 - libretro-common/compat/compat_vscprintf.c | 44 - libretro-common/crt/include/string.h | 10 - libretro-common/crt/string.c | 34 - libretro-common/dynamic/dylib.c | 244 - libretro-common/encodings/encoding_base64.c | 171 - libretro-common/encodings/encoding_huffman.c | 12 +- libretro-common/encodings/encoding_rlz4.c | 470 - libretro-common/encodings/encoding_rzstd.c | 13 +- libretro-common/encodings/encoding_utf.c | 2 + libretro-common/encodings/encoding_vcdiff.c | 741 -- libretro-common/features/cpu_class.h | 265 + libretro-common/features/features_cpu.c | 763 +- libretro-common/file/archive_file.c | 890 -- libretro-common/file/archive_file_7z.c | 516 - libretro-common/file/archive_file_zlib.c | 1183 -- libretro-common/file/archive_file_zstd.c | 410 - libretro-common/file/config_file.c | 2227 ---- libretro-common/file/config_file_io.c | 206 - libretro-common/file/config_file_userdata.c | 249 - libretro-common/file/file_path.c | 186 +- libretro-common/file/file_path_io.c | 137 +- libretro-common/file/nbio/nbio_intf.c | 143 - libretro-common/file/nbio/nbio_linux.c | 328 - libretro-common/file/nbio/nbio_stdio.c | 434 - libretro-common/file/nbio/nbio_unixmmap.c | 253 - libretro-common/file/nbio/nbio_windowsmmap.c | 271 - libretro-common/file/rbmp_file.c | 119 - libretro-common/file/retro_dirent.c | 26 + libretro-common/file/rpng_file.c | 92 - libretro-common/formats/7z/r7z_archive.c | 3061 ----- libretro-common/formats/7z/r7z_bcj2.c | 272 - libretro-common/formats/7z/r7z_filters.c | 400 - libretro-common/formats/7z/r7z_lzma2.c | 516 - libretro-common/formats/7z/r7z_lzma_stream.c | 1335 -- libretro-common/formats/aac/raac.c | 5262 -------- libretro-common/formats/audio_transfer.c | 5322 -------- libretro-common/formats/bmp/rbmp.c | 923 -- libretro-common/formats/bmp/rbmp_encode.c | 258 - libretro-common/formats/cdfs/cdfs.c | 864 -- libretro-common/formats/chd/FORMAT.md | 1068 -- libretro-common/formats/chd/rchd.c | 10 +- libretro-common/formats/data_transfer.c | 1239 -- libretro-common/formats/dds/rdds.c | 2710 ---- libretro-common/formats/flac/rflac.c | 4 +- libretro-common/formats/h264/rh264.c | 10017 -------------- libretro-common/formats/h265/rh265.c | 4603 ------- libretro-common/formats/h265/rh265_bd.inc | 876 -- .../formats/image/image_hdr_blit.c | 277 - libretro-common/formats/image_texture.c | 377 - libretro-common/formats/image_transfer.c | 1258 -- libretro-common/formats/jpeg/rjpeg.c | 5592 -------- libretro-common/formats/json/rjson.c | 1634 --- .../formats/libchdr/libchdr_bitstream.c | 145 - .../formats/libchdr/libchdr_cdrom.c | 415 - libretro-common/formats/libchdr/libchdr_chd.c | 2436 ---- .../formats/libchdr/libchdr_flac.c | 218 - .../formats/libchdr/libchdr_flac_codec.c | 221 - .../formats/libchdr/libchdr_huffman.c | 544 - .../formats/libchdr/libchdr_lzma.c | 272 - .../formats/libchdr/libchdr_zlib.c | 410 - .../formats/libchdr/libchdr_zstd.c | 279 - .../formats/logiqx_dat/logiqx_dat.c | 797 -- libretro-common/formats/m3u/rm3u.c | 589 - libretro-common/formats/mod/rmodtracker.c | 4245 ------ libretro-common/formats/mp3/rmp3.c | 3270 ----- libretro-common/formats/mp4/rmp4.c | 1309 -- libretro-common/formats/mp4/rmp4_audio.c | 645 - libretro-common/formats/mp4/rmp4_video.c | 1395 -- libretro-common/formats/mpeg1/rmpeg1_ps.c | 519 - libretro-common/formats/mpeg1/rmpeg1_tables.h | 478 - libretro-common/formats/mpeg1/rmpeg1_video.c | 1986 --- libretro-common/formats/opus/ropus.c | 10882 ---------------- libretro-common/formats/png/rpng.c | 3683 ------ libretro-common/formats/png/rpng_apng.c | 810 -- libretro-common/formats/png/rpng_encode.c | 1118 -- libretro-common/formats/png/rpng_internal.h | 49 - libretro-common/formats/tga/rtga.c | 798 -- libretro-common/formats/vorbis/rvorbis.c | 6764 ---------- libretro-common/formats/vp8/rvp8.c | 3919 ------ libretro-common/formats/vp9/rvp9.c | 3355 ----- libretro-common/formats/vp9/rvp9_recon.inc | 7117 ---------- libretro-common/formats/wav/rwav.c | 919 -- libretro-common/formats/webm/rwebm.c | 1093 -- libretro-common/formats/webm/rwebm_audio.c | 568 - libretro-common/formats/webm/rwebm_video.c | 1107 -- libretro-common/formats/webp/rwebp.c | 1934 --- libretro-common/formats/xml/rxml.c | 1899 --- libretro-common/gfx/gl_capabilities.c | 353 - libretro-common/gfx/scaler/pixconv.c | 1177 -- libretro-common/gfx/scaler/scaler.c | 526 - libretro-common/gfx/scaler/scaler_filter.c | 317 - libretro-common/gfx/scaler/scaler_int.c | 743 -- libretro-common/glsym/README.md | 11 - libretro-common/glsym/glgen.py | 155 - libretro-common/glsym/glsym_es2.c | 409 - libretro-common/glsym/glsym_es3.c | 413 - libretro-common/glsym/glsym_gl.c | 2545 ---- libretro-common/glsym/rglgen.c | 45 - libretro-common/glsym/rglgen.py | 147 - libretro-common/glsym/xglgen.py | 156 - libretro-common/hash/lrc_hash.c | 623 - libretro-common/include/7z/r7z_archive.h | 197 - libretro-common/include/7z/r7z_bcj2.h | 197 - libretro-common/include/7z/r7z_filters.h | 93 - libretro-common/include/7z/r7z_lzma2.h | 211 - libretro-common/include/7z/r7z_lzma_stream.h | 245 - libretro-common/include/array/rbuf.h | 161 - libretro-common/include/array/rhmap.h | 344 - libretro-common/include/audio/audio_mix.h | 46 - libretro-common/include/audio/audio_mixer.h | 175 - .../include/audio/audio_resampler.h | 223 - .../include/audio/cc_resampler_int16.h | 58 - .../include/audio/conversion/dual_mono.h | 69 - .../include/audio/conversion/float_to_s16.h | 61 - .../include/audio/conversion/s16_to_float.h | 62 - libretro-common/include/audio/dsp_filter.h | 88 - .../include/audio/nearest_resampler_int16.h | 53 - .../include/audio/sinc_resampler_int16.h | 75 - libretro-common/include/clamping.h | 62 - libretro-common/include/compat/apple_compat.h | 85 - libretro-common/include/compat/fnmatch.h | 35 - libretro-common/include/compat/getopt.h | 82 - libretro-common/include/compat/ifaddrs.h | 66 - libretro-common/include/compat/msvc.h | 32 +- libretro-common/include/compat/strl.h | 44 + .../include/defines/cocoa_defines.h | 116 - libretro-common/include/defines/d3d_defines.h | 47 - libretro-common/include/defines/gx_defines.h | 94 - libretro-common/include/defines/ps3_defines.h | 952 -- libretro-common/include/defines/ps4_defines.h | 46 - libretro-common/include/defines/psp_defines.h | 147 - libretro-common/include/dynamic/dylib.h | 120 - libretro-common/include/encodings/base64.h | 38 - .../include/encodings/encoding_vcdiff.h | 97 - libretro-common/include/encodings/rlz4.h | 83 - libretro-common/include/encodings/utf.h | 20 + libretro-common/include/encodings/win32.h | 63 - libretro-common/include/fastcpy.h | 93 - .../include/features/features_cpu.h | 51 +- libretro-common/include/file/archive_file.h | 298 - libretro-common/include/file/config_file.h | 559 - .../include/file/config_file_userdata.h | 64 - libretro-common/include/file/file_path.h | 68 + libretro-common/include/file/nbio.h | 185 - libretro-common/include/filters.h | 103 - libretro-common/include/formats/audio.h | 252 - libretro-common/include/formats/cdfs.h | 167 - .../include/formats/data_transfer.h | 370 - libretro-common/include/formats/image.h | 353 - libretro-common/include/formats/logiqx_dat.h | 129 - libretro-common/include/formats/raac.h | 119 - libretro-common/include/formats/rbmp.h | 122 - libretro-common/include/formats/rdds.h | 65 - libretro-common/include/formats/rh264.h | 82 - libretro-common/include/formats/rh265.h | 79 - libretro-common/include/formats/rjpeg.h | 74 - libretro-common/include/formats/rjson.h | 236 - .../include/formats/rjson_helpers.h | 78 - .../include/formats/rjson_stream.h | 110 - libretro-common/include/formats/rm3u.h | 140 - libretro-common/include/formats/rm3u_stream.h | 150 - libretro-common/include/formats/rmodtracker.h | 98 - libretro-common/include/formats/rmp3.h | 269 - libretro-common/include/formats/rmp4.h | 170 - libretro-common/include/formats/rmp4_audio.h | 79 - libretro-common/include/formats/rmp4_video.h | 176 - libretro-common/include/formats/rmpeg1_ps.h | 107 - .../include/formats/rmpeg1_video.h | 87 - libretro-common/include/formats/ropus.h | 107 - libretro-common/include/formats/rpng.h | 243 - libretro-common/include/formats/rtga.h | 49 - libretro-common/include/formats/rvorbis.h | 316 - libretro-common/include/formats/rvp8.h | 132 - libretro-common/include/formats/rvp9.h | 312 - libretro-common/include/formats/rwav.h | 274 - libretro-common/include/formats/rwebm.h | 166 - libretro-common/include/formats/rwebm_audio.h | 69 - libretro-common/include/formats/rwebm_video.h | 188 - libretro-common/include/formats/rwebp.h | 113 - libretro-common/include/formats/rxml.h | 132 - libretro-common/include/formats/rxml_stream.h | 99 - libretro-common/include/gfx/gl_capabilities.h | 68 - libretro-common/include/gfx/math/matrix_3x3.h | 253 - libretro-common/include/gfx/math/matrix_4x4.h | 395 - libretro-common/include/gfx/math/vector_2.h | 138 - libretro-common/include/gfx/math/vector_3.h | 68 - libretro-common/include/gfx/math/vector_4.h | 61 - libretro-common/include/gfx/scaler/filter.h | 37 - libretro-common/include/gfx/scaler/pixconv.h | 110 - libretro-common/include/gfx/scaler/scaler.h | 166 - .../include/gfx/scaler/scaler_int.h | 53 - libretro-common/include/gfx/video_frame.h | 227 - libretro-common/include/glsym/glsym.h | 45 - libretro-common/include/glsym/glsym_es2.h | 639 - libretro-common/include/glsym/glsym_es3.h | 653 - libretro-common/include/glsym/glsym_gl.h | 3145 ----- libretro-common/include/glsym/rglgen.h | 46 - .../include/glsym/rglgen_headers.h | 53 - .../include/glsym/rglgen_private_headers.h | 76 - libretro-common/include/glsym/switch/nx_gl.h | 848 -- .../include/glsym/switch/nx_glsym.h | 928 -- libretro-common/include/libchdr/bitstream.h | 42 - libretro-common/include/libchdr/cdrom.h | 110 - libretro-common/include/libchdr/flac.h | 76 - libretro-common/include/libchdr/huffman.h | 84 - .../include/libchdr/libchdr_zlib.h | 96 - .../include/libchdr/libchdr_zstd.h | 51 - libretro-common/include/libchdr/lzma.h | 60 - libretro-common/include/libchdr/minmax.h | 21 - libretro-common/include/libco.h | 79 - libretro-common/include/libretro.h | 666 + libretro-common/include/libretro_d3d.h | 40 - libretro-common/include/libretro_d3d11.h | 53 - libretro-common/include/libretro_d3d12.h | 54 - libretro-common/include/libretro_dspfilter.h | 223 - libretro-common/include/libretro_gskit_ps2.h | 66 - libretro-common/include/libretro_vulkan.h | 494 - libretro-common/include/lists/file_list.h | 143 - libretro-common/include/lists/linked_list.h | 298 - libretro-common/include/lists/nested_list.h | 242 - libretro-common/include/lrc_hash.h | 115 - libretro-common/include/math/complex.h | 77 - libretro-common/include/math/float_minmax.h | 61 - libretro-common/include/math/fxp.h | 61 - .../include/media/media_detect_cd.h | 61 - libretro-common/include/memcpy_nt.h | 81 - libretro-common/include/memmap.h | 226 +- libretro-common/include/memory/mem2_manager.h | 79 - libretro-common/include/memory/mem_stats.h | 57 - libretro-common/include/net/net_compat.h | 425 - libretro-common/include/net/net_http.h | 188 - libretro-common/include/net/net_http_parse.h | 53 - libretro-common/include/net/net_ifinfo.h | 54 - libretro-common/include/net/net_socket.h | 116 - libretro-common/include/net/net_socket_ssl.h | 50 - .../include/playlists/label_sanitization.h | 42 - libretro-common/include/queues/fifo_queue.h | 170 - .../include/queues/generic_queue.h | 208 - .../include/queues/message_queue.h | 156 - libretro-common/include/queues/task_queue.h | 785 -- libretro-common/include/retro_atomic.h | 795 +- libretro-common/include/retro_common_api.h | 7 +- libretro-common/include/retro_dirent.h | 18 + libretro-common/include/retro_environment.h | 17 +- libretro-common/include/retro_math.h | 6 + libretro-common/include/retro_miscellaneous.h | 43 +- libretro-common/include/retro_posix_source.h | 65 + libretro-common/include/retro_spsc.h | 44 +- libretro-common/include/retro_timers.h | 31 +- libretro-common/include/rthreads/async_job.h | 35 - .../include/rthreads/retro_eventcount.h | 302 + libretro-common/include/rthreads/rthreads.h | 111 +- libretro-common/include/rthreads/tpool.h | 96 - libretro-common/include/streams/file_stream.h | 165 +- .../include/streams/network_stream.h | 396 - libretro-common/include/streams/rzip_stream.h | 16 + .../include/streams/stdin_stream.h | 50 - .../include/streams/trans_stream.h | 127 - libretro-common/include/string/rstrtod.h | 108 + libretro-common/include/string/stdstring.h | 10 + libretro-common/include/time/rtime.h | 2 +- libretro-common/include/utils/md5.h | 49 - libretro-common/include/vfs/vfs.h | 36 +- libretro-common/include/vfs/vfs_hybrid.h | 31 - .../include/vfs/vfs_implementation.h | 48 + .../include/vulkan/vulkan_symbol_wrapper.h | 347 - libretro-common/libco/aarch64.c | 129 - libretro-common/libco/amd64.c | 246 - libretro-common/libco/armeabi.c | 110 - libretro-common/libco/fiber.c | 71 - libretro-common/libco/genode.cpp | 31 - libretro-common/libco/libco.c | 45 - libretro-common/libco/ppc.c | 629 - libretro-common/libco/ps2.c | 59 - libretro-common/libco/ps3.S | 55 - libretro-common/libco/psp1.c | 41 - libretro-common/libco/psp2.c | 112 - libretro-common/libco/scefiber.c | 92 - libretro-common/libco/sjlj.c | 113 - libretro-common/libco/ucontext.c | 80 - libretro-common/libco/x86.c | 117 - libretro-common/lists/dir_list.c | 33 +- libretro-common/lists/file_list.c | 356 - libretro-common/lists/linked_list.c | 479 - libretro-common/lists/nested_list.c | 582 - libretro-common/lists/string_list.c | 127 +- libretro-common/lists/vector_list.c | 95 - libretro-common/media/media_detect_cd.c | 554 - libretro-common/memmap/memalign.c | 13 +- libretro-common/memmap/memcpy_nt.c | 247 - libretro-common/memmap/memmap.c | 1219 +- libretro-common/memory/mem2_manager.c | 342 - libretro-common/memory/mem_stats.c | 527 - libretro-common/net/cacert.h | 3805 ------ libretro-common/net/net_compat.c | 640 - libretro-common/net/net_http.c | 2480 ---- libretro-common/net/net_http_parse.c | 98 - libretro-common/net/net_ifinfo.c | 419 - libretro-common/net/net_socket.c | 853 -- libretro-common/net/net_socket_ssl_bear.c | 450 - libretro-common/net/net_socket_ssl_mbed.c | 428 - .../playlists/label_sanitization.c | 201 - libretro-common/queues/fifo_queue.c | 126 - libretro-common/queues/generic_queue.c | 326 - libretro-common/queues/message_queue.c | 341 - libretro-common/queues/retro_spsc.c | 154 +- libretro-common/queues/task_queue.c | 1396 -- libretro-common/rthreads/ctr_pthread.h | 328 - libretro-common/rthreads/gx_pthread.h | 186 - libretro-common/rthreads/psp_pthread.h | 305 - libretro-common/rthreads/retro_eventcount.c | 1730 +++ libretro-common/rthreads/rthreads.c | 3658 +++++- libretro-common/rthreads/tpool.c | 299 - libretro-common/rthreads/xenon_sdl_threads.c | 58 - .../retro_atomic_extern_c_linkage/Makefile | 50 - .../retro_atomic_extern_c_linkage_test.cpp | 224 - .../samples/atomic/retro_atomic_test/Makefile | 43 - .../retro_atomic_test/retro_atomic_test.c | 418 - .../samples/audio/audio_mixer_loop/Makefile | 65 - .../audio_mixer_loop/audio_mixer_loop_test.c | 538 - .../audio/audio_mixer_loop/ogg_fixture.h | 282 - .../samples/compat/fnmatch/Makefile | 34 - .../compat/fnmatch/compat_fnmatch_test.c | 58 - .../samples/compat/snprintf/Makefile | 35 - .../samples/compat/snprintf/snprintf_test.c | 51 - .../samples/core_options/README.md | 59 - .../conversion_scripts/core_option_regex.py | 80 - .../conversion_scripts/v1_to_v2_converter.py | 419 - .../libretro_core_options.h | 465 - .../libretro_core_options_intl.h | 157 - .../example_default/libretro_core_options.h | 298 - .../libretro_core_options_intl.h | 92 - .../libretro_core_options.h | 325 - .../libretro_core_options_intl.h | 92 - .../workflows/crowdin_initial_setup.yml | 32 - .../workflows/crowdin_source_upload.yml | 37 - .../workflows/crowdin_translation_sync.yml | 55 - .../example_translation/instructions.txt | 92 - .../example_translation/intl/.gitignore | 4 - .../example_translation/intl/activate.py | 70 - .../intl/core_option_regex.py | 95 - .../intl/core_option_translation.py | 633 - .../example_translation/intl/crowdin.yaml | 13 - .../example_translation/intl/crowdin_prep.py | 30 - .../intl/crowdin_source_upload.py | 93 - .../intl/crowdin_translate.py | 39 - .../intl/crowdin_translation_download.py | 93 - .../intl/download_workflow.py | 16 - .../example_translation/intl/initial_sync.py | 102 - .../intl/remove_initial_cycle.py | 30 - .../intl/upload_workflow.py | 15 - .../intl/v1_to_v2_converter.py | 483 - .../libretro_core_options.h | 466 - .../libretro_core_options_intl.h | 159 - .../samples/encodings/base64/Makefile | 35 - .../samples/encodings/base64/unbase64_test.c | 111 - .../samples/encodings/crc32/Makefile | 47 - .../samples/encodings/crc32/crc32_test.c | 691 - .../samples/encodings/vcdiff/Makefile | 29 - .../samples/encodings/vcdiff/vcdiff_test.c | 4684 ------- .../samples/file/archive_file/Makefile | 56 - .../file/archive_file/archive_zip_test.c | 671 - .../samples/file/archive_zstd/Makefile | 30 - .../file/archive_zstd/archive_zstd_test.c | 173 - .../samples/file/config_file/Makefile | 41 - .../file/config_file/config_file_fuzz.c | 177 - .../file/config_file/config_file_test.c | 1008 -- .../samples/file/file_path/Makefile | 43 - .../file/file_path/fill_pathname_test.c | 222 - .../file_path/path_resolve_realpath_test.c | 139 - libretro-common/samples/file/nbio/Makefile | 41 - libretro-common/samples/file/nbio/nbio_test.c | 187 - libretro-common/samples/file/vfs/Makefile | 136 - .../file/vfs/filestream_rbuf_fault_test.c | 703 - .../samples/file/vfs/rbuf_fault_hooks.h | 13 - .../samples/file/vfs/vfs_bulk_read_test.c | 760 -- .../samples/file/vfs/vfs_large_file_test.c | 334 - .../samples/file/vfs/vfs_mapped_ptr_test.c | 416 - .../samples/file/vfs/vfs_read_overflow_test.c | 149 - .../samples/file/vfs/vfs_seek_contract_test.c | 399 - .../samples/file/vfs_cdrom/Makefile | 58 - .../vfs_cdrom/cdrom_cuesheet_overflow_test.c | 178 - .../samples/file/vfs_hybrid/Makefile | 52 - .../samples/file/vfs_hybrid/vfs_hybrid_test.c | 356 - .../samples/formats/audio_transfer/Makefile | 52 - .../audio_transfer_window_test.c | 419 - .../samples/formats/bench/Makefile | 54 - .../formats/bench/screenshot_io_bench.c | 261 - libretro-common/samples/formats/bmp/Makefile | 70 - .../samples/formats/bmp/rbmp_encode_test.c | 497 - .../samples/formats/bmp/rbmp_test.c | 191 - libretro-common/samples/formats/cdfs/Makefile | 63 - .../formats/cdfs/cdfs_dir_record_test.c | 271 - .../samples/formats/cdfs/cdfs_pure_api_test.c | 477 - .../samples/formats/data_transfer/Makefile | 52 - .../data_transfer_pool_scrub_test.c | 282 - .../data_transfer/data_transfer_prefix_test.c | 556 - .../data_transfer/data_transfer_source_test.c | 137 - .../data_transfer/data_transfer_window_test.c | 917 -- libretro-common/samples/formats/jpeg/Makefile | 34 - .../samples/formats/jpeg/rjpeg_test.c | 487 - libretro-common/samples/formats/json/Makefile | 51 - .../samples/formats/json/rjson_test.c | 355 - libretro-common/samples/formats/m3u/Makefile | 44 - .../samples/formats/m3u/rm3u_test.c | 359 - libretro-common/samples/formats/png/Makefile | 164 - .../formats/png/rpng_chunk_overflow_test.c | 162 - .../formats/png/rpng_decode_corpus_test.c | 709 - .../samples/formats/png/rpng_roundtrip_test.c | 885 -- .../samples/formats/png/rpng_test.c | 203 - libretro-common/samples/formats/r7z/Makefile | 32 - .../samples/formats/r7z/r7z_lzma_props_test.c | 120 - libretro-common/samples/formats/tga/Makefile | 34 - .../samples/formats/tga/rtga_test.c | 245 - libretro-common/samples/formats/xml/Makefile | 43 - .../samples/formats/xml/rxml_test.c | 67 - libretro-common/samples/net/Makefile | 111 - .../samples/net/net_http_parse_test.c | 200 - libretro-common/samples/net/net_http_test.c | 96 - libretro-common/samples/net/net_ifinfo_test.c | 45 - libretro-common/samples/net/udp-test.c | 55 - .../samples/queues/retro_spsc_test/Makefile | 44 - .../queues/retro_spsc_test/retro_spsc_test.c | 265 - .../task_queue_title_error_test/Makefile | 37 - .../task_queue_title_error_test.c | 399 - .../samples/rthreads/tpool_wait_test/Makefile | 39 - .../tpool_wait_test/tpool_wait_test.c | 311 - libretro-common/samples/streams/chd/Makefile | 25 - .../streams/chd/chd_meta_overflow_test.c | 338 - libretro-common/samples/streams/rzip/Makefile | 98 - libretro-common/samples/streams/rzip/rzip.c | 368 - .../streams/rzip/rzip_chunk_size_test.c | 172 - .../streams/rzip/rzip_matches_buf_test.c | 209 - .../samples/string/strlcpy_append/Makefile | 35 - .../strlcpy_append/strlcpy_append_test.c | 268 - .../string/word_wrap_overflow_test/Makefile | 35 - .../word_wrap_overflow_test.c | 271 - libretro-common/streams/chd_stream.c | 14 +- libretro-common/streams/file_stream.c | 286 +- libretro-common/streams/interface_stream.c | 63 +- libretro-common/streams/network_stream.c | 331 - libretro-common/streams/rzip_stream.c | 1537 --- libretro-common/streams/stdin_stream.c | 155 - libretro-common/streams/trans_stream.c | 104 - .../streams/trans_stream_deflate.c | 279 - libretro-common/streams/trans_stream_pipe.c | 123 - libretro-common/streams/trans_stream_zlib.c | 342 - libretro-common/string/rstrtod.c | 1238 ++ libretro-common/string/rstrtod_pow5.inc | 654 + libretro-common/string/stdstring.c | 45 + libretro-common/test/formats/test_rjpeg.c | 1195 -- libretro-common/test/formats/test_rpng.c | 468 - libretro-common/test/formats/test_rwav.c | 2508 ---- .../test/formats/test_rwebm_audio.c | 781 -- libretro-common/test/hash/test_hash.c | 86 - libretro-common/test/lists/test_file_list.c | 322 - libretro-common/test/lists/test_linked_list.c | 1300 -- .../test/queues/test_generic_queue.c | 410 - libretro-common/test/string/test_stdstring.c | 442 - libretro-common/test/utils/test_utils.c | 159 - libretro-common/time/rtime.c | 119 +- libretro-common/tools/README.md | 118 - .../tools/cdfs/cdfs_backend_compare.c | 75 - .../tools/cdfs/cdfs_sector_compare.c | 53 - libretro-common/tools/chd/avhuff_decode.py | 80 - libretro-common/tools/chd/chd_cd_test.py | 104 - libretro-common/tools/chd/chd_map_test.c | 481 - libretro-common/tools/chd/chd_probe.py | 104 - libretro-common/tools/chd/chd_slice.py | 123 - libretro-common/tools/chd/find_av_chd.py | 57 - .../tools/chd/make_subchannel_cd.py | 77 - libretro-common/tools/chd/rchd_compare_test.c | 42 - libretro-common/tools/chd/rchd_crc16_test.c | 57 - libretro-common/tools/chd/rchd_open_test.c | 53 - libretro-common/tools/chd/rchd_read_test.c | 61 - libretro-common/tools/chd/rchd_sector_test.c | 46 - libretro-common/tools/chd/rchd_supply_test.c | 65 - .../tools/cheevos/rc_hash_backend_compare.c | 83 - .../tools/encodings/adler32_test.c | 122 - libretro-common/tools/encodings/huff_test.c | 67 - libretro-common/tools/encodings/rzstd_bench.c | 77 - .../tools/encodings/rzstd_encode_test.c | 56 - .../tools/encodings/rzstd_frame_bench.c | 54 - .../tools/encodings/rzstd_frame_test.c | 28 - .../tools/encodings/rzstd_fse_test.c | 48 - .../tools/encodings/rzstd_multiblock_test.c | 59 - .../tools/flac/audio_transfer_flac_test.c | 67 - libretro-common/tools/flac/flacprobe.c | 74 - libretro-common/tools/flac/make_mka.py | 71 - libretro-common/tools/flac/make_ogg.py | 47 - .../tools/flac/rflac_header_test.c | 71 - libretro-common/tools/flac/rflac_mka_test.c | 68 - libretro-common/tools/flac/rflac_push_test.c | 93 - libretro-common/tools/formats/rxml_treehash.c | 92 - libretro-common/tools/mpeg1/bench.c | 98 - libretro-common/tools/mpeg1/diff_video.c | 142 - libretro-common/tools/mpeg1/fuzz_demux.c | 63 - libretro-common/tools/mpeg1/gen_tables.py | 225 - libretro-common/tools/mpeg1/idct_accuracy.c | 89 - libretro-common/utils/md5.c | 299 - libretro-common/utils/sha1.c | 416 - .../common/vfs/VfsImplementationSaf.java | 465 - libretro-common/vfs/vfs_hybrid.c | 412 - libretro-common/vfs/vfs_implementation.c | 1913 ++- .../vfs/vfs_implementation_cdrom.c | 12 +- libretro-common/vfs/vfs_implementation_nfs.h | 106 + libretro-common/vfs/vfs_implementation_saf.c | 992 -- libretro-common/vfs/vfs_implementation_smb.c | 815 -- libretro-common/vfs/vfs_implementation_smb.h | 20 +- .../vfs/vfs_implementation_uwp.cpp | 963 -- .../vulkan/vulkan_symbol_wrapper.c | 479 - libretro_core_options.c | 4 +- opera_lr_dsp.c | 2 +- opera_lr_dsp_threaded.ic | 251 +- tools/chd/run.sh | 3 +- 580 files changed, 15189 insertions(+), 236187 deletions(-) delete mode 100644 libretro-common/Makefile.test delete mode 100644 libretro-common/audio/audio_mix.c delete mode 100644 libretro-common/audio/audio_mixer.c delete mode 100644 libretro-common/audio/conversion/float_to_s16.c delete mode 100644 libretro-common/audio/conversion/float_to_s16_neon.S delete mode 100644 libretro-common/audio/conversion/float_to_s16_neon.c delete mode 100644 libretro-common/audio/conversion/mono_to_stereo_float.c delete mode 100644 libretro-common/audio/conversion/s16_to_float.c delete mode 100644 libretro-common/audio/conversion/s16_to_float_neon.S delete mode 100644 libretro-common/audio/conversion/s16_to_float_neon.c delete mode 100644 libretro-common/audio/conversion/stereo_to_mono_float.c delete mode 100644 libretro-common/audio/dsp_filter.c delete mode 100644 libretro-common/audio/dsp_filters/BassBoost.dsp delete mode 100644 libretro-common/audio/dsp_filters/ChipTune-Lowpass.dsp delete mode 100644 libretro-common/audio/dsp_filters/ChipTuneEnhance.dsp delete mode 100644 libretro-common/audio/dsp_filters/Chorus.dsp delete mode 100644 libretro-common/audio/dsp_filters/Crystalizer.dsp delete mode 100644 libretro-common/audio/dsp_filters/EQ.dsp delete mode 100644 libretro-common/audio/dsp_filters/Echo.dsp delete mode 100644 libretro-common/audio/dsp_filters/EchoReverb.dsp delete mode 100644 libretro-common/audio/dsp_filters/HighShelfDampen.dsp delete mode 100644 libretro-common/audio/dsp_filters/IIR.dsp delete mode 100644 libretro-common/audio/dsp_filters/LowPassCPS.dsp delete mode 100644 libretro-common/audio/dsp_filters/Makefile delete mode 100644 libretro-common/audio/dsp_filters/Mono.dsp delete mode 100644 libretro-common/audio/dsp_filters/Panning.dsp delete mode 100644 libretro-common/audio/dsp_filters/Phaser.dsp delete mode 100644 libretro-common/audio/dsp_filters/Reverb.dsp delete mode 100644 libretro-common/audio/dsp_filters/Tremolo.dsp delete mode 100644 libretro-common/audio/dsp_filters/Vibrato.dsp delete mode 100644 libretro-common/audio/dsp_filters/WahWah.dsp delete mode 100644 libretro-common/audio/dsp_filters/chorus.c delete mode 100755 libretro-common/audio/dsp_filters/configure delete mode 100644 libretro-common/audio/dsp_filters/crystalizer.c delete mode 100644 libretro-common/audio/dsp_filters/echo.c delete mode 100644 libretro-common/audio/dsp_filters/eq.c delete mode 100644 libretro-common/audio/dsp_filters/fft/fft.c delete mode 100644 libretro-common/audio/dsp_filters/fft/fft.h delete mode 100644 libretro-common/audio/dsp_filters/iir.c delete mode 100644 libretro-common/audio/dsp_filters/link.T delete mode 100644 libretro-common/audio/dsp_filters/panning.c delete mode 100644 libretro-common/audio/dsp_filters/phaser.c delete mode 100644 libretro-common/audio/dsp_filters/reverb.c delete mode 100644 libretro-common/audio/dsp_filters/tremolo.c delete mode 100644 libretro-common/audio/dsp_filters/vibrato.c delete mode 100644 libretro-common/audio/dsp_filters/wahwah.c delete mode 100644 libretro-common/audio/resampler/audio_resampler.c delete mode 100644 libretro-common/audio/resampler/drivers/README.sinc_int16.md delete mode 100644 libretro-common/audio/resampler/drivers/nearest_resampler.c delete mode 100644 libretro-common/audio/resampler/drivers/nearest_resampler_int16.c delete mode 100644 libretro-common/audio/resampler/drivers/sinc_resampler.c delete mode 100644 libretro-common/audio/resampler/drivers/sinc_resampler_int16.c delete mode 100644 libretro-common/audio/resampler/drivers/sinc_resampler_neon.S delete mode 100644 libretro-common/audio/resampler/test/sinc_ref_float.c delete mode 100644 libretro-common/audio/resampler/test/sinc_ref_float.h delete mode 100644 libretro-common/audio/resampler/test/test_cc_int16.c delete mode 100644 libretro-common/audio/resampler/test/test_nearest_int16.c delete mode 100644 libretro-common/audio/resampler/test/test_sinc_int16.c delete mode 100644 libretro-common/compat/compat_fnmatch.c delete mode 100644 libretro-common/compat/compat_getopt.c delete mode 100644 libretro-common/compat/compat_ifaddrs.c delete mode 100644 libretro-common/compat/compat_strldup.c delete mode 100644 libretro-common/compat/compat_vscprintf.c delete mode 100644 libretro-common/crt/include/string.h delete mode 100644 libretro-common/crt/string.c delete mode 100644 libretro-common/dynamic/dylib.c delete mode 100644 libretro-common/encodings/encoding_base64.c delete mode 100644 libretro-common/encodings/encoding_rlz4.c delete mode 100644 libretro-common/encodings/encoding_vcdiff.c create mode 100644 libretro-common/features/cpu_class.h delete mode 100644 libretro-common/file/archive_file.c delete mode 100644 libretro-common/file/archive_file_7z.c delete mode 100644 libretro-common/file/archive_file_zlib.c delete mode 100644 libretro-common/file/archive_file_zstd.c delete mode 100644 libretro-common/file/config_file.c delete mode 100644 libretro-common/file/config_file_io.c delete mode 100644 libretro-common/file/config_file_userdata.c delete mode 100644 libretro-common/file/nbio/nbio_intf.c delete mode 100644 libretro-common/file/nbio/nbio_linux.c delete mode 100644 libretro-common/file/nbio/nbio_stdio.c delete mode 100644 libretro-common/file/nbio/nbio_unixmmap.c delete mode 100644 libretro-common/file/nbio/nbio_windowsmmap.c delete mode 100644 libretro-common/file/rbmp_file.c delete mode 100644 libretro-common/file/rpng_file.c delete mode 100644 libretro-common/formats/7z/r7z_archive.c delete mode 100644 libretro-common/formats/7z/r7z_bcj2.c delete mode 100644 libretro-common/formats/7z/r7z_filters.c delete mode 100644 libretro-common/formats/7z/r7z_lzma2.c delete mode 100644 libretro-common/formats/7z/r7z_lzma_stream.c delete mode 100644 libretro-common/formats/aac/raac.c delete mode 100644 libretro-common/formats/audio_transfer.c delete mode 100644 libretro-common/formats/bmp/rbmp.c delete mode 100644 libretro-common/formats/bmp/rbmp_encode.c delete mode 100644 libretro-common/formats/cdfs/cdfs.c delete mode 100644 libretro-common/formats/chd/FORMAT.md delete mode 100644 libretro-common/formats/data_transfer.c delete mode 100644 libretro-common/formats/dds/rdds.c delete mode 100644 libretro-common/formats/h264/rh264.c delete mode 100644 libretro-common/formats/h265/rh265.c delete mode 100644 libretro-common/formats/h265/rh265_bd.inc delete mode 100644 libretro-common/formats/image/image_hdr_blit.c delete mode 100644 libretro-common/formats/image_texture.c delete mode 100644 libretro-common/formats/image_transfer.c delete mode 100644 libretro-common/formats/jpeg/rjpeg.c delete mode 100644 libretro-common/formats/json/rjson.c delete mode 100644 libretro-common/formats/libchdr/libchdr_bitstream.c delete mode 100644 libretro-common/formats/libchdr/libchdr_cdrom.c delete mode 100644 libretro-common/formats/libchdr/libchdr_chd.c delete mode 100644 libretro-common/formats/libchdr/libchdr_flac.c delete mode 100644 libretro-common/formats/libchdr/libchdr_flac_codec.c delete mode 100644 libretro-common/formats/libchdr/libchdr_huffman.c delete mode 100644 libretro-common/formats/libchdr/libchdr_lzma.c delete mode 100644 libretro-common/formats/libchdr/libchdr_zlib.c delete mode 100644 libretro-common/formats/libchdr/libchdr_zstd.c delete mode 100644 libretro-common/formats/logiqx_dat/logiqx_dat.c delete mode 100644 libretro-common/formats/m3u/rm3u.c delete mode 100644 libretro-common/formats/mod/rmodtracker.c delete mode 100644 libretro-common/formats/mp3/rmp3.c delete mode 100644 libretro-common/formats/mp4/rmp4.c delete mode 100644 libretro-common/formats/mp4/rmp4_audio.c delete mode 100644 libretro-common/formats/mp4/rmp4_video.c delete mode 100644 libretro-common/formats/mpeg1/rmpeg1_ps.c delete mode 100644 libretro-common/formats/mpeg1/rmpeg1_tables.h delete mode 100644 libretro-common/formats/mpeg1/rmpeg1_video.c delete mode 100644 libretro-common/formats/opus/ropus.c delete mode 100644 libretro-common/formats/png/rpng.c delete mode 100644 libretro-common/formats/png/rpng_apng.c delete mode 100644 libretro-common/formats/png/rpng_encode.c delete mode 100644 libretro-common/formats/png/rpng_internal.h delete mode 100644 libretro-common/formats/tga/rtga.c delete mode 100644 libretro-common/formats/vorbis/rvorbis.c delete mode 100644 libretro-common/formats/vp8/rvp8.c delete mode 100644 libretro-common/formats/vp9/rvp9.c delete mode 100644 libretro-common/formats/vp9/rvp9_recon.inc delete mode 100644 libretro-common/formats/wav/rwav.c delete mode 100644 libretro-common/formats/webm/rwebm.c delete mode 100644 libretro-common/formats/webm/rwebm_audio.c delete mode 100644 libretro-common/formats/webm/rwebm_video.c delete mode 100644 libretro-common/formats/webp/rwebp.c delete mode 100644 libretro-common/formats/xml/rxml.c delete mode 100644 libretro-common/gfx/gl_capabilities.c delete mode 100644 libretro-common/gfx/scaler/pixconv.c delete mode 100644 libretro-common/gfx/scaler/scaler.c delete mode 100644 libretro-common/gfx/scaler/scaler_filter.c delete mode 100644 libretro-common/gfx/scaler/scaler_int.c delete mode 100644 libretro-common/glsym/README.md delete mode 100755 libretro-common/glsym/glgen.py delete mode 100644 libretro-common/glsym/glsym_es2.c delete mode 100644 libretro-common/glsym/glsym_es3.c delete mode 100644 libretro-common/glsym/glsym_gl.c delete mode 100644 libretro-common/glsym/rglgen.c delete mode 100755 libretro-common/glsym/rglgen.py delete mode 100644 libretro-common/glsym/xglgen.py delete mode 100644 libretro-common/hash/lrc_hash.c delete mode 100644 libretro-common/include/7z/r7z_archive.h delete mode 100644 libretro-common/include/7z/r7z_bcj2.h delete mode 100644 libretro-common/include/7z/r7z_filters.h delete mode 100644 libretro-common/include/7z/r7z_lzma2.h delete mode 100644 libretro-common/include/7z/r7z_lzma_stream.h delete mode 100644 libretro-common/include/array/rbuf.h delete mode 100644 libretro-common/include/array/rhmap.h delete mode 100644 libretro-common/include/audio/audio_mix.h delete mode 100644 libretro-common/include/audio/audio_mixer.h delete mode 100644 libretro-common/include/audio/audio_resampler.h delete mode 100644 libretro-common/include/audio/cc_resampler_int16.h delete mode 100644 libretro-common/include/audio/conversion/dual_mono.h delete mode 100644 libretro-common/include/audio/conversion/float_to_s16.h delete mode 100644 libretro-common/include/audio/conversion/s16_to_float.h delete mode 100644 libretro-common/include/audio/dsp_filter.h delete mode 100644 libretro-common/include/audio/nearest_resampler_int16.h delete mode 100644 libretro-common/include/audio/sinc_resampler_int16.h delete mode 100644 libretro-common/include/clamping.h delete mode 100644 libretro-common/include/compat/apple_compat.h delete mode 100644 libretro-common/include/compat/fnmatch.h delete mode 100644 libretro-common/include/compat/getopt.h delete mode 100644 libretro-common/include/compat/ifaddrs.h delete mode 100644 libretro-common/include/defines/cocoa_defines.h delete mode 100644 libretro-common/include/defines/d3d_defines.h delete mode 100644 libretro-common/include/defines/gx_defines.h delete mode 100644 libretro-common/include/defines/ps3_defines.h delete mode 100644 libretro-common/include/defines/ps4_defines.h delete mode 100644 libretro-common/include/defines/psp_defines.h delete mode 100644 libretro-common/include/dynamic/dylib.h delete mode 100644 libretro-common/include/encodings/base64.h delete mode 100644 libretro-common/include/encodings/encoding_vcdiff.h delete mode 100644 libretro-common/include/encodings/rlz4.h delete mode 100644 libretro-common/include/encodings/win32.h delete mode 100644 libretro-common/include/fastcpy.h delete mode 100644 libretro-common/include/file/archive_file.h delete mode 100644 libretro-common/include/file/config_file.h delete mode 100644 libretro-common/include/file/config_file_userdata.h delete mode 100644 libretro-common/include/file/nbio.h delete mode 100644 libretro-common/include/filters.h delete mode 100644 libretro-common/include/formats/audio.h delete mode 100644 libretro-common/include/formats/cdfs.h delete mode 100644 libretro-common/include/formats/data_transfer.h delete mode 100644 libretro-common/include/formats/image.h delete mode 100644 libretro-common/include/formats/logiqx_dat.h delete mode 100644 libretro-common/include/formats/raac.h delete mode 100644 libretro-common/include/formats/rbmp.h delete mode 100644 libretro-common/include/formats/rdds.h delete mode 100644 libretro-common/include/formats/rh264.h delete mode 100644 libretro-common/include/formats/rh265.h delete mode 100644 libretro-common/include/formats/rjpeg.h delete mode 100644 libretro-common/include/formats/rjson.h delete mode 100644 libretro-common/include/formats/rjson_helpers.h delete mode 100644 libretro-common/include/formats/rjson_stream.h delete mode 100644 libretro-common/include/formats/rm3u.h delete mode 100644 libretro-common/include/formats/rm3u_stream.h delete mode 100644 libretro-common/include/formats/rmodtracker.h delete mode 100644 libretro-common/include/formats/rmp3.h delete mode 100644 libretro-common/include/formats/rmp4.h delete mode 100644 libretro-common/include/formats/rmp4_audio.h delete mode 100644 libretro-common/include/formats/rmp4_video.h delete mode 100644 libretro-common/include/formats/rmpeg1_ps.h delete mode 100644 libretro-common/include/formats/rmpeg1_video.h delete mode 100644 libretro-common/include/formats/ropus.h delete mode 100644 libretro-common/include/formats/rpng.h delete mode 100644 libretro-common/include/formats/rtga.h delete mode 100644 libretro-common/include/formats/rvorbis.h delete mode 100644 libretro-common/include/formats/rvp8.h delete mode 100644 libretro-common/include/formats/rvp9.h delete mode 100644 libretro-common/include/formats/rwav.h delete mode 100644 libretro-common/include/formats/rwebm.h delete mode 100644 libretro-common/include/formats/rwebm_audio.h delete mode 100644 libretro-common/include/formats/rwebm_video.h delete mode 100644 libretro-common/include/formats/rwebp.h delete mode 100644 libretro-common/include/formats/rxml.h delete mode 100644 libretro-common/include/formats/rxml_stream.h delete mode 100644 libretro-common/include/gfx/gl_capabilities.h delete mode 100644 libretro-common/include/gfx/math/matrix_3x3.h delete mode 100644 libretro-common/include/gfx/math/matrix_4x4.h delete mode 100644 libretro-common/include/gfx/math/vector_2.h delete mode 100644 libretro-common/include/gfx/math/vector_3.h delete mode 100644 libretro-common/include/gfx/math/vector_4.h delete mode 100644 libretro-common/include/gfx/scaler/filter.h delete mode 100644 libretro-common/include/gfx/scaler/pixconv.h delete mode 100644 libretro-common/include/gfx/scaler/scaler.h delete mode 100644 libretro-common/include/gfx/scaler/scaler_int.h delete mode 100644 libretro-common/include/gfx/video_frame.h delete mode 100644 libretro-common/include/glsym/glsym.h delete mode 100644 libretro-common/include/glsym/glsym_es2.h delete mode 100644 libretro-common/include/glsym/glsym_es3.h delete mode 100644 libretro-common/include/glsym/glsym_gl.h delete mode 100644 libretro-common/include/glsym/rglgen.h delete mode 100644 libretro-common/include/glsym/rglgen_headers.h delete mode 100644 libretro-common/include/glsym/rglgen_private_headers.h delete mode 100644 libretro-common/include/glsym/switch/nx_gl.h delete mode 100644 libretro-common/include/glsym/switch/nx_glsym.h delete mode 100644 libretro-common/include/libchdr/bitstream.h delete mode 100644 libretro-common/include/libchdr/cdrom.h delete mode 100644 libretro-common/include/libchdr/flac.h delete mode 100644 libretro-common/include/libchdr/huffman.h delete mode 100644 libretro-common/include/libchdr/libchdr_zlib.h delete mode 100644 libretro-common/include/libchdr/libchdr_zstd.h delete mode 100644 libretro-common/include/libchdr/lzma.h delete mode 100644 libretro-common/include/libchdr/minmax.h delete mode 100644 libretro-common/include/libco.h delete mode 100644 libretro-common/include/libretro_d3d.h delete mode 100644 libretro-common/include/libretro_d3d11.h delete mode 100644 libretro-common/include/libretro_d3d12.h delete mode 100644 libretro-common/include/libretro_dspfilter.h delete mode 100644 libretro-common/include/libretro_gskit_ps2.h delete mode 100644 libretro-common/include/libretro_vulkan.h delete mode 100644 libretro-common/include/lists/file_list.h delete mode 100644 libretro-common/include/lists/linked_list.h delete mode 100644 libretro-common/include/lists/nested_list.h delete mode 100644 libretro-common/include/lrc_hash.h delete mode 100644 libretro-common/include/math/complex.h delete mode 100644 libretro-common/include/math/float_minmax.h delete mode 100644 libretro-common/include/math/fxp.h delete mode 100644 libretro-common/include/media/media_detect_cd.h delete mode 100644 libretro-common/include/memcpy_nt.h delete mode 100644 libretro-common/include/memory/mem2_manager.h delete mode 100644 libretro-common/include/memory/mem_stats.h delete mode 100644 libretro-common/include/net/net_compat.h delete mode 100644 libretro-common/include/net/net_http.h delete mode 100644 libretro-common/include/net/net_http_parse.h delete mode 100644 libretro-common/include/net/net_ifinfo.h delete mode 100644 libretro-common/include/net/net_socket.h delete mode 100644 libretro-common/include/net/net_socket_ssl.h delete mode 100644 libretro-common/include/playlists/label_sanitization.h delete mode 100644 libretro-common/include/queues/fifo_queue.h delete mode 100644 libretro-common/include/queues/generic_queue.h delete mode 100644 libretro-common/include/queues/message_queue.h delete mode 100644 libretro-common/include/queues/task_queue.h create mode 100644 libretro-common/include/retro_posix_source.h delete mode 100644 libretro-common/include/rthreads/async_job.h create mode 100644 libretro-common/include/rthreads/retro_eventcount.h delete mode 100644 libretro-common/include/rthreads/tpool.h delete mode 100644 libretro-common/include/streams/network_stream.h delete mode 100644 libretro-common/include/streams/stdin_stream.h delete mode 100644 libretro-common/include/streams/trans_stream.h create mode 100644 libretro-common/include/string/rstrtod.h delete mode 100644 libretro-common/include/utils/md5.h delete mode 100644 libretro-common/include/vfs/vfs_hybrid.h delete mode 100644 libretro-common/include/vulkan/vulkan_symbol_wrapper.h delete mode 100644 libretro-common/libco/aarch64.c delete mode 100644 libretro-common/libco/amd64.c delete mode 100644 libretro-common/libco/armeabi.c delete mode 100644 libretro-common/libco/fiber.c delete mode 100644 libretro-common/libco/genode.cpp delete mode 100644 libretro-common/libco/libco.c delete mode 100644 libretro-common/libco/ppc.c delete mode 100644 libretro-common/libco/ps2.c delete mode 100644 libretro-common/libco/ps3.S delete mode 100644 libretro-common/libco/psp1.c delete mode 100644 libretro-common/libco/psp2.c delete mode 100644 libretro-common/libco/scefiber.c delete mode 100644 libretro-common/libco/sjlj.c delete mode 100644 libretro-common/libco/ucontext.c delete mode 100644 libretro-common/libco/x86.c delete mode 100644 libretro-common/lists/file_list.c delete mode 100644 libretro-common/lists/linked_list.c delete mode 100644 libretro-common/lists/nested_list.c delete mode 100644 libretro-common/lists/vector_list.c delete mode 100644 libretro-common/media/media_detect_cd.c delete mode 100644 libretro-common/memmap/memcpy_nt.c delete mode 100644 libretro-common/memory/mem2_manager.c delete mode 100644 libretro-common/memory/mem_stats.c delete mode 100644 libretro-common/net/cacert.h delete mode 100644 libretro-common/net/net_compat.c delete mode 100644 libretro-common/net/net_http.c delete mode 100644 libretro-common/net/net_http_parse.c delete mode 100644 libretro-common/net/net_ifinfo.c delete mode 100644 libretro-common/net/net_socket.c delete mode 100644 libretro-common/net/net_socket_ssl_bear.c delete mode 100644 libretro-common/net/net_socket_ssl_mbed.c delete mode 100644 libretro-common/playlists/label_sanitization.c delete mode 100644 libretro-common/queues/fifo_queue.c delete mode 100644 libretro-common/queues/generic_queue.c delete mode 100644 libretro-common/queues/message_queue.c delete mode 100644 libretro-common/queues/task_queue.c delete mode 100644 libretro-common/rthreads/ctr_pthread.h delete mode 100644 libretro-common/rthreads/gx_pthread.h delete mode 100644 libretro-common/rthreads/psp_pthread.h create mode 100644 libretro-common/rthreads/retro_eventcount.c delete mode 100644 libretro-common/rthreads/tpool.c delete mode 100644 libretro-common/rthreads/xenon_sdl_threads.c delete mode 100644 libretro-common/samples/atomic/retro_atomic_extern_c_linkage/Makefile delete mode 100644 libretro-common/samples/atomic/retro_atomic_extern_c_linkage/retro_atomic_extern_c_linkage_test.cpp delete mode 100644 libretro-common/samples/atomic/retro_atomic_test/Makefile delete mode 100644 libretro-common/samples/atomic/retro_atomic_test/retro_atomic_test.c delete mode 100644 libretro-common/samples/audio/audio_mixer_loop/Makefile delete mode 100644 libretro-common/samples/audio/audio_mixer_loop/audio_mixer_loop_test.c delete mode 100644 libretro-common/samples/audio/audio_mixer_loop/ogg_fixture.h delete mode 100644 libretro-common/samples/compat/fnmatch/Makefile delete mode 100644 libretro-common/samples/compat/fnmatch/compat_fnmatch_test.c delete mode 100644 libretro-common/samples/compat/snprintf/Makefile delete mode 100644 libretro-common/samples/compat/snprintf/snprintf_test.c delete mode 100644 libretro-common/samples/core_options/README.md delete mode 100644 libretro-common/samples/core_options/example_categories/conversion_scripts/core_option_regex.py delete mode 100644 libretro-common/samples/core_options/example_categories/conversion_scripts/v1_to_v2_converter.py delete mode 100644 libretro-common/samples/core_options/example_categories/libretro_core_options.h delete mode 100644 libretro-common/samples/core_options/example_categories/libretro_core_options_intl.h delete mode 100644 libretro-common/samples/core_options/example_default/libretro_core_options.h delete mode 100644 libretro-common/samples/core_options/example_default/libretro_core_options_intl.h delete mode 100644 libretro-common/samples/core_options/example_hide_option/libretro_core_options.h delete mode 100644 libretro-common/samples/core_options/example_hide_option/libretro_core_options_intl.h delete mode 100644 libretro-common/samples/core_options/example_translation/.github/workflows/crowdin_initial_setup.yml delete mode 100644 libretro-common/samples/core_options/example_translation/.github/workflows/crowdin_source_upload.yml delete mode 100644 libretro-common/samples/core_options/example_translation/.github/workflows/crowdin_translation_sync.yml delete mode 100644 libretro-common/samples/core_options/example_translation/instructions.txt delete mode 100644 libretro-common/samples/core_options/example_translation/intl/.gitignore delete mode 100644 libretro-common/samples/core_options/example_translation/intl/activate.py delete mode 100644 libretro-common/samples/core_options/example_translation/intl/core_option_regex.py delete mode 100644 libretro-common/samples/core_options/example_translation/intl/core_option_translation.py delete mode 100644 libretro-common/samples/core_options/example_translation/intl/crowdin.yaml delete mode 100644 libretro-common/samples/core_options/example_translation/intl/crowdin_prep.py delete mode 100644 libretro-common/samples/core_options/example_translation/intl/crowdin_source_upload.py delete mode 100644 libretro-common/samples/core_options/example_translation/intl/crowdin_translate.py delete mode 100644 libretro-common/samples/core_options/example_translation/intl/crowdin_translation_download.py delete mode 100644 libretro-common/samples/core_options/example_translation/intl/download_workflow.py delete mode 100644 libretro-common/samples/core_options/example_translation/intl/initial_sync.py delete mode 100644 libretro-common/samples/core_options/example_translation/intl/remove_initial_cycle.py delete mode 100644 libretro-common/samples/core_options/example_translation/intl/upload_workflow.py delete mode 100644 libretro-common/samples/core_options/example_translation/intl/v1_to_v2_converter.py delete mode 100644 libretro-common/samples/core_options/example_translation/libretro_core_options.h delete mode 100644 libretro-common/samples/core_options/example_translation/libretro_core_options_intl.h delete mode 100644 libretro-common/samples/encodings/base64/Makefile delete mode 100644 libretro-common/samples/encodings/base64/unbase64_test.c delete mode 100644 libretro-common/samples/encodings/crc32/Makefile delete mode 100644 libretro-common/samples/encodings/crc32/crc32_test.c delete mode 100644 libretro-common/samples/encodings/vcdiff/Makefile delete mode 100644 libretro-common/samples/encodings/vcdiff/vcdiff_test.c delete mode 100644 libretro-common/samples/file/archive_file/Makefile delete mode 100644 libretro-common/samples/file/archive_file/archive_zip_test.c delete mode 100644 libretro-common/samples/file/archive_zstd/Makefile delete mode 100644 libretro-common/samples/file/archive_zstd/archive_zstd_test.c delete mode 100644 libretro-common/samples/file/config_file/Makefile delete mode 100644 libretro-common/samples/file/config_file/config_file_fuzz.c delete mode 100644 libretro-common/samples/file/config_file/config_file_test.c delete mode 100644 libretro-common/samples/file/file_path/Makefile delete mode 100644 libretro-common/samples/file/file_path/fill_pathname_test.c delete mode 100644 libretro-common/samples/file/file_path/path_resolve_realpath_test.c delete mode 100644 libretro-common/samples/file/nbio/Makefile delete mode 100644 libretro-common/samples/file/nbio/nbio_test.c delete mode 100644 libretro-common/samples/file/vfs/Makefile delete mode 100644 libretro-common/samples/file/vfs/filestream_rbuf_fault_test.c delete mode 100644 libretro-common/samples/file/vfs/rbuf_fault_hooks.h delete mode 100644 libretro-common/samples/file/vfs/vfs_bulk_read_test.c delete mode 100644 libretro-common/samples/file/vfs/vfs_large_file_test.c delete mode 100644 libretro-common/samples/file/vfs/vfs_mapped_ptr_test.c delete mode 100644 libretro-common/samples/file/vfs/vfs_read_overflow_test.c delete mode 100644 libretro-common/samples/file/vfs/vfs_seek_contract_test.c delete mode 100644 libretro-common/samples/file/vfs_cdrom/Makefile delete mode 100644 libretro-common/samples/file/vfs_cdrom/cdrom_cuesheet_overflow_test.c delete mode 100644 libretro-common/samples/file/vfs_hybrid/Makefile delete mode 100644 libretro-common/samples/file/vfs_hybrid/vfs_hybrid_test.c delete mode 100644 libretro-common/samples/formats/audio_transfer/Makefile delete mode 100644 libretro-common/samples/formats/audio_transfer/audio_transfer_window_test.c delete mode 100644 libretro-common/samples/formats/bench/Makefile delete mode 100644 libretro-common/samples/formats/bench/screenshot_io_bench.c delete mode 100644 libretro-common/samples/formats/bmp/Makefile delete mode 100644 libretro-common/samples/formats/bmp/rbmp_encode_test.c delete mode 100644 libretro-common/samples/formats/bmp/rbmp_test.c delete mode 100644 libretro-common/samples/formats/cdfs/Makefile delete mode 100644 libretro-common/samples/formats/cdfs/cdfs_dir_record_test.c delete mode 100644 libretro-common/samples/formats/cdfs/cdfs_pure_api_test.c delete mode 100644 libretro-common/samples/formats/data_transfer/Makefile delete mode 100644 libretro-common/samples/formats/data_transfer/data_transfer_pool_scrub_test.c delete mode 100644 libretro-common/samples/formats/data_transfer/data_transfer_prefix_test.c delete mode 100644 libretro-common/samples/formats/data_transfer/data_transfer_source_test.c delete mode 100644 libretro-common/samples/formats/data_transfer/data_transfer_window_test.c delete mode 100644 libretro-common/samples/formats/jpeg/Makefile delete mode 100644 libretro-common/samples/formats/jpeg/rjpeg_test.c delete mode 100644 libretro-common/samples/formats/json/Makefile delete mode 100644 libretro-common/samples/formats/json/rjson_test.c delete mode 100644 libretro-common/samples/formats/m3u/Makefile delete mode 100644 libretro-common/samples/formats/m3u/rm3u_test.c delete mode 100644 libretro-common/samples/formats/png/Makefile delete mode 100644 libretro-common/samples/formats/png/rpng_chunk_overflow_test.c delete mode 100644 libretro-common/samples/formats/png/rpng_decode_corpus_test.c delete mode 100644 libretro-common/samples/formats/png/rpng_roundtrip_test.c delete mode 100644 libretro-common/samples/formats/png/rpng_test.c delete mode 100644 libretro-common/samples/formats/r7z/Makefile delete mode 100644 libretro-common/samples/formats/r7z/r7z_lzma_props_test.c delete mode 100644 libretro-common/samples/formats/tga/Makefile delete mode 100644 libretro-common/samples/formats/tga/rtga_test.c delete mode 100644 libretro-common/samples/formats/xml/Makefile delete mode 100644 libretro-common/samples/formats/xml/rxml_test.c delete mode 100644 libretro-common/samples/net/Makefile delete mode 100644 libretro-common/samples/net/net_http_parse_test.c delete mode 100644 libretro-common/samples/net/net_http_test.c delete mode 100644 libretro-common/samples/net/net_ifinfo_test.c delete mode 100644 libretro-common/samples/net/udp-test.c delete mode 100644 libretro-common/samples/queues/retro_spsc_test/Makefile delete mode 100644 libretro-common/samples/queues/retro_spsc_test/retro_spsc_test.c delete mode 100644 libretro-common/samples/queues/task_queue_title_error_test/Makefile delete mode 100644 libretro-common/samples/queues/task_queue_title_error_test/task_queue_title_error_test.c delete mode 100644 libretro-common/samples/rthreads/tpool_wait_test/Makefile delete mode 100644 libretro-common/samples/rthreads/tpool_wait_test/tpool_wait_test.c delete mode 100644 libretro-common/samples/streams/chd/Makefile delete mode 100644 libretro-common/samples/streams/chd/chd_meta_overflow_test.c delete mode 100644 libretro-common/samples/streams/rzip/Makefile delete mode 100644 libretro-common/samples/streams/rzip/rzip.c delete mode 100644 libretro-common/samples/streams/rzip/rzip_chunk_size_test.c delete mode 100644 libretro-common/samples/streams/rzip/rzip_matches_buf_test.c delete mode 100644 libretro-common/samples/string/strlcpy_append/Makefile delete mode 100644 libretro-common/samples/string/strlcpy_append/strlcpy_append_test.c delete mode 100644 libretro-common/samples/string/word_wrap_overflow_test/Makefile delete mode 100644 libretro-common/samples/string/word_wrap_overflow_test/word_wrap_overflow_test.c delete mode 100644 libretro-common/streams/network_stream.c delete mode 100644 libretro-common/streams/rzip_stream.c delete mode 100644 libretro-common/streams/stdin_stream.c delete mode 100644 libretro-common/streams/trans_stream.c delete mode 100644 libretro-common/streams/trans_stream_deflate.c delete mode 100644 libretro-common/streams/trans_stream_pipe.c delete mode 100644 libretro-common/streams/trans_stream_zlib.c create mode 100644 libretro-common/string/rstrtod.c create mode 100644 libretro-common/string/rstrtod_pow5.inc delete mode 100644 libretro-common/test/formats/test_rjpeg.c delete mode 100644 libretro-common/test/formats/test_rpng.c delete mode 100644 libretro-common/test/formats/test_rwav.c delete mode 100644 libretro-common/test/formats/test_rwebm_audio.c delete mode 100644 libretro-common/test/hash/test_hash.c delete mode 100644 libretro-common/test/lists/test_file_list.c delete mode 100644 libretro-common/test/lists/test_linked_list.c delete mode 100644 libretro-common/test/queues/test_generic_queue.c delete mode 100644 libretro-common/test/string/test_stdstring.c delete mode 100644 libretro-common/test/utils/test_utils.c delete mode 100644 libretro-common/tools/README.md delete mode 100644 libretro-common/tools/cdfs/cdfs_backend_compare.c delete mode 100644 libretro-common/tools/cdfs/cdfs_sector_compare.c delete mode 100644 libretro-common/tools/chd/avhuff_decode.py delete mode 100644 libretro-common/tools/chd/chd_cd_test.py delete mode 100644 libretro-common/tools/chd/chd_map_test.c delete mode 100644 libretro-common/tools/chd/chd_probe.py delete mode 100644 libretro-common/tools/chd/chd_slice.py delete mode 100644 libretro-common/tools/chd/find_av_chd.py delete mode 100644 libretro-common/tools/chd/make_subchannel_cd.py delete mode 100644 libretro-common/tools/chd/rchd_compare_test.c delete mode 100644 libretro-common/tools/chd/rchd_crc16_test.c delete mode 100644 libretro-common/tools/chd/rchd_open_test.c delete mode 100644 libretro-common/tools/chd/rchd_read_test.c delete mode 100644 libretro-common/tools/chd/rchd_sector_test.c delete mode 100644 libretro-common/tools/chd/rchd_supply_test.c delete mode 100644 libretro-common/tools/cheevos/rc_hash_backend_compare.c delete mode 100644 libretro-common/tools/encodings/adler32_test.c delete mode 100644 libretro-common/tools/encodings/huff_test.c delete mode 100644 libretro-common/tools/encodings/rzstd_bench.c delete mode 100644 libretro-common/tools/encodings/rzstd_encode_test.c delete mode 100644 libretro-common/tools/encodings/rzstd_frame_bench.c delete mode 100644 libretro-common/tools/encodings/rzstd_frame_test.c delete mode 100644 libretro-common/tools/encodings/rzstd_fse_test.c delete mode 100644 libretro-common/tools/encodings/rzstd_multiblock_test.c delete mode 100644 libretro-common/tools/flac/audio_transfer_flac_test.c delete mode 100644 libretro-common/tools/flac/flacprobe.c delete mode 100644 libretro-common/tools/flac/make_mka.py delete mode 100644 libretro-common/tools/flac/make_ogg.py delete mode 100644 libretro-common/tools/flac/rflac_header_test.c delete mode 100644 libretro-common/tools/flac/rflac_mka_test.c delete mode 100644 libretro-common/tools/flac/rflac_push_test.c delete mode 100644 libretro-common/tools/formats/rxml_treehash.c delete mode 100644 libretro-common/tools/mpeg1/bench.c delete mode 100644 libretro-common/tools/mpeg1/diff_video.c delete mode 100644 libretro-common/tools/mpeg1/fuzz_demux.c delete mode 100644 libretro-common/tools/mpeg1/gen_tables.py delete mode 100644 libretro-common/tools/mpeg1/idct_accuracy.c delete mode 100644 libretro-common/utils/md5.c delete mode 100644 libretro-common/utils/sha1.c delete mode 100644 libretro-common/vfs/saf/src/com/libretro/common/vfs/VfsImplementationSaf.java delete mode 100644 libretro-common/vfs/vfs_hybrid.c create mode 100644 libretro-common/vfs/vfs_implementation_nfs.h delete mode 100644 libretro-common/vfs/vfs_implementation_saf.c delete mode 100644 libretro-common/vfs/vfs_implementation_smb.c delete mode 100644 libretro-common/vfs/vfs_implementation_uwp.cpp delete mode 100644 libretro-common/vulkan/vulkan_symbol_wrapper.c diff --git a/Makefile.common b/Makefile.common index 259a465..0bcc268 100644 --- a/Makefile.common +++ b/Makefile.common @@ -74,6 +74,7 @@ SOURCES_C += \ $(LIBRETRO_COMM_DIR)/compat/fopen_utf8.c \ $(LIBRETRO_COMM_DIR)/memmap/memmap.c \ $(LIBRETRO_COMM_DIR)/string/stdstring.c \ + $(LIBRETRO_COMM_DIR)/string/rstrtod.c \ $(LIBRETRO_COMM_DIR)/file/file_path.c \ $(LIBRETRO_COMM_DIR)/file/file_path_io.c \ $(LIBRETRO_COMM_DIR)/file/retro_dirent.c \ @@ -106,10 +107,12 @@ FLAGS += -DINLINE="_inline" endif ifeq ($(THREADED_DSP), 1) -FLAGS += -DTHREADED_DSP +FLAGS += -DTHREADED_DSP -DHAVE_THREADS ifneq ($(STATIC_LINKING), 1) SOURCES_C += \ - $(LIBRETRO_COMM_DIR)/rthreads/rthreads.c + $(LIBRETRO_COMM_DIR)/rthreads/rthreads.c \ + $(LIBRETRO_COMM_DIR)/rthreads/retro_eventcount.c \ + $(LIBRETRO_COMM_DIR)/queues/retro_spsc.c endif endif diff --git a/libretro-common/Makefile.test b/libretro-common/Makefile.test deleted file mode 100644 index c8e92b4..0000000 --- a/libretro-common/Makefile.test +++ /dev/null @@ -1,240 +0,0 @@ - -OBJDIR = ../obj-unix - -# libcheck's link line is more than -lcheck on most distributions -- -# Debian and Ubuntu need -lcheck_pic -lsubunit -lrt -lm -pthread -- so -# ask pkg-config and fall back to the bare flag only if it cannot -# answer. Overridable for platforms without pkg-config. -LIBCHECK_CFLAGS ?= $(shell pkg-config --cflags check 2>/dev/null) -LIBCHECK_LIBS ?= $(shell pkg-config --libs check 2>/dev/null || echo -lcheck) - -TEST_UNIT_CFLAGS = $(CFLAGS) -Iinclude $(LDFLAGS) $(LIBCHECK_CFLAGS) -Werror -Wdeclaration-after-statement -fsanitize=address -fsanitize=undefined -ftest-coverage -fprofile-arcs -ggdb - -TEST_GENERIC_QUEUE = test/queues/test_generic_queue -TEST_GENERIC_QUEUE_SRC = test/queues/test_generic_queue.c queues/generic_queue.c - -TEST_LINKED_LIST = test/lists/test_linked_list -TEST_LINKED_LIST_SRC = test/lists/test_linked_list.c lists/linked_list.c - -TEST_FILE_LIST = test/lists/test_file_list -TEST_FILE_LIST_SRC = test/lists/test_file_list.c lists/file_list.c \ - compat/compat_strcasestr.c - -TEST_STDSTRING = test/string/test_stdstring -TEST_STDSTRING_SRC = test/string/test_stdstring.c string/stdstring.c encodings/encoding_utf.c \ - compat/compat_strl.c compat/compat_strldup.c - -TEST_UTILS = test/utils/test_utils -TEST_UTILS_SRC = test/utils/test_utils.c utils/md5.c encodings/encoding_crc32.c \ - features/features_cpu.c \ - streams/file_stream.c vfs/vfs_implementation.c file/file_path.c \ - file/file_path_io.c \ - compat/compat_strl.c time/rtime.c string/stdstring.c encodings/encoding_utf.c - -TEST_HASH = test/hash/test_hash -TEST_HASH_SRC = test/hash/test_hash.c hash/lrc_hash.c \ - streams/file_stream.c vfs/vfs_implementation.c file/file_path.c \ - file/file_path_io.c \ - compat/compat_strl.c time/rtime.c string/stdstring.c encodings/encoding_utf.c - -TEST_RWAV = test/formats/test_rwav -TEST_RWAV_SRC = test/formats/test_rwav.c formats/wav/rwav.c - -TEST_RJPEG = test/formats/test_rjpeg -TEST_RJPEG_SRC = test/formats/test_rjpeg.c formats/jpeg/rjpeg.c \ - streams/file_stream.c vfs/vfs_implementation.c file/file_path.c \ - file/file_path_io.c features/features_cpu.c \ - compat/compat_strl.c time/rtime.c string/stdstring.c encodings/encoding_utf.c - -# Not a libcheck suite: a plain main() that prints its own verdict and -# returns non-zero on failure. -TEST_RWEBM_AUDIO = test/formats/test_rwebm_audio -TEST_RWEBM_AUDIO_SRC = test/formats/test_rwebm_audio.c \ - encodings/encoding_crc32.c features/features_cpu.c - -TEST_RPNG = test/formats/test_rpng -TEST_RPNG_SRC = test/formats/test_rpng.c formats/png/rpng.c \ - streams/trans_stream.c streams/trans_stream_deflate.c \ - encodings/encoding_deflate.c \ - features/features_cpu.c \ - streams/trans_stream_pipe.c -TEST_RPNG_LIBS = -lz - - -# --- Windows A/W selection matrix ------------------------------------- -# -# libretro-common picks between the ANSI and the wide Win32 entry points -# three different ways (compile-time wide, compile-time ANSI via -# LEGACY_WIN32, and per-call via HAVE_WIN9X_RUNTIME), and no -# Linux-hosted target builds two of them. That is how the ANSI branch -# rots: nothing compiles it, so nothing notices when it stops -# compiling, and the report comes from someone on a Windows 98 box. -# -# Cross-compiling covers "still builds". wine covers rather more than -# that: an ANSI build under wine really does call CreateFileA, -# FindFirstFileA and _stat64 rather than their wide twins, so the -# branch is executed, not merely parsed. What wine cannot do is make -# the probe say ANSI - it implements the W entry points, so a -# HAVE_WIN9X_RUNTIME build correctly chooses wide there. Only real 9x -# exercises win32_needs_local_encoding() returning 1. -# -# Both tools are optional. Absent either one, the affected steps say -# so and pass; a contributor without a cross-compiler is not blocked. -WIN32_CC ?= x86_64-w64-mingw32-gcc -WIN32_CC_X86 ?= i686-w64-mingw32-gcc -WINE ?= wine - -# Every file that selects between A and W. -WIN32_AW_SRC = compat/fopen_utf8.c dynamic/dylib.c file/file_path.c \ - file/nbio/nbio_stdio.c file/nbio/nbio_windowsmmap.c \ - vfs/vfs_implementation.c - -# What a runnable test needs linked in besides the file under test. -WIN32_AW_TEST = samples/file/vfs/vfs_seek_contract_test.c -WIN32_AW_TEST_SRC = compat/fopen_utf8.c compat/compat_strl.c \ - encodings/encoding_utf.c file/file_path.c \ - file/file_path_io.c streams/file_stream.c \ - time/rtime.c vfs/vfs_implementation.c - -win32-configs: - @fails=0; \ - for cc in $(WIN32_CC) $(WIN32_CC_X86); do \ - if ! command -v $$cc >/dev/null 2>&1; then \ - echo "skip: $$cc not installed"; continue; \ - fi; \ - for cfg in "" "-DLEGACY_WIN32" "-DHAVE_WIN9X_RUNTIME"; do \ - for src in $(WIN32_AW_SRC); do \ - if ! $$cc -c -Iinclude -Wall -Werror $$cfg \ - -DLEGACY_WIN32_NO_MIGRATION_NOTE \ - -o /dev/null $$src 2>/tmp/lrc_aw_err.$$$$; then \ - echo "FAIL: $$cc [$${cfg:-default}] $$src"; \ - cat /tmp/lrc_aw_err.$$$$; fails=`expr $$fails + 1`; \ - fi; \ - rm -f /tmp/lrc_aw_err.$$$$; \ - done; \ - echo "ok: $$cc [$${cfg:-default}] builds"; \ - done; \ - done; \ - wine_ok=0; \ - if command -v $(WIN32_CC) >/dev/null 2>&1 \ - && command -v $(WINE) >/dev/null 2>&1; then \ - printf 'int main(void){return 0;}\n' > /tmp/lrc_aw_probe.c; \ - if $(WIN32_CC) -o /tmp/lrc_aw_probe.exe /tmp/lrc_aw_probe.c 2>/dev/null \ - && (cd /tmp && WINEDEBUG=-all $(WINE) /tmp/lrc_aw_probe.exe \ - >/dev/null 2>/tmp/lrc_aw_probe.log); then \ - wine_ok=1; \ - else \ - echo "skip: wine is installed but cannot run a Windows binary here"; \ - echo " (configurations were built; none were executed)"; \ - sed 's/^/ /' /tmp/lrc_aw_probe.log 2>/dev/null | head -5; \ - fi; \ - rm -f /tmp/lrc_aw_probe.c /tmp/lrc_aw_probe.exe /tmp/lrc_aw_probe.log; \ - fi; \ - if [ $$wine_ok -eq 1 ]; then \ - for cfg in "" "-DLEGACY_WIN32" "-DHAVE_WIN9X_RUNTIME"; do \ - if ! $(WIN32_CC) -O2 -Iinclude $$cfg \ - -DLEGACY_WIN32_NO_MIGRATION_NOTE \ - -o /tmp/lrc_aw_test.exe \ - $(WIN32_AW_TEST) $(WIN32_AW_TEST_SRC) 2>/dev/null; then \ - echo "FAIL: [$${cfg:-default}] test would not build"; \ - fails=`expr $$fails + 1`; continue; \ - fi; \ - if (cd /tmp && WINEDEBUG=-all $(WINE) /tmp/lrc_aw_test.exe \ - >/tmp/lrc_aw_out.txt 2>/tmp/lrc_aw_err.txt); then \ - echo "ok: [$${cfg:-default}] runs under wine"; \ - else \ - echo "FAIL: [$${cfg:-default}] failed under wine"; \ - cat /tmp/lrc_aw_out.txt; \ - sed 's/^/ /' /tmp/lrc_aw_err.txt | head -10; \ - fails=`expr $$fails + 1`; \ - fi; \ - rm -f /tmp/lrc_aw_test.exe /tmp/lrc_aw_out.txt /tmp/lrc_aw_err.txt; \ - done; \ - elif ! command -v $(WINE) >/dev/null 2>&1; then \ - echo "skip: wine not installed - configurations built, not run"; \ - fi; \ - if [ $$fails -ne 0 ]; then echo "$$fails Windows configuration check(s) failed"; exit 1; fi; \ - echo "Windows A/W configuration matrix: all checks passed" - -# --- VFS sample regression tests -------------------------------------- -# -# Native runs of the samples that pin file-size, seek and EOF behaviour, -# in both mapping configurations because the mapped and unmapped paths -# implement those boundaries separately. -vfs-samples: - $(MAKE) -C samples/file/vfs clean - $(MAKE) -C samples/file/vfs SANITIZER=address,undefined - cd samples/file/vfs && ./vfs_seek_contract_test && ./vfs_large_file_test - # filestream_rbuf_fault_test drives filestream_rbuf_fill()'s two - # failure arms through its own VFS, which leaves it lane-independent - # - running it a second time under MMAP=0 would be the same run. - cd samples/file/vfs && ./filestream_rbuf_fault_test - $(MAKE) -C samples/file/vfs clean - $(MAKE) -C samples/file/vfs MMAP=0 SANITIZER=address,undefined - cd samples/file/vfs && ./vfs_seek_contract_test - $(MAKE) -C samples/file/vfs clean - -.PHONY: win32-configs vfs-samples - -all: - # Build and execute tests in order, to avoid coverage file collision - # string - $(CC) $(TEST_UNIT_CFLAGS) $(TEST_STDSTRING_SRC) $(LIBCHECK_LIBS) -o $(TEST_STDSTRING) - $(TEST_STDSTRING) - lcov -c -d . -o `dirname $(TEST_STDSTRING)`/coverage.info - # utils - $(CC) $(TEST_UNIT_CFLAGS) $(TEST_UTILS_SRC) $(LIBCHECK_LIBS) -o $(TEST_UTILS) - $(TEST_UTILS) - lcov -c -d . -o `dirname $(TEST_UTILS)`/coverage.info - # utils - $(CC) $(TEST_UNIT_CFLAGS) $(TEST_HASH_SRC) $(LIBCHECK_LIBS) -o $(TEST_HASH) - $(TEST_HASH) - lcov -c -d . -o `dirname $(TEST_HASH)`/coverage.info - # list - $(CC) $(TEST_UNIT_CFLAGS) $(TEST_LINKED_LIST_SRC) $(LIBCHECK_LIBS) -o $(TEST_LINKED_LIST) - $(TEST_LINKED_LIST) - lcov -c -d . -o `dirname $(TEST_LINKED_LIST)`/coverage.info - # file list - $(CC) $(TEST_UNIT_CFLAGS) $(TEST_FILE_LIST_SRC) $(LIBCHECK_LIBS) -o $(TEST_FILE_LIST) - $(TEST_FILE_LIST) - lcov -c -d . -o `dirname $(TEST_FILE_LIST)`/file_list_coverage.info - # queue - $(CC) $(TEST_UNIT_CFLAGS) $(TEST_GENERIC_QUEUE_SRC) $(LIBCHECK_LIBS) -o $(TEST_GENERIC_QUEUE) - $(TEST_GENERIC_QUEUE) - lcov -c -d . -o `dirname $(TEST_GENERIC_QUEUE)`/coverage.info - # rpng - $(CC) $(TEST_UNIT_CFLAGS) $(TEST_RPNG_SRC) $(TEST_RPNG_LIBS) $(LIBCHECK_LIBS) -o $(TEST_RPNG) - $(TEST_RPNG) - lcov -c -d . -o `dirname $(TEST_RPNG)`/coverage.info - # rwav - $(CC) $(TEST_UNIT_CFLAGS) $(TEST_RWAV_SRC) $(LIBCHECK_LIBS) -o $(TEST_RWAV) - $(TEST_RWAV) - # rjpeg - $(CC) $(TEST_UNIT_CFLAGS) $(TEST_RJPEG_SRC) $(LIBCHECK_LIBS) -o $(TEST_RJPEG) - $(TEST_RJPEG) - # rwebm audio - $(CC) $(TEST_UNIT_CFLAGS) $(TEST_RWEBM_AUDIO_SRC) $(LIBCHECK_LIBS) -o $(TEST_RWEBM_AUDIO) - $(TEST_RWEBM_AUDIO) - # vfs samples: file size, seek and EOF boundaries, mapped and not - $(MAKE) -f Makefile.test vfs-samples - # the three Windows A/W configurations, two of which nothing else builds - $(MAKE) -f Makefile.test win32-configs - - lcov -o test/coverage.info \ - -a test/utils/coverage.info \ - -a test/string/coverage.info \ - -a test/lists/coverage.info \ - -a test/lists/file_list_coverage.info \ - -a test/queues/coverage.info \ - -a test/formats/coverage.info - genhtml -o test/coverage/ test/coverage.info - -clean: - rm -f *.gcda *.gcno - rm -f $(TEST_STDSTRING) $(TEST_UTILS) $(TEST_HASH) \ - $(TEST_LINKED_LIST) $(TEST_FILE_LIST) $(TEST_GENERIC_QUEUE) \ - $(TEST_RPNG) $(TEST_RWAV) $(TEST_RJPEG) $(TEST_RWEBM_AUDIO) - rm -f test/*/*.gcda test/*/*.gcno test/*/coverage.info \ - test/lists/file_list_coverage.info test/coverage.info - rm -rf test/coverage - diff --git a/libretro-common/audio/audio_mix.c b/libretro-common/audio/audio_mix.c deleted file mode 100644 index b0459ef..0000000 --- a/libretro-common/audio/audio_mix.c +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright (C) 2010-2020 The RetroArch team - * - * --------------------------------------------------------------------------------------- - * The following license statement only applies to this file (audio_mix.c). - * --------------------------------------------------------------------------------------- - * - * 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. - */ - -#include - -#if defined(__SSE2__) -#include -#elif defined(__ALTIVEC__) -#include -#endif - -#include