summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/service.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Rework time service to fix time passing offline.Kelebek12024-01-241-4/+3
|
* service: fetch objects from the client handle tableLiam2023-12-251-1/+1
|
* ro: add separate ro serviceLiam2023-12-091-0/+2
|
* ngc: implement serviceLiam2023-09-141-2/+2
|
* hle: rename legacy errors to ResultsLiam2023-03-071-1/+1
|
* nvnflinger: fix nameLiam2023-03-011-5/+5
|
* service: move hle_ipc from kernelLiam2023-03-011-5/+5
|
* service: refactor server architectureLiam2023-02-211-90/+61
| | | | Converts services to have their own processes
* service: remove deleted servicesLiam2023-02-141-2/+0
|
* Add break for default casesKyle Kienapfel2022-11-141-0/+1
| | | | | | | | | | | Visual Studio has an option to search all files in a solution, so I did a search in there for "default:" looking for any missing break statements. I've left out default statements that return something, and that throw something, even if via ThrowInvalidType. UNREACHABLE leads towards throw R_THROW macro leads towards a return
* sm:: avoid excessive port recreationLiam2022-10-311-4/+6
|
* kernel: fix port trackingLiam2022-10-311-1/+3
|
* kernel: invert session request handling flowLiam2022-10-311-5/+8
|
* core: barrier service thread shutdownLiam2022-10-231-0/+4
|
* Properly write out the command buffer when serving close requestNikita Strygin2022-07-311-2/+5
|
* service: ptm: Rewrite PSM and add TSgerman772022-06-291-2/+2
|
* core: Replace all instances of ResultCode with Resultgerman772022-06-271-2/+2
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-3/+2
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* Merge pull request #8164 from liamwhite/jit-stubbunnei2022-04-071-0/+2
|\ | | | | service: jit: stub JIT service
| * service: jit: stub JIT serviceLiam2022-04-071-0/+2
| |
* | hle: service: Add option for service interfaces to create or use the default thread.bunnei2022-04-021-2/+3
|/
* hle: vi: Integrate new NVFlinger and HosBinderDriverServer service.bunnei2022-03-251-2/+4
|
* service/mnpp: Stub mnpp_appNarr the Reg2022-02-111-0/+2
| | | | Used in Super Nintendo Entertainment System™ - Nintendo Switch Online
* core: Remove unused includesameerj2021-11-041-4/+0
|
* ngct: Stub NGCT:U servicegerman772021-08-271-0/+2
|
* hle: service: sm: Refactor to better manage ports.bunnei2021-07-211-6/+5
|
* service: Append service name prefix to common filenamesMorph2021-07-141-3/+3
|
* General: Resolve fmt specifiers to adhere to 8.0.0 API where applicableLioncash2021-06-231-3/+3
| | | | Also removes some deprecated API usages.
* hle: kernel: Refactor to allocate a ServiceThread per service handler.bunnei2021-06-051-3/+3
| | | | | | - Previously, we would allocate a thread per session, which adds new threads on CloneCurrentObject. - This results in race conditions with N sessions queuing requests to the same service interface. - Fixes Pokken Tournament DX crashes/softlocks, which were regressed by #6347.
* general: Replace RESULT_SUCCESS with ResultSuccessMorph2021-06-021-3/+3
| | | | Transition to PascalCase for result names.
* hle: kernel: Implement CloneCurrentObject and improve session management.bunnei2021-05-211-2/+2
|
* hle: service: Add support for dispatching TIPC requests.bunnei2021-05-111-0/+29
|
* hle: service: Implement IPC::CommandType::Close.bunnei2021-05-111-8/+11
| | | | - This was not actually closing sessions before.
* hle: service: sm: Use RegisterNamedService to register the service.bunnei2021-05-111-1/+1
|
* hle: kernel: Implement named service ports using service interface factory.bunnei2021-05-111-2/+3
| | | | - This allows us to create a new interface each time ConnectToNamedPort is called, removing the assumption that these are static.
* hle: kernel: Rename Process to KProcess.bunnei2021-05-061-1/+1
|
* hle: kernel: Migrate KPort, KClientPort, and KServerPort to KAutoObject.bunnei2021-05-061-4/+5
|
* hle: kernel: Migrate KServerPort to KAutoObject.bunnei2021-05-061-2/+2
|
* hle: kernel: Migrate KClientPort to KAutoObject.bunnei2021-05-061-2/+2
|
* common: Move settings to common from core.bunnei2021-04-151-1/+1
| | | | - Removes a dependency on core and input_common from common.
* configuration: Add auto stub toggle that resets on bootameerj2021-03-301-4/+6
| | | | Auto-stub is an experimental debugging feature that may cause unforseen bugs. This adds a toggle to only allow auto-stubbing unimplemented functions when explicitly enabled when yuzu is launched.
* service: Auto stub fallbackameerj2021-03-301-0/+4
| | | | | | For simple services we can implement an automatic stub fallback to help with compatibility until a proper implementation is done. Co-Authored-By: Chloe <25727384+ognik5377@users.noreply.github.com>
* core: hle: kernel: Rename Thread to KThread.bunnei2021-01-291-1/+1
|
* hle: service: Acquire and release a lock on requests.bunnei2020-12-291-12/+10
| | | | - This makes it such that we can safely access service members from CoreTiming thread.
* hle: service: Ensure system is powered on before writing IPC result.bunnei2020-12-291-1/+5
|
* core: Remove unnecessary enum casts in log callsLioncash2020-12-081-1/+1
| | | | | Follows the video core PR. fmt doesn't require casts for enum classes anymore, so we can remove quite a few casts.
* service: Eliminate usages of the global system instanceLioncash2020-11-271-34/+35
| | | | | Completely removes all usages of the global system instance within the services code by passing in the using system instance to the services.
* hle: services: Fix a crash with improper NVFlinger lifetime management. (#4977)bunnei2020-11-241-11/+9
| | | | | | * hle: services: Fix a crash with improper NVFlinger lifetime management. - This crash would happen when attempting to shutdown yuzu early on in boot.
* hle: service: Stub OLSC Initialize and SetSaveDataBackupSettingEnabled functions.bunnei2020-11-191-0/+2
| | | | - Used by Animal Cross: New Horizons v1.6.0 update, minimal stub gets this update working.
* Revert "core: Fix clang build"bunnei2020-10-211-2/+2
|
* core: Fix clang buildLioncash2020-10-181-2/+2
| | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
* service: Restore "unused" functionLioncash2020-09-251-0/+17
| | | | Turns out this function is actually used, but within a trace log.
* service: Remove unused funcationLioncash2020-09-171-22/+0
| | | | This is now completely unused, so it can be removed.
* service: Remove two usages of the global system accessorLioncash2020-09-071-4/+2
| | | | Removes more instances of reliance on global state.
* services/bsd: Implement most of bsd:sReinUsesLisp2020-07-281-1/+1
| | | | | | | | | | | | | This implements: Socket, Poll, Accept, Bind, Connect, GetPeerName, GetSockName, Listen, Fcntl, SetSockOpt, Shutdown, Recv, RecvFrom, Send, SendTo, Write, and Close The implementation was done referencing: SwIPC, switchbrew, testing with libnx and inspecting its code, general information about bsd sockets online, and analysing official software. Not everything from these service calls is implemented, but everything that is not implemented will be logged in some way.
* kernel: Implement a more accurate IPC dispatch.bunnei2019-11-281-2/+2
|
* kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. (#3154)bunnei2019-11-251-1/+1
| | | | | | * 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.
* Merge pull request #2654 from DarkLordZach/lm-log-rewritebunnei2019-10-091-1/+1
|\ | | | | lm: Rewrite logger to use core reporting services
| * core: Add LM::Manager to systemZach Hilman2019-09-221-1/+1
| | | | | | Allows centralized control over logging mechanisms.
* | bcat: Add FSC accessors for BCAT dataZach Hilman2019-10-011-1/+1
|/ | | Ports BCAT to use FSC interface
* Removed reference to core timing to nvflinger and used system insteadDavid Marcec2019-09-221-1/+1
|
* RebaseDavid Marcec2019-09-221-13/+13
|
* Merge pull request #2612 from DarkLordZach/prepo-newDavid2019-09-221-1/+1
|\ | | | | prepo: Implement New, System, and Non-User variants of SaveReport
| * prepo: Remove system global accessorsZach Hilman2019-09-221-1/+1
| |
* | configure_debug: Move reporting option to loggingZach Hilman2019-09-221-2/+2
| |
* | yuzu: Port old usages of Filesystem namespace to FilesystemControllerZach Hilman2019-09-211-1/+1
| |
* | services: Pass FileSystemController as reference to services that need itZach Hilman2019-09-211-2/+3
|/
* Merge pull request #2747 from lioncash/audiobunnei2019-08-181-1/+1
|\ | | | | service/audren_u: Unstub ListAudioDeviceName
| * service/audio: Remove global system accessorsLioncash2019-07-191-1/+1
| | | | | | | | Trims out the lingering reliance on global state out of the audio code.
* | Merge pull request #2592 from FernandoS27/sync1bunnei2019-07-261-1/+1
|\ \ | |/ |/| Implement GPU Synchronization Mechanisms & Correct NVFlinger
| * nv_services: Deglobalize NvServicesFernando Sahmkow2019-07-051-1/+1
| |
* | Merge pull request #2611 from DarkLordZach/pm-info-cmdbunnei2019-07-101-1/+1
|\ \ | | | | | | pm: Implement various pm commands for finding process and title IDs
| * | pm: Implement pm:shell and pm:dmnt GetApplicationPidZach Hilman2019-06-271-1/+1
| | | | | | | | | | | | Returns the process ID of the current application or 0 if no app is running.
* | | Merge pull request #2651 from DarkLordZach/apm-boost-mode-1bunnei2019-07-081-1/+1
|\ \ \ | | | | | | | | apm: Initial implementation of performance config and boost mode
| * | | am: Implement SetCpuBoostMode in terms of APMZach Hilman2019-06-291-1/+1
| |/ /
* | | Merge pull request #2642 from DarkLordZach/fsp-log-2bunnei2019-07-081-3/+2
|\ \ \ | |_|/ |/| | fsp-srv: Implement Access Logging Functionality
| * | fsp-srv: Implement OutputAccessLogToSdCardZach Hilman2019-06-291-3/+2
| |/ | | | | | | Allows games to log data to the SD.
* | Merge pull request #2608 from ogniK5377/Time_GetSharedMemoryNativeHandleZach Hilman2019-07-041-1/+1
|\ \ | |/ |/| Implement Time::GetSharedMemoryNativeHandle
| * Implement Time::GetSharedMemoryNativeHandleDavid Marcec2019-06-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge pull request #2548 from DarkLordZach/applet-shopnbunnei2019-06-261-1/+1
|\ \ | | | | | | applets: Implement backend and default frontend for Parental Controls and EShop (ShopN) applets
| * | applets: Pass current process title ID to appletsZach Hilman2019-06-251-1/+1
| |/ | | | | | | Avoids using system accessor to get current process in applet code.
* / glue: Implement arp:w and arp:r servicesZach Hilman2019-06-251-2/+2
|/ | | | These keep track of running process' launch properties and control properties and allows for issuing and reading them by process and title ID.
* Merge pull request #2482 from DarkLordZach/prepobunnei2019-06-211-0/+3
|\ | | | | core: Add detailed local reporting feature for development
| * service: Save report on unimplemented function callZach Hilman2019-05-251-0/+3
| |
* | Addressed issuesDavid Marcec2019-06-171-1/+1
|/
* Merge pull request #2223 from lioncash/errorbunnei2019-03-131-2/+1
|\ | | | | core/hle/result: Tidy up the base error code result header.
| * core/hle/result: Relocate IPC error code to ipc_helpersLioncash2019-03-101-2/+1
| | | | | | | | | | | | 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.
* | service/service: Remove unncessary calls to c_str()Lioncash2019-03-101-4/+3
|/ | | | | | | | 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.
* core_timing: Convert core timing into a classLioncash2019-02-161-2/+3
| | | | | | | | | | | 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.
* Fix Service object leak on emulation stopJens Schmer2018-12-131-5/+9
| | | | | | 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.
* hle/service: Replace log + UNIMPLEMENTED with UNIMPLEMENTED_MSGLioncash2018-12-061-2/+1
| | | | Combines the two into one, shortening the amount of code here.
* hle/service: Remove unnecessary using declarationsLioncash2018-12-061-5/+1
| | | | | Only one usage of the specified objects made use of the lack of namespacing. Given the low usage, we can just remove these.
* hle/service, hle/sm: Compress usages of MakeResult()Lioncash2018-12-061-1/+1
| | | | | | 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.
* hle/service, hle/sm: Use structured bindings where applicableLioncash2018-12-061-6/+2
| | | | | Gets rid of the need to keep the variables separate from their actual initialization spots.
* service: Mark MakeFunctionString with the [[maybe_unused]] attribute.Lioncash2018-11-141-2/+2
| | | | | | | 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).
* Merge pull request #1545 from DarkLordZach/psmbunnei2018-10-221-0/+2
|\ | | | | psm: Add psm service and stub commands 0 and 1
| * service: Add skeleton for psm serviceZach Hilman2018-10-211-0/+2
| | | | | | | | Seems to be the power controller. Listed in switchbrew under the category PTM services.
* | service: Add the basic skeleton for the NPNS servicesLioncash2018-10-211-2/+4
|/
* filesystem: Make CreateFactories() and InstallInterface() take a VfsFilesystem instance by referenceLioncash2018-10-131-2/+2
| | | | | | | 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.
* Merge pull request #1312 from lioncash/fwdbunnei2018-09-171-1/+1
|\ | | | | service/vi: Replace includes with forward declarations where applicable
| * service/vi: Replace includes with forward declarations where applicableLioncash2018-09-131-1/+1
| |
* | Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-151-2/+2
|/
* service: Remove unused g_kernel_named_ports variableLioncash2018-09-101-2/+0
| | | | | With the named port functionality all migrated over to the kernel, there's no need to keep this around anymore.
* service: Migrate global named port map to the KernelCore classLioncash2018-09-021-7/+2
| | | | | | 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.
* kernel: Eliminate kernel global stateLioncash2018-08-291-2/+7
| | | | | | | | | | | | | | | | | | | | | | 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.
* core: Port core to VfsFilesystem for file accessZach Hilman2018-08-091-2/+2
|
* nvdrv: Get rid of global std::weak_ptrLioncash2018-08-081-1/+1
| | | | | Rather than use global state, we can simply pass the instance into the NVFlinger instance directly.
* service: Add usb servicesLioncash2018-08-071-0/+2
| | | | Adds basic skeleton for the usb services based off the information provided by Switch Brew.
* service: Add arp servicesLioncash2018-08-051-0/+2
| | | | | Adds the basic skeleton of the arp services based off the information provided by Switch Brew.
* Merge pull request #898 from lioncash/migbunnei2018-08-031-0/+2
|\ | | | | service: Add migration services
| * service: Add migration servicesLioncash2018-08-021-0/+2
| | | | | | | | | | Adds the basic skeleton for the mig:usr service based off information provided by Switch Brew.
* | service: Add psc servicesLioncash2018-08-021-0/+2
|/ | | | | Adds the basic skeleton for the psc services based off the information provided by Switch Brew.
* Merge pull request #888 from lioncash/capsbunnei2018-08-021-0/+2
|\ | | | | service: Add capture services
| * service: Add capture servicesLioncash2018-08-011-0/+2
| | | | | | | | | | Adds the basic skeleton for the capture services based off information provided by Switch Brew.
* | service: Add bpc and pcv servicesLioncash2018-08-011-0/+4
|/ | | | | Adds the basic skeleton for the remaining pcv-related services based off information on Switch Brew.
* Merge pull request #875 from lioncash/fgmbunnei2018-07-311-0/+2
|\ | | | | service: Add fgm services
| * service: Add fgm servicesLioncash2018-07-311-0/+2
| | | | | | | | | | Adds the basic skeleton for the fgm services based off the information provided by Switch Brew.
* | service: Add the pcie serviceLioncash2018-07-311-0/+2
|/ | | | | Adds the basic skeleton of the pcie service based off information on Switch Brew.
* Merge pull request #857 from lioncash/wlanbunnei2018-07-301-1/+3
|\ | | | | service: Add wlan services
| * service: Add wlan servicesLioncash2018-07-291-1/+3
| | | | | | | | | | Adds the basic skeleton for the wlan services based off the information on Switch Brew.
* | service: Add btm servicesLioncash2018-07-291-0/+2
|/ | | | | Adds the skeleton for the btm services based off the information on Switch Brew.
* Merge pull request #847 from lioncash/ncmbunnei2018-07-281-0/+2
|\ | | | | service: Add ncm services
| * service: Add ncm servicesLioncash2018-07-271-0/+2
| | | | | | | | | | Adds the basic skeleton for the ncm services based off information on Switch Brew.
* | Merge pull request #846 from lioncash/miibunnei2018-07-281-0/+2
|\ \ | |/ |/| service: Add mii services
| * service: Add mii servicesLioncash2018-07-271-0/+2
| | | | | | | | | | Adds the skeleton for the mii services based off information provided by Switch Brew
* | Merge pull request #845 from lioncash/nfcbunnei2018-07-271-0/+2
|\ \ | | | | | | service: Add nfc services
| * | service: Add nfc servicesLioncash2018-07-271-0/+2
| |/ | | | | | | | | Adds the skeleton of the nfc service based off the information provided on Switch Brew.
* | Merge pull request #844 from lioncash/lblbunnei2018-07-271-0/+2
|\ \ | | | | | | service: Add the lbl service
| * | service: Add the lbl serviceLioncash2018-07-271-0/+2
| |/ | | | | | | | | Adds the skeleton of the lbl service based off the information provided by Switch Brew.
* / service: Add the btdrv serviceLioncash2018-07-271-1/+3
|/ | | | Adds the skeleton for the btdrv service based off the information provided by Switch Brew
* Merge pull request #834 from lioncash/grcbunnei2018-07-261-0/+2
|\ | | | | service: Add the grc:c service
| * service: Add the grc:c serviceLioncash2018-07-261-0/+2
| | | | | | | | | | Adds the basic skeleton for the grc:c service based off the information provided by Switch Brew.
* | Merge pull request #832 from lioncash/nimbunnei2018-07-261-0/+2
|\ \ | | | | | | service: Add the nim services
| * | service: Add the nim servicesLioncash2018-07-261-0/+2
| |/ | | | | | | | | Adds the skeleton for the nim services based off information from Switch Brew.
* / service: Add ldn servicesLioncash2018-07-261-0/+2
|/ | | | Adds ldn services based off information provided by Switch Brew.
* Merge pull request #828 from lioncash/ldrSebastian Valle2018-07-261-0/+2
|\ | | | | service: Add ldr services
| * service: Add ldr servicesLioncash2018-07-261-0/+2
| | | | | | | | | | Adds the skeleton for the ldr-related services based off the information provided on Switch Brew.
* | Merge pull request #826 from lioncash/erptSebastian Valle2018-07-261-0/+4
|\ \ | |/ |/| service: Add erpt and eupld services
| * service: Add eupld servicesLioncash2018-07-261-0/+2
| | | | | | | | | | Adds the skeleton for the eupld services based off information on Switch Brew.
| * service: Add the erpt servicesLioncash2018-07-261-0/+2
| | | | | | | | | | Adds the basic skeleton of the erpt service based off information on Switch Brew.
* | Merge pull request #822 from lioncash/pmbunnei2018-07-261-0/+2
|\ \ | |/ |/| service: Add pm services
| * service: Add pm servicesLioncash2018-07-251-0/+2
| | | | | | | | | | Adds the skeleton for the process management services based off information on Switch Brew.
* | service: Add the es serviceLioncash2018-07-251-0/+2
|/ | | | | Adds the skeleton for the ETicket service based off the information on Switch Brew
* Rename logging macro back to LOG_*James Rowe2018-07-031-4/+4
|
* Service/MM: add service and stub some functionsmailwl2018-06-051-0/+2
|
* Service/BCAT: add module and servicesmailwl2018-05-281-0/+2
|
* Added RequestWithContext & ControlWithContextDavid Marcec2018-05-171-0/+2
|
* general: Make formatting of logged hex values more straightforwardLioncash2018-05-021-4/+4
| | | | | | This makes the formatting expectations more obvious (e.g. any zero padding specified is padding that's entirely dedicated to the value being printed, not any pretty-printing that also gets tacked on).
* string_util: Remove StringFromFormat() and related functionsLioncash2018-04-301-3/+2
| | | | Given we utilize fmt, we don't need to provide our own functions for formatting anymore
* general: Convert assertion macros over to be fmt-compatibleLioncash2018-04-271-1/+1
|
* Merge branch 'master' of https://github.com/yuzu-emu/yuzu into service-implDavid Marcec2018-04-261-5/+5
|\
| * Service/PCTL: convert to module, add services, stubmailwl2018-04-251-1/+1
| | | | | | | | PCTL::CreateServiceWithoutInitialize and IParentalControlService::Initialize, required by Kirby Star Allies
| * service: Move logging macros over to new fmt-compatible onesLioncash2018-04-241-5/+5
| |
* | GetIUserInterface->CreateUserInterface, Added todos and stub logs. Playreport->PlayReport.David Marcec2018-04-231-1/+1
| |
* | Implemented GetIUserInterface properly, Playreport and SSL::SetInterfaceVersion. Fixed ipc issues with IAudioDevice(wrong ids)David Marcec2018-04-221-0/+2
|/
* core: Relocate g_service_manager to the System classLioncash2018-04-211-27/+25
| | | | | Converts the service manager from a global into an instance-based variable.
* externals: Update fmt to 4d35f94Daniel Lim Wee Soong2018-04-021-6/+6
| | | | | | | | | | | Versions prior to this didn't compile on OpenBSD due to unconditional use of the non-standard strtod_l() function. The fmt::MemoryWriter API has been removed in the intervening versions, so replace its use with fmt::memory_buffer and fmt::format_to. The library also no longer provides the fmt::fmt ALIAS, so define it in externals/CMakeLists.txt.
* service: Add NFP module interface.bunnei2018-03-301-0/+2
| | | | | | service: Initialize NFP service. Log: Add NFP service as a log subtype.
* Service/SSL: add ssl servicemailwl2018-03-231-0/+2
|
* Service/spl: add module and servicesmailwl2018-03-221-0/+2
|
* Service: add fatal:u, fatal:p servicesmailwl2018-03-201-0/+2
|
* Clean Warnings (?)N00byKing2018-03-191-1/+1
|
* hle_ipc: Remove GetPointer(..) usage with WriteToOutgoingCommandBuffer.bunnei2018-03-191-2/+1
|
* core: Move process creation out of global state.bunnei2018-03-141-2/+2
|
* Service/Set: add more servicesmailwl2018-03-031-1/+1
|
* service: Add Friend service interface.bunnei2018-02-191-0/+2
|
* pl_u: Implement basic shared font loading from RAM dump.bunnei2018-02-151-0/+2
|
* Service:nifm: add nifm:a, nifm:s and nifm:u servicesmailwl2018-02-031-0/+2
|
* hle: Rename RequestBuilder to ResponseBuilder.bunnei2018-01-251-1/+1
|
* service: Fix all incorrect IPC response headers.bunnei2018-01-251-1/+1
|
* AppletOE: Make ISelfController keep a reference to nvflinger.Subv2018-01-221-1/+1
| | | | It'll be needed when we implement CreateManagedDisplayLayer.
* Services: Vi shouldn't be responsible for creating nvflinger.Subv2018-01-221-1/+5
| | | | It is now created during Service initialization and passed to all the services that need it.
* filesystem: Implement basic IStorage functionality.David Marcec2018-01-211-0/+2
|
* acc, set, applet_oe: stub various functions, add set service (#105)goaaats2018-01-191-0/+2
| | | | | | | | | | | | | | * Stubs for various acc:u0 funcs needed * Stub for GetDesiredLanguage in IApplicationFunctions * Add set service + stubs needed for games * Fix formatting * Implement IProfile, IManagerForApplication, return bool in CheckAvailability, style fixes * Remove IProfile::Get(needs more research), fix IPC response sizes
* Start to implement/stub BSD:U and SFDNSRES services (#78)flerovium^-^2018-01-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bsd: start stubbing bsd:u and sfdnsres * bsd: stubbed RegisterClient * bsd: attempt to get past socket() * bsd: fix some wrong assumptions about IPC * bsd: fix format specifiers * bsd: stubbed Connect() * bsd: stubbed SendTo() * made requested changes * sockets: respect alphabetical order at service installation * run clang-format * bsd: start stubbing bsd:u and sfdnsres * bsd: stubbed RegisterClient * bsd: attempt to get past socket() * bsd: fix some wrong assumptions about IPC * bsd: fix format specifiers * bsd: stubbed Connect() * bsd: stubbed SendTo() * made requested changes * sockets: respect alphabetical order at service installation * run clang-format * run clang-format (2)
* acc_u0: Add IPC interface and stub InitializeApplicationInfo.bunnei2018-01-171-0/+2
|
* NV: Move the nvdrv classes into the Nvidia namespace, and move the functionality to a s single module that services call.Subv2018-01-171-1/+1
|
* time: Implement GetStandardUserSystemClock, GetCurrentTime.bunnei2018-01-151-1/+4
|
* audio: Stub out AudOutU::ListAudioOuts.bunnei2018-01-151-0/+2
|
* hid: Implement IAppletResource::GetSharedMemoryHandle.bunnei2018-01-151-4/+1
|
* yuzu: Update license text to be consistent across project.bunnei2018-01-131-1/+1
|
* Remove settings issues in sdl and fix a few files that broke in mingwJames Rowe2018-01-131-2/+0
|
* NV: Implemented (with stubs) the vi:m service and some of its subservices.Subv2018-01-111-0/+4
| | | | The homebrew display test application now properly writes graphics data to the graphics buffer but we still don't have a way to compose the display layers.
* kernel: Fix implementation of ConvertSessionToDomain.bunnei2017-12-291-11/+2
|
* service: Add empty interface for pctl:a.bunnei2017-12-291-0/+2
|
* service: Halt on ReportUnimplementedFunction and improve output log.bunnei2017-12-281-4/+2
|
* service: Add empty interface for aoc:u.bunnei2017-12-281-0/+2
|
* service: Return proper result code for IPC::CommandType::Close.bunnei2017-11-011-2/+4
|
* service: Add CreatePort function (that does not register/install).bunnei2017-10-191-0/+10
|
* service: Print correct command ID on unimplemented function.bunnei2017-10-181-1/+1
|
* hle: Implement ConvertSessionToDomain, various cleanups.bunnei2017-10-151-12/+11
|
* hle: Add service stubs for apm and appletOE.bunnei2017-10-151-0/+4
|
* hle: Initial implementation of NX service framework and IPC.bunnei2017-10-151-72/+43
|
* Remove more 3DS-specific code.bunnei2017-10-131-2/+0
|
* Remove more 3DS-specific code.bunnei2017-10-131-9/+0
|
* hle: Remove a large amount of 3ds-specific service code.bunnei2017-10-101-70/+2
|
* Services/NS: Port ns:s to the new service framework.Subv2017-09-161-2/+3
|
* Merge pull request #2790 from yuriks/remove-movefromYuri Kunde Schlesner2017-06-211-1/+1
|\ | | | | Remove ResultVal::MoveFrom
| * ResultVal: Remove MoveFrom()Yuri Kunde Schlesner2017-06-191-1/+1
| | | | | | | | | | Replace it with std::move(result_val).Unwrap(), or Foo().Unwrap() in case you already have an rvalue.
* | Kernel/IPC: Make HLERequestContext usable from outside kernelYuri Kunde Schlesner2017-06-191-2/+1
|/
* Kernel: Basic support for IPC translation for HLE servicesYuri Kunde Schlesner2017-06-111-12/+5
|
* ServiceFramework: Use separate copy of command bufferYuri Kunde Schlesner2017-06-111-6/+20
| | | | | | Copy the IPC command buffer to/from the request context before/after the handler is invoked. This is part of a move away from using global data for handling IPC requests.
* Service/sm: Convert 'srv:' to ServiceFrameworkYuri Kunde Schlesner2017-06-091-2/+3
|
* Service: Remove a few redundant namespace qualifiersYuri Kunde Schlesner2017-06-081-5/+5
|
* Service: Add new ServiceFramework framework for writing HLE servicesYuri Kunde Schlesner2017-06-081-1/+82
| | | | | | | | | | | | The old "Interface" class had a few problems such as using free functions (Which didn't allow you to write the service handler as if it were a regular class.) which weren't very extensible. (Only received one parameter with a pointer to the Interface object.) The new ServiceFramework aims to solve these problems by working with member functions and passing a generic context struct as parameter. This struct can be extended in the future without having to update all existing service implementations.
* Service: Remove unnecessary includes from service.hYuri Kunde Schlesner2017-06-061-0/+1
| | | | | This has a huge fallout in terms of needing to fix other files because all service implementations included that file.
* Service: Make service registration part of the sm implementationYuri Kunde Schlesner2017-06-061-8/+7
| | | | Also enhances the GetServiceHandle implementation to be more accurate.
* Service: Move SRV interface to a new sm/ subdirectoryYuri Kunde Schlesner2017-06-061-2/+2
| | | | | This will contain the implementation of the sm (Service Manager) system module.
* Kernel: Add a dedicated SetHleHandler method to ServerPort/ServerSessionYuri Kunde Schlesner2017-06-061-8/+12
| | | | | | This allows attaching a HLE handle to a ServerPort at any point after it is created, allowing port/session creation to be generic between HLE and regular services.
* HLE: Move SessionRequestHandler from Service:: to Kernel::Yuri Kunde Schlesner2017-06-061-12/+1
| | | | | Most of the code that works with this is or will be in the kernel, so it's a more appropriate place for it to be.
* Merge pull request #2308 from mailwl/ac-ibunnei2017-01-121-3/+3
|\ | | | | Service/AC: add ac:i service
| * Service/AC: add ac:i servicemailwl2016-12-301-3/+3
| |
* | Service/NFC: stub GetTagInRangeEventmailwl2016-12-301-0/+1
|/ | | | Fix Fatal Error in Mini-Mario & Friends - amiibo Challenge
* Service/NWM: add nwm servicesmailwl2016-12-221-3/+2
|
* Merge pull request #2314 from mailwl/accountbunnei2016-12-151-4/+2
|\ | | | | Service/ACT: move ACT services to folder
| * Service/ACT: move ACT services to foldermailwl2016-12-141-4/+2
| |
* | Merge pull request #2249 from Subv/sessions_v3Yuri Kunde Schlesner2016-12-151-8/+34
|\ \ | |/ |/| Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.
| * Fixed the codestyle to match our clang-format rules.Subv2016-12-141-9/+12
| |
| * Moved the HLE command buffer translation task to ServerSession instead of the HLE handler superclass.Subv2016-12-091-21/+1
| |
| * Kernel/IPC: Small codestyle cleanupSubv2016-12-091-1/+1
| |
| * Added a framework for partially handling Session disconnections.Subv2016-12-081-0/+10
| | | | | | | | | | | | Further implementation will happen in a future commit. Fixes a regression.
| * Use std::move where appropriate.Subv2016-12-081-2/+5
| |
| * Split SessionRequestHandler::HandleSyncRequest into HandleSyncRequest, TranslateRequest and HandleSyncRequestImpl.Subv2016-12-051-4/+23
| | | | | | | | HandleSyncRequest now takes care of calling the command buffer translate function before actually invoking the command handler for HLE services.
| * KServerPorts now have an HLE handler "template", which is inherited by all ServerSessions created from it.Subv2016-12-051-6/+8
| |
| * A bit of a redesign.Subv2016-12-011-6/+11
| | | | | | | | | | | | | | Sessions and Ports are now detached from each other. HLE services are handled by means of a SessionRequestHandler class, Interface now inherits from this class. The File and Directory classes are no longer kernel objects, but SessionRequestHandlers instead, bound to a ServerSession when requested. File::OpenLinkFile now creates a new session pair and binds the File instance to it.
| * IPC/HLE: Associate the ClientSessions with their parent port's HLE interface if it exists.Subv2016-12-011-3/+5
| | | | | | | | Pass the triggering ServerSession to the HLE command handler to differentiate which session caused the request.
| * Kernel/HLE: Service::Interface no longer inherits from any Kernel object, and is now its own standalone class.Subv2016-12-011-8/+4
| | | | | | | | Interface is now used by aggregation in ClientPort, to forward service commands to their HLE implementation if needed.
| * Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.Subv2016-12-011-5/+11
| | | | | | | | | | | | | | All handles obtained via srv::GetServiceHandle or svcConnectToPort are references to ClientSessions. Service modules will wait on the counterpart of those ClientSessions (Called ServerSessions) using svcReplyAndReceive or svcWaitSynchronization[1|N], and will be awoken when a SyncRequest is performed. HLE Interfaces are now ClientPorts which override the HandleSyncRequest virtual member function to perform command handling immediately.
* | Add all services to the Service namespaceLioncash2016-12-111-17/+17
| | | | | | | | | | Previously there was a split where some of the services were in the Service namespace and others were not.
* | service: Add mvd and qtm servicesLioncash2016-12-081-0/+4
| | | | | | | | | | | | Adds the two New3DS-only modules. 3dbrew was used for command information.
* | service: Add nfc servicesLioncash2016-12-081-30/+32
|/ | | | 3dbrew was used for the command information.
* Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner2016-09-211-1/+1
|
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-211-17/+15
| | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-181-9/+14
|
* LDR: Implement CROwwylele2016-08-271-1/+1
|
* service: Add other DLP servicesLioncash2016-06-051-2/+3
| | | | | | Specifically, dlp::CLNT and dlp::FKCL Moves them to their own folder like with other services.
* Update ACT:U and create ACT:A (#1809)András Domonkos2016-05-181-0/+2
| | | | | | | | * Update ACT_U * Create act_a.h * Create act_a.cpp * Add service ACT:A * Add ACT:A source and header * Fix wrong header
* Merge pull request #1435 from mailwl/frd_ubunnei2016-04-061-2/+1
|\ | | | | frd:u: Initial stub some functions
| * frd:u: Initial stub some functionsmailwl2016-03-271-2/+1
| |
* | Dummy implementation dlp:SRVR Service.exhalatio2016-04-021-0/+2
|/
* Reorganize the ndm service path for dummy implement functionJamePeng2016-03-141-2/+3
| | | | | | SuspendDaemons , ResumeDaemons , OverrideDefaultDaemons The NDM file move to /core/hle/service/ndm/ now!
* Change trace/unimplemented service call logs to use hexarchshift2015-07-191-1/+1
| | | | Changes the log to use hex in the parameter list instead of decimal.
* Services: Continue separation of services into their own folderspurpasmart962015-06-121-32/+26
|
* Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot2015-05-291-1/+1
|
* Common: Remove common.hYuri Kunde Schlesner2015-05-071-1/+1
|
* De-inline functions from Interface, removing them from service.hYuri Kunde Schlesner2015-04-141-0/+43
| | | | This reduces the time for a full recompile from 65.43s to 59.53s (~9%)
* IR: Move The IR services to their own folder and implement "GetHandles"purpasmart962015-04-041-4/+3
|
* Services: Stubs and minor changespurpasmart962015-04-031-8/+10
|
* Services: Moved the PTM and APT services to their own folderSubv2015-03-041-28/+22
| | | | | | This coincidentally fixes an issue about the PTM service failing to create its SharedExtSaveData archive due to the FS service not being initialized by the time the creating code runs. Ideally I'd like to move each process to its own folder, and have a single file per process that registers the service classes, which would be in their own files inside that folder. Then each service class would just call functions from the process to complete the commands.
* Services: Fixed "Tried to connect to named port err:f".Subv2015-02-161-1/+1
| | | | err:f is a named port, not a service
* Make Port/Service registration and querying more HW-accurateYuri Kunde Schlesner2015-02-021-75/+55
|
* Services: Stubbed more services.Subv2015-01-241-1/+15
| | | | Implemented FSUser::CreateExtSaveData
* Merge pull request #493 from archshift/ptmplaybunnei2015-01-221-0/+4
|\ | | | | Stubbed some services
| * Stubbed cam:u servicearchshift2015-01-211-0/+2
| |
| * Stubbed ptm:play servicearchshift2015-01-211-0/+2
| |
* | Added HID_SPVR service and split HID_U implementation into service/hid/hid.xxxarchshift2015-01-211-1/+3
|/
* Services: Added some missing services.Subv2015-01-131-0/+6
| | | | | cfg:s, ptm:sysm, apt:s. apt:s is almost exactly the same as apt:u as per 3dbrew
* Kernel: Start using boost::intrusive_ptr for lifetime managementYuri Kunde Schlesner2015-01-091-1/+2
|
* Fix double-free in Service manager during shutdownYuri Kunde Schlesner2015-01-071-14/+0
| | | | Fixes #423.
* Stub the y2r:u servicearchshift2015-01-031-0/+2
|
* Kernel: New handle managerYuri Kunde Schlesner2014-12-281-1/+2
| | | | | | | | | | | This handle manager more closely mirrors the behaviour of the CTR-OS one. In addition object ref-counts and support for DuplicateHandle have been added. Note that support for DuplicateHandle is still experimental, since parts of the kernel still use Handles internally, which will likely cause troubles if two different handles to the same object are used to e.g. wait on a synchronization primitive.
* Rename ObjectPool to HandleTableYuri Kunde Schlesner2014-12-281-2/+2
|
* More services & small clean upspurpasmart962014-12-261-2/+10
|
* CFG: Create a new subfolder cfg inside service to handle cfgSubv2014-12-211-2/+2
| | | | Moved most of the shared CFG code there, implemented a few CFG:I functions
* License changepurpasmart962014-12-211-1/+1
|
* Merge pull request #283 from yuriks/archive-refactorbunnei2014-12-161-2/+2
|\ | | | | Archive refactor
| * HLE: Rename namespaces to match move & fix initialization orderYuri Kunde Schlesner2014-12-161-1/+1
| |
| * HLE: Move kernel/archive.* to service/fs/Yuri Kunde Schlesner2014-12-161-1/+1
| |
* | Added stub for nim:aoc service...archshift2014-12-161-0/+2
| |
* | Added stub for cecd:u service...archshift2014-12-161-0/+2
| | | | | | | | I couldn't find any information about this service...
* | Added stub for ldr:ro service...archshift2014-12-161-0/+2
| |
* | Added am:app service stub.archshift2014-12-161-0/+2
|/ | | | Apparently nothing at all is known about this service...
* Convert old logging calls to new logging macrosYuri Kunde Schlesner2014-12-131-2/+2
|
* HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner2014-11-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | All service calls in the CTR OS return result codes indicating the success or failure of the call. Previous to this commit, Citra's HLE emulation of services and the kernel universally either ignored errors or returned dummy -1 error codes. This commit makes an initial effort to provide an infrastructure for error reporting and propagation which can be use going forward to make HLE calls accurately return errors as the original system. A few parts of the code have been updated to use the new system where applicable. One part of this effort is the definition of the `ResultCode` type, which provides facilities for constructing and parsing error codes in the structured format used by the CTR. The `ResultVal` type builds on `ResultCode` by providing a container for values returned by function that can report errors. It enforces that correct error checking will be done on function returns by preventing the use of the return value if the function returned an error code. Currently this change is mostly internal since errors are still suppressed on the ARM<->HLE border, as a temporary compatibility hack. As functionality is implemented and tested this hack can be eventually removed.
* Add more services and some fixes, along with more "override"purpasmart962014-11-211-0/+12
| | | | in the service's headers
* Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot2014-11-191-1/+1
|
* Add missing boss:U service, needed according to Nintendo Zone logs.archshift2014-11-171-0/+2
|
* Add FRD:U service and functionsarchshift2014-11-111-0/+2
|
* Added stub err:f service.archshift2014-11-021-0/+2
|
* Added a bunch of servicespurpasmart962014-11-011-0/+16
|
* Renamed souce files of services to match port namesGareth Poole2014-10-291-5/+5
|
* core: Prune redundant includesarchshift2014-09-091-5/+0
|
* core: Pass string by reference in FetchFromPortName and DeleteServiceLioncash2014-09-061-2/+2
|
* FS: Added stubbed code to intercept and decode file system service functions.bunnei2014-06-271-0/+2
| | | | FS: Added to CMakeLists.txt
* HLE: Updated all uses of NULL to nullptr (to be C++11 compliant)bunnei2014-06-131-2/+2
|
* service: removed PT_A from, as this was just an alias for APT_Ubunnei2014-05-301-2/+0
|
* hle: cleaned up log messagesbunnei2014-05-301-2/+6
|
* - created a Kernel namespacebunnei2014-05-211-2/+2
| | | | | - cleaned up Kernel code a bit (moved stuff into namespace, fixed whitespace issues) - added handle types for all different CTROS handles
* - updated service(s) to be KernelObject'sbunnei2014-05-191-15/+7
| | | | - various cleanups
* renamed "UID" to "Handle" where appropriatebunnei2014-05-191-8/+8
|
* added class stub for HID:User servicebunnei2014-04-171-0/+2
|
* - added stubbed out GSP::Gpu service interfacebunnei2014-04-161-0/+4
| | | | - various cleanups/refactors to HLE services
* fixed naming for APT_Ubunnei2014-04-161-1/+1
|
* - extracted srv: calls from service.cpp and put in its own modulebunnei2014-04-161-80/+4
| | | | | - added function tables for service calls - lots of refactoring
* added a stub for GetLockHandlebunnei2014-04-141-3/+7
|
* added framework for APT service (application and title launching service)bunnei2014-04-131-5/+24
|
* renamed class Interface_SRV to SRVbunnei2014-04-131-6/+6
|
* added some very initial command parsing for SRV Syncbunnei2014-04-131-5/+31
|
* cleanups to service HLEbunnei2014-04-131-6/+6
|
* - added HLE to connect to "srv:" servicebunnei2014-04-131-0/+115
- added a manager for keeping track of services/ports - added a memory mapped region for memory accessed by HLE - added HLE for GetThreadCommandBuffer function