* Implement SOC_U::GetHostByName and partial SOC_U::GetNetworkOpt
* Implement AC::GetWifiStatus, and get proper network interface.
* Minor fixes
* More minor fixes
* Even more fixes
* Fix Get/Set SockOpt
* Implement SendToOther
* Apply suggestions and fix timer advance
* Fix variable name
* WIP implementation
* More implemented friends/mii/fs stuff
* Add more sockopt values and fix send/recv flags.
* Temporary disable GetFriendPresence
* Fix dontwait logic
* Fix linux build
* Add missing header for linux
* Remove TCP_STDURG
* frd stuff
* Fix poll and add more 3ds <-> platform conversions
* Finish implementing all platform <-> 3ds conversion.
* Disable UDP connreset and fix poll again.
* Fix compile issues
* Apply suggestions
* Fix compiler issues
* Fix compiler errors (again)
* Fix GetAddrInfo
* Use cert from nand files instead of account.
* Implement more frd functionality.
* common: Add thread pool from yuzu
* Is really useful for asynchronous operations like shader compilation and custom textures, will be used in following PRs
* core: Improve ImageInterface
* Provide a default implementation so frontends don't have to duplicate code registering the lodepng version
* Add a dds version too which we will use in the next commit
* rasterizer_cache: Rewrite custom textures
* There's just too much to talk about here, look at the PR description for more details
* rasterizer_cache: Implement basic pack configuration file
* custom_tex_manager: Flip dumped textures
* custom_tex_manager: Optimize custom texture hashing
* If no convertions are needed then we can hash the decoded data directly removing the needed for duplicate decode
* custom_tex_manager: Implement asynchronous texture loading
* The file loading and decoding is offloaded into worker threads, while the upload itself still occurs in the main thread to avoid having to manage shared contexts
* Address review comments
* custom_tex_manager: Introduce custom material support
* Remove files that were not added properly
* fix submodules
* Fix submodules again
* fix more files
---------
Co-authored-by: GPUCode <geoster3d@gmail.com>
* kernel: Properly clean up process threads on exit.
* kernel: Track process-owned memory and free on destruction.
* apt: Implement DoApplicationJump via home menu when available.
* kernel: Move TLS allocation management to owning process.
The log filter was being ignored on initialization due to the logging instance being initialized before the config instance, so the log filter was set to its default value.
This fixes that oversight, along with using descriptive exceptions instead of abort() calls.
This simplifies the logging system.
This also fixes some lost messages on startup.
The simplification is simple. I removed unused functions and moved most things in the .h to the .cpp. I replaced the unnecessary linked list with its contents laid out as three member variables. Anything that went through the linked list now directly accesses the backends. Generic functions are replaced with those for each specific use case and there aren't many. This change increases coupling but we gain back more KISS and encapsulation.
With those changes it was easy to make it thread-safe. I just removed the mutex and turned a boolean atomic. I was planning to use this thread-safety in my next PR about stacktraces. It was actually async-signal-safety at first but I ended up using a different approach. Anyway getting rid of the linked list is important for that because have the list of backends constantly changing complicates things.