Commit Graph

387 Commits

Author SHA1 Message Date
bunnei
4b4a6de1d8 apt: added stubbed function for InquireNotification 2014-05-28 23:33:24 -04:00
bunnei
c4b5168b45 hle: properly cast 64-bit function wrapper parameters to (u64) 2014-05-28 22:03:10 -04:00
bunnei
9fd5d6c7d8 hle: removed PARAM64 macro (this was incorrect), made several bug fixes accordingly for decoding U64 function parameters 2014-05-28 21:20:00 -04:00
bunnei
46aef01d04 lcd: moved kFrameTicks to lcd.h for use in other modules 2014-05-28 21:19:13 -04:00
bunnei
70af9d620b service: changed interface to return 0 (no error) when a service method is unimplemented - hack to make apps boot further 2014-05-28 18:39:28 -04:00
bunnei
3972d4ca8b APT_U: added stubbed function for APT_U::Enable, fixed some log messages to be more consistent 2014-05-27 23:56:08 -04:00
bunnei
2ed6652f10 mutex: added preliminary SyncRequest/WaitSynchronization, added some comments/assertions 2014-05-27 22:42:16 -04:00
bunnei
47e781e80a svc: implemented WaitSynchronization1, WaitSynchronizationN, and CreateEvent 2014-05-27 22:41:09 -04:00
bunnei
94b30e8a38 APT_U: added event creation to Initialize method 2014-05-27 22:29:11 -04:00
bunnei
ea8627d536 event: fixed typos and updated CMakeLists 2014-05-27 22:14:38 -04:00
bunnei
beea6f054a event: added SetEventLocked method to change status an events lock 2014-05-27 22:14:00 -04:00
bunnei
fd69fd0325 kernel: added event module to support creation of CTR "Event" objects 2014-05-27 20:16:13 -04:00
bunnei
d493d725ac mutex: removed docstring comment that is no longer relevant 2014-05-26 22:49:11 -04:00
bunnei
93cd5a0691 mutex: added additional docstrings 2014-05-26 22:47:47 -04:00
bunnei
a432dc8f39 kernel: added WaitSynchronization method to Kernel::Object 2014-05-26 22:17:49 -04:00
bunnei
58a3adcdd2 kernel: updated SyncRequest to take boolean thread wait result as a parameter 2014-05-26 22:12:46 -04:00
bunnei
6e51c56fe4 svc: added some assertions 2014-05-26 21:57:10 -04:00
bunnei
16fea415d0 service: Renamed Sync to SyncRequest 2014-05-26 21:56:51 -04:00
bunnei
3d7693f75f kernel: added enum for known CurrentThread and CurrentProcess handles 2014-05-26 21:56:23 -04:00
bunnei
96b2105524 srv: added a real mutex for GetProcSemaphore (instead of stubbed) 2014-05-26 21:55:55 -04:00
bunnei
9f7ed2d027 svc: changed SendSyncRequest to use Kernel::Object SyncRequest (instead of just service Interface class) 2014-05-26 21:17:10 -04:00
bunnei
d73d782ba7 kernel: add a SyncRequest method to KernelObject for use with svcSendSyncRequest 2014-05-26 21:01:27 -04:00
bunnei
15d2ab1b33 svc: added stub for DuplicateHandle SVC call 2014-05-26 20:55:48 -04:00
bunnei
0aa582bf89 service: fixed typo that MSVC did not catch as an error 2014-05-22 23:48:37 -04:00
bunnei
420971a849 core: fixed headers in CMakeLists 2014-05-22 23:39:25 -04:00
bunnei
32c314c992 Merge branch 'threading' 2014-05-22 22:57:45 -04:00
bunnei
51f636b3d4 core: added Kernel::Reschedule() call to check for thread changes, shortened delay time to 100 instructions 2014-05-22 22:54:07 -04:00
bunnei
f8a98ab022 svc: added a check to ensure that a service was implemented before attempting to connect to its port 2014-05-22 22:49:29 -04:00
bunnei
7bb66421a0 lcd: added thread wait after (faked) vblank interrupt (would have) occurred 2014-05-22 20:01:04 -04:00
bunnei
b99ac2c3d6 thread: renamed "WaitCurThread" to "WaitCurrentThread", removed unused "reason" argument 2014-05-22 19:36:56 -04:00
bunnei
7c0b006076 thread: removed unused SwitchContext/Reschedule reason field, added missing arg parameter to SVC CreateThread 2014-05-22 19:32:45 -04:00
bunnei
d26f3d4c1f kernel: refactored function naming to remove "__" prefix 2014-05-22 19:06:12 -04:00
bunnei
ac21e8f2db core: moved armcopro.cpp to correct filter folder (arm/interpreter) 2014-05-22 18:51:55 -04:00
bunnei
14bd37c5dc thread: moved ThreadStatus/WaitType to header, added support for arg on CreateThread, added correct CPSR reset 2014-05-22 18:50:36 -04:00
bunnei
9fddba6843 APT_U: added a debug log on calling GetLockHandle 2014-05-22 18:48:14 -04:00
bunnei
481d936d34 arm_interpreter: fixed load context to currently resume a thread 2014-05-22 18:47:42 -04:00
bunnei
6a78be5930 thread: fixed bug where result of __NextThread was not being properly checked when NULL 2014-05-21 21:42:18 -04:00
bunnei
06e3c3d55a svc: added Kernel::Reschedule to svc WaitSynchronization1, updated log messages to include newly created handles 2014-05-21 21:41:40 -04:00
bunnei
706584f007 svc: enabled use of newly created kernel thread handle 2014-05-20 23:36:35 -04:00
bunnei
eb537c560a mutex: refactored the interface to code to return a Mutex* handle 2014-05-20 23:23:58 -04:00
bunnei
978e1d4653 mutex: initial commit of HLE module 2014-05-20 23:03:45 -04:00
bunnei
08e6a9bf89 svc: added some comments 2014-05-20 22:57:54 -04:00
bunnei
1c5802c35a kernel: fixed include, in general include "common.h" not "common_types.h" 2014-05-20 22:27:46 -04:00
bunnei
9bf7ce535a service: removed redundant include of common_types.h 2014-05-20 22:27:12 -04:00
bunnei
a721a4eb33 arm: removed include of windows.h from armdefs.h to arminit.c (only module that uses it) 2014-05-20 22:26:40 -04:00
bunnei
22eb9a8981 armemu: missed rename of "Syscall" to "SVC" 2014-05-20 22:25:40 -04:00
bunnei
203541da11 thread: added correct lowest thread priority, added a thread priority check, and added some comments 2014-05-20 21:02:35 -04:00
bunnei
bed4e920fa thread: exposed ResumeThreadFromWait function for use in other kernel modules 2014-05-20 21:00:10 -04:00
bunnei
75c6d2a8fa thread: moved threading calls to the Kernel namespace 2014-05-20 19:37:46 -04:00
bunnei
0012802456 ARM_Interpreter/ARM_Interface: Fixed member variable naming to be consistent with style guide 2014-05-20 18:52:54 -04:00
bunnei
49dc2ce8ac ARM_Interface: added SaveContext and LoadContext functions for HLE thread switching 2014-05-20 18:50:16 -04:00
bunnei
143bba2045 renamed "syscall" module to "svc" (more accurate naming) 2014-05-20 18:28:38 -04:00
bunnei
f654a03f1f thread: whitespace change - fixed * and & placement 2014-05-20 18:20:35 -04:00
bunnei
44336329ed - created a Kernel namespace
- cleaned up Kernel code a bit (moved stuff into namespace, fixed whitespace issues)
- added handle types for all different CTROS handles
2014-05-20 18:13:25 -04:00
bunnei
0886dc70ed apt: changed stubbed handle to be something other than 0xDEADBEEF (used as a magic value in other places) so that I can track how it propagates through the app code 2014-05-19 22:21:17 -04:00
bunnei
f5a119a367 thread: added declaration for __KernelReschedule to be used by syscall module 2014-05-19 22:19:48 -04:00
bunnei
29930ac110 VFP: disable DBG messages because they spam the console with unimportant skyeye junk 2014-05-19 22:19:10 -04:00
bunnei
204c6bfeca Merge pull request #2 from archshift/issue-7-fix
Fixes issues with building Citra on OSX
2014-05-19 21:46:57 -04:00
archshift
403e4bf837 CMakeLists: rename HEADS, improved comments
Changes for clarity of comments, removed redundant compiler flags.
2014-05-19 15:19:36 -07:00
bunnei
088a2de9a6 renamed "session" to "handle" 2014-05-18 22:24:26 -04:00
bunnei
112904b832 - renamed NewHandle to CreateHandle
- updated CreateHandle/DeleteHandle to use KernelObject's
2014-05-18 22:09:08 -04:00
bunnei
16d55842c5 fix warning 2014-05-18 21:43:41 -04:00
bunnei
eab6fd01d7 - updated service(s) to be KernelObject's
- various cleanups
2014-05-18 21:43:29 -04:00
bunnei
725d240bf7 renamed "UID" to "Handle" where appropriate 2014-05-18 18:24:24 -04:00
bunnei
772abad778 - moved Handle/Result definitions to kernel.h
- added ResetType enum
2014-05-18 18:12:29 -04:00
bunnei
8fba88d5d5 - added stub for CreateEvent
- changed some stubbed SVCs to return unique handle names for debugging purposes
2014-05-18 17:52:02 -04:00
bunnei
6a6c7eeccb added stubbed function for WaitSynchronizationN 2014-05-17 23:37:25 -04:00
archshift
c396a5ac57 Fixed vfp issues 2014-05-17 10:55:45 -07:00
bunnei
fbc04ad0c7 ignore thumbemu 0xDEADCODE debugging catch on MCR 2014-05-17 13:48:27 -04:00
bunnei
09b8e8fb6a changed a comment 2014-05-17 13:47:55 -04:00
bunnei
cfea5fdd58 cleanups to SVC CreateThread 2014-05-17 13:47:44 -04:00
bunnei
3fac6dc39e Merge branch 'master' into threading 2014-05-17 13:35:20 -04:00
bunnei
265c770a9d updated how we call ARM core to make things much faster 2014-05-17 11:59:18 -04:00
archshift
c1394650ff Updated cmakelists 2014-05-16 23:39:27 -07:00
archshift
b8c8d0903e Merge remote-tracking branch 'upstream/master' into issue-7-fix 2014-05-16 23:21:03 -07:00
bunnei
14ae026386 - added enum ThreadProcessorId
- reorganized some kernel thread functions
- added placeholder __KernelWaitThread_Synchronization function
2014-05-17 00:56:00 -04:00
bunnei
7cdb705059 - replaced KERNELOBJECT_MAX_NAME_LENGTH with KERNEL_MAX_NAME_LENGTH
- added KERNEL_DEFAULT_STACK_SIZE definition (0x4000)
2014-05-16 23:48:15 -04:00
bunnei
39ee75fc8d added stubbed GetProcSemaphore - does nothing but avoids an exception 2014-05-16 23:25:16 -04:00
bunnei
4faed70b40 add kernel.* and thread.* to VS filters 2014-05-16 23:24:39 -04:00
bunnei
540a693eae updated APT_U::GetLockHandle to return a valid handle 2014-05-16 23:23:56 -04:00
bunnei
0b1ba2f37a Merge master into threading to add support for VFP 2014-05-16 22:24:34 -04:00
bunnei
92be5517c4 same fix as last commit - just for vfpsingle.cpp 2014-05-16 21:25:33 -04:00
bunnei
1dc08765a8 another VFP fix for GCC 2014-05-16 21:18:01 -04:00
bunnei
509f63486a fixed VFP DBG log for GCC 2014-05-16 21:10:30 -04:00
bunnei
afc9e27fc7 fixed typo in CMakeLists.txt 2014-05-16 20:57:31 -04:00
bunnei
145a91f21f - reenabled MCR and MRC functions now that VFP is attached
- removed HLE::CallMCR function (was pointless)
2014-05-16 20:52:46 -04:00
bunnei
a2804bf701 - removed unused stubbed out code
- fixed some compiler issues with xscale_copro when porting code to Windows
- fixed some #include's
2014-05-16 20:04:13 -04:00
bunnei
f872807de2 added maverick.cpp to ARM core from skyeye 2014-05-16 00:52:42 -04:00
bunnei
f3c9875acb fixed includes 2014-05-16 00:52:13 -04:00
bunnei
f5400080bd enabled CP_ACCESS_ALLOWED 2014-05-16 00:51:59 -04:00
bunnei
68408ed9b9 fixed include path 2014-05-16 00:51:45 -04:00
bunnei
7cd7d17954 removed undefined function ARMul_ConsolePrint 2014-05-16 00:51:36 -04:00
bunnei
ad49d481a8 added missing armcopro from skyeye 2014-05-16 00:23:36 -04:00
bunnei
9a642caee7 added missing skyeye mmu code 2014-05-15 23:39:06 -04:00
bunnei
56846a4200 fixed armmmu imports 2014-05-15 22:58:21 -04:00
bunnei
3e1eafa244 - moved mmu to arm/interpreter folder
- added initial VFP code from skyeye
2014-05-15 22:54:17 -04:00
bunnei
4fba4f36bf - added SVC stubs for QueryMemory and GetThreadId
- added SVC structs MemoryInfo and PageInfo
2014-05-15 20:17:30 -04:00
bunnei
4910b6f336 added memory mapped region for system mem - sdk demos load a segment here on ELF load 2014-05-15 18:56:28 -04:00
bunnei
3c240abf10 added ability to load AXF files (same as ELF) 2014-05-15 18:54:57 -04:00
bunnei
940330c6e1 completely gutted/refactored threading code to be simpler 2014-05-15 18:27:08 -04:00
bunnei
a7cc430aa4 changed "UID" to "Handle" to be a little more consistent with CTR naming 2014-05-15 18:26:28 -04:00
bunnei
367d63691f - added ThreadContext struct
- cleaned up CreateThread svc
2014-05-15 18:25:56 -04:00
bunnei
b99a5da65b - added helper function for __KernelCreateThread
- added __KernelSwitchToThread for enabling a thread
- added __KernelRotateThreadReadyQueue
2014-05-14 20:50:30 -04:00
bunnei
9f5588725c changed primary thread priority to 0x30 - this is typical, not 0x31 2014-05-14 20:49:27 -04:00
bunnei
4d7f3c74fd added function stubs for EatCycles and ReSchedule 2014-05-14 20:49:02 -04:00
bunnei
0de78eb3c4 fixed thread reset to not set stack address 2014-05-13 23:18:28 -04:00
bunnei
7d078189da various cleanups / remove unused code 2014-05-13 22:29:31 -04:00
bunnei
3838d46b90 added a bunch of threading code, recycled from PPSSPP, with lots of hacks in for 3DS... doesn't really do much yet. Just a jumping off point 2014-05-13 22:00:11 -04:00
bunnei
b87536e82c changed loader to use __KernelLoadExec 2014-05-13 21:58:51 -04:00
bunnei
b5ef630c9c added CreateThread, CreateMutex, and ReleaseMutex SVC stubs (just parameter decoding for now) 2014-05-13 21:58:26 -04:00
bunnei
1583d2b6f3 - added __KernelLoadExec function
- fixed some logging
2014-05-13 21:57:12 -04:00
bunnei
ce4d271a53 added option to set CPSR register to arm_interface 2014-05-11 22:14:13 -04:00
bunnei
6b264518a5 added initial kernel/thread modules 2014-05-09 22:11:18 -04:00
bunnei
b39cd3a64c removed unknown fields from GX_CmdBufferHeader 2014-05-08 17:12:07 -04:00
bunnei
4de763f462 removed unnecessary log message 2014-05-07 21:19:03 -04:00
bunnei
72622a1b5a - removed HLE mem "hack" and replaced with kernel mem region
- added a helper function for getting command buffer for services
- fixed bug where GSP DMA was incorrectly being done in DataSynchronizationBarrier (instead of gsp_TriggerCmdReqQueue)
2014-05-07 21:04:55 -04:00
bunnei
f23e99bb85 added kernel memory to mem_map 2014-05-07 21:01:09 -04:00
bunnei
de36d82dde - added debug logging to syscall.cpp
- added stubbed HLE syscall functions for svc_GetResourceLimit and svc_GetResourceLimitCurrentValues
2014-05-06 23:34:20 -04:00
bunnei
a3a383cb7a added mem_map read for config_mem 2014-05-06 23:32:04 -04:00
bunnei
34dc0a9b07 added config_mem module for HLE of firmware configuration memory settings 2014-05-06 23:29:39 -04:00
bunnei
d1472b816f - disable strict alignment on LDRD/STRD
- handle RD in STREX/STREXB
2014-05-06 21:34:00 -04:00
bunnei
e3ee3e441b commented out useless debug logs that just spammed console 2014-05-06 17:17:00 -04:00
bunnei
f7c6302009 - added CallMCR function to coprocessor HLE module
- moved instruction decoding to coprocessor HLE module
2014-05-01 23:03:50 -04:00
bunnei
c1e71ae1ac fixed include in coprocessor.cpp 2014-05-01 19:21:04 -04:00
bunnei
f043424915 renamed hle "mrc" module to "coprocessor" 2014-05-01 19:20:44 -04:00
bunnei
4ee72869cc - added some function wrappers for HLE
- added stub for SVC CreateAddressArbiter
- added OutputDebugString SVC
2014-05-01 18:50:36 -04:00
bunnei
bb7fcf79fe - added option to load a code.bin file extracted from a CXI file
- updated load launcher.dat function to use ARM11 format hack
2014-04-30 23:50:14 -04:00
bunnei
29da6e9ab5 added a module to load symbol map files for debugging 2014-04-30 23:46:06 -04:00
bunnei
924e7b6af8 fixed a bug where ExeFs code was being incorrectly masked 2014-04-30 23:31:04 -04:00
archshift
704075f04a Fixed indents 2014-04-30 20:13:28 -07:00
archshift
bdc3c99904 Merge commit upstream/master into issue-7-fix 2014-04-30 18:01:12 -07:00
archshift
a7f3ed003d A bit of Cmake love 2014-04-30 16:56:47 -07:00
bunnei
235dddb3f1 added virtual memory map for ExeFS (where ARM11 code is supposed to be loaded) 2014-04-30 18:31:35 -04:00
bunnei
c37390f8e2 reorganized memory regions enum, added regions for ExeFS code 2014-04-30 18:31:24 -04:00
archshift
237d079aad Merge commit upstream/master into issue-7-fix 2014-04-28 19:44:43 -07:00
archshift
b9fc729928 Problematic template functions 2014-04-27 22:23:58 -07:00
bunnei
af921daa4c added virtual address conversion for firmware FW0B 2014-04-27 22:32:51 -04:00
bunnei
a48c6b947d removed DISALLOW_COPY_AND_ASSIGN in favor of NonCopyable class 2014-04-27 18:29:51 -04:00
bunnei
451a14f98c fixed weird spacing 2014-04-27 18:24:54 -04:00
bunnei
f76a60be05 removed commented out line - this was for an unimplemented MRC call, no longer need to leave this here 2014-04-27 18:22:30 -04:00
bunnei
a6c925112a hackish but working way to set the framebuffer location to VRAM (used in ARM11 demos tested thus far, e.g. yeti3DS) 2014-04-27 12:41:25 -04:00
bunnei
b2a6ad52f4 added helper functions to mem_map to convert physical addresses to virtual addresses 2014-04-27 12:40:31 -04:00
bunnei
f0525a1eb4 added code to LCD modules keep track of framebuffer location in FCRAM or VRAM 2014-04-27 12:39:57 -04:00
bunnei
f78794961e - changed HW IO map to use virtual addresses
- added hooks to catch LCD IO read/writes
2014-04-26 14:21:40 -04:00
bunnei
9e047e32d4 added simple GSP GPU ReadHWRegs function to support returning the framebuffer address 2014-04-26 01:48:24 -04:00
bunnei
a272803dcb added preliminary DataSynchronizationBarrier support with simple DMA copy 2014-04-26 01:47:52 -04:00
bunnei
25d595d869 added (fake) physical addresses for where to put framebuffer in VRAM 2014-04-26 01:32:05 -04:00
bunnei
86a515e5ac added vram to memory_map 2014-04-26 01:27:25 -04:00
bunnei
cb0663de51 moved HLE::MRC to its own module, added support for catching data synchronization barrier command 2014-04-25 17:15:19 -04:00
bunnei
6151e26958 added disassembly to unimplemented instruction 2014-04-25 15:57:32 -04:00