Yuri Kunde Schlesner
46dc35ae20
Memory: Do correct Phys->Virt address translation for non-APP linheap
10 years ago
MerryMage
d2710b784a
AudioCore: Skeleton Implementation
This commit:
* Adds a new subproject, audio_core.
* Defines structures that exist in DSP shared memory.
* Hooks up various other parts of the emulator into audio core.
This sets the foundation for a later HLE DSP implementation.
10 years ago
MerryMage
867c111e99
BitField: Make trivially copyable and remove assignment operator
10 years ago
MerryMage
e614492dca
Memory: Implement MMIO
10 years ago
Subv
d9c4c1622f
HLE/SVC: Implement UnmapMemoryBlock.
This implementation will need to be (almost completely) changed when we implement multiprocess support.
10 years ago
Subv
9aa852982f
HLE/Timers: Reset OneShot timers when they are acquired instead of when they're triggered.
Closes #1139
10 years ago
Subv
a2c2b28b54
SVC: Fixed ArbitrateAddress to behave as it does on hardware.
This was verified with hwtests that i plan to upload later on.
10 years ago
Yuri Kunde Schlesner
5bed732b03
Kernel: Implement svcGetSystemInfo
This makes smealum/ctrulib@b96dd51d3349961189d4ab1bc2a5c45deff21c09 work
with Citra.
11 years ago
Rohit Nirmal
c157d4ddd6
Silence -Wsign-compare warnings.
11 years ago
Lioncash
08147474cb
general: Silence some warnings when using clang
11 years ago
Lioncash
54fa043c92
General: Fix up doxygen comments
11 years ago
Yuri Kunde Schlesner
6bef26d764
Kernel: Fix wrong linear heap base on titles using newer kernels
Typo which sneaked in through review on #1025
11 years ago
Yuri Kunde Schlesner
990ff3f241
Kernel: Fix assertion failure when ControlMemory is called with size=0
11 years ago
Yuri Kunde Schlesner
b9b540a222
Core: Improve APT Shared Font hack
Should fix invalid read loops in some games
11 years ago
Yuri Kunde Schlesner
984bea6698
Kernel: Remove unused legacy heap MapBlock_* functions
11 years ago
Yuri Kunde Schlesner
00e9d19f28
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.
11 years ago
Yuri Kunde Schlesner
e34643a3e4
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.
11 years ago
Yuri Kunde Schlesner
6bb23baf0a
Move core/mem_map.{cpp,h} => core/hle/kernel/memory.{cpp,h}
11 years ago
Yuri Kunde Schlesner
168d376c67
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.
11 years ago
Yuri Kunde Schlesner
521cb56792
Process: Store kernel compatibility version during loading
11 years ago
Yuri Kunde Schlesner
8850ade24d
Kernel: Properly implement ControlMemory FREE and COMMIT
11 years ago
Yuri Kunde Schlesner
ce332ef416
VMManager: Introduce names for used ResultCodes
11 years ago
Yuri Kunde Schlesner
f287e6dff4
VMManager: Make LogLayout log level configurable as a parameter
11 years ago
Yuri Kunde Schlesner
c31e812624
VMManager: Change block offsets to size_t
11 years ago
Lioncash
dfb424b6d1
dyncom: Rename armdefs.h to armstate.h
11 years ago
Subv
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)
11 years ago
Yuri Kunde Schlesner
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.
11 years ago
Yuri Kunde Schlesner
d4f35fd989
Kernel: Add CodeSet case to Object::IsWaitable
11 years ago
Emmanuel Gil Peyrot
fe909b3b5a
Core: Fix applet includes using iwyu.
11 years ago
Yuri Kunde Schlesner
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.
11 years ago
Yuri Kunde Schlesner
d9556912b4
Kernel: Remove unused member from Event
11 years ago
Emmanuel Gil Peyrot
e5fcabdd69
Core: Cleanup file_sys includes.
11 years ago
Emmanuel Gil Peyrot
aea15f5c73
Core: Cleanup core includes.
11 years ago
Emmanuel Gil Peyrot
596b7c4f63
Common: Cleanup key_map includes.
11 years ago
Yuri Kunde Schlesner
81488d7a6a
Add helpers to create IPC command buffer headers and descriptors
11 years ago
bunnei
71e8822d23
kernel: Fix svcWaitSynch to always acquire requested wait objects.
11 years ago
Emmanuel Gil Peyrot
b1503b2020
Remove every trailing whitespace from the project (but externals).
11 years ago
Yuri Kunde Schlesner
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.
11 years ago
Emmanuel Gil Peyrot
b8f93e6b18
Kernel: Fix a warning introduced with ResourceLimit, and remove the fallback code to prevent it from happening again.
11 years ago
bunnei
0b7d2941cf
Kernel: Move reschedules from SVCs to actual mechanisms that reschedule.
11 years ago
Subv
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.
11 years ago
Yuri Kunde Schlesner
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.
11 years ago
Lioncash
150e700729
process: Get rid of warnings
Sign mismatches and "forcing value to bool" warnings.
11 years ago
Lioncash
207087c856
thread: Fix a conditional check in Reschedule
11 years ago
Yuri Kunde Schlesner
4f7a055081
Thread: Remove the idle thread
Instead just use nullptr to represent no thread is active.
11 years ago
Subv
dda94e56dd
Core/Memory: Add TLS support for creating up to 300 threads
11 years ago
Subv
dbc1320923
Core/Scheduling: Prepare the new priority in the thread queue when svcSetPriority is called
11 years ago
Subv
25c010dc7d
fixup!
11 years ago
Subv
41f74a16fd
Core/HLE: Implemented the SVCs GetProcessId and GetProcessIdOfThread
11 years ago
Yuri Kunde Schlesner
d16c2bd956
Thread: Correctly set main thread initial stack position
11 years ago