Yuri Kunde Schlesner
0b64705384
Thread: Convert thread_queue to pointers
2015-01-03 15:02:17 -02:00
Yuri Kunde Schlesner
906da53958
Thread: Replace a for-loop with range-for
2015-01-03 15:02:17 -02:00
Yuri Kunde Schlesner
db0a526fbb
Thread: Convert wait_handle member to a pointer
2015-01-03 15:02:16 -02:00
Yuri Kunde Schlesner
5eb52c950d
Thread: Convert waiting_threads list from Handle to pointers
2015-01-03 15:02:16 -02:00
Yuri Kunde Schlesner
e19dc7e6f0
Thread: Remove unused static global
2015-01-03 15:02:16 -02:00
Yuri Kunde Schlesner
ce6b967f4e
Thread: Move ResumeThreadFromWait into member function
2015-01-03 15:02:15 -02:00
Yuri Kunde Schlesner
eae3d8e6d8
Thread: Move StopThread to a member function
2015-01-03 15:02:15 -02:00
Yuri Kunde Schlesner
4637df2721
Thread: Convert some uses of handles to pointers
2015-01-03 15:02:14 -02:00
Yuri Kunde Schlesner
333557152c
Thread: Move more helper functions into members
2015-01-03 15:02:14 -02:00
Yuri Kunde Schlesner
d1b7587647
Thread: Move Get/SetThreadPriority to be Thread members
2015-01-03 15:02:13 -02:00
Yuri Kunde Schlesner
ff992edecf
Thread: Move CreateThread into a static Kernel::Create function
2015-01-03 15:02:13 -02:00
Yuri Kunde Schlesner
3ac3803b92
Kernel: Move Thread's definition to the header file
2015-01-03 15:02:12 -02:00
Yuri Kunde Schlesner
4aa829b367
Move ThreadContext to core/core.h and deal with the fallout
2015-01-03 15:02:12 -02:00
Yuri Kunde Schlesner
7e2903cb74
Kernel: New handle manager
...
This handle manager more closely mirrors the behaviour of the CTR-OS
one. In addition object ref-counts and support for DuplicateHandle have
been added.
Note that support for DuplicateHandle is still experimental, since parts
of the kernel still use Handles internally, which will likely cause
troubles if two different handles to the same object are used to e.g.
wait on a synchronization primitive.
2014-12-28 11:52:55 -02:00
Yuri Kunde Schlesner
23f2142009
Kernel: Replace GetStaticHandleType by HANDLE_TYPE constants
2014-12-28 11:52:53 -02:00
Yuri Kunde Schlesner
73fba22c01
Rename ObjectPool to HandleTable
2014-12-28 11:52:52 -02:00
bunnei
0de6a08d75
Merge pull request #291 from purpasmart96/license
...
License change
2014-12-21 16:05:44 -05:00
purpasmart96
ebfd831ccb
License change
2014-12-20 21:20:24 -08:00
bunnei
4fcdbed9f6
Thread: Wait current thread on svc_SleepThread
...
- Removed unused VBLANK sleep mode
- Added error log for bad context switch
- Renamed VerifyWait to CheckWaitType to be more clear
2014-12-20 23:20:19 -05:00
Yuri Kunde Schlesner
adee775f44
Kernel: Implement support for current thread pseudo-handle
...
This boots a few (mostly Nintendo 1st party) games further.
2014-12-20 03:27:47 -02:00
Yuri Kunde Schlesner
0600e2d8b5
Convert old logging calls to new logging macros
2014-12-13 02:08:02 -02:00
bunnei
3a75c8069e
Merge pull request #256 from Subv/mutex
...
Kernel/Mutex: Properly lock the mutex when a thread enters it
2014-12-10 22:52:55 -05:00
bunnei
dd203f7068
Thread: Fixed to wait on address when in arbitration.
2014-12-08 19:44:10 -05:00
Subv
64128aa61a
Mutex: Release all held mutexes when a thread exits.
2014-12-07 15:44:21 -05:00
Subv
6fac2bf0ab
Threads: Remove a redundant function.
...
Use the next_thread_id variable directly.
2014-12-04 14:59:56 -05:00
Subv
ef1d5cda06
Threads: Implemented a sequential thread id
2014-12-04 08:13:53 -05:00
Subv
029ff9f1fd
SVC: Implemented GetThreadId.
...
For now threads are using their Handle value as their Id, it should not really cause any problems because Handle values are unique in Citra, but it should be changed. I left a ToDo there because this is not correct behavior as per hardware.
2014-12-04 00:25:35 -05:00
bunnei
de851ba1a1
Thread: Check that thread is actually in "wait state" when verifying wait.
2014-11-26 15:04:08 -05:00
Yuri Kunde Schlesner
8189593255
Use pointers instead of passing handles around in some functions.
2014-11-24 17:08:37 -02:00
Yuri Kunde Schlesner
22c86824a4
Remove duplicated docs/update them for changed parameters.
2014-11-24 17:08:36 -02:00
Yuri Kunde Schlesner
c2588403c0
HLE: Revamp error handling throrough the HLE code
...
All service calls in the CTR OS return result codes indicating the
success or failure of the call. Previous to this commit, Citra's HLE
emulation of services and the kernel universally either ignored errors
or returned dummy -1 error codes.
This commit makes an initial effort to provide an infrastructure for
error reporting and propagation which can be use going forward to make
HLE calls accurately return errors as the original system. A few parts
of the code have been updated to use the new system where applicable.
One part of this effort is the definition of the `ResultCode` type,
which provides facilities for constructing and parsing error codes in
the structured format used by the CTR.
The `ResultVal` type builds on `ResultCode` by providing a container for
values returned by function that can report errors. It enforces that
correct error checking will be done on function returns by preventing
the use of the return value if the function returned an error code.
Currently this change is mostly internal since errors are still
suppressed on the ARM<->HLE border, as a temporary compatibility hack.
As functionality is implemented and tested this hack can be eventually
removed.
2014-11-24 17:08:36 -02:00
bunnei
c0cd0fa78e
Merge pull request #211 from linkmauve/master
...
Remove trailing spaces from the entire project
2014-11-19 15:24:46 -05:00
Emmanuel Gil Peyrot
f5d38649c7
Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated
2014-11-19 09:03:07 +00:00
Lioncash
7cbecde2ca
Add static to some variables
2014-11-18 20:04:00 -05:00
Yuri Kunde Schlesner
d72708c1f5
Add override
keyword through the code.
...
This was automated using `clang-modernize`.
2014-10-26 16:18:05 -02:00
archshift
6e606c515f
core: Prune redundant includes
2014-09-08 17:54:14 -07:00
bunnei
304999dfeb
Threading: Fix thread starting to execute first instruction correctly.
2014-08-28 17:51:49 -04:00
Lioncash
98fa3f7cba
Core: Alter the kernel string functions to use std::string instead of const char*.
...
Most functions already operate on std::strings. This also removes the need to manually null terminate thread names.
2014-08-17 23:12:20 -04:00
bunnei
d4bd2f2e5d
Thread: Added more descriptive comment to WaitCurrentThread.
2014-08-06 18:19:59 -04:00
bunnei
ba840d3200
Thread: Added functions to resume threads from address arbitration.
...
Thread: Cleaned up arbitrate address functions.
Thread: Cleaned up ArbitrateAllThreads function.
2014-07-08 18:46:15 -04:00
bunnei
b62ef4bbd2
Thread: Renamed occurrences of "t" to "thread" to improve readability.
2014-06-13 09:51:17 -04:00
bunnei
5b7cf50a77
Thread: Cleaned up VerifyWait, fixed issue where nullptr msg could unnecessarily be logged.
2014-06-13 09:51:16 -04:00
bunnei
4620e2a741
HLE: Removed usnused EatCycles function.
2014-06-13 09:51:16 -04:00
bunnei
bfdd874b1f
Thread: Moved position of * in arguments.
2014-06-13 09:51:14 -04:00
bunnei
12e2a59565
Thread: Updated VerifyWait to be more readable (but functionally the same).
2014-06-13 09:51:14 -04:00
bunnei
c95972275e
HLE: Updated all uses of NULL to nullptr (to be C++11 compliant)
2014-06-13 09:51:13 -04:00
bunnei
d7363322c7
HLE: Updated various handle debug assertions to be more clear.
2014-06-13 09:51:11 -04:00
bunnei
8cac527c94
Kernel: Updated several member functions to be const
2014-06-13 09:51:10 -04:00
bunnei
b774b8b04e
Thread: Fixed bug with ResetThread where cpu_registers[15] was being incorrectly set
2014-06-13 09:51:08 -04:00
bunnei
aae9fcf4a4
Kernel: Made SyncRequest not pure virtual, with a default implementation of error (as this is not required for all kernel objects)
2014-06-13 09:51:08 -04:00