More actions
(Created page with "{{Infobox Switch Homebrews |title=libtransistor-examples |image=libtransistorexamplesswitch.png |description=Test NROs for libtransistor |author=reswitched |lastupdated=2018/09/12 |type=Developments |version=2.1.1 |license=ISC |download=https://dlhb.gamebrew.org/switchhomebrews/libtransistorexamplesswitch.7z |website=https://github.com/reswitched/libtransistor |source=https://github.com/reswitched/libtransistor |donation= }} {{#seo: |title=Switch Homebrew PC Tools (Devel...") |
No edit summary |
||
Line 1: | Line 1: | ||
{{Infobox Switch Homebrews | {{Infobox Switch Homebrews | ||
|title=libtransistor-examples | |title=libtransistor-examples | ||
|image= | |image=libtransistorexamplesnx.png | ||
|description=Test NROs for libtransistor | |description=Test NROs for libtransistor. | ||
|author= | |author=ReSwitched Team | ||
|lastupdated=2018/09/12 | |lastupdated=2018/09/12 | ||
|type=Developments | |type=Developments | ||
|version=2.1.1 | |version=2.1.1 | ||
|license=ISC | |license=ISC | ||
|download=https://dlhb.gamebrew.org/switchhomebrews/ | |download=https://dlhb.gamebrew.org/switchhomebrews/libtransistorexamplesnx.7z | ||
|website=https://github.com/reswitched/libtransistor | |website=https://github.com/reswitched/libtransistor | ||
|source=https://github.com/reswitched/libtransistor | |source=https://github.com/reswitched/libtransistor | ||
|donation= | |donation= | ||
}} | }} | ||
{{ | {{obsolete}} | ||
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 <br> | |||
< | 3.0.0 <br> | ||
Expected working: | |||
2.0.0 <br> | |||
2.1.0 <br> | |||
2.2.0 <br> | |||
2.3.0 <br> | |||
5.0.0 <br> | |||
5.0.1 <br> | |||
5.0.2 <br> | |||
==Changelog== | ==Changelog== | ||
''' | '''v2.1.1 2918/09/12''' | ||
* | *Additions: | ||
**Added <code>trn_recursive_mutex_interrupt_lock</code>. | |||
**Various SVC bindings. | |||
*Changes: | |||
**<code>trn_result_to_errno</code> now uses<code> trn_lookup_result</code>. | |||
**<code>KDebug</code> inherits from <code>KWaitable</code>. | |||
*Bugfixes: | |||
**Waiter deadlocks/delays. | |||
**Lifetime bug in C++ Waiter bindings. | |||
'''v2.1.0 2019/08/23''' | |||
*Additions: | |||
**Added support for deferring <code>IPCServer++</code> responses. | |||
**Added support for <code>InHandle</code>, <code>OutHandle</code>, and <code>InObject</code> to <code>IPCClient++</code>. | |||
**Added <code>KTransferMemory</code>. | |||
**Added default constructor for <code>KObject</code>. | |||
**Added <code>_TRN_RUNCONF_STDIO_OVERRIDE_TWILI</code>. | |||
**Added <code>include/libtransistor/cpp/nx.hpp</code>. | |||
**Added <code>trn::svc::MapTransferMemory</code> and <code>trn::svc::MapSharedMemory</code>. | |||
**Added <code>trn::svc::QueryMemory</code>. | |||
**Added <code>env_get_stack_top</code>. | |||
**Added <code>bindings for ITwiliService#CreateNamedPipe</code>. | |||
**Added <code>trn::as::Reservation</code>. | |||
**Added <code>trn_lookup_result</code>. | |||
*Removals: | |||
**Removed some old debug messages. | |||
**Removed <code>ipcClients.h</code>. | |||
*Changes: | |||
**Refactored <code>crt0_common</code>. | |||
**Made <code>include/libtransistor/nx.h</code> more complete. | |||
**When building libtransistor, libtransistor headers are now included with <code>-I</code> 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 <code>trn::ResultError</code> inherit publicly from <code>std::runtime_exception</code>. | |||
**Many warnings. | |||
**Fixed issues with libc++, atomics, and <code><nowiki>[[noreturn]]</nowiki></code>. | |||
'''v2.0.0 2019/07/20''' | |||
*Additions: | |||
**Added dynamic linker, <code>dlopen</code>, <code>dlsym</code>, etc. | |||
**Added C++ API (see [https://github.com/misson20000/twili twili] for examples of this API in action). | |||
**Including templated IPC client/server. | |||
**Added 1.0.0 support. | |||
**Added <code>trn_thread</code> and <code>trn_mutex</code> library. | |||
**Added <code>svcMapProcessCodeMemory</code>, <code>svcUnmapProcessCodeMemory</code>, <code>svcSetProcessMemoryPermission</code>. | |||
**Added <code>svcCreateProcess</code>, <code>svcStartProcess</code>. | |||
**Added <code>svcMapPhysicalMemory</code>, <code>svcUnmapPhysicalMemory</code>. | |||
**Added resource limit, debug SVCs. | |||
**Added <code>usb</code> bindings. | |||
**Added <code>as</code> module, for managing address space (replaces <code>find_empty_memory_block</code>). | |||
**Added <code>fatal</code> service bindings. | |||
**Added process handle key to <code>loader_config</code>. | |||
**Added <code>SECONDS_TO_NANOSECONDS</code>, <code>ASSERT_OK</code>, <code>TRACE</code>, and <code>DBG_TRACE</code> macros. | |||
**Added <code>ipc_helpers</code>. | |||
**Added <code>ipc_debug_level</code> (replaces <code>ipc_debug_flag</code>)'. | |||
**Added <code>collections/list.h</code>. | |||
**Added <code>waiter</code>. | |||
**Added [https://github.com/misson20000/twili twili] integration. | |||
**Added <code>runtime_config</code>. | |||
**Added hid_controller button state masks, <code>hid_controller_buttons_down</code>. | |||
**Added <code>nvhost_ioctl_ctrl_syncpt_wait</code>. | |||
**Added <code>surface_wait_buffer</code>. | |||
**Added fsp_srv_open_bis_filesystem. | |||
**Added NRO ASET sections for metadata and icons. | |||
**Added <code>env_get_kernel_version()</code>. | |||
*Removals: | |||
**Removed <code>ace_loader</code>. | |||
**Removed <code>alloc_pages</code> and heap remapping system. | |||
**Removed <code>main_thread = 0xde00</code> hack. | |||
**Removed <code>test_multiple_set_heap_size</code>. | |||
*Changes: | |||
** We now use display layers obtained from <code>am</code> wherever possible (fixes drawing over lock screen and fixes screenshots). | |||
**Redid <code>file_operations_t</code> to not be copied from the Linux kernel, and for consistency with other libtransistor filesystem APIs. | |||
**Moved <code>loader_config</code> functions into their own file. | |||
**We now send type 2 message before closing IPC services. | |||
**Change <code>struct file</code> to <code>trn_file_t</code>. | |||
**Enabled thread safety analysis, and thread safety for a few modules. | |||
**<code>ipc_server</code> now uses <code>waiter</code>. | |||
**<code>sm_force_finalize</code> is now public. | |||
**<code>trn_mountfs_mount</code> takes inode by value. | |||
**Removed <code>restrict</code> from bsd headers. | |||
*Bugfixes. | |||
**Made <code>ipc_server</code> check that it has the SVCs it needs. | |||
**We now initialize all <code>loader_config</code> fields. | |||
**Fixed syscall missing error code number collisions. | |||
**<code>trn_result_to_errno</code> now calls <code>dbg_printf</code> instead of <code>printf</code> when discarding errors. | |||
**Supported ipc messages with raw data sizes that are not multiples of 4. | |||
**<code>svc.h</code> now includes <code>types.h</code>. | |||
**Fixed missing <code>__malloc_lock</code> and <code>__malloc_unlock</code>. | |||
**Fixed uninitialized variable usage in <code>syscalls.c</code>. | |||
**Added missing typedef in <code>graphic_buffer_queue.h</code>. | |||
**Fixed <code>fd_file</code>_put not checking <code>file->ops.release != NULL</code>. | |||
**Fixed PID unpacking in PIC. | |||
**Removed some ancient debug messages. | |||
**Fixed terrible QueueBuffer transactions. | |||
**Fixed bss clearing. | |||
*Misc/CI: | |||
**Moved support libraries into <code>libtransistor-base</code>. | |||
**Run tests with <code>--initialize-memory</code>. | |||
**Use container infrastructure. | |||
**Added instructions to README for installing squashfs on osx. | |||
[https://github.com/reswitched/libtransistor/releases Release notes.] | |||
== External links == | == External links == | ||
* | * GitHub - https://github.com/reswitched/libtransistor | ||
Latest revision as of 06:20, 3 Haziran 2023
libtransistor-examples | |
---|---|
General | |
Author | ReSwitched Team |
Type | Developments |
Version | 2.1.1 |
License | ISC |
Last Updated | 2018/09/12 |
Links | |
Download | |
Website | |
Source | |
This application has been obsoleted by one or more applications that serve the same purpose, but are more stable or maintained. |
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.
- Added
- Changes:
trn_result_to_errno
now usestrn_lookup_result
.KDebug
inherits fromKWaitable
.
- 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
, andInObject
toIPCClient++
. - Added
KTransferMemory
. - Added default constructor for
KObject
. - Added
_TRN_RUNCONF_STDIO_OVERRIDE_TWILI
. - Added
include/libtransistor/cpp/nx.hpp
. - Added
trn::svc::MapTransferMemory
andtrn::svc::MapSharedMemory
. - Added
trn::svc::QueryMemory
. - Added
env_get_stack_top
. - Added
bindings for ITwiliService#CreateNamedPipe
. - Added
trn::as::Reservation
. - Added
trn_lookup_result
.
- Added support for deferring
- 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..
- Refactored
- Bugfixes:
- Made
trn::ResultError
inherit publicly fromstd::runtime_exception
. - Many warnings.
- Fixed issues with libc++, atomics, and
[[noreturn]]
.
- Made
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
andtrn_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 (replacesfind_empty_memory_block
). - Added
fatal
service bindings. - Added process handle key to
loader_config
. - Added
SECONDS_TO_NANOSECONDS
,ASSERT_OK
,TRACE
, andDBG_TRACE
macros. - Added
ipc_helpers
. - Added
ipc_debug_level
(replacesipc_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()
.
- Added dynamic linker,
- Removals:
- Removed
ace_loader
. - Removed
alloc_pages
and heap remapping system. - Removed
main_thread = 0xde00
hack. - Removed
test_multiple_set_heap_size
.
- Removed
- 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
totrn_file_t
. - Enabled thread safety analysis, and thread safety for a few modules.
ipc_server
now useswaiter
.sm_force_finalize
is now public.trn_mountfs_mount
takes inode by value.- Removed
restrict
from bsd headers.
- We now use display layers obtained from
- 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 callsdbg_printf
instead ofprintf
when discarding errors.- Supported ipc messages with raw data sizes that are not multiples of 4.
svc.h
now includestypes.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 checkingfile->ops.release != NULL
. - Fixed PID unpacking in PIC.
- Removed some ancient debug messages.
- Fixed terrible QueueBuffer transactions.
- Fixed bss clearing.
- Made
- 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.
- Moved support libraries into