yellows8
00d0174c0a
Removed the buffer memset from tmemCreateFromMemory, tmemCreateFromMemory should not write to the user buffer.
2018-12-23 22:18:24 -05:00
fincs
252e8ef9ff
Add tmemCreateFromMemory
2018-12-20 16:12:22 +01:00
fincs
beeeb057d2
Finishing touches to user-mode synchronization primitives
2018-12-17 16:06:23 +01:00
fincs
21f69bfa57
Add, document, and use MAX_WAIT_OBJECTS
2018-12-17 16:06:23 +01:00
fincs
33dad9b893
UTimer: use an actual 'started' flag instead of a magic tick value
2018-12-17 16:06:23 +01:00
fincs
8d813ee666
Generalize Waitable, moving UEvent/UTimer specific code into a vtable.
2018-12-17 16:06:23 +01:00
fincs
1d14cad1cf
Separate WaiterNode initialization again, which is now done in waitImpl
2018-12-17 16:06:23 +01:00
fincs
a23d38ac77
Move waiterForXyz() functions to Xyz's header file. Implement waiter for (kernel mode) Event, and use it instead.
2018-12-17 16:06:23 +01:00
fincs
c9ee12ce20
Simplify WaiterNode, make it private. Improve UEvent autoclear logic.
2018-12-17 16:06:23 +01:00
fincs
47b786bcea
Synchronize eventWait and _waitLoop code
2018-12-17 16:06:23 +01:00
fincs
2e76b2b150
waitN: Fix index bug when there are handles before UEvents in the array
2018-12-17 16:06:23 +01:00
fincs
3c9a84fe68
wait.c: Fix no-timeout handling; use new kernel error result codes
2018-12-17 16:06:23 +01:00
fincs
9144d78031
Stylefixes, part 1
2018-12-17 16:06:23 +01:00
plutooo
eb7d835a79
wait: Rename UsermodeEvent and UsermodeTimer
2018-12-17 16:06:23 +01:00
plutooo
376add30a4
wait: Introduce wait for raw handles too
2018-12-17 16:06:23 +01:00
plutooo
68b4d323a0
utimer: Add TimerType_OneShot
2018-12-17 16:06:23 +01:00
plutooo
0c0261bf2f
wait: Improve timer calculation, thanks derrek
2018-12-17 16:06:23 +01:00
plutooo
b38983c1b7
wait: Fix a race
2018-12-17 16:06:23 +01:00
plutooo
eb01ccd097
wait: Doxygen
2018-12-17 16:06:23 +01:00
plutooo
6a6f654526
wait: Final implementation
2018-12-17 16:06:23 +01:00
plutooo
03ddd464a0
arm: Rename armTickToNs(), etc
2018-12-17 16:06:23 +01:00
plutooo
26b17cdae5
kernel: Review comments (move to private interface to private headers, atomics)
2018-12-17 16:06:23 +01:00
plutooo
9da123f916
wait: Check for disabled timer
2018-12-17 16:06:23 +01:00
plutooo
c6fc6a41e5
wait: Bug-fixes and lock-free utimer stop/start
2018-12-17 16:06:23 +01:00
plutooo
370d78453e
kernel: Introduce utimer, uevent, and waitN
2018-12-17 16:06:23 +01:00
Lioncash
69a98dc0cb
kernel/svc: Correct SVC instruction values for svcMapPhysicalMemory and svcUnmapPhysicalMemory
...
0x2A corresponds to svcFlushEntireDataCache, while 0x2B corresponds to
svcFlushDataCache.
2018-12-07 12:19:16 +01:00
Michael Scire
40bccd7838
Add svcTerminateDebugProcess
2018-12-06 13:18:06 +01:00
yellows8
5e69f760fb
Added support for exception-handling.
2018-11-14 16:17:02 -05:00
fincs
ede79862fb
Add threadGetCurHandle
2018-10-27 17:34:44 +02:00
yellows8
5dc7505139
Fixed swapped params for svcCreateEvent in eventCreate.
2018-10-26 13:08:45 -04:00
tatehaga
b130d96445
barrier implementation using semaphores ( #186 )
2018-10-23 21:19:26 +02:00
plutooo
6977cb24f5
virtmem: Fix minor regression
...
We need to fetch alias region to make sure virtmemReserve() avoids returning addresses inside of it
2018-10-23 04:07:01 +02:00
Michael Scire
e942b9cc25
virtmem: Fix stack region mapping on 1.0.0
2018-10-22 22:34:11 +02:00
yellows8
319cc578ca
Fixed swapped params for memalign in jitCreate().
2018-10-17 14:47:14 -04:00
fincs
8e1736c480
Add RandomSeed (14) homebrew ABI key and related handling
2018-10-17 17:17:05 +02:00
TuxSH
3ecd841ec2
Update svcGetDebugThreadContext, add svcSetDebugThreadContext, implement threadDumpContext
2018-09-18 01:13:55 +02:00
TuxSH
5498d3e0c7
Add ThreadContext, RegisterGroup, svcGetThreadContext3, threadDumpContext
2018-09-18 01:13:55 +02:00
Lioncash
a06bfb74a7
kernel/random: Avoid casting away const in the U8TO32_LITTLE macro
...
This macro is only ever used with const input data within chachaInit(),
which causes -Wcast-qual warnings. This is trivial enough to fix, by
preserving the qualifier within the cast.
2018-09-18 01:13:04 +02:00
plutooo
4a13ee3e62
Fix function name to not cause linker problems due to symbol truncation issues
2018-09-15 08:42:32 +02:00
Michael Scire
6ef26bff1a
Implement kernelAbove600()
2018-09-09 19:55:12 +02:00
fincs
88e9d3bb83
kernel/event.h: several fixes, including autoclear support
2018-08-31 13:05:22 +02:00
Juan Antonio Hernández Cánovas
377683acd5
Add rwlockInit ( #155 )
2018-08-24 16:20:01 +02:00
plutooo
fb42ebe53a
Fix memory leak in tmemCreate
2018-08-11 15:01:12 +02:00
fincs
1e349b6ce8
Change CondVar API to have the mutex be passed to condvarWait* instead of condvarInit
2018-08-05 14:31:31 +02:00
fincs
062ef2b188
Add svcGetThreadCoreMask and svcSetThreadCoreMask
2018-08-05 14:30:08 +02:00
plutooo
9fc5e85c88
Event bringup
2018-08-05 13:23:08 +02:00
Jakob Dietrich
8e19bb5b0d
Fix semaphoreTryWait
2018-08-04 12:14:02 +02:00
Oliver Kuckertz
1eafa1b283
Fix data race by reordering in _CacheValues
2018-07-22 17:03:36 +02:00
Kevoot
fbe2c1f2ce
Add Semaphore ( #125 )
2018-07-01 00:45:41 +02:00
Michael Scire
9770f4bb18
Implement svcGetThreadList
2018-06-25 11:18:07 -04:00
Michael Scire
481d27d1f1
Implement svcGetDebugThreadParam
2018-06-25 11:18:07 -04:00
gdkchan
b55317511c
Fix mutexUnlock
2018-06-25 11:12:45 -04:00
yellows8
b11288ea44
In jitTransitionToWritable() and jitTransitionToExecutable(), only run the JitType_CodeMemory handling code when it's actually needed. Actually free j->rx_addr in jitClose() for JitType_JitMemory.
2018-05-21 16:59:49 -04:00
yellows8
a12eb11eab
Sync jit SVC names with wiki + updated the comment for JitType_JitMemory in jit.h.
2018-05-21 14:32:02 -04:00
yellows8
93957370a9
Disable using JitType_JitMemory on 5.0.0+, resulting in falling back to JitType_CodeMemory if available.
2018-05-21 14:04:20 -04:00
Michael Scire
fd9378754d
Fix asm error in svcGetResourceLimit*Value
2018-05-09 02:32:44 +02:00
Michael Scire
ef47389228
Implement svcMap/UnmapPhysicalMemory(Unsafe), svcSetUnsafeLimit
2018-05-07 14:03:27 +02:00
SciresM
0ac5743c1f
Add ResourceLimit SVCs, svcGetProcessInfo ( #76 )
2018-05-04 00:59:17 +02:00
hexkyz
b2b8e1ec67
Implement more SVCs ( #74 )
...
Implement svcSetThreadPriority.
Implement svcGetCurrentProcessorNumber.
Implement svcSignalEvent.
Implement svcSendSyncRequestWithUserBuffer.
Implement svcSendAsyncRequestWithUserBuffer.
Implement svcGetThreadId.
Implement svcReplyAndReceiveWithUserBuffer.
Implement svcCreateEvent.
Implement svcReadWriteRegister.
Implement svcCreateInterruptEvent.
Implement svcMapDeviceAddressSpaceByForce.
Implement svcTerminateProcess.
Fix svcMapDeviceAddressSpaceAligned.
Fix svcUnmapDeviceAddressSpace.
2018-04-30 00:43:52 +02:00
SciresM
d5bce6b0a6
Implement svcCreatePort. ( #73 )
...
* Implement svcCreatePort
* Implement svcConnectToPort
* Implement svcUnmapProcessMemory
* Implement svcGetSystemInfo
2018-04-24 18:33:46 -04:00
plutoo
d604976f08
Derp
2018-03-23 19:04:26 +01:00
plutoo
6c72bf8273
Detect 5.0.0 properly
2018-03-23 19:01:09 +01:00
plutoo
e112ab6968
Fix ipc session close race properly
2018-03-11 13:21:36 +01:00
plutoo
e162da18ff
Fix race condition in tmem
2018-03-10 21:03:31 +01:00
yellows8
f7335b7ae5
Only clear allocated tmem when alloc was successful.
2018-03-01 22:57:44 -05:00
yellows8
20a549b46b
Clear allocated tmem.
2018-03-01 22:55:17 -05:00
plutoo
20f3e87d11
Change type of TryLock to bool
2018-02-28 18:22:28 +01:00
Jules Blok
e966f21800
mutex: Add TryLock() variants.
2018-02-28 18:00:03 +01:00
plutoo
842ce50c2f
Condvar fix
2018-02-21 03:05:15 +01:00
fincs
521bc1c5c9
Document kernel/condvar.h
2018-02-10 22:40:11 +01:00
fincs
cde9d05c80
Optimize/fix several things in svc.s
2018-02-10 22:40:11 +01:00
fincs
c20d372946
Clean up types.h:
...
- Move Permission to kernel/svc.h (also fix enum naming)
- Add s128, vu128, vs128
- voidfn -> VoidFn
2018-02-10 22:40:11 +01:00
fincs
41da28eb5c
Document kernel/: shmem.h, thread.h, tmem.h, virtmem.h
2018-02-10 22:40:11 +01:00
fincs
cbd367c8a0
Document kernel/: detect.h, jit.h, mutex.h, random.h, rwlock.h
2018-02-10 22:40:11 +01:00
plutoo
75003f40f1
Add some syscalls
2018-02-01 22:04:37 +01:00
plutoo
b2810ab38d
Condvar stylefix
2018-01-31 02:22:28 +01:00
plutoo
c7213b119b
Condvar bugfix
2018-01-31 02:14:01 +01:00
plutoo
000a7f05c9
Experimental implementation of condvars
2018-01-30 22:39:02 +01:00
Lioncash
b637276c48
Silence a few missing prototype warnings
2018-01-28 01:03:56 +01:00
plutoo
340266502a
Cache management for jit
2018-01-22 21:06:53 +01:00
plutoo
9634a5467e
Small stylefix
2018-01-22 20:15:03 +01:00
plutoo
6fa8370bfb
This looks better
2018-01-22 20:11:55 +01:00
TuxSH
5abc4873d8
Include only what is really necessary...
...
add pragma once in every header, etc.
2018-01-22 18:42:57 +01:00
plutoo
e54bbc54ea
Fix codestyle for results
2018-01-21 18:40:23 +01:00
plutoo
6b4b693842
3.0.0 jit also requires own process handle
2018-01-21 17:24:42 +01:00
plutoo
200240f328
Actually reprotect code segment to RX
2018-01-20 19:37:11 +01:00
plutoo
a4cff4de13
Jit bug number two
2018-01-20 14:19:14 +01:00
plutoo
de8b3f81e4
Jit errorcode bugfix
2018-01-20 14:03:44 +01:00
plutoo
81a39130fe
Whitespace fix in svc
2018-01-20 14:01:26 +01:00
plutoo
22e9a0fcc3
Jit bringup, improvements to virtmem
2018-01-20 13:56:12 +01:00
plutoo
b877e1b1c1
Why is this not crashing
2018-01-20 12:26:31 +01:00
plutoo
8ae150d110
NRO loading bringup
2018-01-20 00:13:38 +01:00
plutoo
3faa6e8325
Add comment about seed
2018-01-18 21:11:58 +01:00
plutoo
15fe53dad3
Fix signature of randomGet64()
2018-01-18 20:53:04 +01:00
plutoo
ec4430d2e6
Introduce random
2018-01-18 20:51:55 +01:00
fincs
a8a15f7d16
Make fatalSimple error codes unique
2018-01-15 22:48:46 +01:00
yellows8
eec1fc2fcc
Added svcSetProcessMemoryPermission and svcMapProcessCodeMemory/svcUnmapProcessCodeMemory. Added PERM_X.
2018-01-13 23:49:54 -05:00
plutoo
d8061f67bd
Introduce svcWaitForSynchronizationSingle to clean up code
2018-01-13 00:27:47 +01:00
plutoo
7482c849fe
Introducing RwLock, make hid threadsafe
2018-01-11 22:25:49 +01:00
plutoo
6585261210
Detect debugger and use svcBreak in panic
2018-01-11 21:49:41 +01:00