aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2017-09-28Kernel/Threads: When putting a thread to wait, specify a function to execute ↵Subv
when it is awoken. This change makes for a clearer (less confusing) path of execution in the scheduler, now the code to execute when a thread awakes is closer to the code that puts the thread to sleep (WaitSynch1, WaitSynchN). It also allows us to implement the special wake up behavior of ReplyAndReceive without hacking up WaitObject::WakeupAllWaitingThreads. If savestates are desired in the future, we can change this implementation to one similar to the CoreTiming event system, where we first register the callback functions at startup and assign their identifiers to the Thread callback variable instead of directly assigning a lambda to the wake up callback variable.
2017-09-26Loaders: Don't automatically set the current process every time we load an ↵Subv
application. The loaders will now just create a Kernel::Process, construct it and return it to the caller, which is responsible for setting it as the current process and configuring the global page table.
2017-09-26Merge pull request #2954 from Subv/cache_unmapped_memJames Rowe
Memory/RasterizerCache: Ignore unmapped memory regions when caching physical regions
2017-09-26Kernel/Thread: Allow specifying which process a thread belongs to when ↵Subv
creating it. Don't automatically assume that Thread::Create will only be called when the parent process is currently scheduled. This assumption will be broken when applets or system modules are loaded.
2017-09-26Memory: Allow IsValidVirtualAddress to be called with a specific process ↵Subv
parameter. There is still an overload of IsValidVirtualAddress that only takes the VAddr and will default to the current process.
2017-09-25HLE/APT: Always set up the APT parameter when starting a library applet.Subv
Only use the HLE interface if an HLE applet with the desired id was started. This commit reorganizes the APT code surrounding parameter creation and delivery to make it easier to support LLE applets in the future. As future work, the HLE applet interface can be reworked to utilize the same facilities as the LLE interface.
2017-09-25Memory/RasterizerCache: Ignore unmapped memory regions when caching physical ↵Subv
regions. Not all physical regions need to be mapped into the address space of every process, for example, system modules do not have a VRAM mapping. This fixes a crash when loading applets and system modules.
2017-09-25HLE/Archives: Allow multiple loaded applications to access their SelfNCCH ↵Subv
archive independently. The loaders now register each loaded ROM with the SelfNCCH factory, which keeps the data around for the duration of the emulation session. When opening the SelfNCCH archive, the factory queries the current program's programid and uses that as a key to the map that contains the NCCHData structure (RomFS, Icon, Banner, etc). 3dsx files do not have a programid and will use a default of 0 for this value, thus, only 1 3dsx file with RomFS is loadable at the same time.
2017-09-25Merge pull request #2952 from MerryMage/page-tablesB3n30
Switchable Page Tables
2017-09-25Merge pull request #2948 from Subv/register_serviceB3n30
HLE/SRV: Implemented RegisterService.
2017-09-25Loader/NCCH: Add support for loading application updates (#2927)Max Thomas
* loader/ncch: split NCCH parsing into its own file * loader/ncch: add support for loading update NCCHs from the SD card * loader/ncch: fix formatting * file_sys/ncch_container: Return a value for OpenFile * loader/ncch: cleanup, always instantiate overlay_ncch to base_ncch * file_sys/ncch_container: better encryption checks, allow non-app NCCHs to load properly and for the existence of NCCH structures to be checked * file_sys/ncch_container: pass filepath as a const reference
2017-09-25Services/UDS: Added a function to send EAPoL-Start packets (#2920)B3n30
* Services/UDS: Added a function to generate the EAPoL-Start packet body. * Services/UDS: Added filter for beacons. * Services/UDS: Lock a mutex when accessing connection_status from both the emulation and network thread. * Services/UDS: Handle the Association Response frame and respond with the EAPoL-Start frame. * fixup: make use of current_node, changed received_beacons into a list, mutex and assert corrections * fixup: fix damn clang-format
2017-09-24ARM_Interface: Implement PageTableChangedMerryMage
2017-09-24memory: Remove GetCurrentPageTablePointersMerryMage
2017-09-24memory: Add GetCurrentPageTable/SetCurrentPageTableMerryMage
Don't expose Memory::current_page_table as a global.
2017-09-24HLE/APT: Always return an error from PrepareToStartNewestHomeMenu so that ↵Subv
the Home Menu doesn't try to reboot the system. As per 3dbrew: "During Home Menu start-up it uses APT:PrepareToStartNewestHomeMenu. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with APT:StartNewestHomeMenu etc. "
2017-09-24HLE/APT: Prepare the APT Wakeup parameter when the game calls InitializeSubv
We need to know what is being run so we can set the APT parameter destination AppId correctly. Delaying the preparation of the parameter until we know which AppId is running lets us support booting both the Home Menu and normal game Applications.
2017-09-24HLE/SRV: Implemented RegisterService.Subv
Now system modules can do more than just crash immediately on startup.
2017-09-18WebService: Verify username and token (#2930)B3n30
* WebService: Verify username and token; Log errors in PostJson * Fixup: added docstrings to the functions * Webservice: Added Icons to the verification, imrpved error detection in cpr, fixup nits * fixup: fmt warning
2017-09-16Merge pull request #2906 from Subv/ns_new_frameworkYuri Kunde Schlesner
Services/NS: Port ns:s to the new service framework.
2017-09-16Services/NS: Port ns:s to the new service framework.Subv
2017-09-15Merge pull request #2842 from Subv/switchable_page_tableB3n30
Kernel/Memory: Give each process its own page table and allow switching the current page table upon reschedule
2017-09-15CPU/Dynarmic: Disable the fast page-table access in dynarmic until it ↵Subv
supports switching page tables at runtime.
2017-09-15Kernel/Memory: Make IsValidPhysicalAddress not go through the current ↵Subv
process' virtual memory mapping.
2017-09-15Kernel/Threads: Don't clear the CPU instruction cache when performing a ↵Subv
context switch from an idle thread into a thread in the same process. We were unnecessarily clearing the cache when going from Process A -> Idle -> Process A, this caused extreme performance regressions.
2017-09-15Kernel/Memory: Changed GetPhysicalPointer so that it doesn't go through the ↵Subv
current process' page table to obtain a pointer.
2017-09-11Merge pull request #2915 from wwylele/font-archive-2bunnei
APT: load different shared font depending on the region
2017-09-10Kernel/Memory: Switch the current page table when a new process is scheduled.Subv
2017-09-10Kernel/Memory: Give each Process its own page table.Subv
The loader is in charge of setting the newly created process's page table as the main one during the loading process.
2017-09-05Merge pull request #2831 from Subv/uds_authWeiyi Wang
Services/UDS: Handle beacon frames and the basic AP connection sequence frames.
2017-09-04Remove _flag in var namesmailwl
2017-09-04Mii Selector Applet: update Mii structuresmailwl
2017-09-03APT: load different shared font depending on the regionwwylele
2017-08-29Merge pull request #2899 from wwylele/touch-refactorbunnei
Refactor touch input into a TouchDevice
2017-08-29Merge pull request #2905 from danzel/fix-2902Sebastian Valle
Use recursive_mutex instead of mutex to fix #2902
2017-08-29Use recursive_mutex instead of mutex to fix #2902danzel
2017-08-27Services/UDS: Remove an old duplicated declaration of WifiPacket.Subv
2017-08-27Services/UDS: Handle the connection sequence packets.Subv
There is currently no stage tracking, a client is considered "Connected" when it receives the EAPoL Logoff packet from the server, this is not yet implemented.
2017-08-27Services/UDS: Store the received beacon frames until RecvBeaconBroadcastData ↵Subv
is called, up to 15 beacons at the same time, removing any older beacon frames when the limit is exceeded.
2017-08-27Services/UDS: Add functions to generate 802.11 auth and assoc response frames.Subv
2017-08-25web_services: Refactor to remove dependency on Core.bunnei
2017-08-25qt: Add an option to view/regenerate telemetry ID.bunnei
2017-08-25settings: Add enable_telemetry, citra_username, and citra_token.bunnei
2017-08-25telemetry_session: Log telemetry ID.bunnei
2017-08-25SidebySide Layout (#2859)ThaMighty90
* added a SidebySide Layout * Reworked, so both screen have the same height and cleaned up screen translates. * added the option in the UI, hope this is the right way to do it. formated framebuffer_layout.cpp * delete the x64 files * deleted ui_configure_graphics.h * added Option for the Layout in the xml * got rid of SIDE_BY_SIDE_ASPECT_RATIO because it was useless. pulled translate into variables * changed shift variables to u32 and moved them in their respective branch. remove notr="true" for the Screen layout drop down * reworked intends :). changed function description for SideFrameLayout * some description reworking
2017-08-24EmuWindow: refactor touch input into a TouchDevicewwylele
2017-08-24HID: use TouchDevice for touch padwwylele
2017-08-23Merge pull request #2839 from Subv/global_kernel_lockJames Rowe
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).
2017-08-22Merge pull request #2893 from Subv/not_schedule_main_threadbunnei
Kernel/Threads: Don't immediately switch to the new main thread when loading a new process.
2017-08-22Kernel/Memory: Acquire the global HLE lock when a memory read/write ↵Subv
operation falls outside of the fast path, for it might perform an MMIO operation.