summaryrefslogtreecommitdiff
path: root/src/core (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #2328 from lioncash/transferGravatar bunnei2019-04-033-17/+37
|\ | | | | service/am: Correct behavior of CreateTransferMemoryStorage()
| * service/am: Correct behavior of CreateTransferMemoryStorage()Gravatar Lioncash2019-04-031-6/+6
| | | | | | | | | | | | | | | | For whatever reason, shared memory was being used here instead of transfer memory, which (quite clearly) will not work based off the name of the function. This corrects this wonky usage of shared memory.
| * kernel/transfer_memory: Add accessors to data and sizesGravatar Lioncash2019-04-032-11/+31
| | | | | | | | Also amend erroneous use of size_t. We should be using u64 here.
* | Merge pull request #2093 from FreddyFunk/disk-cache-better-compressionGravatar bunnei2019-04-032-11/+8
|\ \ | | | | | | Better LZ4 compression utilization for the disk based shader cache and the yuzu build system
| * | Addressed feedbackGravatar unknown2019-03-291-4/+4
| | |
| * | core: Do not link LZ4 to core. Use common/data_compression for nso segment ↵Gravatar unknown2019-03-292-11/+8
| | | | | | | | | | | | decompression instead.
* | | Merge pull request #2324 from lioncash/enum-unusedGravatar bunnei2019-04-032-2/+0
|\ \ \ | | | | | | | | kernel/object: Remove unused handle type entry
| * | | kernel/object: Remove unused handle type entryGravatar Lioncash2019-04-032-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The AddressArbiter type isn't actually used, given the arbiter itself isn't a direct kernel object (or object that implements the wait object facilities). Given this, we can remove the enum entry entirely.
* | | | Merge pull request #2294 from lioncash/fatalGravatar bunnei2019-04-032-36/+63
|\ \ \ \ | |_|_|/ |/| | | service/am: Implement EnterFatalSection/LeaveFatalSection
| * | | service/am: Implement EnterFatalSection and LeaveFatalSectionGravatar Lioncash2019-03-262-2/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These functions act in tandem similar to how a lock or mutex require a balanced lock()/unlock() sequence. EnterFatalSection simply increments a counter for how many times it has been called, while LeaveFatalSection ensures that a previous call to EnterFatalSection has occured. If a previous call has occurred (the counter is not zero), then the counter gets decremented as one would expect. If a previous call has not occurred (the counter is zero), then an error code is returned.
| * | | service/am: Sort ISelfController's member functions according to table orderGravatar Lioncash2019-03-262-36/+36
| | | | | | | | | | | | | | | | | | | | Makes the declaration order of the handling functions consistent with the handler table itself.
* | | | Merge pull request #2305 from lioncash/sharedGravatar bunnei2019-04-033-5/+18
|\ \ \ \ | | | | | | | | | | kernel/shared_memory: Sanitize supplied size when unmapping
| * | | | kernel/shared_memory: Remove unused core/memory.h includeGravatar Lioncash2019-03-291-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | Nothing from this header is used, so we can remove this include, getting rid of a dependency on it.
| * | | | kernel/shared_memory: Sanitize supplied size when unmappingGravatar Lioncash2019-03-293-4/+18
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | The kernel makes sure that the given size to unmap is always the same size as the entire region managed by the shared memory instance, otherwise it returns an error code signifying an invalid size. This is similarly done for transfer memory (which we already check for).
* | | | Merge pull request #2314 from lioncash/constGravatar bunnei2019-04-0311-18/+18
|\ \ \ \ | |_|_|/ |/| | | kernel/thread: Minor interface cleanup
| * | | kernel/thread: Make AllWaitObjectsReady() a const qualified member functionGravatar Lioncash2019-04-012-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Now that ShouldWait() is a const qualified member function, this one can be made const qualified as well, since it can handle passing a const qualified this pointer to ShouldWait().
| * | | kernel/wait_object: Make ShouldWait() take thread members by pointer-to-constGravatar Lioncash2019-04-0111-11/+11
| | | | | | | | | | | | | | | | | | | | Given this is intended as a querying function, it doesn't make sense to allow the implementer to modify the state of the given thread.
| * | | kernel/thread: Avoid sign conversion within GetCommandBufferAddress()Gravatar Lioncash2019-04-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously this was performing a u64 + int sign conversion. When dealing with addresses, we should generally be keeping the arithmetic in the same signedness type. This also gets rid of the static lifetime of the constant, as there's no need to make a trivial type like this potentially live for the entire duration of the program.
| * | | kernel/thread: Make parameter of GetWaitObjectIndex() const qualifiedGravatar Lioncash2019-04-012-3/+3
| | | | | | | | | | | | | | | | | | | | The pointed to member is never actually modified, so it can be made const.
* | | | Merge pull request #2270 from lioncash/plistGravatar bunnei2019-04-027-2/+123
|\ \ \ \ | | | | | | | | | | kernel/svc: Implement svcGetProcessList and svcGetThreadList
| * | | | kernel/svc: Implement svcGetThreadListGravatar Lioncash2019-04-024-1/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Similarly like svcGetProcessList, this retrieves the list of threads from the current process. In the kernel itself, a process instance maintains a list of threads, which are used within this function. Threads are registered to a process' thread list at thread initialization, and unregistered from the list upon thread destruction (if said thread has a non-null owning process). We assert on the debug event case, as we currently don't implement kernel debug objects.
| * | | | kernel/svc: Implement svcGetProcessListGravatar Lioncash2019-04-024-1/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This service function simply copies out a specified number of kernel process IDs, while simultaneously reporting the total number of processes.
* | | | | Merge pull request #2313 from lioncash/reslimitGravatar bunnei2019-04-023-14/+6
|\ \ \ \ \ | |/ / / / |/| | | | kernel/resource_limit: Remove the name member from resource limits
| * | | | kernel/resource_limit: Remove the name member from resource limitsGravatar Lioncash2019-04-013-14/+6
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This doesn't really provide any benefit to the resource limit interface. There's no way for callers to any of the service functions for resource limits to provide a custom name, so all created instances of resource limits other than the system resource limit would have a name of "Unknown". The system resource limit itself is already trivially identifiable from its limit values, so there's no real need to take up space in the object to identify one object meaningfully out of N total objects.
* | | | process: Fix up compilationGravatar ReinUsesLisp2019-04-021-1/+1
| | | |
* | | | Merge pull request #2281 from lioncash/memoryGravatar bunnei2019-04-015-7/+8
|\ \ \ \ | |/ / / |/| | | kernel/codeset: Make CodeSet's memory data member a regular std::vector
| * | | kernel/codeset: Make CodeSet's memory data member a regular std::vectorGravatar Lioncash2019-03-225-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The use of a shared_ptr is an implementation detail of the VMManager itself when mapping memory. Because of that, we shouldn't require all users of the CodeSet to have to allocate the shared_ptr ahead of time. It's intended that CodeSet simply pass in the required direct data, and that the memory manager takes care of it from that point on. This means we just do the shared pointer allocation in a single place, when loading modules, as opposed to in each loader.
* | | | Merge pull request #2301 from FearlessTobi/remove-amiibo-settingGravatar bunnei2019-04-013-3/+1
|\ \ \ \ | | | | | | | | | | core/yuzu: Remove enable_nfc setting
| * | | | core/yuzu: Remove enable_nfc settingGravatar fearlessTobi2019-03-293-3/+1
| | |_|/ | |/| | | | | | | | | | This was initially added to prevent problems from stubbed/not implemented NFC services, but as we never encountered such and as it's only used in a deprecated function anyway, I guess we can just remove it to prevent more clutter of the settings.
* | | | general: Use deducation guides for std::lock_guard and std::unique_lockGravatar Lioncash2019-04-016-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since C++17, the introduction of deduction guides for locking facilities means that we no longer need to hardcode the mutex type into the locks themselves, making it easier to switch mutex types, should it ever be necessary in the future.
* | | | Merge pull request #2304 from lioncash/memsizeGravatar bunnei2019-03-303-9/+28
|\ \ \ \ | | | | | | | | | | kernel/process: Report total physical memory used to svcGetInfo slightly better
| * | | | kernel/process: Report total physical memory used to svcGetInfoGravatar Lioncash2019-03-283-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reports the (mostly) correct size through svcGetInfo now for queries to total used physical memory. This still doesn't correctly handle memory allocated via svcMapPhysicalMemory, however, we don't currently handle that case anyways.
| * | | | kernel/process: Store the total size of the code memory loadedGravatar Lioncash2019-03-282-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | This will be necessary to properly report the used memory size in svcGetInfo.
| * | | | kernel/process: Store the main thread stack size to a data memberGravatar Lioncash2019-03-282-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | This will be necessary in order to properly report memory usage within svcGetInfo.
| * | | | kernel/process: Make Run's stack size parameter a u64Gravatar Lioncash2019-03-282-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will make operating with the process-related SVC commands much nicer in the future (the parameter representing the stack size in svcStartProcess is a 64-bit value).
| * | | | kernel/process: Ensure that given stack size is always page-alignedGravatar Lioncash2019-03-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | The kernel always makes sure that the given stack size is aligned to page boundaries.
* | | | | Merge pull request #2308 from lioncash/deductionGravatar bunnei2019-03-303-12/+12
|\ \ \ \ \ | | | | | | | | | | | | kernel/scheduler: Minor tidying up
| * | | | | kernel/scheduler: Remove unused parameter to AddThread()Gravatar Lioncash2019-03-303-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was made unused in b404fcdf1443b91ac9994c05ad1fe039fcd9675e, but the parameter itself wasn't removed.
| * | | | | kernel/scheduler: Use deduction guides on mutex locksGravatar Lioncash2019-03-301-8/+8
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | Since C++17, we no longer need to explicitly specify the type of the mutex within the lock_guard. The type system can now deduce these with deduction guides.
* | | | | service/fatal: Mark local variables as const where applicableGravatar Lioncash2019-03-301-6/+6
| | | | |
* | | | | service/fatal: Remove unnecessary semicolonGravatar Lioncash2019-03-301-1/+1
| | | | | | | | | | | | | | | | | | | | Resolves a -Wextra-semi warning.
* | | | | service/fatal: Name FatalInfo structure membersGravatar Lioncash2019-03-301-31/+44
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Based off RE, most of these structure members are register values, which makes, sense given this service is used to convey fatal errors. One member indicates the program entry point address, one is a set of bit flags used to determine which registers to print, and one member indicates the architecture type. The only member that still isn't determined is the final member within the data structure.
* | | | Merge pull request #2266 from FernandoS27/arbitrationGravatar bunnei2019-03-285-14/+18
|\ \ \ \ | | | | | | | | | | Kernel: Fixes to Arbitration and SignalProcessWideKey Management
| * | | | Fix small bug that kept a thread as a condvar thread after being signalled.Gravatar Fernando Sahmkow2019-03-192-6/+8
| | | | |
| * | | | Add CondVar Thread State.Gravatar Fernando Sahmkow2019-03-194-4/+6
| | | | |
| * | | | Small fixes to address_arbiter to better match the IDB.Gravatar Fernando Sahmkow2019-03-192-5/+5
| | | | |
* | | | | Merge pull request #2265 from FernandoS27/multilevelqueueGravatar bunnei2019-03-282-19/+27
|\ \ \ \ \ | |_|/ / / |/| | | | Replace old Thread Queue for a new Multi Level Queue
| * | | | Fixes and corrections on formatting.Gravatar Fernando Sahmkow2019-03-271-6/+9
| | | | |
| * | | | Use MultiLevelQueue instead of old ThreadQueueListGravatar Fernando Sahmkow2019-03-272-19/+24
| | |/ / | |/| |
* | | | Merge pull request #2284 from lioncash/heap-allocGravatar bunnei2019-03-283-59/+81
|\ \ \ \ | |/ / / |/| | | kernel/vm_manager: Unify heap allocation/freeing functions