aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/service.cpp
AgeCommit message (Collapse)Author
2019-11-28kernel: Implement a more accurate IPC dispatch.bunnei
2019-11-24kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for ↵bunnei
kernel objects. (#3154) * kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. - See https://github.com/citra-emu/citra/pull/4710 for details.
2019-10-08Merge pull request #2654 from DarkLordZach/lm-log-rewritebunnei
lm: Rewrite logger to use core reporting services
2019-10-01bcat: Add FSC accessors for BCAT dataZach Hilman
Ports BCAT to use FSC interface
2019-09-22core: Add LM::Manager to systemZach Hilman
Allows centralized control over logging mechanisms.
2019-09-22Removed reference to core timing to nvflinger and used system insteadDavid Marcec
2019-09-22RebaseDavid Marcec
2019-09-22Merge pull request #2612 from DarkLordZach/prepo-newDavid
prepo: Implement New, System, and Non-User variants of SaveReport
2019-09-21prepo: Remove system global accessorsZach Hilman
2019-09-21configure_debug: Move reporting option to loggingZach Hilman
2019-09-21yuzu: Port old usages of Filesystem namespace to FilesystemControllerZach Hilman
2019-09-21services: Pass FileSystemController as reference to services that need itZach Hilman
2019-08-18Merge pull request #2747 from lioncash/audiobunnei
service/audren_u: Unstub ListAudioDeviceName
2019-07-26Merge pull request #2592 from FernandoS27/sync1bunnei
Implement GPU Synchronization Mechanisms & Correct NVFlinger
2019-07-19service/audio: Remove global system accessorsLioncash
Trims out the lingering reliance on global state out of the audio code.
2019-07-10Merge pull request #2611 from DarkLordZach/pm-info-cmdbunnei
pm: Implement various pm commands for finding process and title IDs
2019-07-07Merge pull request #2651 from DarkLordZach/apm-boost-mode-1bunnei
apm: Initial implementation of performance config and boost mode
2019-07-07Merge pull request #2642 from DarkLordZach/fsp-log-2bunnei
fsp-srv: Implement Access Logging Functionality
2019-07-05nv_services: Deglobalize NvServicesFernando Sahmkow
2019-07-03Merge pull request #2608 from ogniK5377/Time_GetSharedMemoryNativeHandleZach Hilman
Implement Time::GetSharedMemoryNativeHandle
2019-06-28am: Implement SetCpuBoostMode in terms of APMZach Hilman
2019-06-28fsp-srv: Implement OutputAccessLogToSdCardZach Hilman
Allows games to log data to the SD.
2019-06-26pm: Implement pm:shell and pm:dmnt GetApplicationPidZach Hilman
Returns the process ID of the current application or 0 if no app is running.
2019-06-26Merge pull request #2548 from DarkLordZach/applet-shopnbunnei
applets: Implement backend and default frontend for Parental Controls and EShop (ShopN) applets
2019-06-26Implement Time::GetSharedMemoryNativeHandleDavid Marcec
This PR attempts to implement the shared memory provided by GetSharedMemoryNativeHandle. There is still more work to be done however that requires a rehaul of the current time module to handle clock contexts. This PR is mainly to get the basic functionality of the SharedMemory working and allow the use of addition to it whilst things get improved on. Things to note: Memory Barriers are used in the SharedMemory and a better solution would need to be done to implement this. Currently in this PR I’m faking the memory barriers as everything is sync and single threaded. They work by incrementing the counter and just populate the two data slots. On data reading, it will read the last added data. Specific values in the shared memory would need to be updated periodically. This isn't included in this PR since we don't actively do this yet. In a later PR when time is refactored this should be done. Finally, as we don't handle clock contexts. When time is refactored, we will need to update the shared memory for specific contexts. This PR does this already however since the contexts are all identical and not separated. We're just updating the same values for each context which in this case is empty. Tiime:SetStandardUserSystemClockAutomaticCorrectionEnabled, Time:IsStandardUserSystemClockAutomaticCorrectionEnabled are also partially implemented in this PR. The reason the implementation is partial is because once again, a lack of clock contexts. This will be improved on in a future PR. This PR closes issue #2556
2019-06-24applets: Pass current process title ID to appletsZach Hilman
Avoids using system accessor to get current process in applet code.
2019-06-24glue: Implement arp:w and arp:r servicesZach Hilman
These keep track of running process' launch properties and control properties and allows for issuing and reading them by process and title ID.
2019-06-21Merge pull request #2482 from DarkLordZach/prepobunnei
core: Add detailed local reporting feature for development
2019-06-17Addressed issuesDavid Marcec
2019-05-25service: Save report on unimplemented function callZach Hilman
2019-03-13Merge pull request #2223 from lioncash/errorbunnei
core/hle/result: Tidy up the base error code result header.
2019-03-10core/hle/result: Relocate IPC error code to ipc_helpersLioncash
Relocates the error code to where it's most related, similar to how all the other error codes are. Previously we were including a non-generic error in the main result code header.
2019-03-10service/service: Remove unncessary calls to c_str()Lioncash
These can just be passed regularly, now that we use fmt instead of our old logging system. While we're at it, make the parameters to MakeFunctionString std::string_views.
2019-02-15core_timing: Convert core timing into a classLioncash
Gets rid of the largest set of mutable global state within the core. This also paves a way for eliminating usages of GetInstance() on the System class as a follow-up. Note that no behavioral changes have been made, and this simply extracts the functionality into a class. This also has the benefit of making dependencies on the core timing functionality explicit within the relevant interfaces.
2018-12-13Fix Service object leak on emulation stopJens Schmer
Services created with the ServiceFramework base class install themselves as HleHandlers with an owning shared_ptr in the ServerPort ServiceFrameworkBase::port member variable, creating a cyclic ownership between ServiceFrameworkBase and the ServerPort, preventing deletion of the service objects. Fix that by removing the ServiceFrameworkBase::port member because that was only used to detect multiple attempts at installing a port. Instead store a flag if the port was already installed to achieve the same functionality.
2018-12-06hle/service: Replace log + UNIMPLEMENTED with UNIMPLEMENTED_MSGLioncash
Combines the two into one, shortening the amount of code here.
2018-12-06hle/service: Remove unnecessary using declarationsLioncash
Only one usage of the specified objects made use of the lack of namespacing. Given the low usage, we can just remove these.
2018-12-06hle/service, hle/sm: Compress usages of MakeResult()Lioncash
These auto-deduce the result based off its arguments, so there's no need to do that work for the compiler, plus, the function return value itself already indicates what we're returning.
2018-12-06hle/service, hle/sm: Use structured bindings where applicableLioncash
Gets rid of the need to keep the variables separate from their actual initialization spots.
2018-11-14service: Mark MakeFunctionString with the [[maybe_unused]] attribute.Lioncash
When yuzu is compiled in release mode this function is unused, however, when compiled in debug mode, it's used within a LOG_TRACE statement. This prevents erroneous compilation warnings about an unused function (that isn't actually totally unused).
2018-10-22Merge pull request #1545 from DarkLordZach/psmbunnei
psm: Add psm service and stub commands 0 and 1
2018-10-21service: Add the basic skeleton for the NPNS servicesLioncash
2018-10-20service: Add skeleton for psm serviceZach Hilman
Seems to be the power controller. Listed in switchbrew under the category PTM services.
2018-10-13filesystem: Make CreateFactories() and InstallInterface() take a ↵Lioncash
VfsFilesystem instance by reference Neither of these functions alter the ownership of the provided pointer, so we can simply make the parameters a reference rather than a direct shared pointer alias. This way we also disallow passing incorrect memory values like nullptr.
2018-09-17Merge pull request #1312 from lioncash/fwdbunnei
service/vi: Replace includes with forward declarations where applicable
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi
2018-09-13service/vi: Replace includes with forward declarations where applicableLioncash
2018-09-09service: Remove unused g_kernel_named_ports variableLioncash
With the named port functionality all migrated over to the kernel, there's no need to keep this around anymore.
2018-09-02service: Migrate global named port map to the KernelCore classLioncash
Now that we have a class representing the kernel in some capacity, we now have a place to put the named port map, so we move it over and get rid of another piece of global state within the core.
2018-08-28kernel: Eliminate kernel global stateLioncash
As means to pave the way for getting rid of global state within core, This eliminates kernel global state by removing all globals. Instead this introduces a KernelCore class which acts as a kernel instance. This instance lives in the System class, which keeps its lifetime contained to the lifetime of the System class. This also forces the kernel types to actually interact with the main kernel instance itself instead of having transient kernel state placed all over several translation units, keeping everything together. It also has a nice consequence of making dependencies much more explicit. This also makes our initialization a tad bit more correct. Previously we were creating a kernel process before the actual kernel was initialized, which doesn't really make much sense. The KernelCore class itself follows the PImpl idiom, which allows keeping all the implementation details sealed away from everything else, which forces the use of the exposed API and allows us to avoid any unnecessary inclusions within the main kernel header.