summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel (follow)
Commit message (Expand)AuthorAgeFilesLines
* svc: Return process title ID if queried in GetInfo()Lioncash2018-08-251-2/+1
* Merge pull request #1051 from B3n30/UnscheduleEventThreadsafebunnei2018-08-161-1/+1
|\
| * Core::CoreTiming: add UnscheduleEventThreadsafeB3n302018-08-131-1/+1
* | kernel/server_session: Add IsSession() member functionLioncash2018-08-152-2/+7
* | kernel/svc: Log svcBreak parametersLioncash2018-08-151-2/+5
|/
* kernel/object: Tighten object against data racesLioncash2018-08-132-8/+9
* Merge pull request #1043 from Subv/timingbunnei2018-08-131-1/+0
|\
| * Kernel/SVC: Don't reschedule the current core when creating a new thread.Subv2018-08-131-1/+0
* | Merge pull request #1036 from lioncash/threadbunnei2018-08-132-2/+2
|\ \
| * | scheduler: Make HaveReadyThreads() a const member functionLioncash2018-08-122-2/+2
| |/
* | Merge pull request #1042 from Subv/racesbunnei2018-08-131-2/+9
|\ \
| * | Kernel/Threads: Lock the HLE mutex when executing the wakeup callback.Subv2018-08-131-0/+5
| * | Kernel/Thread: Always use the threadsafe option when scheduling wakeups.Subv2018-08-131-2/+4
| |/
* / Kernel/Mutex: Don't duplicate threads in the mutex waiter list.Subv2018-08-122-2/+22
|/
* server_session: Provide more useful information and don't crash on bad IPC request.bunnei2018-08-121-0/+8
* hle_ipc: Make WriteToOutgoingCommandBuffer()'s reference parameter constLioncash2018-08-092-2/+2
* client_port: Make all data members privateLioncash2018-08-073-7/+21
* kernel/event: Make data members privateLioncash2018-08-061-4/+8
* address_arbiter: Return by value from GetThreadsWaitingOnAddress()Lioncash2018-08-051-15/+15
* Merge pull request #914 from lioncash/codesetbunnei2018-08-042-15/+36
|\
| * kernel/process: Use std::array where applicableLioncash2018-08-031-1/+2
| * kernel/process: Use accessors instead of class members for referencing segment arrayLioncash2018-08-032-15/+35
* | kernel/thread: Fix potential crashes introduced in 26de4bb521b1ace7af76eff4f6956cb23ac0d58cLioncash2018-08-043-13/+38
|/
* core/memory: Get rid of 3DS leftoversLioncash2018-08-039-302/+24
* Merge pull request #894 from lioncash/objectbunnei2018-08-0329-136/+164
|\
| * kernel: Move object class to its own source filesLioncash2018-08-0229-136/+164
* | Merge pull request #904 from lioncash/staticbunnei2018-08-031-8/+6
|\ \
| * | kernel/thread: Make GetFreeThreadLocalSlot()'s loop indices size_tLioncash2018-08-021-8/+5
| * | kernel/thread: Make GetFreeThreadLocalSlot() reference parameter a const referenceLioncash2018-08-021-1/+2
| * | kernel/thread: Make GetFreeThreadLocalSlot() internally linkedLioncash2018-08-021-1/+1
| |/
* | kernel/vm_manager: Convert loop into std::any_of()Lioncash2018-08-021-4/+4
* | kernel/vm_manager: Use const where applicableLioncash2018-08-023-19/+19
* | kernel/vm_manager: Use the VAddr type alias in CarveVMA()Lioncash2018-08-021-2/+2
|/
* kernel/thread: Remove unimplemented function prototypeLioncash2018-08-011-6/+0
* Merge pull request #877 from lioncash/removebunnei2018-08-015-102/+0
|\
| * kernel: Remove unused object_address_table.cpp/.hLioncash2018-07-315-102/+0
* | kernel: Remove unnecessary includesLioncash2018-07-3122-27/+46
|/
* kernel/timer: Make data members private where applicableLioncash2018-07-261-5/+17
* Merge pull request #804 from lioncash/logMat M2018-07-251-1/+3
|\
| * svc: Log parameters in SetMemoryAttribute()Lioncash2018-07-241-1/+3
* | Merge pull request #803 from MerryMage/core_timing_utilbunnei2018-07-252-0/+2
|\ \
| * | core_timing: Split off utility functions into core_timing_utilMerryMage2018-07-242-0/+2
* | | svc: Resolve sign comparison warnings in WaitSynchronization()Lioncash2018-07-241-4/+7
| |/ |/|
* | Merge pull request #794 from lioncash/refbunnei2018-07-241-1/+1
|\ \ | |/ |/|
| * mutex: Pass SharedPtr to GetHighestPriorityMutexWaitingThread() by referenceLioncash2018-07-241-1/+1
* | hle_ipc: Make constructors explicit where applicableLioncash2018-07-241-1/+1
|/
* hle: Remove config_mem.h/.cppLioncash2018-07-233-13/+0
* hle: Remove shared_page.h/.cppLioncash2018-07-233-4/+0
* Kernel/SVC: Perform atomic accesses in SignalProcessWideKey as per the real kernel.Subv2018-07-221-7/+31
* Merge pull request #751 from Subv/tpidr_el0bunnei2018-07-213-0/+13
|\
| * CPU: Save and restore the TPIDR_EL0 system register on every context switch.Subv2018-07-213-0/+13
* | thread: Convert ThreadStatus into an enum classLioncash2018-07-209-71/+70
|/
* Merge pull request #726 from lioncash/overloadbunnei2018-07-202-6/+21
|\
| * hle_ipc: Introduce generic WriteBuffer overload for multiple container typesLioncash2018-07-192-6/+21
* | Merge pull request #721 from lioncash/svcbunnei2018-07-201-3/+4
|\ \ | |/ |/|
| * svc: Correct always true assertion case in SetThreadCoreMaskLioncash2018-07-191-3/+4
* | hle_ipc: Amend usage of buffer_index within one of HLERequestContext's WriteBuffer() overloadsLioncash2018-07-191-1/+1
|/
* Merge pull request #692 from lioncash/assignbunnei2018-07-191-1/+1
|\
| * address_arbiter: Correct assignment within an assertion statement in WakeThreads()Lioncash2018-07-191-1/+1
* | Merge pull request #690 from lioncash/movebunnei2018-07-198-13/+21
|\ \
| * | core/memory, core/hle/kernel: Use std::move where applicableLioncash2018-07-198-13/+21
| |/
* | Merge pull request #688 from lioncash/commabunnei2018-07-191-22/+12
|\ \
| * | vm_manager: Add missing commas to string literal array elements in GetMemoryStateName()Lioncash2018-07-191-22/+12
| |/
* / core: Don't construct instance of Core::System, just to access its live instanceLioncash2018-07-191-6/+6
|/
* Merge pull request #671 from MerryMage/clear-exclusive-statebunnei2018-07-171-0/+1
|\
| * scheduler: Clear exclusive state when switching contextsMerryMage2018-07-161-0/+1
* | Merge pull request #672 from SciresM/to_address_fixbunnei2018-07-171-2/+4
|\ \
| * | Kernel/Arbiter: Fix bug in WaitIfLessThanMichael Scire2018-07-171-2/+4
| |/
* / nvflinger: Fix for BufferQueue event handling.bunnei2018-07-172-3/+11
|/
* No need to use ASSERT_MSG with an empty messageDavid Marcec2018-07-141-2/+2
* Update clang formatJames Rowe2018-07-036-38/+35
* Rename logging macro back to LOG_*James Rowe2018-07-0311-79/+79
* Merge pull request #579 from SciresM/masterbunnei2018-06-228-9/+295
|\
| * Kernel/Arbiters: Fix casts, cleanup comments/magic numbersMichael Scire2018-06-222-17/+16
| * Add additional missing format.Michael Scire2018-06-222-21/+27
| * Run clang-format on PR.Michael Scire2018-06-223-180/+181
| * Kernel/Arbiters: HLE is atomic, adjust code to reflect that.Michael Scire2018-06-222-37/+13
| * Kernel/Arbiters: Initialize arb_wait_address in thread struct.Michael Scire2018-06-212-1/+5
| * Kernel/Arbiters: Clear WaitAddress in SignalToAddressMichael Scire2018-06-211-0/+1
| * Kernel/Arbiters: Mostly implement SignalToAddressMichael Scire2018-06-214-10/+110
| * Kernel/Arbiters: Implement WaitForAddressMichael Scire2018-06-214-6/+67
| * Kernel/Arbiters: Add stubs for 4.x SignalToAddress/WaitForAddres SVCs.Michael Scire2018-06-217-9/+147
* | IPC: skip empty buffer writemailwl2018-06-221-0/+5
|/
* Build: Fixed some MSVC warnings in various parts of the code.Subv2018-06-201-2/+2
* Merge pull request #572 from Armada651/user-except-stubbunnei2018-06-181-0/+5
|\
| * svc: Add a stub for UserExceptionContextAddr.Jules Blok2018-06-181-0/+5
* | Kernel/Threads: A thread waking up by timeout from a WaitProcessWideKey may already have an assigned lock owner.Subv2018-06-021-2/+5
* | Kernel/Thread: Corrected a typo that caused the affinity mask to never be changed.Subv2018-05-311-2/+2
* | Kernel/SVC: Support special core values -2 and -3 in svcSetThreadCoreMask.Subv2018-05-312-1/+28
* | Kernel/Thread: Corrected a typo in an assert about the processor id.Subv2018-05-301-1/+1
* | Add & correct miscellaneous things (#470)greggameplayer2018-05-261-0/+3
* | Merge pull request #454 from Subv/signal_processwidebunnei2018-05-231-83/+74
|\ \
| * | Kernel/SVC: Signal the highest priority threads first in svcSignalProcessWideKey.Subv2018-05-191-51/+68
| * | Kernel/Threads: Reschedule the proper core when operating on that core's threads.Subv2018-05-191-2/+6
| * | SVC: Removed unused WaitSynchronization1 functionSubv2018-05-191-30/+0
* | | Merge pull request #457 from Subv/mutex_waitersbunnei2018-05-211-1/+0
|\ \ \
| * | | Mutex: Do not assert when the mutex waiting threads list isn't empty on mutex release.Subv2018-05-201-1/+0
| |/ /
* / / Added RequestWithContext & ControlWithContextDavid Marcec2018-05-171-1/+3
|/ /
* | thread: Rename mask to affinity_masks.bunnei2018-05-113-4/+4
* | thread: Support core change on ResumeFromWait and improve ChangeCore.bunnei2018-05-111-37/+68
* | scheduler: Protect scheduling functions with a global mutex.bunnei2018-05-112-0/+18
* | thread: Initialize ideal_core and mask members.bunnei2018-05-111-0/+2
* | threading: Reschedule only on cores that are necessary.bunnei2018-05-112-3/+3
* | svc: Implement GetThreadCoreMask and SetThreadCoreMask.bunnei2018-05-111-7/+22
* | thread: Implement ChangeCore function.bunnei2018-05-112-1/+58
* | svc: SignalProcessWideKey should apply to all cores.bunnei2018-05-111-43/+50
* | svc: Implement GetCurrentProcessorNumber.bunnei2018-05-111-2/+2
* | core: Implement multicore support.bunnei2018-05-115-45/+65
* | Merge pull request #431 from lioncash/fmtbunnei2018-05-026-49/+50
|\ \
| * | general: Make formatting of logged hex values more straightforwardLioncash2018-05-026-49/+50
* | | ipc: Add support for PopIpcInterface() method.bunnei2018-05-022-0/+15
|/ /
* | GetSharedFontInOrderOfPriority (#381)David2018-05-012-23/+27
* | core_timing: Namespace all functions and constants in core_timing's headerLioncash2018-04-302-3/+5
* | string_util: Remove StringFromFormat() and related functionsLioncash2018-04-301-1/+1
* | core: Replace usages of LOG_GENERIC with new fmt-capable equivalentsLioncash2018-04-273-6/+4
* | general: Convert assertion macros over to be fmt-compatibleLioncash2018-04-274-9/+9
* | kernel/shared_memory: Remove unnecessary semicolon at end of ConvertPermissions()Lioncash2018-04-261-1/+1
* | kernel: Migrate logging macros to fmt-compatible onesLioncash2018-04-2611-106/+109
* | Merge pull request #370 from Subv/sync_primitivesbunnei2018-04-239-435/+228
|\ \
| * | Kernel: Implemented mutex priority inheritance.Subv2018-04-234-10/+94
| * | Kernel: Use 0x2C as default main thread priority for homebrew and lone NRO/NSOsSubv2018-04-211-1/+1
| * | Qt: Update the WaitTree widget to show info about the current mutex of each thread.Subv2018-04-211-4/+0
| * | Kernel: Remove unused ConditionVariable class.Subv2018-04-215-148/+0
| * | Kernel: Remove old and unused Mutex code.Subv2018-04-214-209/+3
| * | Kernel: Properly implemented svcWaitProcessWideKey and svcSignalProcessWideKeySubv2018-04-211-83/+46
| * | Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock.Subv2018-04-216-22/+126
* | | resource_limit: Make ResourceTypes an enum classLioncash2018-04-213-38/+38
|/ /
* | common_funcs: Remove ARRAY_SIZE macroLioncash2018-04-201-1/+2
* | Various service name fixes - part 2 (rebased) (#322)Hexagon122018-04-171-8/+8
* | vm_manager: Increase GetTotalMemoryUsage value.bunnei2018-04-151-1/+1
* | svc: Stub out SetThreadActivity, GetThreadContext.bunnei2018-04-032-2/+19
* | shared_memory: Remove incorrect 3ds-specific check.bunnei2018-04-031-12/+0
* | hle_ipc, fsp_srv: Cleanup logging.bunnei2018-04-011-1/+1
* | hle_ipc: Do not ensure write buffer size.bunnei2018-03-311-2/+5
* | memory: Fix stack region.bunnei2018-03-312-3/+4
* | svc: Stub GetThreadCoreMask.bunnei2018-03-302-3/+26
* | Clang FixesN00byKing2018-03-192-5/+5
* | More Warning cleanupsN00byKing2018-03-192-2/+2
* | Clean Warnings (?)N00byKing2018-03-195-8/+8
* | hle_ipc: Add SleepClientThread to block current thread within HLE routines.bunnei2018-03-192-0/+47
* | hle_ipc: Use shared_ptr instead of unique_ptr to allow copies.bunnei2018-03-192-9/+9
* | hle_ipc: Remove GetPointer(..) usage with WriteToOutgoingCommandBuffer.bunnei2018-03-192-5/+13
* | thread: Add THREADSTATUS_WAIT_HLE_EVENT, remove THREADSTATUS_WAIT_ARB.bunnei2018-03-193-20/+6
* | process: MirrorMemory should use MemoryState::Mapped.bunnei2018-03-171-1/+1
* | process: Unmap previously allocated heap.bunnei2018-03-161-1/+3
* | arm_interface: Support unmapping previously mapped memory.bunnei2018-03-161-0/+3
* | svc: Use more correct values for GetInfo MapRegion and NewMapRegion.bunnei2018-03-163-29/+5
* | kernel: Move stack region outside of application heap.bunnei2018-03-163-8/+3
* | process: Fix stack memory state.bunnei2018-03-161-2/+4
* | MemoryState: Add additional memory states and improve naming.bunnei2018-03-165-18/+45
* | core: Move process creation out of global state.bunnei2018-03-149-33/+36
* | Merge pull request #216 from Subv/savedatabunnei2018-03-022-9/+8
|\ \
| * | Kernel: Store the program id in the Process class instead of the CodeSet class.Subv2018-03-022-9/+8
| |/
* / thread: Clear the process list on shutdown.Jules Blok2018-02-271-1/+3
|/
* Merge pull request #207 from mailwl/duplicatesessionbunnei2018-02-272-5/+10
|\
| * Add warning if Domain request has no domain message headermailwl2018-02-201-0/+3
| * Fix: change check for domain order and existance of domain message headermailwl2018-02-202-2/+2
| * IPC: add domain header to response if only it exists in requestmailwl2018-02-202-5/+7
* | Merge pull request #215 from N00byKing/umapsharedmmrybunnei2018-02-262-1/+17
|\ \
| * | (Hopefully) Fix MinGW BuildN00byKing2018-02-251-1/+1
| * | Add UnmapSharedMemoryN00byKing2018-02-252-1/+17
| |/
* / Stub more functionsmailwl2018-02-221-1/+11
|/
* scheduler: Cleanup based on PR feedback.bunnei2018-02-192-4/+3
* kernel: Use Scheduler class for threading.bunnei2018-02-183-172/+16
* kernel: Add Scheduler, which encapsulates the scheduling loading from Thread module.bunnei2018-02-182-0/+208
* kernel: Remove unused address_arbiter code.bunnei2018-02-184-197/+0
* Kernel/IPC: Add a small delay after each SyncRequest to prevent thread starvation.Subv2018-02-184-50/+63
* Service/hid: stub some functionsmailwl2018-02-162-0/+53
* shared_memory: Remove some checks.bunnei2018-02-151-13/+0
* Merge pull request #188 from bunnei/refactor-buffer-descriptorbunnei2018-02-152-0/+59
|\
| * hle_ipc: Remove const from WriteBuffer size.bunnei2018-02-142-2/+2
| * hle_ipc: Add GetReadBufferSize and check write buffer size.bunnei2018-02-142-0/+10
| * hle_ipc: Add helper functions for reading and writing buffers.bunnei2018-02-141-4/+2
| * hle_ipc: Add helper functions for reading and writing buffers.bunnei2018-02-142-0/+51
* | thread: Silence formatting specifier warningsLioncash2018-02-141-2/+3
* | vm_manager: Silence formatting specifier warningsLioncash2018-02-141-5/+7
|/
* mutex: Update hasWaiters on release.bunnei2018-02-061-0/+1
* GetInfo: Implement IsCurrentProcessBeingDebugged.bunnei2018-02-041-0/+3
* WaitProcessWideKeyAtomic: Handle case where condition variable was already created.bunnei2018-02-043-13/+17
* svc: SharedMemory size should be 64-bits and cleanup.bunnei2018-02-033-11/+11
* ArbitrateLock: Assert that requesting_thread is current_thread.bunnei2018-02-031-0/+1
* shared_memory: Only mark addresses as invalid if they are within the heapshinyquagsire232018-01-301-1/+2
* Merge pull request #148 from MerryMage/feature/special-memorybunnei2018-01-272-6/+6
|\
| * memory: Replace all memory hooking with Special regionsMerryMage2018-01-272-6/+6
* | server_session: Fix scenario where all domain handlers are closed.bunnei2018-01-251-3/+3
* | hle: Rename RequestBuilder to ResponseBuilder.bunnei2018-01-251-1/+1
* | ipc_helpers: Make interface domain agnostic and add header validation.bunnei2018-01-251-1/+12
* | hle: Integrate Domain handling into ServerSession.bunnei2018-01-255-28/+66
* | hle: Remove Domain and SyncObject kernel objects.bunnei2018-01-257-164/+2
* | handle_table: Remove ConvertSessionToDomain.bunnei2018-01-252-17/+0
|/
* Format: Run the new clang format on everythingJames Rowe2018-01-2122-31/+32
* Added CreateSharedMemory & UNIMPLEMENTED() for non existent services. (#113)David2018-01-202-1/+22
* Fixes some cast warnings, partial port of citra #3064 (#106)River City Ransomware2018-01-202-2/+2
* svc: Fix svcGetInfo MapRegionBaseAddr.bunnei2018-01-193-1/+9
* svc: Add additional fields to MemoryInfo struct.bunnei2018-01-191-0/+4
* Stub PopLaunchParameter and implement Buffer C Descriptors reading on hle_ipc (#96)gdkchan2018-01-182-7/+33
* svc: Rename some entries to match their analogue on SwitchBrewLioncash2018-01-181-7/+7
* svc: Add CreateJitMemory and MapJitMemory svc stringsLioncash2018-01-181-2/+2
* svc: Clang-format fix.bunnei2018-01-171-6/+4
* hle_ipc: Clang format.bunnei2018-01-171-2/+3
* ipc: Implement domain command CloseVirtualHandle.bunnei2018-01-172-2/+28
* SVC: Correct some return values in svcGetInfo and added TitleId and PrivilegedProcessId stubs.Subv2018-01-171-6/+21
* SVC: Add 4.0.0+ comment to GetInfoType enum values.Subv2018-01-171-0/+1
* IPC: Push domain objects as move handles when not in a domain.Subv2018-01-171-0/+8
* Merge pull request #52 from ogniK5377/fspbunnei2018-01-174-3/+35
|\
| * SetThreadCoreMask stub, time to implement fspDavid Marcec2018-01-161-1/+6
| * Added more svcGetInfo pairsDavid Marcec2018-01-164-2/+29
* | clang-formatMerryMage2018-01-166-18/+14
|/
* shared_memory: Minor fixes and cleanup.bunnei2018-01-141-6/+6
* svc: Implement svcMapSharedMemory.bunnei2018-01-142-1/+38
* kernel: Increase default stack size to 64K.bunnei2018-01-141-1/+1
* yuzu: Update license text to be consistent across project.bunnei2018-01-1314-14/+14
* core: Include <algorithm> where used.bunnei2018-01-121-0/+2
* core: Fix recent GCC build breaks.bunnei2018-01-121-2/+2
* svc: Implement GetSystemTick.bunnei2018-01-122-2/+21
* IPC: Corrected some definitions for the buffer C descriptor flags.Subv2018-01-112-1/+8
* svc: Stub ResetSignal and CreateTransferMemorySubv2018-01-112-3/+28
* svc: Stub SetMemoryAttributeSubv2018-01-112-0/+11
* Threads: Added enum values for the Switch's 4 cpu cores and implemented svcGetInfo(AllowedCpuIdBitmask)Subv2018-01-104-10/+25
* SVC: Fixed WaitSynchronization with multiple handles when none is immediately ready.Subv2018-01-091-7/+18
* SVC: Implemented CancelSynchronization.Subv2018-01-092-1/+19
* ErrorCodes: Updated the InvalidHandle and Timeout kernel error codes.Subv2018-01-091-2/+7
* SVC: Fixed WaitSynchronization with multiple handles when at least one of them is ready.Subv2018-01-092-3/+29
* kernel: Rename Semaphore to ConditionVariable.bunnei2018-01-098-159/+167
* mutex: Remove unused call to VerifyGuestState.bunnei2018-01-091-3/+0
* Kernel: Actually wake up the requested number of threads in Semaphore::Release.Subv2018-01-093-18/+16
* Kernel: Properly keep track of mutex lock data in the guest memory. This fixes userland locking/unlocking.Subv2018-01-093-63/+60
* Kernel: Allow chaining WaitSynchronization calls inside a wakeup callback.Subv2018-01-094-30/+78
* CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119)B3n302018-01-092-9/+5
* IPC: Add functions to read the input move/copy objects from an IPC request.Subv2018-01-072-2/+26
* IPC: Don't attempt to read the command buffer if it holds a Close request.Subv2018-01-071-0/+5
* IPC Cleanup: Remove 3DS-specific code and translate copy, move and domain objects in IPC requests.Subv2018-01-072-74/+72
* IPC: Skip the entire u64 of the command id when receiving an IPC request.Subv2018-01-071-1/+2
* IPC: Use the correct size when pushing raw data to the command buffer and fixed pushing domain objects.Subv2018-01-072-3/+7
* svc: Implement svcSignalProcessWideKey.bunnei2018-01-072-4/+23
* semaphore: More changes for Switch.bunnei2018-01-072-11/+17
* wait_object: Refactor to allow waking up a single thread.bunnei2018-01-072-15/+28
* svc: Implement svcWaitProcessWideKeyAtomic.bunnei2018-01-062-1/+54
* semaphore: Updates for Switch.bunnei2018-01-062-21/+31
* svc: Implement WaitSynchronization for a single handle.bunnei2018-01-061-4/+24
* svc: Refactor LockMutex code to use WaitSynchronization1.bunnei2018-01-061-13/+45
* svc: Add missing string_util include.bunnei2018-01-051-0/+1
* arm: Remove SkyEye/Dyncom code that is ARMv6-only.bunnei2018-01-032-23/+11
* vm_manager: Use a more reasonable MAX_ADDRESS size.bunnei2018-01-031-5/+4
* svc: Remove unnecessary "svc" prefix to naming scheme.bunnei2018-01-031-106/+106
* hle: Move SVC code to kernel namespace.bunnei2018-01-033-0/+805
* vm_manager: Stub out a bunch of interfaces used by svcGetInfo.bunnei2018-01-012-1/+51
* core/video_core: Fix a bunch of u64 -> u32 warnings.bunnei2018-01-011-2/+2
* svc: Implement svcExitProcess.bunnei2018-01-012-7/+38
* svc: Implement svcLockMutex.bunnei2018-01-012-23/+95
* kernel: Add ObjectAddressTable class.bunnei2018-01-013-2/+101
* thread: Keep track of the initially created handle.bunnei2017-12-312-1/+5
* errors: Define missing kernel error codes.bunnei2017-12-311-0/+3
* svc: Implement svcUnmapMemory.bunnei2017-12-312-0/+7
* thread: Main thread should set thread handle to reg 1.bunnei2017-12-301-1/+4
* thread: Remove THUMB mode flag.bunnei2017-12-301-1/+1
* thread: Main thread should be ready by default, all others dormant.bunnei2017-12-301-4/+3
* kernel: Various 64-bit fixes in memory/process/threadbunnei2017-12-295-14/+14
* kernel: Fix implementation of ConvertSessionToDomain.bunnei2017-12-296-30/+67
* kernel: Add basic support for Domain object.bunnei2017-12-294-4/+110
* kernel: Add SyncObject primitive, use it for ClientSession.bunnei2017-12-292-8/+38
* process: Add method to mirror a memory region.bunnei2017-12-292-0/+27
* service: Return proper result code for IPC::CommandType::Close.bunnei2017-11-012-6/+7
* hle: Use Switch formatted result codes.bunnei2017-11-012-77/+22
* hle: Fix QueryMemory response for MemoryInfo.bunnei2017-10-204-115/+14
* hle_ipc: Only copy necessary fields for outgoing command buffer.bunnei2017-10-191-1/+1
* hle_ipc: Parse out buffer X/A/B/B descriptors from incoming command buffer.bunnei2017-10-192-14/+19
* hle: Implement ConvertSessionToDomain, various cleanups.bunnei2017-10-153-5/+31
* hle: Initial implementation of NX service framework and IPC.bunnei2017-10-152-70/+107
* Merge remote-tracking branch 'upstream/master' into nxbunnei2017-10-1018-103/+143
|\
| * Merge pull request #2977 from Subv/shmem_createbunnei2017-10-031-15/+12
| |\
| | * Kernel/SharedMemory: Don't take over and unmap the source memory block when creating a shared memory, just reference it.Subv2017-10-021-15/+12
| * | Merge pull request #2971 from Subv/per_process_memopsSebastian Valle2017-10-012-0/+12
| |\ \ | | |/ | |/|
| | * Kernel/Thread: Added a helper function to get a thread's command buffer VAddr.Subv2017-10-012-0/+12
| * | Merge pull request #2967 from Subv/thread_wakeup_callbacksSebastian Valle2017-09-303-13/+26
| |\ \ | | |/ | |/|
| | * Kernel/Threads: When putting a thread to wait, specify a function to execute when it is awoken.Subv2017-09-283-13/+26
| * | Fixed type conversion ambiguityHuw Pascoe2017-09-309-23/+24
| * | Kernel/Thread: Allow specifying which process a thread belongs to when creating it.Subv2017-09-273-15/+19
| |/
| * memory: Add GetCurrentPageTable/SetCurrentPageTableMerryMage2017-09-241-7/+4
| * Merge pull request #2842 from Subv/switchable_page_tableB3n302017-09-155-30/+33
| |\
| | * Kernel/Threads: Don't clear the CPU instruction cache when performing a context switch from an idle thread into a thread in the same process.Subv2017-09-151-1/+3
| | * Kernel/Memory: Changed GetPhysicalPointer so that it doesn't go through the current process' page table to obtain a pointer.Subv2017-09-152-25/+7
| | * Kernel/Memory: Switch the current page table when a new process is scheduled.Subv2017-09-101-0/+10
| | * Kernel/Memory: Give each Process its own page table.Subv2017-09-102-5/+14
| * | Merge pull request #2839 from Subv/global_kernel_lockJames Rowe2017-08-241-1/+1
| |\ \
| | * | Kernel/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).Subv2017-08-221-1/+1
| * | | Merge pull request #2893 from Subv/not_schedule_main_threadbunnei2017-08-221-5/+1
| |\ \ \
| | * | | Kernel/Threads: Don't immediately switch to the new main thread when loading a new process.Subv2017-08-221-5/+1
| | | |/ | | |/|
| * / | Warnings: Add UNREACHABLE macros to switches that contemplate all possible values.Subv2017-08-211-0/+3
| |/ /
* | | loader: Various improvements for NSO/NRO loaders.bunnei2017-10-102-4/+4
* | | nso: Refactor and allocate .bss section.bunnei2017-09-302-8/+10
* | | process: Support loading multiple codesets.bunnei2017-09-302-20/+27
* | | kernel: Various threading fixes to support 64-bit addressing.bunnei2017-09-302-8/+8
* | | core: Various changes to support 64-bit addressing.bunnei2017-09-302-21/+21
|/ /
* | Merge pull request #2799 from yuriks/virtual-cached-range-flushWeiyi Wang2017-07-221-1/+1
|\ \ | |/ |/|
| * Memory: Make PhysicalToVirtualAddress return a boost::optionalYuri Kunde Schlesner2017-06-221-1/+1
* | Merge pull request #2793 from Subv/replyandreceiveSebastian Valle2017-06-304-11/+39
|\ \
| * | Kernel/SVC: Pass the current thread as a parameter to ClientSession::SendSyncRequest.Subv2017-06-292-3/+6
| * | Kernel/Sessions: Clean up the list of pending request threads of a session when the client endpoint is closed.Subv2017-06-261-0/+5
| * | Kernel/ServerSession: Keep track of which threads have issued sync requests.Subv2017-06-253-9/+29
* | | Kernel: Implement AcceptSession SVCYuri Kunde Schlesner2017-06-233-2/+26
* | | Kernel/IPC: Support translation of null handlesYuri Kunde Schlesner2017-06-211-7/+12
| |/ |/|
* | Merge pull request #2789 from yuriks/misc-kernelWeiyi Wang2017-06-211-0/+2
|\ \
| * | Kernel: Add comment about the extended linear heap areaYuri Kunde Schlesner2017-06-191-0/+2
| |/
* | Merge pull request #2790 from yuriks/remove-movefromYuri Kunde Schlesner2017-06-214-7/+7
|\ \
| * | ResultVal: Remove MoveFrom()Yuri Kunde Schlesner2017-06-194-7/+7
| |/
* / Kernel/IPC: Make HLERequestContext usable from outside kernelYuri Kunde Schlesner2017-06-192-3/+9
|/
* Kernel/IPC: Use boost::small_vector for HLE context objectsYuri Kunde Schlesner2017-06-121-1/+3
* Kernel: Allow clearing request_objects to re-use buffer spaceYuri Kunde Schlesner2017-06-112-0/+11
* Kernel: Basic support for IPC translation for HLE servicesYuri Kunde Schlesner2017-06-112-6/+125
* Kernel: Add methods in HLERequestContext abstracting handle creationYuri Kunde Schlesner2017-06-112-0/+12
* ServiceFramework: Use separate copy of command bufferYuri Kunde Schlesner2017-06-111-3/+6
* Merge pull request #2756 from yuriks/service-frameworkYuri Kunde Schlesner2017-06-092-6/+42
|\
| * Service: Add new ServiceFramework framework for writing HLE servicesYuri Kunde Schlesner2017-06-082-2/+36
| * Kernel: Remove some unnecessary namespace qualificationsYuri Kunde Schlesner2017-06-061-4/+6
* | Session: Remove/add some forward declarationsYuri Kunde Schlesner2017-06-082-1/+2
* | Kernel: Ensure objects are kept alive during ClientSession disconnectionYuri Kunde Schlesner2017-06-081-7/+13
|/
* Kernel: Add a dedicated SetHleHandler method to ServerPort/ServerSessionYuri Kunde Schlesner2017-06-067-33/+36
* HLE: Move SessionRequestHandler from Service:: to Kernel::Yuri Kunde Schlesner2017-06-068-15/+90
* Kernel: Move HandleTable to a separate fileYuri Kunde Schlesner2017-05-3013-202/+234
* Kernel: Move WaitObject to a separate fileYuri Kunde Schlesner2017-05-3011-132/+173
* Kernel: Removed HandleTable::GetWaitObjectYuri Kunde Schlesner2017-05-301-9/+0
* Kernel: Extract dynamic Object pointer cast into its own functionYuri Kunde Schlesner2017-05-291-11/+24
* Kernel: Centralize error definitions in errors.hYuri Kunde Schlesner2017-05-2513-46/+133
* Merge pull request #2406 from Subv/session_disconnectYuri Kunde Schlesner2017-05-226-51/+82
|\
| * Kernel/Sessions: Remove the ClientSession::Create function.Subv2017-05-223-16/+3
| * Kernel: Remove a now unused enum and variable regarding a session's status.Subv2017-05-152-8/+0
| * Kernel: Use a Session object to keep track of the status of a Client/Server session pair.Subv2017-05-156-32/+84
* | Kernel: Map special regions according to ExHeaderYuri Kunde Schlesner2017-05-104-50/+102
* | DSP: Create backing memory for entire DSP RAMYuri Kunde Schlesner2017-05-101-1/+6
|/
* Timer: restore missing signaled=true from #2421wwylele2017-02-271-0/+2
* Fix log entry in timer::signal (#2600)B3n302017-02-271-1/+1
* Doxygen: Amend minor issues (#2593)Mat M2017-02-271-1/+2
* Merge pull request #2587 from yuriks/status-barYuri Kunde Schlesner2017-02-272-1/+1
|\
| * Core: Remove unnecessary include in thread.hYuri Kunde Schlesner2017-02-272-1/+1
* | Timers: Immediately signal the timer if it was started with an initial value of 0.Subv2017-02-222-16/+31
|/
* Threads: Check the process' resource limit for the max allowed priority when creating a thread and remove the priority clamping code.Subv2017-01-111-8/+2
* Thread: Added priority range checking to svcSetThreadPriority and removed priority clamping code from Thread::SetPriority.Subv2017-01-112-18/+4
* Merge pull request #2397 from Subv/pulsebunnei2017-01-105-13/+20
|\
| * Kernel: Implemented Pulse event and timers.Subv2017-01-055-13/+20
* | Merge pull request #2410 from Subv/sleepthreadbunnei2017-01-072-0/+9
|\ \
| * | Kernel: Don't attempt to yield execution in SleepThread(0) if there are no available threads to run.Subv2017-01-062-0/+9
* | | Merge pull request #2396 from Subv/sema_acquirebunnei2017-01-071-1/+2
|\ \ \
| * | | Kernel/Semaphore: Fixed a regression in semaphore waits.Subv2017-01-051-1/+2
| |/ /
* | | Merge pull request #2408 from Subv/priority_boostingbunnei2017-01-061-27/+0
|\ \ \
| * | | Kernel: Removed the priority boost code for starved threads.Subv2017-01-051-27/+0
| |/ /
* / / Kernel: Remove some unused functions.Subv2017-01-052-32/+0
|/ /
* | Kernel: Add some asserts to enforce the invariants in the scheduler.Subv2017-01-052-2/+13
* | Kernel: Remove a thread from all of its waiting objects' waiting_threads list when it is awoken.Subv2017-01-051-18/+4
* | Kernel: Remove Thread::wait_objects_index and use wait_objects to hold all the objects that a thread is waiting on.Subv2017-01-053-10/+19
* | Kernel: Use different thread statuses when a thread calls WaitSynchronization1 and WaitSynchronizationN with wait_all = true.Subv2017-01-042-13/+17
* | Kernel/Mutex: Propagate thread priority changes to other threads inheriting the priority via mutexesSubv2017-01-044-42/+54
* | Kernel/Mutex: Update a mutex priority when a thread stops waiting on it.Subv2017-01-044-22/+39
* | Kernel/Mutex: Implemented priority inheritance.Subv2017-01-044-22/+51
* | Kernel: Object ShouldWait and Acquire calls now take a thread as a parameter.Subv2017-01-0416-62/+50
* | Kernel/Synch: Do not attempt a reschedule on every syscall.Subv2017-01-041-0/+1
|/
* ThreadContext: Move from "core" to "arm_interface".bunnei2016-12-222-4/+5
* core: Replace "AppCore" nomenclature with just "CPU".bunnei2016-12-221-3/+3
* core: Remove HLE module, consolidate code & various cleanups.bunnei2016-12-224-7/+3
* core: Consolidate core and system state, remove system module & cleanups.bunnei2016-12-221-3/+3
* Thread: remove the thread from the thread list when exitingwwylele2016-12-172-2/+14
* Kernel: remove object's waiting thread if it is deadwwylele2016-12-161-1/+2
* Merge pull request #2260 from Subv/schedulingbunnei2016-12-166-115/+102
|\
| * Fixed the codestyle to match our clang-format rules.Subv2016-12-142-8/+11
| * Properly remove a thread from its wait_objects' waitlist when it is awoken by a timeout.Subv2016-12-102-1/+10
| * WaitSynch: Removed unused variables and reduced SharedPtr copies.Subv2016-12-093-13/+11
| * Use boost remove_erase_if instead of the erase-remove idiomSubv2016-12-071-2/+3
| * Improved the algorithm for GetHighestPriorityReadyThread.Subv2016-12-071-14/+13
| * Threading: Added some utility functions and const correctness.Subv2016-12-042-10/+22
| * Threading: Reworked the way our scheduler works.Subv2016-12-046-111/+76
* | Fixed the codestyle to match our clang-format rules.Subv2016-12-147-33/+51
* | Moved the HLE command buffer translation task to ServerSession instead of the HLE handler superclass.Subv2016-12-092-2/+23
* | Added a framework for partially handling Session disconnections.Subv2016-12-084-9/+35
* | Use std::move where appropriate.Subv2016-12-085-7/+13
* | Return an error code when connecting to a saturated port.Subv2016-12-052-4/+11
* | Split SessionRequestHandler::HandleSyncRequest into HandleSyncRequest, TranslateRequest and HandleSyncRequestImpl.Subv2016-12-052-0/+2
* | Kernel: Remove the Redirection handle type.Subv2016-12-051-2/+0
* | KServerPorts now have an HLE handler "template", which is inherited by all ServerSessions created from it.Subv2016-12-058-35/+60
* | Declare empty ServerSession and ClientSession constructors as default.Subv2016-12-032-4/+4
* | Fixed the rebase mistakes.Subv2016-12-017-51/+46
* | A bit of a redesign.Subv2016-12-016-215/+24
* | IPC/HLE: Associate the ClientSessions with their parent port's HLE interface if it exists.Subv2016-12-014-22/+15
* | Kernel/HLE: Service::Interface no longer inherits from any Kernel object, and is now its own standalone class.Subv2016-12-012-8/+44
* | fixup! Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.Subv2016-12-013-4/+5
* | Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.Subv2016-12-017-56/+233
|/
* Merge pull request #2196 from Subv/system_modeYuri Kunde Schlesner2016-11-282-6/+4
|\
| * Kernel/Loader: Grab the system mode from the NCCH ExHeader.Subv2016-11-202-6/+4
* | Kernel/Events: Log an error when trying to create Pulse events and timers.Subv2016-11-192-0/+10
|/
* Fix typosRicardo de Almeida Gonzaga2016-10-202-2/+2
* move ResetType to kernel.hwwylele2016-09-223-7/+6
* implement wait tree widgetwwylele2016-09-224-0/+16
* Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner2016-09-2114-14/+14
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-2129-74/+16
* Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner2016-09-1915-64/+36
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-1830-419/+616
* arm: ResetContext shouldn't be part of ARM_Interface.bunnei2016-09-151-1/+17
* fix #1942 and adds a few IPC functions for descriptorsLectem2016-08-021-15/+103
* Merge pull request #1869 from wwylele/dont-be-lazyYuri Kunde Schlesner2016-06-291-2/+6
|\
| * Switch context on the same thread if necessarywwylele2016-05-301-2/+6
* | Merge pull request #1867 from mailwl/srv-updatebunnei2016-06-291-0/+4
|\ \
| * | Fix parameter name in EnableNotificationmailwl2016-05-311-0/+4
| |/
* | Merge pull request #1877 from wwylele/wait-fix-timeoutbunnei2016-06-181-0/+49
|\ \
| * | Thread: update timeout when rerunning WaitSynchwwylele2016-06-041-0/+49
| |/
* | Kernel/SVC: Implemented svcCreatePort.Subv2016-06-114-2/+11
* | Kernel: Added ClientPort and ServerPort classes.Subv2016-06-055-2/+135
|/
* Merge pull request #1692 from Subv/rm_getpointer2bunnei2016-05-301-1/+1
|\
| * Kernel/Thread: Remove use of Memory::GetPointerMerryMage2016-05-211-1/+1
* | Memory: Added necessary headers and removed unnecessary headerMerryMage2016-05-261-0/+1
|/
* Merge pull request #1800 from JayFoxRox/set-fpscrbunnei2016-05-181-0/+2
|\
| * Set fpscr for new threadsJannik Vogel2016-05-171-0/+2
* | Memory: Fixed a regression caused by #1695 and #1689.Subv2016-05-141-0/+3
|/
* Merge pull request #1689 from Subv/shmembunnei2016-05-134-67/+161
|\
| * HLE/Applets: Give each applet its own block of heap memory, and use that when creating the framebuffer shared memory block.Subv2016-05-132-1/+30
| * Kernel: Account for automatically-allocated shared memories in the amount of used linear heap memory.Subv2016-05-131-0/+5
| * Kernel/SharedMemory: Log an error when Map fails.Subv2016-05-131-1/+10
| * Kernel: Implemented shared memory permissions.Subv2016-05-132-9/+47
| * Kernel/Memory: Remove the Shared Memory region from the legacy memory map.Subv2016-05-131-1/+0
| * Kernel/SharedMemory: Properly implemented shared memory support.Subv2016-05-132-65/+79
| * Kernel/SVC: Fixed the register order for svcCreateMemoryBlock.Subv2016-05-131-1/+1
* | Merge pull request #1695 from Subv/tls_allocbunnei2016-05-134-22/+74
|\ \ | |/ |/|
| * Kernel/Threads: Dynamically allocate the TLS region for threads in the BASE region of the linear heap.Subv2016-05-074-22/+74
* | Merge pull request #1766 from Subv/log_cpubunnei2016-05-081-0/+2
|\ \
| * | Kernel/Threading: Warn when a thread can be scheduled in the Syscore (Core 1).Subv2016-05-071-0/+2
| |/
* | Merge pull request #1762 from bunnei/globalbunnei2016-05-061-1/+2
|\ \ | |/ |/|
| * hle: Get rid of global access to g_rescheduleLioncash2016-03-211-1/+2
* | Merge pull request #1643 from MerryMage/make_uniqueMathew Maidment2016-04-061-1/+2
|\ \
| * | Common: Remove Common::make_unique, use std::make_uniqueMerryMage2016-04-051-1/+2
| |/
* / session: Make helper functions constexprLioncash2016-03-211-6/+6
|/
* svc: Move ResetType enum to the kernel event headerLioncash2016-03-132-2/+8
* svc: Make ResetType an enum classLioncash2016-03-122-2/+2
* Memory: Do correct Phys->Virt address translation for non-APP linheapYuri Kunde Schlesner2016-03-062-2/+5
* AudioCore: Skeleton ImplementationMerryMage2016-02-211-1/+4
* BitField: Make trivially copyable and remove assignment operatorMerryMage2016-02-121-1/+1
* Memory: Implement MMIOMerryMage2016-01-302-4/+8
* HLE/SVC: Implement UnmapMemoryBlock.Subv2016-01-142-0/+28
* HLE/Timers: Reset OneShot timers when they are acquired instead of when they're triggered.Subv2015-12-301-3/+3
* SVC: Fixed ArbitrateAddress to behave as it does on hardware.Subv2015-12-282-9/+18
* Kernel: Implement svcGetSystemInfoYuri Kunde Schlesner2015-12-014-0/+12
* Silence -Wsign-compare warnings.Rohit Nirmal2015-10-071-1/+1
* general: Silence some warnings when using clangLioncash2015-09-161-2/+4
* General: Fix up doxygen commentsLioncash2015-09-103-6/+3
* Kernel: Fix wrong linear heap base on titles using newer kernelsYuri Kunde Schlesner2015-08-281-1/+1
* Kernel: Fix assertion failure when ControlMemory is called with size=0Yuri Kunde Schlesner2015-08-271-0/+8
* Core: Improve APT Shared Font hackYuri Kunde Schlesner2015-08-272-2/+27
* Kernel: Remove unused legacy heap MapBlock_* functionsYuri Kunde Schlesner2015-08-162-77/+0
* Kernel: Implement svcGetProcessInfo in a basic wayYuri Kunde Schlesner2015-08-163-1/+15
* Kernel: Add more infrastructure to support different memory layoutsYuri Kunde Schlesner2015-08-165-20/+138
* Move core/mem_map.{cpp,h} => core/hle/kernel/memory.{cpp,h}Yuri Kunde Schlesner2015-08-163-1/+160
* Memory: Move address type conversion routines to memory.cpp/hYuri Kunde Schlesner2015-08-161-1/+0
* Process: Store kernel compatibility version during loadingYuri Kunde Schlesner2015-08-162-3/+7
* Kernel: Properly implement ControlMemory FREE and COMMITYuri Kunde Schlesner2015-08-164-23/+243
* VMManager: Introduce names for used ResultCodesYuri Kunde Schlesner2015-08-162-6/+11
* VMManager: Make LogLayout log level configurable as a parameterYuri Kunde Schlesner2015-08-163-5/+15
* VMManager: Change block offsets to size_tYuri Kunde Schlesner2015-08-162-3/+3
* dyncom: Rename armdefs.h to armstate.hLioncash2015-07-261-1/+1
* Kernel/Scheduling: Clean up a thread's wait_objects when its scheduled.Subv2015-07-211-0/+8
* Ensure all kernel objects are released during shutdownYuri Kunde Schlesner2015-07-171-7/+14
* Merge pull request #921 from linkmauve/fix-appletbunnei2015-07-122-0/+4
|\
| * Core: Fix applet includes using iwyu.Emmanuel Gil Peyrot2015-07-122-0/+4
* | Kernel: Add CodeSet case to Object::IsWaitableYuri Kunde Schlesner2015-07-121-0/+1
|/
* Core: Properly configure address space when loading a binaryYuri Kunde Schlesner2015-07-125-14/+88
* Kernel: Remove unused member from EventYuri Kunde Schlesner2015-07-122-2/+1
* Core: Cleanup file_sys includes.Emmanuel Gil Peyrot2015-06-281-1/+2
* Core: Cleanup core includes.Emmanuel Gil Peyrot2015-06-282-1/+2
* Common: Cleanup key_map includes.Emmanuel Gil Peyrot2015-06-284-6/+10
* Add helpers to create IPC command buffer headers and descriptorsYuri Kunde Schlesner2015-06-231-0/+34
* kernel: Fix svcWaitSynch to always acquire requested wait objects.bunnei2015-06-177-101/+37
* Merge pull request #810 from yuriks/memmapYuri Kunde Schlesner2015-05-302-0/+445
|\
| * Kernel: Add VMManager to manage process address spacesYuri Kunde Schlesner2015-05-272-0/+445
* | Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot2015-05-295-11/+11
|/
* Kernel: Fix a warning introduced with ResourceLimit, and remove the fallback code to prevent it from happening again.Emmanuel Gil Peyrot2015-05-211-2/+1
* Kernel: Move reschedules from SVCs to actual mechanisms that reschedule.bunnei2015-05-216-0/+20
* Merge pull request #772 from lioncash/warnbunnei2015-05-181-3/+3
|\
| * process: Get rid of warningsLioncash2015-05-141-3/+3
* | Core/ResourceLimits: Implemented the basic structure of ResourceLimits.Subv2015-05-156-1/+286
* | Memmap: Re-organize memory function in two filesYuri Kunde Schlesner2015-05-156-6/+5
* | thread: Fix a conditional check in RescheduleLioncash2015-05-141-1/+1
|/
* Merge pull request #748 from Subv/tls_maxbunnei2015-05-123-7/+19
|\
| * Core/Memory: Add TLS support for creating up to 300 threadsSubv2015-05-123-7/+19
* | Merge pull request #751 from yuriks/idle-threadbunnei2015-05-122-44/+19
|\ \
| * | Thread: Remove the idle threadYuri Kunde Schlesner2015-05-122-44/+19
* | | Merge pull request #757 from Subv/schedulingbunnei2015-05-121-0/+2
|\ \ \ | |_|/ |/| |
| * | Core/Scheduling: Prepare the new priority in the thread queue when svcSetPriority is calledSubv2015-05-121-0/+2
| |/
* | Merge pull request #750 from Subv/process_svcYuri Kunde Schlesner2015-05-125-2/+15
|\ \ | |/ |/|
| * fixup!Subv2015-05-122-7/+3
| * Core/HLE: Implemented the SVCs GetProcessId and GetProcessIdOfThreadSubv2015-05-115-2/+19
* | Thread: Correctly set main thread initial stack positionYuri Kunde Schlesner2015-05-113-5/+4
|/
* Merge pull request #740 from yuriks/gsp-shmemarchshift2015-05-112-16/+37
|\
| * Kernel: Zero-fill shared memory blocks when mappingYuri Kunde Schlesner2015-05-111-0/+8
| * Kernel: Capture SharedMemory attributes at creation, not when mappingYuri Kunde Schlesner2015-05-112-16/+29
* | fixup! Set the TLS address in the schedulerSubv2015-05-112-2/+7
* | Core/Memory: Give every emulated thread it's own TLS area.Subv2015-05-113-4/+22
|/
* Common: Remove the BIT macroYuri Kunde Schlesner2015-05-091-2/+2
* Memory: Re-organize and rename memory area address constantsYuri Kunde Schlesner2015-05-092-3/+4
* Kernel: Remove unused g_main_thread variableYuri Kunde Schlesner2015-05-093-5/+1
* Process: Rename StaticAddressMapping => AddressMappingYuri Kunde Schlesner2015-05-092-5/+5
* Process: Add more documentation to the class membersYuri Kunde Schlesner2015-05-091-2/+16
* Process: Use BitField to store process flagsYuri Kunde Schlesner2015-05-092-16/+24
* Process: Support parsing of exheader kernel capsYuri Kunde Schlesner2015-05-092-4/+72
* Kernel: Remove g_program_idYuri Kunde Schlesner2015-05-092-8/+0
* Kernel: Introduce skeleton Process class to hold process dataYuri Kunde Schlesner2015-05-094-19/+101
* Common: Remove common.hYuri Kunde Schlesner2015-05-079-8/+14
* Move typedefs from kernel.h to more appropriate placesYuri Kunde Schlesner2015-05-071-10/+1
* Kernel: Properly initialize and shutdown all modules.bunnei2015-05-024-9/+20
* Kernel: Use the correct format string for u64 hex.Emmanuel Gil Peyrot2015-04-141-1/+1
* SVC: Update various SVCs to cause a reschedule.bunnei2015-04-101-4/+0
* Kernel: Implemented priority inheritance for mutexes.bunnei2015-04-103-4/+22
* Thread: Implement priority boost for starved threads.bunnei2015-04-102-22/+51
* Kernel: Fixed default thread priority.bunnei2015-04-102-5/+4
* Initialize base address to 0x0Gareth Higgins2015-04-091-0/+1
* Misc cleanup of common and related functionsarchshift2015-02-201-2/+3
* Build: Fixed some warningsSubv2015-02-123-4/+4
* Asserts: break/crash program, fit to style guide; log.h->assert.harchshift2015-02-117-15/+13
* Scheduler refactor Pt. 1Kevin Hartman2015-02-103-223/+258
* Mutex: Locks should be recursive.bunnei2015-02-102-16/+20
* core: Fix some warnings on OSXLioncash2015-02-031-1/+0
* Kernel: Stop creating useless Handles during object creationYuri Kunde Schlesner2015-02-0212-36/+17
* Kernel: Make WaitObjects share ownership of Threads waiting on themYuri Kunde Schlesner2015-02-026-12/+17
* Explicitly instantiate constructors/destructors for Kernel objectsYuri Kunde Schlesner2015-02-0216-8/+50
* Mutex: Replace g_mutex_held_locks with a set inside ThreadYuri Kunde Schlesner2015-02-023-23/+18
* Kernel: Fix bug in HandleTable::CloseYuri Kunde Schlesner2015-02-021-1/+1
* Kernel: Remove Object::GetHandle (it's not used anymore :D)Yuri Kunde Schlesner2015-02-022-9/+1
* Kernel: Introduce unique Object ids for debuggingYuri Kunde Schlesner2015-02-024-8/+16
* Kernel: Use separate Handle tables for CoreTiming userdataYuri Kunde Schlesner2015-02-024-18/+25
* Kernel: Remove previous scheduled event when a Timer is re-SetYuri Kunde Schlesner2015-02-021-0/+3
* Thread: Modernize two functions that slipped through previous rebasesYuri Kunde Schlesner2015-02-023-15/+13
* arm: Clean up ARMul_StateLioncash2015-02-011-1/+1
* shared_memory: Fix assignments in SharedMemory::MapLioncash2015-01-302-4/+4
* Kernel: Mark all appropriate kernel objects as "final"Yuri Kunde Schlesner2015-01-307-8/+7
* Remove result.h InvalidHandleYuri Kunde Schlesner2015-01-301-1/+2
* Kernel: Convert Event to not use HandlesYuri Kunde Schlesner2015-01-302-83/+51
* Kernel: Convert Timer to (mostly) not use HandlesYuri Kunde Schlesner2015-01-302-104/+72
* Kernel: Convert Mutex to not use HandlesYuri Kunde Schlesner2015-01-302-101/+82
* Kernel: Convert AddressArbiter to not use HandlesYuri Kunde Schlesner2015-01-302-32/+31
* Kernel: Convert Semaphore to not use HandlesYuri Kunde Schlesner2015-01-302-61/+61
* Kernel: Convert SharedMemory to not use HandlesYuri Kunde Schlesner2015-01-302-71/+54
* Move VAddr/PAddr typedefs to kernel.hYuri Kunde Schlesner2015-01-301-0/+5
* Kernel: Remove useless/duplicated comments; mark functions staticYuri Kunde Schlesner2015-01-306-32/+8
* Thread: Fix WaitSynchronization1 to not set register 1 on thread wakeup.bunnei2015-01-222-22/+42
* Thread: Use std::find in CheckWait_WaitObject.bunnei2015-01-221-4/+5
* Mutex: Cleanup and remove redundant code.bunnei2015-01-223-47/+29
* Kernel: Renamed some functions for clarity.bunnei2015-01-227-10/+10
* Kernel: Changed "ShouldWait" to return bool and "Acquire" to return void.bunnei2015-01-228-64/+39
* WaitObject: Renamed "Wait" to "ShouldWait", made "ShouldWait" and "Acquire" pure virtual.bunnei2015-01-228-21/+20
* Event: Fix implementation of "non-sticky" events.bunnei2015-01-221-0/+4
* Session: Change to a WaitObject.bunnei2015-01-223-2/+9
* Kernel: Reschedule on SignalEvent and SendSyncRequest, fix some bugs.bunnei2015-01-221-1/+1
* Mutex: Fix a bug where the thread should not wait if it already has the mutex.bunnei2015-01-221-1/+4
* Kernel: Moved Wait and Acquire to WaitObject, added way to retrieve a WaitObject safely.bunnei2015-01-223-18/+57
* AddressArbiter: Changed to Kernel::Object, big cleanup, removed code that made no sense.bunnei2015-01-224-35/+42
* Kernel: Get rid of WaitTypes and simplify lots of code, removing hacks.bunnei2015-01-228-112/+43
* WaitSynchronizationN: Refactor to fix several bugsbunnei2015-01-227-54/+49
* Kernel: Separate WaitSynchronization into Wait and Acquire methods.bunnei2015-01-227-14/+54
* WaitSynchronizationN: Implement return valuesbunnei2015-01-229-56/+139
* Event: Fixed some bugs and cleanup (Subv)bunnei2015-01-222-54/+13
* Thread: Keep track of multiple wait objects.bunnei2015-01-223-16/+30
* Event: Get rid of permanent_lock hack.bunnei2015-01-222-36/+8
* WaitObject: Added RemoveWaitingThread, fixed a bug, and cleanup.bunnei2015-01-222-4/+17
* Kernel: Added WaitObject and changed "waitable" objects inherit from it.bunnei2015-01-228-71/+73
* core: Fix a few docstringsLioncash2015-01-202-2/+2
* AddrArbiter: Implement arbitration types 3 and 4.Subv2015-01-132-3/+20
* Merge pull request #466 from Subv/wakebunnei2015-01-111-0/+3
|\
| * Thread: Prevent waking a thread multiple times.Subv2015-01-111-0/+3
* | Kernel: Start using boost::intrusive_ptr for lifetime managementYuri Kunde Schlesner2015-01-0910-76/+75
* | Kernel: Don't re-assign object's handle when duplicating oneYuri Kunde Schlesner2015-01-092-2/+3
|/
* Thread: Fix nullptr access in a logging functionYuri Kunde Schlesner2015-01-091-1/+2
* Thread: Rename thread_queue => thread_listYuri Kunde Schlesner2015-01-091-6/+6
* Thread: Reduce use of Handles and move some funcs to inside the class.Yuri Kunde Schlesner2015-01-099-281/+190
* Kernel: Move Thread's definition to the header fileYuri Kunde Schlesner2015-01-093-53/+67
* Move ThreadContext to core/core.h and deal with the falloutYuri Kunde Schlesner2015-01-092-4/+6
* Merge pull request #255 from Subv/cbranch_3bunnei2015-01-095-1/+194
|\
| * SVC: Implemented the Timer service calls.Subv2015-01-095-1/+194
* | SVC: Fixed SleepThread.Subv2015-01-092-8/+39
* | Threads: Use a dummy idle thread when no other are ready.Subv2015-01-083-1/+35
* | Common: Clean up ThreadQueueListYuri Kunde Schlesner2015-01-071-1/+1
|/
* Merge pull request #407 from Subv/arbiterbunnei2015-01-051-0/+11
|\
| * AddressArbiter: Ported arbitration type 2 from 3dmoo.Subv2015-01-031-0/+11
* | Mutex: Add the calling thread to the waiting list when neededSubv2015-01-041-2/+2
|/
* Kernel: New handle managerYuri Kunde Schlesner2014-12-289-142/+189
* Kernel: Replace GetStaticHandleType by HANDLE_TYPE constantsYuri Kunde Schlesner2014-12-288-15/+15
* Rename ObjectPool to HandleTableYuri Kunde Schlesner2014-12-288-41/+41
* Merge pull request #291 from purpasmart96/licensebunnei2014-12-2115-16/+16
|\
| * License changepurpasmart962014-12-2115-16/+16
* | Thread: Wait current thread on svc_SleepThreadbunnei2014-12-212-21/+33
* | Merge pull request #316 from yuriks/thread-handlebunnei2014-12-203-2/+16
|\ \
| * | Kernel: Implement support for current thread pseudo-handleYuri Kunde Schlesner2014-12-203-2/+16
* | | Clean up some warningsChin2014-12-202-5/+5
| |/ |/|
* | Merge pull request #185 from purpasmart96/mem_permbunnei2014-12-181-5/+9
|\ \
| * | Kernel:Add missing permissions in shared memory & svcpurpasmart962014-11-191-5/+9
* | | Filesystem/Archives: Implemented the SaveData archiveSubv2014-12-182-0/+7
| |/ |/|
* | HLE: Rename namespaces to match move & fix initialization orderYuri Kunde Schlesner2014-12-161-5/+0
* | HLE: Move kernel/archive.* to service/fs/Yuri Kunde Schlesner2014-12-163-534/+1
* | Remove SyncRequest from K::Object and create a new K::Session typeYuri Kunde Schlesner2014-12-153-38/+75
* | Kernel/Semaphore: Small style changeSubv2014-12-131-1/+1
* | Kernel/Semaphores: Invert the available count checking.Subv2014-12-131-11/+9
* | Kernel/Semaphores: Addressed some issues.Subv2014-12-132-32/+18
* | Semaphore: Removed an unneeded functionSubv2014-12-131-5/+0
* | Semaphores: Addressed some style issuesSubv2014-12-131-6/+5
* | Semaphore: Implemented the initial_count parameter.Subv2014-12-132-5/+7
* | SVC: Implemented ReleaseSemaphore.Subv2014-12-132-16/+64
* | SVC: Implemented svcCreateSemaphoreSubv2014-12-132-0/+98
* | kernel: Remove unused log argumentsLioncash2014-12-131-3/+3
* | Convert old logging calls to new logging macrosYuri Kunde Schlesner2014-12-136-72/+45
* | Merge pull request #256 from Subv/mutexbunnei2014-12-113-37/+67
|\ \
| * | Mutex: Remove some forward declarationsSubv2014-12-071-16/+15
| * | Mutex: Release all held mutexes when a thread exits.Subv2014-12-073-22/+56
| * | Mutex: Properly lock the mutex when a thread enters itSubv2014-12-061-12/+9
* | | Thread: Fixed to wait on address when in arbitration.bunnei2014-12-093-11/+31
* | | Make OpenDirectory fail if the directory doesn't existarchshift2014-12-071-0/+5
|/ /
* | Merge pull request #250 from Subv/cbranch_2bunnei2014-12-052-0/+26
|\ \
| * | Threads: Remove a redundant function.Subv2014-12-041-9/+1
| * | Threads: Implemented a sequential thread idSubv2014-12-042-4/+19
| * | SVC: Implemented GetThreadId.Subv2014-12-042-0/+19
* | | Merge pull request #222 from archshift/renamexyzbunnei2014-12-052-33/+74
|\ \ \
| * | | Updated archive.cpp functions for proper error handlingarchshift2014-12-042-65/+36
| * | | Implemented RenameDirectory in FS:USERarchshift2014-11-252-0/+35
| * | | Implemented RenameFile in FS:USERarchshift2014-11-252-0/+35
* | | | kernel: Shorten GetCountLioncash2014-12-041-6/+3
* | | | kernel: Make some functions constLioncash2014-12-042-4/+4
| |/ / |/| |
* | | Merge pull request #225 from bunnei/fix-release-mutexbunnei2014-11-301-8/+7
|\ \ \
| * | | Mutex: Changed behavior to always release mutex for all threads.bunnei2014-11-261-8/+7
| |/ /
* / / Thread: Check that thread is actually in "wait state" when verifying wait.bunnei2014-11-261-1/+1
|/ /
* | Use pointers instead of passing handles around in some functions.Yuri Kunde Schlesner2014-11-241-19/+15
* | Remove duplicated docs/update them for changed parameters.Yuri Kunde Schlesner2014-11-249-78/+0
* | HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner2014-11-2413-201/+187
* | Merge pull request #191 from archshift/deletexyzbunnei2014-11-242-1/+47
|\ \
| * | Added DeleteFile and DeleteDirectory functions to FS:USER and the archives.archshift2014-11-232-1/+47
* | | Merge pull request #211 from linkmauve/masterbunnei2014-11-1912-42/+42
|\ \ \
| * | | Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot2014-11-1912-42/+42
* | | | Merge pull request #208 from lioncash/staticsbunnei2014-11-191-22/+22
|\ \ \ \ | |/ / / |/| | |
| * | | Add static to some variablesLioncash2014-11-191-22/+22
| |/ /
* / / Remove extraneous semicolonsLioncash2014-11-181-1/+1
|/ /
* | Archive: Fixed to not destroy archive handle on close.bunnei2014-11-181-3/+3
* | Archive: Fixed close archive before freeing.bunnei2014-11-181-1/+1
* | FS_User: Support FileSye::Path in a more generic way.bunnei2014-11-181-0/+11
* | FileSys: Updated backend code to use FileSys::Path instead of string for paths.bunnei2014-11-182-10/+10
* | Fix two format strings.Lioncash2014-11-141-1/+1
|/
* Added CreateDirectory function to service/fs.cpp, and in Archive.archshift2014-11-022-2/+25
* Fix some warningsSean2014-10-301-3/+3
* Add `override` keyword through the code.Yuri Kunde Schlesner2014-10-266-35/+35
* FileSys: split the constructor into an Open method, in order to notify the opener something went wrong.Emmanuel Gil Peyrot2014-10-061-0/+3
* FileSys/Kernel: Implement SetSize service call for File objects.Emmanuel Gil Peyrot2014-10-061-0/+8
* Use the citra user path for the sdmc directoryarchshift2014-09-211-2/+1
* Kernel: Implement the Close command for Archive, File and Directory.Emmanuel Gil Peyrot2014-09-172-0/+43
* Kernel: Add a Directory object and a getter for it from an Archive object.Emmanuel Gil Peyrot2014-09-173-0/+91
* Kernel: Add a File object and a getter for it from an Archive object.Emmanuel Gil Peyrot2014-09-172-0/+118
* Core: Get rid of unnecessary switch statement in KernelLioncash2014-09-151-41/+2
* core: Prune redundant includesarchshift2014-09-093-6/+0
* Threading: Fix thread starting to execute first instruction correctly.bunnei2014-08-281-0/+5
* Added FS functions to Archive and Archive_RomFSarchshift2014-08-231-3/+31
* Core: Use std::array for managing kernel object spaceLioncash2014-08-192-5/+5
* Core: Alter the kernel string functions to use std::string instead of const char*.Lioncash2014-08-188-25/+22
* Thread: Added more descriptive comment to WaitCurrentThread.bunnei2014-08-072-2/+10
* AddressArbiter: Removed unnecessary HLE::Reschedule.bunnei2014-08-061-1/+0
* AddressArbiter: Fixed bug with break statements missing from case statements.bunnei2014-08-061-0/+2
* Kernel: Updated Event and Mutex to specify handle that they are blocking for.bunnei2014-08-062-2/+2
* Kernel: Added preliminary support for address arbiters.bunnei2014-07-093-1/+124
* Thread: Added functions to resume threads from address arbitration.bunnei2014-07-092-0/+44
* SharedMemory: Updated MapSharedMemory to use an enum for permissions.bunnei2014-07-052-6/+27
* Kernel: Added support for shared memory objects.bunnei2014-07-052-0/+132
* Archive: Added Init/Shutdown methods to reset kernel archive state.bunnei2014-07-053-0/+19
* FileSys: Added preliminary support for applications reading the RomFS archive.bunnei2014-07-052-10/+105
* Kernel: Added stubbed code to support creation of kernel Archive objects.bunnei2014-06-273-0/+85
* Kernel: Removed unnecessary "#pragma once".bunnei2014-06-131-2/+0
* Kernel: Added freeing of kernel objects on emulator shutdown.bunnei2014-06-132-0/+10
* Event: Updated several log messages to be assertions.bunnei2014-06-131-16/+8
* Thread: Renamed occurrences of "t" to "thread" to improve readability.bunnei2014-06-131-48/+45
* Thread: Cleaned up VerifyWait, fixed issue where nullptr msg could unnecessarily be logged.bunnei2014-06-131-9/+7
* HLE: Removed usnused EatCycles function.bunnei2014-06-131-9/+0
* Thread: Moved position of * in arguments.bunnei2014-06-131-2/+2
* Thread: Updated VerifyWait to be more readable (but functionally the same).bunnei2014-06-131-4/+3
* HLE: Updated all uses of NULL to nullptr (to be C++11 compliant)bunnei2014-06-133-9/+9
* Kernel: Updated various kernel function "name" arguments to be const references.bunnei2014-06-134-6/+6
* HLE: Updated various handle debug assertions to be more clear.bunnei2014-06-132-3/+3
* Mutex: Moved ReleaseMutex iterator declaration to be inside while loop.bunnei2014-06-131-2/+1
* Kernel: Updated several member functions to be constbunnei2014-06-134-11/+11
* Thread: Fixed bug with ResetThread where cpu_registers[15] was being incorrectly setbunnei2014-06-131-1/+1
* Kernel: Made SyncRequest not pure virtual, with a default implementation of error (as this is not required for all kernel objects)bunnei2014-06-133-23/+4
* Kernel: Added real support for thread and event blockingbunnei2014-06-135-48/+165
* kernel: changed current default thread priority back to 0x30 - I think this is more correctbunnei2014-06-051-1/+1
* svc: added optional name field to Event and Mutex (used for debugging)bunnei2014-06-034-8/+21
* kernel: moved position of * for GetTypeName and GetNamebunnei2014-06-031-2/+2
* svc: added GetThreadPriority and SetThreadPriority, added (incomplete) DuplicateHandle supportbunnei2014-06-022-0/+51
* kernel: changed main thread priority to default, updated Kernel::Reschedule to use PrepareReschedulebunnei2014-06-023-4/+6
* thread: updated Reschedule to sit at a synchronization barrier when no other threads are ready for executionbunnei2014-06-011-0/+18
* event: added a hackish ability to set an event as "locked" to its current state, cleaned up some commentsbunnei2014-06-012-4/+32
* mutex: fixed typo in ReleaseMutexbunnei2014-05-301-1/+3
* event: added support for ClearEvent, fixed a bug with CreateEvent, fixed some commentsbunnei2014-05-302-9/+14
* mutex: added preliminary SyncRequest/WaitSynchronization, added some comments/assertionsbunnei2014-05-281-0/+6
* event: fixed typos and updated CMakeListsbunnei2014-05-281-1/+1
* event: added SetEventLocked method to change status an events lockbunnei2014-05-282-0/+18
* kernel: added event module to support creation of CTR "Event" objectsbunnei2014-05-282-0/+119
* mutex: removed docstring comment that is no longer relevantbunnei2014-05-271-1/+0
* mutex: added additional docstringsbunnei2014-05-271-0/+2
* kernel: added WaitSynchronization method to Kernel::Objectbunnei2014-05-273-0/+29
* kernel: updated SyncRequest to take boolean thread wait result as a parameterbunnei2014-05-273-5/+20
* kernel: added enum for known CurrentThread and CurrentProcess handlesbunnei2014-05-271-0/+5
* kernel: add a SyncRequest method to KernelObject for use with svcSendSyncRequestbunnei2014-05-273-0/+11
* thread: renamed "WaitCurThread" to "WaitCurrentThread", removed unused "reason" argumentbunnei2014-05-232-4/+4
* thread: removed unused SwitchContext/Reschedule reason field, added missing arg parameter to SVC CreateThreadbunnei2014-05-232-4/+4
* kernel: refactored function naming to remove "__" prefixbunnei2014-05-235-62/+72
* thread: moved ThreadStatus/WaitType to header, added support for arg on CreateThread, added correct CPSR resetbunnei2014-05-232-35/+40
* thread: fixed bug where result of __NextThread was not being properly checked when NULLbunnei2014-05-221-1/+1
* mutex: refactored the interface to code to return a Mutex* handlebunnei2014-05-212-3/+13
* mutex: initial commit of HLE modulebunnei2014-05-212-0/+148
* kernel: fixed include, in general include "common.h" not "common_types.h"bunnei2014-05-211-1/+1
* thread: added correct lowest thread priority, added a thread priority check, and added some commentsbunnei2014-05-212-6/+10
* thread: exposed ResumeThreadFromWait function for use in other kernel modulesbunnei2014-05-212-8/+11
* thread: moved threading calls to the Kernel namespacebunnei2014-05-213-101/+115
* ARM_Interface: added SaveContext and LoadContext functions for HLE thread switchingbunnei2014-05-211-36/+2
* renamed "syscall" module to "svc" (more accurate naming)bunnei2014-05-211-1/+1
* thread: whitespace change - fixed * and & placementbunnei2014-05-212-27/+27
* - created a Kernel namespacebunnei2014-05-214-67/+79
* thread: added declaration for __KernelReschedule to be used by syscall modulebunnei2014-05-201-0/+3
* - updated service(s) to be KernelObject'sbunnei2014-05-191-4/+5
* - moved Handle/Result definitions to kernel.hbunnei2014-05-192-3/+2
* changed a commentbunnei2014-05-172-2/+2
* - added enum ThreadProcessorIdbunnei2014-05-172-53/+107
* - replaced KERNELOBJECT_MAX_NAME_LENGTH with KERNEL_MAX_NAME_LENGTHbunnei2014-05-173-8/+12
* completely gutted/refactored threading code to be simplerbunnei2014-05-162-658/+230
* changed "UID" to "Handle" to be a little more consistent with CTR namingbunnei2014-05-162-18/+21
* - added helper function for __KernelCreateThreadbunnei2014-05-152-4/+76
* changed primary thread priority to 0x30 - this is typical, not 0x31bunnei2014-05-151-1/+2
* fixed thread reset to not set stack addressbunnei2014-05-141-1/+1
* various cleanups / remove unused codebunnei2014-05-142-65/+29
* 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 pointbunnei2014-05-142-70/+543
* - added __KernelLoadExec functionbunnei2014-05-142-13/+35
* added initial kernel/thread modulesbunnei2014-05-104-0/+527