Skip to content
This repository has been archived by the owner on Sep 21, 2021. It is now read-only.

libtransistor v2.0.0-rc1

Pre-release
Pre-release
Compare
Choose a tag to compare
@reswitchedteam reswitchedteam released this 31 May 19:59
· 83 commits to development since this release
207deca

Changelog

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

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

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

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

Version Support

Version Support
1.0.0 Unsupported
2.0.0 Expected working
2.1.0 - 2.3.0 Expected working
3.0.0 Tested working
3.0.1 - 4.0.1 Unknown
4.1.0 Tested broken
5.0.0 - 5.0.1 Expected working
5.0.2 Expected working