summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel (unfollow)
Commit message (Expand)AuthorFilesLines
2018-01-21Format: Run the new clang format on everythingJames Rowe22-31/+32
2018-01-20Added CreateSharedMemory & UNIMPLEMENTED() for non existent services. (#113)David2-1/+22
2018-01-20Fixes some cast warnings, partial port of citra #3064 (#106)River City Ransomware2-2/+2
2018-01-19svc: Fix svcGetInfo MapRegionBaseAddr.bunnei3-1/+9
2018-01-19svc: Add additional fields to MemoryInfo struct.bunnei1-0/+4
2018-01-18Stub PopLaunchParameter and implement Buffer C Descriptors reading on hle_ipc (#96)gdkchan2-7/+33
2018-01-18svc: Rename some entries to match their analogue on SwitchBrewLioncash1-7/+7
2018-01-18svc: Add CreateJitMemory and MapJitMemory svc stringsLioncash1-2/+2
2018-01-17svc: Clang-format fix.bunnei1-6/+4
2018-01-17hle_ipc: Clang format.bunnei1-2/+3
2018-01-17ipc: Implement domain command CloseVirtualHandle.bunnei2-2/+28
2018-01-17SVC: Correct some return values in svcGetInfo and added TitleId and PrivilegedProcessId stubs.Subv1-6/+21
2018-01-17SVC: Add 4.0.0+ comment to GetInfoType enum values.Subv1-0/+1
2018-01-17IPC: Push domain objects as move handles when not in a domain.Subv1-0/+8
2018-01-16SetThreadCoreMask stub, time to implement fspDavid Marcec1-1/+6
2018-01-16Added more svcGetInfo pairsDavid Marcec4-2/+29
2018-01-16clang-formatMerryMage6-18/+14
2018-01-14shared_memory: Minor fixes and cleanup.bunnei1-6/+6
2018-01-14svc: Implement svcMapSharedMemory.bunnei2-1/+38
2018-01-14kernel: Increase default stack size to 64K.bunnei1-1/+1
2018-01-13yuzu: Update license text to be consistent across project.bunnei14-14/+14
2018-01-12core: Include <algorithm> where used.bunnei1-0/+2
2018-01-12core: Fix recent GCC build breaks.bunnei1-2/+2
2018-01-12svc: Implement GetSystemTick.bunnei2-2/+21
2018-01-11IPC: Corrected some definitions for the buffer C descriptor flags.Subv2-1/+8
2018-01-11svc: Stub ResetSignal and CreateTransferMemorySubv2-3/+28
2018-01-11svc: Stub SetMemoryAttributeSubv2-0/+11
2018-01-10Threads: Added enum values for the Switch's 4 cpu cores and implemented svcGetInfo(AllowedCpuIdBitmask)Subv4-10/+25
2018-01-09SVC: Fixed WaitSynchronization with multiple handles when none is immediately ready.Subv1-7/+18
2018-01-09SVC: Implemented CancelSynchronization.Subv2-1/+19
2018-01-09ErrorCodes: Updated the InvalidHandle and Timeout kernel error codes.Subv1-2/+7
2018-01-09SVC: Fixed WaitSynchronization with multiple handles when at least one of them is ready.Subv2-3/+29
2018-01-09kernel: Rename Semaphore to ConditionVariable.bunnei8-159/+167
2018-01-09mutex: Remove unused call to VerifyGuestState.bunnei1-3/+0
2018-01-09Kernel: Actually wake up the requested number of threads in Semaphore::Release.Subv3-18/+16
2018-01-09Kernel: Properly keep track of mutex lock data in the guest memory. This fixes userland locking/unlocking.Subv3-63/+60
2018-01-09Kernel: Allow chaining WaitSynchronization calls inside a wakeup callback.Subv4-30/+78
2018-01-09CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119)B3n302-9/+5
2018-01-07IPC: Add functions to read the input move/copy objects from an IPC request.Subv2-2/+26
2018-01-07IPC: Don't attempt to read the command buffer if it holds a Close request.Subv1-0/+5
2018-01-07IPC Cleanup: Remove 3DS-specific code and translate copy, move and domain objects in IPC requests.Subv2-74/+72
2018-01-07IPC: Skip the entire u64 of the command id when receiving an IPC request.Subv1-1/+2
2018-01-07IPC: Use the correct size when pushing raw data to the command buffer and fixed pushing domain objects.Subv2-3/+7
2018-01-07svc: Implement svcSignalProcessWideKey.bunnei2-4/+23
2018-01-07semaphore: More changes for Switch.bunnei2-11/+17
2018-01-07wait_object: Refactor to allow waking up a single thread.bunnei2-15/+28
2018-01-06svc: Implement svcWaitProcessWideKeyAtomic.bunnei2-1/+54
2018-01-06semaphore: Updates for Switch.bunnei2-21/+31
2018-01-06svc: Implement WaitSynchronization for a single handle.bunnei1-4/+24
2018-01-06svc: Refactor LockMutex code to use WaitSynchronization1.bunnei1-13/+45
2018-01-05svc: Add missing string_util include.bunnei1-0/+1
2018-01-03arm: Remove SkyEye/Dyncom code that is ARMv6-only.bunnei2-23/+11
2018-01-03vm_manager: Use a more reasonable MAX_ADDRESS size.bunnei1-5/+4
2018-01-03svc: Remove unnecessary "svc" prefix to naming scheme.bunnei1-106/+106
2018-01-03hle: Move SVC code to kernel namespace.bunnei3-0/+805
2018-01-01vm_manager: Stub out a bunch of interfaces used by svcGetInfo.bunnei2-1/+51
2018-01-01core/video_core: Fix a bunch of u64 -> u32 warnings.bunnei1-2/+2
2018-01-01svc: Implement svcExitProcess.bunnei2-7/+38
2018-01-01svc: Implement svcLockMutex.bunnei2-23/+95
2018-01-01kernel: Add ObjectAddressTable class.bunnei3-2/+101
2017-12-31thread: Keep track of the initially created handle.bunnei2-1/+5
2017-12-31errors: Define missing kernel error codes.bunnei1-0/+3
2017-12-31svc: Implement svcUnmapMemory.bunnei2-0/+7
2017-12-30thread: Main thread should set thread handle to reg 1.bunnei1-1/+4
2017-12-30thread: Remove THUMB mode flag.bunnei1-1/+1
2017-12-30thread: Main thread should be ready by default, all others dormant.bunnei1-4/+3
2017-12-29kernel: Various 64-bit fixes in memory/process/threadbunnei5-14/+14
2017-12-29kernel: Fix implementation of ConvertSessionToDomain.bunnei6-30/+67
2017-12-29kernel: Add basic support for Domain object.bunnei4-4/+110
2017-12-29kernel: Add SyncObject primitive, use it for ClientSession.bunnei2-8/+38
2017-12-29process: Add method to mirror a memory region.bunnei2-0/+27
2017-11-01service: Return proper result code for IPC::CommandType::Close.bunnei2-6/+7
2017-11-01hle: Use Switch formatted result codes.bunnei2-77/+22
2017-10-20hle: Fix QueryMemory response for MemoryInfo.bunnei4-115/+14
2017-10-19hle_ipc: Only copy necessary fields for outgoing command buffer.bunnei1-1/+1
2017-10-19hle_ipc: Parse out buffer X/A/B/B descriptors from incoming command buffer.bunnei2-14/+19
2017-10-15hle: Implement ConvertSessionToDomain, various cleanups.bunnei3-5/+31
2017-10-15hle: Initial implementation of NX service framework and IPC.bunnei2-70/+107
2017-10-10loader: Various improvements for NSO/NRO loaders.bunnei2-4/+4
2017-10-02Kernel/SharedMemory: Don't take over and unmap the source memory block when creating a shared memory, just reference it.Subv1-15/+12
2017-10-01Kernel/Thread: Added a helper function to get a thread's command buffer VAddr.Subv2-0/+12
2017-09-30nso: Refactor and allocate .bss section.bunnei2-8/+10
2017-09-30process: Support loading multiple codesets.bunnei2-20/+27
2017-09-30kernel: Various threading fixes to support 64-bit addressing.bunnei2-8/+8
2017-09-30core: Various changes to support 64-bit addressing.bunnei2-21/+21
2017-09-30Fixed type conversion ambiguityHuw Pascoe9-23/+24
2017-09-28Kernel/Threads: When putting a thread to wait, specify a function to execute when it is awoken.Subv3-13/+26
2017-09-27Kernel/Thread: Allow specifying which process a thread belongs to when creating it.Subv3-15/+19
2017-09-24memory: Add GetCurrentPageTable/SetCurrentPageTableMerryMage1-7/+4
2017-09-15Kernel/Threads: Don't clear the CPU instruction cache when performing a context switch from an idle thread into a thread in the same process.Subv1-1/+3
2017-09-15Kernel/Memory: Changed GetPhysicalPointer so that it doesn't go through the current process' page table to obtain a pointer.Subv2-25/+7
2017-09-10Kernel/Memory: Switch the current page table when a new process is scheduled.Subv1-0/+10
2017-09-10Kernel/Memory: Give each Process its own page table.Subv2-5/+14
2017-08-22Kernel/HLE: Use a mutex to synchronize access to the HLE kernel state between the cpu thread and any other possible threads that might touch the kernel (network thread, etc).Subv1-1/+1
2017-08-22Kernel/Threads: Don't immediately switch to the new main thread when loading a new process.Subv1-5/+1
2017-08-21Warnings: Add UNREACHABLE macros to switches that contemplate all possible values.Subv1-0/+3
2017-06-29Kernel/SVC: Pass the current thread as a parameter to ClientSession::SendSyncRequest.Subv2-3/+6
2017-06-26Kernel/Sessions: Clean up the list of pending request threads of a session when the client endpoint is closed.Subv1-0/+5
2017-06-25Kernel/ServerSession: Keep track of which threads have issued sync requests.Subv3-9/+29
2017-06-23Kernel: Implement AcceptSession SVCYuri Kunde Schlesner3-2/+26
2017-06-22Memory: Make PhysicalToVirtualAddress return a boost::optionalYuri Kunde Schlesner1-1/+1
2017-06-21Kernel/IPC: Support translation of null handlesYuri Kunde Schlesner1-7/+12
2017-06-19ResultVal: Remove MoveFrom()Yuri Kunde Schlesner4-7/+7
2017-06-19Kernel: Add comment about the extended linear heap areaYuri Kunde Schlesner1-0/+2
2017-06-19Kernel/IPC: Make HLERequestContext usable from outside kernelYuri Kunde Schlesner2-3/+9
2017-06-12Kernel/IPC: Use boost::small_vector for HLE context objectsYuri Kunde Schlesner1-1/+3
2017-06-11Kernel: Allow clearing request_objects to re-use buffer spaceYuri Kunde Schlesner2-0/+11
2017-06-11Kernel: Basic support for IPC translation for HLE servicesYuri Kunde Schlesner2-6/+125
2017-06-11Kernel: Add methods in HLERequestContext abstracting handle creationYuri Kunde Schlesner2-0/+12
2017-06-11ServiceFramework: Use separate copy of command bufferYuri Kunde Schlesner1-3/+6
2017-06-08Session: Remove/add some forward declarationsYuri Kunde Schlesner2-1/+2
2017-06-08Kernel: Ensure objects are kept alive during ClientSession disconnectionYuri Kunde Schlesner1-7/+13
2017-06-08Service: Add new ServiceFramework framework for writing HLE servicesYuri Kunde Schlesner2-2/+36
2017-06-06Kernel: Remove some unnecessary namespace qualificationsYuri Kunde Schlesner1-4/+6
2017-06-06Kernel: Add a dedicated SetHleHandler method to ServerPort/ServerSessionYuri Kunde Schlesner7-33/+36
2017-06-06HLE: Move SessionRequestHandler from Service:: to Kernel::Yuri Kunde Schlesner8-15/+90
2017-05-30Kernel: Move HandleTable to a separate fileYuri Kunde Schlesner13-202/+234
2017-05-30Kernel: Move WaitObject to a separate fileYuri Kunde Schlesner11-132/+173
2017-05-30Kernel: Removed HandleTable::GetWaitObjectYuri Kunde Schlesner1-9/+0
2017-05-29Kernel: Extract dynamic Object pointer cast into its own functionYuri Kunde Schlesner1-11/+24
2017-05-25Kernel: Centralize error definitions in errors.hYuri Kunde Schlesner13-46/+133
2017-05-22Kernel/Sessions: Remove the ClientSession::Create function.Subv3-16/+3
2017-05-15Kernel: Remove a now unused enum and variable regarding a session's status.Subv2-8/+0
2017-05-15Kernel: Use a Session object to keep track of the status of a Client/Server session pair.Subv6-32/+84
2017-05-10Kernel: Map special regions according to ExHeaderYuri Kunde Schlesner4-50/+102
2017-05-10DSP: Create backing memory for entire DSP RAMYuri Kunde Schlesner1-1/+6
2017-02-27Timer: restore missing signaled=true from #2421wwylele1-0/+2
2017-02-27Fix log entry in timer::signal (#2600)B3n301-1/+1
2017-02-27Doxygen: Amend minor issues (#2593)Mat M1-1/+2
2017-02-27Core: Remove unnecessary include in thread.hYuri Kunde Schlesner2-1/+1
2017-02-22Timers: Immediately signal the timer if it was started with an initial value of 0.Subv2-16/+31
2017-01-11Threads: Check the process' resource limit for the max allowed priority when creating a thread and remove the priority clamping code.Subv1-8/+2
2017-01-11Thread: Added priority range checking to svcSetThreadPriority and removed priority clamping code from Thread::SetPriority.Subv2-18/+4
2017-01-06Kernel: Don't attempt to yield execution in SleepThread(0) if there are no available threads to run.Subv2-0/+9
2017-01-05Kernel: Remove some unused functions.Subv2-32/+0
2017-01-05Kernel: Removed the priority boost code for starved threads.Subv1-27/+0
2017-01-05Kernel: Implemented Pulse event and timers.Subv5-13/+20
2017-01-05Kernel/Semaphore: Fixed a regression in semaphore waits.Subv1-1/+2
2017-01-05Kernel: Add some asserts to enforce the invariants in the scheduler.Subv2-2/+13
2017-01-05Kernel: Remove a thread from all of its waiting objects' waiting_threads list when it is awoken.Subv1-18/+4
2017-01-05Kernel: Remove Thread::wait_objects_index and use wait_objects to hold all the objects that a thread is waiting on.Subv3-10/+19
2017-01-04Kernel: Use different thread statuses when a thread calls WaitSynchronization1 and WaitSynchronizationN with wait_all = true.Subv2-13/+17
2017-01-04Kernel/Mutex: Propagate thread priority changes to other threads inheriting the priority via mutexesSubv4-42/+54
2017-01-04Kernel/Mutex: Update a mutex priority when a thread stops waiting on it.Subv4-22/+39
2017-01-04Kernel/Mutex: Implemented priority inheritance.Subv4-22/+51
2017-01-04Kernel: Object ShouldWait and Acquire calls now take a thread as a parameter.Subv16-62/+50
2017-01-04Kernel/Synch: Do not attempt a reschedule on every syscall.Subv1-0/+1
2016-12-22ThreadContext: Move from "core" to "arm_interface".bunnei2-4/+5
2016-12-22core: Replace "AppCore" nomenclature with just "CPU".bunnei1-3/+3
2016-12-22core: Remove HLE module, consolidate code & various cleanups.bunnei4-7/+3
2016-12-22core: Consolidate core and system state, remove system module & cleanups.bunnei1-3/+3
2016-12-17Thread: remove the thread from the thread list when exitingwwylele2-2/+14
2016-12-16Kernel: remove object's waiting thread if it is deadwwylele1-1/+2
2016-12-14Fixed the codestyle to match our clang-format rules.Subv7-33/+51
2016-12-14Fixed the codestyle to match our clang-format rules.Subv2-8/+11
2016-12-10Properly remove a thread from its wait_objects' waitlist when it is awoken by a timeout.Subv2-1/+10
2016-12-09Moved the HLE command buffer translation task to ServerSession instead of the HLE handler superclass.Subv2-2/+23
2016-12-09WaitSynch: Removed unused variables and reduced SharedPtr copies.Subv3-13/+11
2016-12-08Added a framework for partially handling Session disconnections.Subv4-9/+35
2016-12-08Use std::move where appropriate.Subv5-7/+13
2016-12-07Use boost remove_erase_if instead of the erase-remove idiomSubv1-2/+3
2016-12-07Improved the algorithm for GetHighestPriorityReadyThread.Subv1-14/+13
2016-12-05Return an error code when connecting to a saturated port.Subv2-4/+11
2016-12-05Split SessionRequestHandler::HandleSyncRequest into HandleSyncRequest, TranslateRequest and HandleSyncRequestImpl.Subv2-0/+2
2016-12-05Kernel: Remove the Redirection handle type.Subv1-2/+0
2016-12-05KServerPorts now have an HLE handler "template", which is inherited by all ServerSessions created from it.Subv8-35/+60
2016-12-04Threading: Added some utility functions and const correctness.Subv2-10/+22
2016-12-04Threading: Reworked the way our scheduler works.Subv6-111/+76
2016-12-03Declare empty ServerSession and ClientSession constructors as default.Subv2-4/+4
2016-12-01Fixed the rebase mistakes.Subv7-51/+46
2016-12-01A bit of a redesign.Subv6-215/+24
2016-12-01IPC/HLE: Associate the ClientSessions with their parent port's HLE interface if it exists.Subv4-22/+15
2016-12-01Kernel/HLE: Service::Interface no longer inherits from any Kernel object, and is now its own standalone class.Subv2-8/+44
2016-12-01fixup! Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.Subv3-4/+5
2016-12-01 Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.Subv7-56/+233
2016-11-20Kernel/Loader: Grab the system mode from the NCCH ExHeader.Subv2-6/+4
2016-11-19Kernel/Events: Log an error when trying to create Pulse events and timers.Subv2-0/+10
2016-10-20Fix typosRicardo de Almeida Gonzaga2-2/+2
2016-09-22move ResetType to kernel.hwwylele3-7/+6
2016-09-22implement wait tree widgetwwylele4-0/+16
2016-09-21Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner14-14/+14
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot29-74/+16
2016-09-19Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner15-64/+36
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot30-419/+616
2016-09-15arm: ResetContext shouldn't be part of ARM_Interface.bunnei1-1/+17
2016-08-02fix #1942 and adds a few IPC functions for descriptorsLectem1-15/+103
2016-06-11Kernel/SVC: Implemented svcCreatePort.Subv4-2/+11
2016-06-05Kernel: Added ClientPort and ServerPort classes.Subv5-2/+135
2016-06-04Thread: update timeout when rerunning WaitSynchwwylele1-0/+49
2016-05-31Fix parameter name in EnableNotificationmailwl1-0/+4
2016-05-30Switch context on the same thread if necessarywwylele1-2/+6
2016-05-26Memory: Added necessary headers and removed unnecessary headerMerryMage1-0/+1
2016-05-21Kernel/Thread: Remove use of Memory::GetPointerMerryMage1-1/+1
2016-05-17Set fpscr for new threadsJannik Vogel1-0/+2
2016-05-14Memory: Fixed a regression caused by #1695 and #1689.Subv1-0/+3
2016-05-13HLE/Applets: Give each applet its own block of heap memory, and use that when creating the framebuffer shared memory block.Subv2-1/+30
2016-05-13Kernel: Account for automatically-allocated shared memories in the amount of used linear heap memory.Subv1-0/+5
2016-05-13Kernel/SharedMemory: Log an error when Map fails.Subv1-1/+10
2016-05-13Kernel: Implemented shared memory permissions.Subv2-9/+47
2016-05-13Kernel/Memory: Remove the Shared Memory region from the legacy memory map.Subv1-1/+0
2016-05-13Kernel/SharedMemory: Properly implemented shared memory support.Subv2-65/+79
2016-05-13Kernel/SVC: Fixed the register order for svcCreateMemoryBlock.Subv1-1/+1
2016-05-07Kernel/Threading: Warn when a thread can be scheduled in the Syscore (Core 1).Subv1-0/+2
2016-05-07Kernel/Threads: Dynamically allocate the TLS region for threads in the BASE region of the linear heap.Subv4-22/+74
2016-04-05Common: Remove Common::make_unique, use std::make_uniqueMerryMage1-1/+2
2016-03-21session: Make helper functions constexprLioncash1-6/+6
2016-03-21hle: Get rid of global access to g_rescheduleLioncash1-1/+2
2016-03-13svc: Move ResetType enum to the kernel event headerLioncash2-2/+8
2016-03-12svc: Make ResetType an enum classLioncash2-2/+2
2016-03-06Memory: Do correct Phys->Virt address translation for non-APP linheapYuri Kunde Schlesner2-2/+5
2016-02-21AudioCore: Skeleton ImplementationMerryMage1-1/+4
2016-02-12BitField: Make trivially copyable and remove assignment operatorMerryMage1-1/+1
2016-01-30Memory: Implement MMIOMerryMage2-4/+8
2016-01-14HLE/SVC: Implement UnmapMemoryBlock.Subv2-0/+28
2015-12-30HLE/Timers: Reset OneShot timers when they are acquired instead of when they're triggered.Subv1-3/+3
2015-12-28SVC: Fixed ArbitrateAddress to behave as it does on hardware.Subv2-9/+18
2015-12-01Kernel: Implement svcGetSystemInfoYuri Kunde Schlesner4-0/+12
2015-10-07Silence -Wsign-compare warnings.Rohit Nirmal1-1/+1
2015-09-16general: Silence some warnings when using clangLioncash1-2/+4
2015-09-10General: Fix up doxygen commentsLioncash3-6/+3
2015-08-28Kernel: Fix wrong linear heap base on titles using newer kernelsYuri Kunde Schlesner1-1/+1
2015-08-27Kernel: Fix assertion failure when ControlMemory is called with size=0Yuri Kunde Schlesner1-0/+8
2015-08-27Core: Improve APT Shared Font hackYuri Kunde Schlesner2-2/+27
2015-08-16Kernel: Remove unused legacy heap MapBlock_* functionsYuri Kunde Schlesner2-77/+0
2015-08-16Kernel: Implement svcGetProcessInfo in a basic wayYuri Kunde Schlesner3-1/+15
2015-08-16Kernel: Add more infrastructure to support different memory layoutsYuri Kunde Schlesner5-20/+138
2015-08-16Move core/mem_map.{cpp,h} => core/hle/kernel/memory.{cpp,h}Yuri Kunde Schlesner3-1/+160
2015-08-16Memory: Move address type conversion routines to memory.cpp/hYuri Kunde Schlesner1-1/+0
2015-08-16Process: Store kernel compatibility version during loadingYuri Kunde Schlesner2-3/+7
2015-08-16Kernel: Properly implement ControlMemory FREE and COMMITYuri Kunde Schlesner4-23/+243
2015-08-16VMManager: Introduce names for used ResultCodesYuri Kunde Schlesner2-6/+11
2015-08-16VMManager: Make LogLayout log level configurable as a parameterYuri Kunde Schlesner3-5/+15
2015-08-16VMManager: Change block offsets to size_tYuri Kunde Schlesner2-3/+3
2015-07-26dyncom: Rename armdefs.h to armstate.hLioncash1-1/+1
2015-07-21Kernel/Scheduling: Clean up a thread's wait_objects when its scheduled.Subv1-0/+8
2015-07-17Ensure all kernel objects are released during shutdownYuri Kunde Schlesner1-7/+14
2015-07-12Kernel: Add CodeSet case to Object::IsWaitableYuri Kunde Schlesner1-0/+1
2015-07-12Core: Fix applet includes using iwyu.Emmanuel Gil Peyrot2-0/+4
2015-07-12Core: Properly configure address space when loading a binaryYuri Kunde Schlesner5-14/+88
2015-07-12Kernel: Remove unused member from EventYuri Kunde Schlesner2-2/+1
2015-06-28Core: Cleanup file_sys includes.Emmanuel Gil Peyrot1-1/+2
2015-06-28Core: Cleanup core includes.Emmanuel Gil Peyrot2-1/+2
2015-06-28Common: Cleanup key_map includes.Emmanuel Gil Peyrot4-6/+10
2015-06-23Add helpers to create IPC command buffer headers and descriptorsYuri Kunde Schlesner1-0/+34
2015-06-17kernel: Fix svcWaitSynch to always acquire requested wait objects.bunnei7-101/+37
2015-05-29Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot5-11/+11
2015-05-27Kernel: Add VMManager to manage process address spacesYuri Kunde Schlesner2-0/+445
2015-05-21Kernel: Fix a warning introduced with ResourceLimit, and remove the fallback code to prevent it from happening again.Emmanuel Gil Peyrot1-2/+1
2015-05-21Kernel: Move reschedules from SVCs to actual mechanisms that reschedule.bunnei6-0/+20
2015-05-15Core/ResourceLimits: Implemented the basic structure of ResourceLimits.Subv6-1/+286
2015-05-15Memmap: Re-organize memory function in two filesYuri Kunde Schlesner6-6/+5
2015-05-14process: Get rid of warningsLioncash1-3/+3
2015-05-14thread: Fix a conditional check in RescheduleLioncash1-1/+1
2015-05-12Thread: Remove the idle threadYuri Kunde Schlesner2-44/+19
2015-05-12Core/Memory: Add TLS support for creating up to 300 threadsSubv3-7/+19
2015-05-12Core/Scheduling: Prepare the new priority in the thread queue when svcSetPriority is calledSubv1-0/+2
2015-05-12fixup!Subv2-7/+3
2015-05-11Core/HLE: Implemented the SVCs GetProcessId and GetProcessIdOfThreadSubv5-2/+19
2015-05-11Thread: Correctly set main thread initial stack positionYuri Kunde Schlesner3-5/+4
2015-05-11fixup! Set the TLS address in the schedulerSubv2-2/+7
2015-05-11Core/Memory: Give every emulated thread it's own TLS area.Subv3-4/+22
2015-05-11Kernel: Zero-fill shared memory blocks when mappingYuri Kunde Schlesner1-0/+8
2015-05-11Kernel: Capture SharedMemory attributes at creation, not when mappingYuri Kunde Schlesner2-16/+29
2015-05-09Common: Remove the BIT macroYuri Kunde Schlesner1-2/+2
2015-05-09Memory: Re-organize and rename memory area address constantsYuri Kunde Schlesner2-3/+4
2015-05-09Kernel: Remove unused g_main_thread variableYuri Kunde Schlesner3-5/+1
2015-05-09Process: Rename StaticAddressMapping => AddressMappingYuri Kunde Schlesner2-5/+5
2015-05-09Process: Add more documentation to the class membersYuri Kunde Schlesner1-2/+16
2015-05-09Process: Use BitField to store process flagsYuri Kunde Schlesner2-16/+24
2015-05-09Process: Support parsing of exheader kernel capsYuri Kunde Schlesner2-4/+72
2015-05-09Kernel: Remove g_program_idYuri Kunde Schlesner2-8/+0
2015-05-09Kernel: Introduce skeleton Process class to hold process dataYuri Kunde Schlesner4-19/+101
2015-05-07Common: Remove common.hYuri Kunde Schlesner9-8/+14
2015-05-07Move typedefs from kernel.h to more appropriate placesYuri Kunde Schlesner1-10/+1
2015-05-02Kernel: Properly initialize and shutdown all modules.bunnei4-9/+20
2015-04-14Kernel: Use the correct format string for u64 hex.Emmanuel Gil Peyrot1-1/+1
2015-04-10SVC: Update various SVCs to cause a reschedule.bunnei1-4/+0
2015-04-10Kernel: Implemented priority inheritance for mutexes.bunnei3-4/+22
2015-04-10Thread: Implement priority boost for starved threads.bunnei2-22/+51
2015-04-10Kernel: Fixed default thread priority.bunnei2-5/+4
2015-04-09Initialize base address to 0x0Gareth Higgins1-0/+1
2015-02-20Misc cleanup of common and related functionsarchshift1-2/+3
2015-02-12Build: Fixed some warningsSubv3-4/+4
2015-02-11Asserts: break/crash program, fit to style guide; log.h->assert.harchshift7-15/+13
2015-02-10Scheduler refactor Pt. 1Kevin Hartman3-223/+258
2015-02-10Mutex: Locks should be recursive.bunnei2-16/+20
2015-02-03core: Fix some warnings on OSXLioncash1-1/+0
2015-02-02Kernel: Stop creating useless Handles during object creationYuri Kunde Schlesner12-36/+17
2015-02-02Kernel: Make WaitObjects share ownership of Threads waiting on themYuri Kunde Schlesner6-12/+17
2015-02-02Explicitly instantiate constructors/destructors for Kernel objectsYuri Kunde Schlesner16-8/+50
2015-02-02Mutex: Replace g_mutex_held_locks with a set inside ThreadYuri Kunde Schlesner3-23/+18
2015-02-02Kernel: Fix bug in HandleTable::CloseYuri Kunde Schlesner1-1/+1
2015-02-02Kernel: Remove Object::GetHandle (it's not used anymore :D)Yuri Kunde Schlesner2-9/+1
2015-02-02Kernel: Introduce unique Object ids for debuggingYuri Kunde Schlesner4-8/+16
2015-02-02Kernel: Use separate Handle tables for CoreTiming userdataYuri Kunde Schlesner4-18/+25
2015-02-02Kernel: Remove previous scheduled event when a Timer is re-SetYuri Kunde Schlesner1-0/+3
2015-02-02Thread: Modernize two functions that slipped through previous rebasesYuri Kunde Schlesner3-15/+13
2015-02-01arm: Clean up ARMul_StateLioncash1-1/+1
2015-01-30shared_memory: Fix assignments in SharedMemory::MapLioncash2-4/+4
2015-01-30Kernel: Mark all appropriate kernel objects as "final"Yuri Kunde Schlesner7-8/+7
2015-01-30Remove result.h InvalidHandleYuri Kunde Schlesner1-1/+2
2015-01-30Kernel: Convert Event to not use HandlesYuri Kunde Schlesner2-83/+51
2015-01-30Kernel: Convert Timer to (mostly) not use HandlesYuri Kunde Schlesner2-104/+72
2015-01-30Kernel: Convert Mutex to not use HandlesYuri Kunde Schlesner2-101/+82
2015-01-30Kernel: Convert AddressArbiter to not use HandlesYuri Kunde Schlesner2-32/+31
2015-01-30Kernel: Convert Semaphore to not use HandlesYuri Kunde Schlesner2-61/+61
2015-01-30Kernel: Convert SharedMemory to not use HandlesYuri Kunde Schlesner2-71/+54
2015-01-30Move VAddr/PAddr typedefs to kernel.hYuri Kunde Schlesner1-0/+5
2015-01-30Kernel: Remove useless/duplicated comments; mark functions staticYuri Kunde Schlesner6-32/+8
2015-01-22Thread: Fix WaitSynchronization1 to not set register 1 on thread wakeup.bunnei2-22/+42
2015-01-22Thread: Use std::find in CheckWait_WaitObject.bunnei1-4/+5
2015-01-22Mutex: Cleanup and remove redundant code.bunnei3-47/+29
2015-01-22Kernel: Renamed some functions for clarity.bunnei7-10/+10
2015-01-22Kernel: Changed "ShouldWait" to return bool and "Acquire" to return void.bunnei8-64/+39
2015-01-22WaitObject: Renamed "Wait" to "ShouldWait", made "ShouldWait" and "Acquire" pure virtual.bunnei8-21/+20
2015-01-22Event: Fix implementation of "non-sticky" events.bunnei1-0/+4
2015-01-22Session: Change to a WaitObject.bunnei3-2/+9
2015-01-22Kernel: Reschedule on SignalEvent and SendSyncRequest, fix some bugs.bunnei1-1/+1
2015-01-22Mutex: Fix a bug where the thread should not wait if it already has the mutex.bunnei1-1/+4
2015-01-22Kernel: Moved Wait and Acquire to WaitObject, added way to retrieve a WaitObject safely.bunnei3-18/+57
2015-01-22AddressArbiter: Changed to Kernel::Object, big cleanup, removed code that made no sense.bunnei4-35/+42
2015-01-22Kernel: Get rid of WaitTypes and simplify lots of code, removing hacks.bunnei8-112/+43
2015-01-22WaitSynchronizationN: Refactor to fix several bugsbunnei7-54/+49
2015-01-22Kernel: Separate WaitSynchronization into Wait and Acquire methods.bunnei7-14/+54
2015-01-22WaitSynchronizationN: Implement return valuesbunnei9-56/+139
2015-01-22Event: Fixed some bugs and cleanup (Subv)bunnei2-54/+13
2015-01-22Thread: Keep track of multiple wait objects.bunnei3-16/+30
2015-01-22Event: Get rid of permanent_lock hack.bunnei2-36/+8
2015-01-22WaitObject: Added RemoveWaitingThread, fixed a bug, and cleanup.bunnei2-4/+17
2015-01-22Kernel: Added WaitObject and changed "waitable" objects inherit from it.bunnei8-71/+73
2015-01-20core: Fix a few docstringsLioncash2-2/+2
2015-01-13AddrArbiter: Implement arbitration types 3 and 4.Subv2-3/+20
2015-01-11Thread: Prevent waking a thread multiple times.Subv1-0/+3
2015-01-09Kernel: Start using boost::intrusive_ptr for lifetime managementYuri Kunde Schlesner10-76/+75
2015-01-09Kernel: Don't re-assign object's handle when duplicating oneYuri Kunde Schlesner2-2/+3
2015-01-09Thread: Fix nullptr access in a logging functionYuri Kunde Schlesner1-1/+2
2015-01-09Thread: Rename thread_queue => thread_listYuri Kunde Schlesner1-6/+6
2015-01-09Thread: Reduce use of Handles and move some funcs to inside the class.Yuri Kunde Schlesner9-281/+190
2015-01-09Kernel: Move Thread's definition to the header fileYuri Kunde Schlesner3-53/+67
2015-01-09Move ThreadContext to core/core.h and deal with the falloutYuri Kunde Schlesner2-4/+6
2015-01-09SVC: Implemented the Timer service calls.Subv5-1/+194
2015-01-09SVC: Fixed SleepThread.Subv2-8/+39
2015-01-08Threads: Use a dummy idle thread when no other are ready.Subv3-1/+35
2015-01-07Common: Clean up ThreadQueueListYuri Kunde Schlesner1-1/+1
2015-01-04Mutex: Add the calling thread to the waiting list when neededSubv1-2/+2
2015-01-03AddressArbiter: Ported arbitration type 2 from 3dmoo.Subv1-0/+11
2014-12-28Kernel: New handle managerYuri Kunde Schlesner9-142/+189
2014-12-28Kernel: Replace GetStaticHandleType by HANDLE_TYPE constantsYuri Kunde Schlesner8-15/+15
2014-12-28Rename ObjectPool to HandleTableYuri Kunde Schlesner8-41/+41
2014-12-21License changepurpasmart9615-16/+16
2014-12-21Thread: Wait current thread on svc_SleepThreadbunnei2-21/+33
2014-12-20Clean up some warningsChin2-5/+5
2014-12-20Kernel: Implement support for current thread pseudo-handleYuri Kunde Schlesner3-2/+16
2014-12-18Filesystem/Archives: Implemented the SaveData archiveSubv2-0/+7
2014-12-16HLE: Rename namespaces to match move & fix initialization orderYuri Kunde Schlesner1-5/+0
2014-12-16HLE: Move kernel/archive.* to service/fs/Yuri Kunde Schlesner3-534/+1
2014-12-15Remove SyncRequest from K::Object and create a new K::Session typeYuri Kunde Schlesner3-38/+75
2014-12-13Kernel/Semaphore: Small style changeSubv1-1/+1
2014-12-13Kernel/Semaphores: Invert the available count checking.Subv1-11/+9
2014-12-13Kernel/Semaphores: Addressed some issues.Subv2-32/+18
2014-12-13Semaphore: Removed an unneeded functionSubv1-5/+0
2014-12-13Semaphores: Addressed some style issuesSubv1-6/+5
2014-12-13Semaphore: Implemented the initial_count parameter.Subv2-5/+7
2014-12-13SVC: Implemented ReleaseSemaphore.Subv2-16/+64
2014-12-13SVC: Implemented svcCreateSemaphoreSubv2-0/+98
2014-12-13kernel: Remove unused log argumentsLioncash1-3/+3
2014-12-13Convert old logging calls to new logging macrosYuri Kunde Schlesner6-72/+45
2014-12-09Thread: Fixed to wait on address when in arbitration.bunnei3-11/+31
2014-12-07Make OpenDirectory fail if the directory doesn't existarchshift1-0/+5
2014-12-07Mutex: Remove some forward declarationsSubv1-16/+15
2014-12-07Mutex: Release all held mutexes when a thread exits.Subv3-22/+56
2014-12-06Mutex: Properly lock the mutex when a thread enters itSubv1-12/+9
2014-12-04Threads: Remove a redundant function.Subv1-9/+1
2014-12-04Threads: Implemented a sequential thread idSubv2-4/+19
2014-12-04Updated archive.cpp functions for proper error handlingarchshift2-65/+36
2014-12-04SVC: Implemented GetThreadId.Subv2-0/+19
2014-12-04kernel: Shorten GetCountLioncash1-6/+3
2014-12-04kernel: Make some functions constLioncash2-4/+4
2014-11-26Thread: Check that thread is actually in "wait state" when verifying wait.bunnei1-1/+1
2014-11-26Mutex: Changed behavior to always release mutex for all threads.bunnei1-8/+7
2014-11-25Implemented RenameDirectory in FS:USERarchshift2-0/+35
2014-11-25Implemented RenameFile in FS:USERarchshift2-0/+35
2014-11-24Use pointers instead of passing handles around in some functions.Yuri Kunde Schlesner1-19/+15
2014-11-24Remove duplicated docs/update them for changed parameters.Yuri Kunde Schlesner9-78/+0
2014-11-24HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner13-201/+187
2014-11-23Added DeleteFile and DeleteDirectory functions to FS:USER and the archives.archshift2-1/+47
2014-11-19Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot12-42/+42
2014-11-19Add static to some variablesLioncash1-22/+22
2014-11-19Kernel:Add missing permissions in shared memory & svcpurpasmart961-5/+9
2014-11-18Remove extraneous semicolonsLioncash1-1/+1
2014-11-18Archive: Fixed to not destroy archive handle on close.bunnei1-3/+3
2014-11-18Archive: Fixed close archive before freeing.bunnei1-1/+1
2014-11-18FS_User: Support FileSye::Path in a more generic way.bunnei1-0/+11
2014-11-18FileSys: Updated backend code to use FileSys::Path instead of string for paths.bunnei2-10/+10
2014-11-14Fix two format strings.Lioncash1-1/+1
2014-11-02Added CreateDirectory function to service/fs.cpp, and in Archive.archshift2-2/+25
2014-10-30Fix some warningsSean1-3/+3
2014-10-26Add `override` keyword through the code.Yuri Kunde Schlesner6-35/+35
2014-10-06FileSys: split the constructor into an Open method, in order to notify the opener something went wrong.Emmanuel Gil Peyrot1-0/+3
2014-10-06FileSys/Kernel: Implement SetSize service call for File objects.Emmanuel Gil Peyrot1-0/+8
2014-09-21Use the citra user path for the sdmc directoryarchshift1-2/+1
2014-09-17Kernel: Implement the Close command for Archive, File and Directory.Emmanuel Gil Peyrot2-0/+43
2014-09-17Kernel: Add a Directory object and a getter for it from an Archive object.Emmanuel Gil Peyrot3-0/+91
2014-09-17Kernel: Add a File object and a getter for it from an Archive object.Emmanuel Gil Peyrot2-0/+118
2014-09-15Core: Get rid of unnecessary switch statement in KernelLioncash1-41/+2
2014-09-09core: Prune redundant includesarchshift3-6/+0
2014-08-31Threading: Fix thread starting to execute first instruction correctly.bunnei1-0/+5
2014-08-28Threading: Fix thread starting to execute first instruction correctly.bunnei1-0/+5
2014-08-23Added FS functions to Archive and Archive_RomFSarchshift1-3/+31
2014-08-19Core: Use std::array for managing kernel object spaceLioncash2-5/+5
2014-08-18Core: Alter the kernel string functions to use std::string instead of const char*.Lioncash8-25/+22
2014-08-07Thread: Added more descriptive comment to WaitCurrentThread.bunnei2-2/+10
2014-08-06AddressArbiter: Removed unnecessary HLE::Reschedule.bunnei1-1/+0
2014-08-06AddressArbiter: Fixed bug with break statements missing from case statements.bunnei1-0/+2
2014-08-06Kernel: Updated Event and Mutex to specify handle that they are blocking for.bunnei2-2/+2
2014-07-09Kernel: Added preliminary support for address arbiters.bunnei3-1/+124
2014-07-09Thread: Added functions to resume threads from address arbitration.bunnei2-0/+44
2014-07-05SharedMemory: Updated MapSharedMemory to use an enum for permissions.bunnei2-6/+27
2014-07-05Kernel: Added support for shared memory objects.bunnei2-0/+132
2014-07-05Archive: Added Init/Shutdown methods to reset kernel archive state.bunnei3-0/+19
2014-07-05FileSys: Added preliminary support for applications reading the RomFS archive.bunnei2-10/+105
2014-06-27Kernel: Added stubbed code to support creation of kernel Archive objects.bunnei3-0/+85
2014-06-13Kernel: Removed unnecessary "#pragma once".bunnei1-2/+0
2014-06-13Kernel: Added freeing of kernel objects on emulator shutdown.bunnei2-0/+10
2014-06-13Event: Updated several log messages to be assertions.bunnei1-16/+8
2014-06-13Thread: Renamed occurrences of "t" to "thread" to improve readability.bunnei1-48/+45
2014-06-13Thread: Cleaned up VerifyWait, fixed issue where nullptr msg could unnecessarily be logged.bunnei1-9/+7
2014-06-13HLE: Removed usnused EatCycles function.bunnei1-9/+0
2014-06-13Thread: Moved position of * in arguments.bunnei1-2/+2
2014-06-13Thread: Updated VerifyWait to be more readable (but functionally the same).bunnei1-4/+3
2014-06-13HLE: Updated all uses of NULL to nullptr (to be C++11 compliant)bunnei3-9/+9
2014-06-13Kernel: Updated various kernel function "name" arguments to be const references.bunnei4-6/+6
2014-06-13HLE: Updated various handle debug assertions to be more clear.bunnei2-3/+3
2014-06-13Mutex: Moved ReleaseMutex iterator declaration to be inside while loop.bunnei1-2/+1
2014-06-13Kernel: Updated several member functions to be constbunnei4-11/+11
2014-06-13Thread: Fixed bug with ResetThread where cpu_registers[15] was being incorrectly setbunnei1-1/+1
2014-06-13Kernel: Made SyncRequest not pure virtual, with a default implementation of error (as this is not required for all kernel objects)bunnei3-23/+4
2014-06-13Kernel: Added real support for thread and event blockingbunnei5-48/+165
2014-06-05kernel: changed current default thread priority back to 0x30 - I think this is more correctbunnei1-1/+1
2014-06-03svc: added optional name field to Event and Mutex (used for debugging)bunnei4-8/+21
2014-06-03kernel: moved position of * for GetTypeName and GetNamebunnei1-2/+2
2014-06-02svc: added GetThreadPriority and SetThreadPriority, added (incomplete) DuplicateHandle supportbunnei2-0/+51
2014-06-02kernel: changed main thread priority to default, updated Kernel::Reschedule to use PrepareReschedulebunnei3-4/+6
2014-06-01thread: updated Reschedule to sit at a synchronization barrier when no other threads are ready for executionbunnei1-0/+18
2014-06-01event: added a hackish ability to set an event as "locked" to its current state, cleaned up some commentsbunnei2-4/+32
2014-05-30mutex: fixed typo in ReleaseMutexbunnei1-1/+3
2014-05-30event: added support for ClearEvent, fixed a bug with CreateEvent, fixed some commentsbunnei2-9/+14
2014-05-28mutex: added preliminary SyncRequest/WaitSynchronization, added some comments/assertionsbunnei1-0/+6
2014-05-28event: fixed typos and updated CMakeListsbunnei1-1/+1
2014-05-28event: added SetEventLocked method to change status an events lockbunnei2-0/+18
2014-05-28kernel: added event module to support creation of CTR "Event" objectsbunnei2-0/+119
2014-05-27mutex: removed docstring comment that is no longer relevantbunnei1-1/+0
2014-05-27mutex: added additional docstringsbunnei1-0/+2
2014-05-27kernel: added WaitSynchronization method to Kernel::Objectbunnei3-0/+29
2014-05-27kernel: updated SyncRequest to take boolean thread wait result as a parameterbunnei3-5/+20
2014-05-27kernel: added enum for known CurrentThread and CurrentProcess handlesbunnei1-0/+5
2014-05-27kernel: add a SyncRequest method to KernelObject for use with svcSendSyncRequestbunnei3-0/+11
2014-05-23thread: renamed "WaitCurThread" to "WaitCurrentThread", removed unused "reason" argumentbunnei2-4/+4
2014-05-23thread: removed unused SwitchContext/Reschedule reason field, added missing arg parameter to SVC CreateThreadbunnei2-4/+4
2014-05-23kernel: refactored function naming to remove "__" prefixbunnei5-62/+72
2014-05-23thread: moved ThreadStatus/WaitType to header, added support for arg on CreateThread, added correct CPSR resetbunnei2-35/+40
2014-05-22thread: fixed bug where result of __NextThread was not being properly checked when NULLbunnei1-1/+1
2014-05-21mutex: refactored the interface to code to return a Mutex* handlebunnei2-3/+13
2014-05-21mutex: initial commit of HLE modulebunnei2-0/+148
2014-05-21kernel: fixed include, in general include "common.h" not "common_types.h"bunnei1-1/+1
2014-05-21thread: added correct lowest thread priority, added a thread priority check, and added some commentsbunnei2-6/+10
2014-05-21thread: exposed ResumeThreadFromWait function for use in other kernel modulesbunnei2-8/+11
2014-05-21thread: moved threading calls to the Kernel namespacebunnei3-101/+115
2014-05-21ARM_Interface: added SaveContext and LoadContext functions for HLE thread switchingbunnei1-36/+2
2014-05-21renamed "syscall" module to "svc" (more accurate naming)bunnei1-1/+1
2014-05-21thread: whitespace change - fixed * and & placementbunnei2-27/+27
2014-05-21- created a Kernel namespacebunnei4-67/+79
2014-05-20thread: added declaration for __KernelReschedule to be used by syscall modulebunnei1-0/+3
2014-05-19- updated service(s) to be KernelObject'sbunnei1-4/+5
2014-05-19- moved Handle/Result definitions to kernel.hbunnei2-3/+2
2014-05-17changed a commentbunnei2-2/+2
2014-05-17- added enum ThreadProcessorIdbunnei2-53/+107
2014-05-17- replaced KERNELOBJECT_MAX_NAME_LENGTH with KERNEL_MAX_NAME_LENGTHbunnei3-8/+12
2014-05-16completely gutted/refactored threading code to be simplerbunnei2-658/+230
2014-05-16changed "UID" to "Handle" to be a little more consistent with CTR namingbunnei2-18/+21
2014-05-15- added helper function for __KernelCreateThreadbunnei2-4/+76
2014-05-15changed primary thread priority to 0x30 - this is typical, not 0x31bunnei1-1/+2
2014-05-14fixed thread reset to not set stack addressbunnei1-1/+1
2014-05-14various cleanups / remove unused codebunnei2-65/+29
2014-05-14added 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 pointbunnei2-70/+543
2014-05-14- added __KernelLoadExec functionbunnei2-13/+35
2014-05-10added initial kernel/thread modulesbunnei4-0/+527