Unknown W. Brackets
37dffb6210
Implement sceKernelReferLwMutexStatus() and ByID().
2013-02-24 22:50:48 -08:00
Unknown W. Brackets
ad3152cb94
Fix sceKernelReferMutexStatus().
2013-02-24 20:28:39 -08:00
Unknown W. Brackets
2a6457b6ab
Cut down on h files including PointerWrap.
...
This makes changes to it a bit faster to build.
2013-02-04 08:26:59 -08:00
Unknown W. Brackets
1cb7a88137
Don't use a dynamic string for wait debugging.
...
Happens in release, and shows up on the profiler.
Not huge, but should save ~0.5% of cpu time.
2013-01-26 11:29:19 -08:00
Henrik Rydgard
8d845cc588
quick implementation of sceKernelReferMutexStatus
2013-01-20 23:11:48 +01:00
Unknown W. Brackets
43c8726554
Oops, 0 is a valid timer id.
2013-01-18 01:38:14 -08:00
Unknown W. Brackets
305c41c932
Prevent duplicate waiting threads in sema/mutex.
...
If something did a tight loop of a short wait/timeout, it might end
up getting on the waitingThreads list multiple times.
Eventually this caused a massive performance problem.
2012-12-31 23:23:52 -08:00
Unknown W. Brackets
bcecd881b1
Savestate cleanup + be more careful with vectors.
...
For some reason I debugged it going into std::string so I just made
them all more explicit which fixed everything.
2012-12-28 13:55:31 -08:00
Unknown W. Brackets
3ed2045f6b
Add state saving to tertiary kernel modules.
2012-12-28 13:55:25 -08:00
Unknown W. Brackets
595759ef78
Implement a factory for kernel objects.
...
Couldn't think of a better way to do this, maybe there's some fancy
one I don't know about.
Also finished up a couple left over kernel objects.
Maybe a quarter the way there?
2012-12-28 13:55:22 -08:00
Unknown W. Brackets
991243fffd
Add basic DoState() to tertiary kernel objects.
2012-12-28 13:52:52 -08:00
Henrik Rydgård
b2f29992a3
Wrap some functions, clean some stuff
2012-12-26 08:52:40 +01:00
Unknown W. Brackets
9ba0ed46fd
Always create CoreTiming timers during kernel init.
2012-12-23 21:27:26 -08:00
Unknown W. Brackets
65cfc8de86
Cleanup and fix mutex init, no need for a flag now.
2012-12-23 18:27:07 -08:00
Henrik Rydgård
4a4d126dc7
Init/shutdown mutex
2012-12-23 11:19:55 +01:00
Unknown W. Brackets
87fcdc9080
Use KERNELOBJECT_MAX_NAME_LENGTH for name length.
...
Just avoiding magic numbers, didn't know there was a constant.
2012-12-16 21:36:52 -08:00
Unknown W. Brackets
bb10140728
Oops, event flags weren't always deleting properly.
...
Added some comments to explain why removal from waitingThreads is
deferred. Also had to move things around so the right outBitsPtr
is always written to on timeouts.
2012-12-15 01:36:53 -08:00
Unknown W. Brackets
67f7f6b05d
Oops, these flags can be or'd together of course.
2012-12-14 23:24:04 -08:00
Unknown W. Brackets
2ea992f2c4
Validate attr for mutexes, semas, and events.
2012-12-14 12:05:15 -08:00
Unknown W. Brackets
3d57a4c838
Cleanup some wrappers now that rescheds defer.
2012-12-09 01:04:54 -08:00
Unknown W. Brackets
5e8aa4c071
Implement deferred rescheduling/callbacks.
...
This way most HLE functions can be wrapped normally. Hurray, sanity.
2012-12-09 01:04:53 -08:00
Unknown W. Brackets
fda41752e8
Simplify the API for HLE funcs to do callbacks.
...
__KernelWaitCurThread() already (ultimately) calls __KernelCheckCallbacks.
2012-12-09 01:04:52 -08:00
Unknown W. Brackets
ee1a729157
Turns out *CB() fires even when it succeeds.
2012-12-09 01:04:50 -08:00
Unknown W. Brackets
f9b561ee42
Implement priority unlocking for mutexes.
2012-12-09 01:04:49 -08:00
Unknown W. Brackets
a67505761e
Mutexes and semaphores were rescheduling twice.
...
This was causing it to "jump" the correct thread and go to the next.
2012-12-07 00:46:18 -08:00