Libtransistor-Examples Switch

From GameBrew
libtransistor-examples
Libtransistorexamplesnx.png
General
AuthorReSwitched Team
TypeDevelopments
Version2.1.1
LicenseISC
Last Updated2018/09/12
Links
Download
Website
Source

Libtransistor is a userland library for the Nintendo Switch. Binaries should run under Mephisto, Yuzu, Ryujinx, or on hardware with any firmware version via Atmosphère.

The tests archives contain builds of all of the tests included with libtransistor.

Compatibility

Tested working:

1.0.0
3.0.0

Expected working:

2.0.0
2.1.0
2.2.0
2.3.0
5.0.0
5.0.1
5.0.2

Changelog

v2.1.1 2918/09/12

  • Additions:
    • Added trn_recursive_mutex_interrupt_lock.
    • Various SVC bindings.
  • Changes:
    • trn_result_to_errno now uses trn_lookup_result.
    • KDebug inherits from KWaitable.
  • Bugfixes:
    • Waiter deadlocks/delays.
    • Lifetime bug in C++ Waiter bindings.

v2.1.0 2019/08/23

  • Additions:
    • Added support for deferring IPCServer++ responses.
    • Added support for InHandle, OutHandle, and InObject to IPCClient++.
    • Added KTransferMemory.
    • Added default constructor for KObject.
    • Added _TRN_RUNCONF_STDIO_OVERRIDE_TWILI.
    • Added include/libtransistor/cpp/nx.hpp.
    • Added trn::svc::MapTransferMemory and trn::svc::MapSharedMemory.
    • Added trn::svc::QueryMemory.
    • Added env_get_stack_top.
    • Added bindings for ITwiliService#CreateNamedPipe.
    • Added trn::as::Reservation.
    • Added trn_lookup_result.
  • Removals:
    • Removed some old debug messages.
    • Removed ipcClients.h.
  • Changes:
    • Refactored crt0_common.
    • Made include/libtransistor/nx.h more complete.
    • When building libtransistor, libtransistor headers are now included with -I so that warnings are not suppressed.
    • Makefile object/header listings are now alphabetical.
    • Each source file now includes its most relevant header before any others to ensure header files' dependencies are properly included..
  • Bugfixes:
    • Made trn::ResultError inherit publicly from std::runtime_exception.
    • Many warnings.
    • Fixed issues with libc++, atomics, and [[noreturn]].

v2.0.0 2019/07/20

  • Additions:
    • Added dynamic linker, dlopen, dlsym, etc.
    • Added C++ API (see twili for examples of this API in action).
    • Including templated IPC client/server.
    • Added 1.0.0 support.
    • Added trn_thread and trn_mutex library.
    • Added svcMapProcessCodeMemory, svcUnmapProcessCodeMemory, svcSetProcessMemoryPermission.
    • Added svcCreateProcess, svcStartProcess.
    • Added svcMapPhysicalMemory, svcUnmapPhysicalMemory.
    • Added resource limit, debug SVCs.
    • Added usb bindings.
    • Added as module, for managing address space (replaces find_empty_memory_block).
    • Added fatal service bindings.
    • Added process handle key to loader_config.
    • Added SECONDS_TO_NANOSECONDS, ASSERT_OK, TRACE, and DBG_TRACE macros.
    • Added ipc_helpers.
    • Added ipc_debug_level (replaces ipc_debug_flag)'.
    • Added collections/list.h.
    • Added waiter.
    • Added twili integration.
    • Added runtime_config.
    • Added hid_controller button state masks, hid_controller_buttons_down.
    • Added nvhost_ioctl_ctrl_syncpt_wait.
    • Added surface_wait_buffer.
    • Added fsp_srv_open_bis_filesystem.
    • Added NRO ASET sections for metadata and icons.
    • Added env_get_kernel_version().
  • Removals:
    • Removed ace_loader.
    • Removed alloc_pages and heap remapping system.
    • Removed main_thread = 0xde00 hack.
    • Removed test_multiple_set_heap_size.
  • Changes:
    • We now use display layers obtained from am wherever possible (fixes drawing over lock screen and fixes screenshots).
    • Redid file_operations_t to not be copied from the Linux kernel, and for consistency with other libtransistor filesystem APIs.
    • Moved loader_config functions into their own file.
    • We now send type 2 message before closing IPC services.
    • Change struct file to trn_file_t.
    • Enabled thread safety analysis, and thread safety for a few modules.
    • ipc_server now uses waiter.
    • sm_force_finalize is now public.
    • trn_mountfs_mount takes inode by value.
    • Removed restrict from bsd headers.
  • Bugfixes.
    • Made ipc_server check that it has the SVCs it needs.
    • We now initialize all loader_config fields.
    • Fixed syscall missing error code number collisions.
    • trn_result_to_errno now calls dbg_printf instead of printf when discarding errors.
    • Supported ipc messages with raw data sizes that are not multiples of 4.
    • svc.h now includes types.h.
    • Fixed missing __malloc_lock and __malloc_unlock.
    • Fixed uninitialized variable usage in syscalls.c.
    • Added missing typedef in graphic_buffer_queue.h.
    • Fixed fd_file_put not checking file->ops.release != NULL.
    • Fixed PID unpacking in PIC.
    • Removed some ancient debug messages.
    • Fixed terrible QueueBuffer transactions.
    • Fixed bss clearing.
  • Misc/CI:
    • Moved support libraries into libtransistor-base.
    • Run tests with --initialize-memory.
    • Use container infrastructure.
    • Added instructions to README for installing squashfs on osx.

Release notes.

External links

Advertising: