d3efa637b4
General: Fix up doxygen comments
2015-09-10 11:20:21 -04:00
0ee3e2c25e
Kernel: Fix wrong linear heap base on titles using newer kernels
...
Typo which sneaked in through review on #1025
2015-08-27 23:52:40 -03:00
12390eb155
Kernel: Fix assertion failure when ControlMemory is called with size=0
2015-08-26 21:29:05 -03:00
687d973980
Core: Improve APT Shared Font hack
...
Should fix invalid read loops in some games
2015-08-26 21:28:58 -03:00
840b85690b
Kernel: Remove unused legacy heap MapBlock_* functions
2015-08-16 01:03:49 -03:00
14eca982f4
Kernel: Implement svcGetProcessInfo in a basic way
...
This also adds some basic memory usage accounting. These two types are
used by Super Smash Bros. during startup.
2015-08-16 01:03:48 -03:00
74d4bc0af1
Kernel: Add more infrastructure to support different memory layouts
...
This adds some structures necessary to support multiple memory regions
in the future. It also adds support for different system memory types
and the new linear heap mapping at 0x30000000.
2015-08-16 01:03:47 -03:00
69c3021a8d
Move core/mem_map.{cpp,h} => core/hle/kernel/memory.{cpp,h}
2015-08-16 01:03:46 -03:00
e2c7954be5
Memory: Move address type conversion routines to memory.cpp/h
...
These helpers aren't really part of the kernel, and mem_map.cpp/h is
going to be moved there next.
2015-08-16 01:03:46 -03:00
a12a30c9e0
Process: Store kernel compatibility version during loading
2015-08-16 01:03:45 -03:00
cdeeecf080
Kernel: Properly implement ControlMemory FREE and COMMIT
2015-08-16 01:03:45 -03:00
306408d174
VMManager: Introduce names for used ResultCodes
2015-08-16 01:03:44 -03:00
b9a9ad9742
VMManager: Make LogLayout log level configurable as a parameter
2015-08-16 01:03:43 -03:00
785407d06f
VMManager: Change block offsets to size_t
2015-08-16 01:03:43 -03:00
dfb424b6d1
dyncom: Rename armdefs.h to armstate.h
2015-07-25 22:10:44 -04:00
275aaeef9c
Kernel/Scheduling: Clean up a thread's wait_objects when its scheduled.
...
They'll be reset if needed during the next svcWaitSynchronization call (if there's any pending)
2015-07-20 17:15:54 -05:00
dc39d06950
Ensure all kernel objects are released during shutdown
...
This commit fixes several kernel object leaks. The most severe of them
was threads not being removed from the private handle table used for
CoreTiming events. This resulted in Threads never being released, which
in turn held references to Process, causing CodeSets to never be freed
when loading other applications.
2015-07-17 02:24:13 -03:00
b6719ec922
Merge pull request #921 from linkmauve/fix-applet
...
Fix applet includes using iwyu
2015-07-12 17:25:55 -04:00
d4f35fd989
Kernel: Add CodeSet case to Object::IsWaitable
2015-07-12 18:15:16 -03:00
fe909b3b5a
Core: Fix applet includes using iwyu.
2015-07-12 22:10:37 +01:00
5c5cf2f8e0
Core: Properly configure address space when loading a binary
...
The code now properly configures the process image to match the loaded
binary segments (code, rodata, data) instead of just blindly allocating
a large chunk of dummy memory.
2015-07-11 23:54:42 -03:00
d9556912b4
Kernel: Remove unused member from Event
2015-07-11 23:49:51 -03:00
e5fcabdd69
Core: Cleanup file_sys includes.
2015-06-28 00:36:54 +01:00
aea15f5c73
Core: Cleanup core includes.
2015-06-28 00:36:54 +01:00
596b7c4f63
Common: Cleanup key_map includes.
2015-06-28 00:36:54 +01:00
81488d7a6a
Add helpers to create IPC command buffer headers and descriptors
2015-06-22 19:24:19 -03:00
71e8822d23
kernel: Fix svcWaitSynch to always acquire requested wait objects.
2015-06-16 22:34:39 -04:00
8a04c65e20
Merge pull request #810 from yuriks/memmap
...
Kernel: Add VMManager to manage process address spaces
2015-05-29 18:00:17 -07:00
b1503b2020
Remove every trailing whitespace from the project (but externals).
2015-05-29 21:59:29 +01:00
0a60aa75c2
Kernel: Add VMManager to manage process address spaces
...
This enables more dynamic management of the process address space,
compared to just directly configuring the page table for major areas.
This will serve as the foundation upon which the rest of the Kernel
memory management functions will be built.
2015-05-27 03:24:12 -03:00
b8f93e6b18
Kernel: Fix a warning introduced with ResourceLimit, and remove the fallback code to prevent it from happening again.
2015-05-21 20:54:49 +02:00
0b7d2941cf
Kernel: Move reschedules from SVCs to actual mechanisms that reschedule.
2015-05-20 18:05:47 -04:00
f0365f28c2
Merge pull request #772 from lioncash/warn
...
core/video_core: Fix a few warnings when compiling on MSVC.
2015-05-18 08:08:49 -04:00
d3634d4bf4
Core/ResourceLimits: Implemented the basic structure of ResourceLimits.
...
Implemented svcs GetResourceLimit, GetResourceLimitCurrentValues and GetResourceLimitLimitValues.
Note that the resource limits do not currently keep track of used objects, since we have no way to distinguish between an object created by the application, and an object created by some HLE module once we're inside Kernel::T::Create.
2015-05-14 22:50:13 -05:00
7ada357b2d
Memmap: Re-organize memory function in two files
...
memory.cpp/h contains definitions related to acessing memory and
configuring the address space
mem_map.cpp/h contains higher-level definitions related to configuring
the address space accoording to the kernel and allocating memory.
2015-05-15 00:04:38 -03:00
150e700729
process: Get rid of warnings
...
Sign mismatches and "forcing value to bool" warnings.
2015-05-14 12:59:14 -04:00
207087c856
thread: Fix a conditional check in Reschedule
2015-05-14 11:10:04 -04:00
cb2b2071a8
Merge pull request #748 from Subv/tls_max
...
Core/Memory: Add TLS support for creating up to 300 threads
2015-05-11 23:32:28 -04:00
ee8da4c356
Merge pull request #751 from yuriks/idle-thread
...
Thread: Remove the idle thread
2015-05-11 23:22:47 -04:00
6e26d063a5
Merge pull request #757 from Subv/scheduling
...
Core/Scheduling: Prepare the new priority in the thread queue when svcSetPriority is called
2015-05-11 22:54:00 -04:00
4f7a055081
Thread: Remove the idle thread
...
Instead just use nullptr to represent no thread is active.
2015-05-11 22:39:39 -03:00
dda94e56dd
Core/Memory: Add TLS support for creating up to 300 threads
2015-05-11 20:09:23 -05:00
820b97787c
Merge pull request #750 from Subv/process_svc
...
Core/HLE: Implemented the SVCs GetProcessId and GetProcessIdOfThread
2015-05-11 17:44:26 -07:00
dbc1320923
Core/Scheduling: Prepare the new priority in the thread queue when svcSetPriority is called
2015-05-11 19:38:10 -05:00
25c010dc7d
fixup!
2015-05-11 18:23:45 -05:00
41f74a16fd
Core/HLE: Implemented the SVCs GetProcessId and GetProcessIdOfThread
2015-05-11 09:15:10 -05:00
d16c2bd956
Thread: Correctly set main thread initial stack position
2015-05-11 05:08:47 -03:00
e98fbadf4a
Merge pull request #740 from yuriks/gsp-shmem
...
Fix crashes due to un-initialized GSP shared memory
2015-05-10 18:07:44 -07:00
115ad8e16a
fixup! Set the TLS address in the scheduler
2015-05-10 18:43:59 -05:00
000876858d
Core/Memory: Give every emulated thread it's own TLS area.
...
The TLS area for thread T with id Ti is located at TLS_AREA_VADDR + (Ti - 1) * 0x200.
This allows some games like Mario Kart 7 to continue further.
2015-05-10 18:35:37 -05:00