Commit Graph

55 Commits

Author SHA1 Message Date
Unknown W. Brackets afff20a642 Eat some cycles when working with event flags. 2014-01-19 12:44:53 -08:00
Unknown W. Brackets 50e9e45d65 Check version in each DoState() func.
They bail on PointerWrap error or bad version.
2013-09-14 20:23:03 -07:00
Unknown W. Brackets be468af52d Refactor waiting thread removal. 2013-09-09 00:22:00 -07:00
Unknown W. Brackets 4bd391b098 Refactor waiting thread cleanup. 2013-09-09 00:22:00 -07:00
Unknown W. Brackets f1b62983b5 Add callback wait handlers for threadend as well. 2013-09-08 12:14:07 -07:00
Henrik Rydgard 8c88dff5a4 More log categories, use them (and existing ones). Improve log config. 2013-09-07 22:02:55 +02:00
Unknown W. Brackets f35b164d11 Refactor wait verification a bit in kernel waits. 2013-09-07 10:54:00 -07:00
Unknown W. Brackets 543df7ca7a Refactor wait timeouts.
Also, make them not write the timeout ptr if the thread stopped waiting.
Feels safer.
2013-09-03 22:32:22 -07:00
Unknown W. Brackets b20bb3b609 Refactor down the begin/end callback stuff. 2013-09-03 01:21:52 -07:00
Unknown W. Brackets 1bf974aff6 Implement VPL/FPL callback handlers.
Smells like time to refactor, there are less differences than I expected.
2013-09-03 01:21:51 -07:00
Unknown W. Brackets 3903f27dfd Add handlers for callbacks during mbx waits. 2013-09-03 01:21:51 -07:00
Unknown W. Brackets 354dbfec6c Improve some reporting of options structs. 2013-08-25 16:43:47 -07:00
Unknown W. Brackets 690c11e590 Oops, quick warning fix. 2013-08-24 11:33:32 -07:00
Unknown W. Brackets 1ee99f88e1 Stop warning on invalid sempahores.
They've been helpful, but it's finally been a while since it's mattered.
2013-08-18 18:38:04 -07:00
Unknown W. Brackets 217eaa9cb4 Remove bad param from sceKernelPollEventFlag().
Not that it was necessarily hurting anything...
2013-08-18 18:38:04 -07:00
Unknown W. Brackets 008052e6d6 Fix some variable hiding warnings. 2013-08-12 23:32:38 -07:00
Unknown W. Brackets 0b5bdeb1d3 Fix some compile failures under big endian. 2013-07-28 21:04:17 -07:00
Unknown W. Brackets 81f7103e0b Use *_le for the sceKernel* funcs. 2013-07-25 08:04:34 -07:00
Unknown W. Brackets 933c8abb55 Check kernel object types when looking up ids.
Some games misuse it, need to return an error.
2013-06-18 23:54:29 -07:00
Unknown W. Brackets 77b0688d92 Recalculate numWaitThreads all the time.
Before, it could go negative by having a thread woken a second time
(e.g. because of a delete) before it actually scheduled and woke up.
2013-05-27 22:44:10 -07:00
Unknown W. Brackets ac9e936ba8 Fix sema and event flag refer to check size.
If it's zero, write nothing, just like the others.
2013-05-18 13:46:50 -07:00
Unknown W. Brackets 9ce8c07530 Reschedule the timeout event on callback end.
Darn, missed that 3 times before I caught it.
2013-04-14 21:34:33 -07:00
Unknown W. Brackets 200ec55c61 sceKernelWaitEventFlagCB() calls callbacks first. 2013-04-14 21:31:41 -07:00
Unknown W. Brackets 9b80ae2ee0 Make event flags wait / do callbacks correctly. 2013-04-14 21:18:00 -07:00
Unknown W. Brackets 0595e5099e Don't allow wait in event flags without dispatch.
But this happens after other param checks.
2013-04-06 17:04:17 -07:00
Unknown W. Brackets 0918ec8598 Return negative for UnscheduleEvent().
It usually won't be, but it could be negative.

Also some other minor warnings.
2013-04-05 20:44:17 -07:00
Unknown W. Brackets e4223dbcb0 Simplify adding report messages, add a bunch more. 2013-03-26 00:54:00 -07: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
Unknown W. Brackets 43c8726554 Oops, 0 is a valid timer id. 2013-01-18 01:38:14 -08:00
Henrik Rydgård 95c4e0b9c4 Quick build fix for gcc 2012-12-28 23:33:00 +01: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
Unknown W. Brackets 9ba0ed46fd Always create CoreTiming timers during kernel init. 2012-12-23 21:27:26 -08:00
Unknown W. Brackets 99b24720b8 Oops, not a real pointer, use 0 not NULL. 2012-12-20 20:07:55 -08: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 70cbf98a20 Support WAITCLEARALL on event flag wait/poll.
Thanks to @B1ackDaemon for catching this.
2012-12-15 10:06:56 -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 d20b507796 Clarify these flags slightly. 2012-12-14 23:36:18 -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 45258bb61f Cleanup behavior in sceKernel*EventFlag() funcs.
Biggest change is just that sceKernelSetEventFlag() rescheds.
2012-12-14 21:25:29 -08:00
Unknown W. Brackets 18bd6cdc98 Cleanup errors and timing for waiting on flags. 2012-12-14 12:05:16 -08:00
Unknown W. Brackets eb22f6bb78 Wake threads when an event flag is deleted. 2012-12-14 12:05:15 -08:00
Unknown W. Brackets 2ea992f2c4 Validate attr for mutexes, semas, and events. 2012-12-14 12:05:15 -08:00
Unknown W. Brackets d2d82196b7 Add timeouts for event flags.
Makes the threads/events/events test pass.

Still needs more tests, most likely several things are currently a
bit incorrect, like delete not waking threads.
2012-12-14 12:05:14 -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
Diogo Franco (Kovensky) af74d30790 Wrappers for sceKernelEventFlag 2012-11-12 00:43:48 +00:00
Henrik Rydgard aea0580297 More reworking of Callbacks, plus some other little fixes. 2012-11-07 15:44:48 +01:00