fincs
626b07fac8
Implement TLS slot support (with destructors)
2019-03-29 18:40:26 +01:00
plutoo
b7fe92f3a2
rwlock: Move over to condvar implementation. ( #255 )
...
This one is superior to the previous because it is write-preferring.
2019-03-28 23:53:04 +01:00
plutooo
e8f3964475
barrier: More efficient impl, maybe
2019-02-23 21:05:39 +01:00
Luke Street
1415df75e4
Update svcSleepThread definition
2019-02-19 18:18:50 -05:00
yellows8
567828f44e
Fixed doxygen issues / improved docs. Closes #230 .
2019-02-19 16:56:33 -05:00
fincs
61cc738730
Introduce hosversion.h - HOS version detection utilities
...
- Simplify kernel/detect.h logic; introduce detectKernelVersion()
- Use set:sys (if available) during __appInit in order to initialize
the current HOS version
2019-02-18 21:48:41 +01:00
fincs
ee2e19ce38
Improve names/documentation for jit kernel patch functions in detect.h/c + codestylefixes
2019-02-16 16:42:08 +01:00
plutooo
17731d750e
Add function to test OFW behavior under CFW
2019-02-14 22:03:47 +01:00
plutooo
fc557cbf2a
Detect and use the CFW jit patch.
2019-02-13 22:40:00 +01:00
fincs
252e8ef9ff
Add tmemCreateFromMemory
2018-12-20 16:12:22 +01:00
yellows8
63e0e3502c
Added eventActive().
2018-12-19 12:56:01 -05:00
fincs
50d16023eb
Fix typo
2018-12-17 16:18:28 +01:00
fincs
beeeb057d2
Finishing touches to user-mode synchronization primitives
2018-12-17 16:06:23 +01:00
fincs
8c786c610e
Fix waitMulti/waitMultiHandle for C++
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
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
2e76b2b150
waitN: Fix index bug when there are handles before UEvents in the array
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
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
26b17cdae5
kernel: Review comments (move to private interface to private headers, atomics)
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
yellows8
3dce07d78c
Fixed broken object sending in ipcPrepareHeaderForDomain(), and added serviceSendObject().
2018-12-16 18:10:37 -05:00
plutooo
d3da66e418
Fix const specifier
2018-12-09 17:06:58 +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
68846af044
Removed alignment for object_ids in ipcParseDomainResponse, since official sw doesn't have this.
2018-11-28 16:37:33 -05: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
tatehaga
b130d96445
barrier implementation using semaphores ( #186 )
2018-10-23 21:19:26 +02:00
Michael Scire
e942b9cc25
virtmem: Fix stack region mapping on 1.0.0
2018-10-22 22:34:11 +02:00
Michael Scire
40e0bf4db7
Refactor service IPC to support domains.
2018-10-16 17:56:39 -04:00
yellows8
c1b4b95bd7
Updated wiki URLs.
2018-10-11 21:44:51 -04:00
TuxSH
3bd7ca5f7e
Reword ProcessState enum fields
2018-09-26 21:11:02 +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
plutooo
4a13ee3e62
Fix function name to not cause linker problems due to symbol truncation issues
2018-09-15 08:42:32 +02:00
plutooo
7279ef0415
Fix signature of svcContinueDebugEvent for firmware 3.0.0 and forward
2018-09-15 08:14:09 +02:00
fincs
ad17cb74c7
kernel/ipc.h: add ipcCloneSession
2018-09-14 01:35:24 +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
fincs
9fa3873fc9
Fix comments in svc.h & thread.h
2018-08-06 17:58:31 +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
Kevoot
fbe2c1f2ce
Add Semaphore ( #125 )
2018-07-01 00:45:41 +02:00
fincs
a9c0b213ff
Add missing #pragma once to kernel/condvar.h
2018-06-26 13:12:44 +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
SciresM
773ff46543
Improve IpcParsedCommand domain message info. ( #112 )
...
* Improve IpcParsedCommand domain message info.
2018-06-25 11:08:48 -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
05cde6649b
Updated svcGetDebugEvent and svcContinueDebugEvent in svc.h.
2018-05-14 12:51:06 -04:00
yellows8
02ff4915d9
Initialize cmdreq buf[1] in ipcCloseSession().
2018-05-11 11:25:46 -04:00
fincs
6bc917fae2
ipc.h: don't implicitly cast int to BufferType
2018-05-09 02:44:40 +02:00
TuxSH
635599491c
Add ipcAddSendSmart, ipcAddRecvSmart, use where applicable
2018-05-08 16:17:13 -04:00
Michael Scire
ef47389228
Implement svcMap/UnmapPhysicalMemory(Unsafe), svcSetUnsafeLimit
2018-05-07 14:03:27 +02:00
Michael Scire
8496264811
Fix definition for svcCreateEvent
2018-05-07 13:54:23 +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
SciresM
f40f544a07
IPC: Improve information available in IpcParsedCommand ( #72 )
...
* IPC: Add C descriptor support to IpcParsedCommand
* Add Command Type to IpcParsedCommand
* Replace constants with IpcCommandType where relevant.
* Add RawWithoutPadding pointer, required for serverside deserialization calculations.
2018-04-22 01:14:46 +02:00
Michael Scire
b18854555a
IPC: Fix incorrect parsing of X descriptor addresses
2018-04-22 01:13:49 +02:00
plutoo
6c72bf8273
Detect 5.0.0 properly
2018-03-23 19:01:09 +01:00
cpasjuste
4677266d53
ipc.h: fix BufferType invalid conversion (c++)
2018-03-14 13:34:00 +01:00
plutoo
e112ab6968
Fix ipc session close race properly
2018-03-11 13:21:36 +01:00
plutoo
1dfb1beafb
Ipc bugfix
2018-03-10 17:49:17 +01:00
plutoo
d54db1ac16
Includefix
2018-03-10 14:05:14 +01:00
plutoo
d12e99e3ad
Move ipc.h to kernel/
2018-03-10 14:03:29 +01: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
TuxSH
372021e226
Add missing include in tmem.h
2018-02-27 19:14:44 +01:00
fincs
6c79424f76
kernel/svc.h: Add descriptions/basic info for the rest of syscalls
2018-02-10 22:40:11 +01:00
fincs
521bc1c5c9
Document kernel/condvar.h
2018-02-10 22:40:11 +01:00
fincs
e295994dd2
Begin documenting kernel/svc.h. SVCs classified in categories.
2018-02-10 22:40:11 +01:00
fincs
e54aadfc84
kernel/svc.h: Add MemoryType, MemoryState, MemoryAttribute
2018-02-10 22:40:11 +01:00
fincs
c8f62d94a3
Documentation: address second batch of comments ( #38 )
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
8496f36879
Documentation: address first batch of comments (in #38 )
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
fincs
ff472848a9
Start doxygen bringup, with some miscellaneous cleanup
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
000a7f05c9
Experimental implementation of condvars
2018-01-30 22:39:02 +01:00
plutoo
673651a51f
Fix broken header files
2018-01-23 00:27:00 +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
22e9a0fcc3
Jit bringup, improvements to virtmem
2018-01-20 13:56:12 +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
yellows8
eec1fc2fcc
Added svcSetProcessMemoryPermission and svcMapProcessCodeMemory/svcUnmapProcessCodeMemory. Added PERM_X.
2018-01-13 23:49:54 -05:00