Commit graph

227 commits

Author SHA1 Message Date
bookmist
0fed5e14c1 kernel/sync_primitives: set timeout if needed and minor event improvement
Co-authored-by: Macdu <Macdu@users.noreply.github.com>
2022-11-25 21:34:07 +03:00
bookmist
8edd333400 Fix compiler warnings 2022-11-16 21:39:55 +03:00
Seungyun Lee
f8b9526794 tracy: Fix wrong include path 2022-11-12 12:58:23 +03:00
Pedro Montes Alcalde
628e0f2024
tracy: Update to v0.9 2022-11-12 00:30:10 -03:00
Macdu
a47a87a397 kernel: Update and improve relocation code 2022-10-29 14:23:03 +02:00
Zangetsu38
739c5cc0b8 settings dialog: fix save psn status.
- little refactor design of network tab.
- fix format.
2022-10-04 02:38:49 +02:00
Macdu
0c75bbb5fe kernel: Implement missing unknown field of EntryFormat1Alt 2022-09-29 20:08:15 +02:00
CreepNT
ff685b88f1 Refactor SELF loader to remove dependency on ELFIO 2022-09-20 20:32:38 +02:00
CreepNT
0a80ec9050 kernel: don't check status on msgpipe finish
The "finish()" lambda expected the thread to be in waiting state and checked this using the 'expected' argument of thread->update_status().
However, the wakeup of threads sleeping on a message pipe is done by changing their thread from wait to run, breaking this assumption.
This leads to an assertion failure and crash, preventing e.g. Ratchet & Clank from booting.

Fix (workaround) by no longer verifying the thread's status on finish.
2022-09-20 15:36:30 +02:00
Macdu
dbd8098919 kernel: Do not delete thread when calling SceKernelExitThread 2022-09-17 13:45:15 +02:00
Macdu
636b1dfedd kernel: Rewrite the way svc and callbacks are handled 2022-09-16 21:57:57 +02:00
Macdu
38adaa75bd kernel: Fix race conditions during sync object deletion 2022-09-13 22:51:05 +02:00
Pedro Montes Alcalde
054a811909
cpu: Also log thread id when an unicorn error occurs (#2023) 2022-08-18 19:36:03 -03:00
Macdu
2404d5152d kernel: Lock correct host mutex when deleting guest mutex 2022-08-01 21:44:26 +02:00
Pedro Montes Alcalde
ccca711294
vita3k: Use correct KB/KiB functions (#1971) 2022-07-31 21:10:24 -03:00
Le Philousophe
a928bd2b78 kernel/relocation: Fix ARM Call, Jump24 and Abs8 relocations
Previously, some data was set to 0 instead of being preserved
2022-07-18 19:56:28 +02:00
Macdu
d4bb55a414 kernel: Implement sceKernelCancelEventFlag 2022-07-04 19:08:10 +02:00
Zangetsu38
5221d68c89 modules/SceLibKernel: add process callbacks on cb function. 2022-06-08 13:17:38 +02:00
Macdu
bb84106cc2 kernel: Implement simple events 2022-06-04 14:37:52 +02:00
Macdu
9889c472a9 kernel: better handling of thread priority and mask affinity 2022-05-25 15:23:21 +03:00
bookmist
b49b56081b kernel/tracy: set guest thread names 2022-05-18 22:22:13 +03:00
Macdu
3c221fdc5b kernel: Implement RWLock 2022-05-16 20:23:05 +02:00
Macdu
6e5d8dee2d kernel: Fix event flags 2022-05-14 10:54:01 +02:00
Macdu
777650e882 modules/SceSysmodule: prevent random crash when calling sceSysmoduleLoadModule 2022-05-13 19:21:49 +02:00
Macdu
cff586cd60 SceDisplay: implement proper behavior of sceDisplayWait...Multi 2022-05-05 01:23:29 +02:00
Macdu
ca9933cb7b kernel: fix debug build 2022-05-04 14:51:59 +02:00
Macdu
8c2b070ab9 kernel: Immediatly resume from wait if *timeout is 0 2022-05-03 02:57:37 +02:00
Zangetsu38
9c224e3358 modules/SceThreadmgr: using callback of sceKernelWaitSemaCB. 2022-05-02 21:41:05 +02:00
Macdu
37fe91a53a kernel: Fix and performance improvements for thread data queue 2022-04-30 00:11:17 +02:00
Macdu
e4beed2791 kernel: Wait for the thread mutex lock in eventflag_set 2022-04-30 00:11:17 +02:00
Macdu
8682419fe9 kernel: Fix mutex lock order in handle_timeout 2022-04-30 00:11:17 +02:00
Macdu
c7e787a572 kernel: Fix fifo event thread queue treated as a priority queue 2022-04-28 21:16:44 +02:00
Macdu
b1427a4612 kernel: Make ThreadState resume thread safe 2022-04-28 02:00:29 +02:00
Zangetsu38
f298f955c1 modules/SceDisplay: Implement (Un)RegisterVblankStartCallback.
- add support of cb vblank function.

Co-authored-by: bookmist <roshst@yandex.ru>
2022-04-04 14:37:12 +02:00
sunho
f703e4a5e3 kernel: Fix callback execution. 2022-04-03 00:03:31 +02:00
bookmist
016f8ece12 kernel\thread, modules: fix TLS in callback calls 2022-04-01 06:22:11 +02:00
Zangetsu38
77fd8e8f78 project: run format. 2022-03-16 02:11:11 +01:00
pent0
c85b005db7 display: Attempt emulate vsync instead of relying on main thread. 2022-02-25 14:55:11 +01:00
CreepNT
79cca68372 modules/SceLibKernel: Add ring buffer-based message pipes.
- fix MsgPipe implementation.
- fix one kernel warning on ThreadDataQueue.
2022-02-20 22:07:12 +01:00
bookmist
dc7a8f8b1e modules/SceKernelThreadMgr: fix pointer type 2021-12-23 13:25:44 +01:00
scribam
dabfb08f8a
Misc code quality fixes (#1498)
* clang-tidy: run modernize-use-equals-default
* clang-tidy: run modernize-use-override
* screen_render.h: remove redundant access specifier
2021-11-11 17:08:34 +01:00
Nicolas Jallamion
85cdbbf200
modules/SceKernelThreadMgr: stub sceKernel(Resume/Suspend)ThreadForVM. (#1493)
- Stub sceKernelGetThreadContextForVM.
- prepare sceKernelGmSetThreadContextForVM of futur implemênt.

Co-authored-by: sunho <ksunhokim123@naver.com>

Co-authored-by: sunho <ksunhokim123@naver.com>
2021-11-08 09:52:23 +01:00
Zangetsu38
bdfebfad58 modules/SceKernelThreadMgr: implement sceKernelGet(EventFlag/Cond)Info.
- move sceKernelCreateCond inside it and refactor sceKernelGetThreadInfo.
2021-11-06 12:27:47 +01:00
bookmist
532e13daa6 kernel/object_store: fix crash when try erase object no exist. 2021-11-06 10:04:18 +09:00
bookmist
9188447fce modules/SceKernelThreadMgr: fix mutex deadlock and clean code of callback implementation 2021-11-05 20:16:32 +01:00
Zangetsu38
ce225b5733 modules/SceThreadmgr: Implement sceKernelGetSemaInfo.
- fix find callbackId and return error in few Callback function.
2021-11-05 20:14:24 +01:00
Zangetsu38
ce260f1c1f modules/SceKernelModulemgr: Implement sceKernelStartModule.
modules: register nid and function of SceShellSvc libary.
2021-11-05 13:45:48 +01:00
CreepNT
e095ab06af kernel: Add Callback object implementation.
- modules/SceKernelThreadMgr: add some callback function.
- build fixed by sunho
2021-11-04 19:18:51 +01:00
sunho
ffcaf0da26 Add missing virtual destructors 2021-10-17 13:07:15 +02:00
pent0
49cd19108c kernel: Fix rare timeout deadlock
if both timeout and signal happens at the same time, the deadlock will happen, since the thread that ran the timeout try to accquire the primitive lock, while the thread signaling already has the primitive lock, and is trying to wait for threads in the queue to done releasing the lock, in order to change thread state

The array element will most likely be fine, since we have the exist check and the data is stack based
2021-09-19 21:17:46 +02:00