Yuri Kunde Schlesner
d8f6000f54
Kernel/IPC: Use boost::small_vector for HLE context objects
9 years ago
Yuri Kunde Schlesner
92ca422088
Kernel: Allow clearing request_objects to re-use buffer space
Reduces the necessary allocation to max(in_handles, out_handles) rather
than (in_handles + out_handles).
9 years ago
Yuri Kunde Schlesner
8cb65fe65a
Kernel: Basic support for IPC translation for HLE services
9 years ago
Yuri Kunde Schlesner
7656d83df5
Service/sm: Convert srv: to use IPC helpers
9 years ago
Yuri Kunde Schlesner
21436f5ef7
IPC: Add Pop/PushObjects methods to RequestParser/Builder
These use the context functions to create and look-up handles for the
user.
9 years ago
Yuri Kunde Schlesner
1c4b0ebb1f
IPC: Add basic HLERequestContext support to RequestParser/Builder
9 years ago
Yuri Kunde Schlesner
05fee70211
Kernel: Add methods in HLERequestContext abstracting handle creation
9 years ago
Yuri Kunde Schlesner
20e5abb308
ServiceFramework: Use separate copy of command buffer
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.
9 years ago
Yuri Kunde Schlesner
6f368abe13
Service/sm: Convert 'srv:' to ServiceFramework
9 years ago
Yuri Kunde Schlesner
838faf147e
Session: Remove/add some forward declarations
9 years ago
Yuri Kunde Schlesner
d666e01cdf
Kernel: Ensure objects are kept alive during ClientSession disconnection
Fixes #2760
9 years ago
Yuri Kunde Schlesner
c92a8a6154
Service: Remove a few redundant namespace qualifiers
9 years ago
Yuri Kunde Schlesner
84c497292a
Service: Add new ServiceFramework framework for writing HLE services
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.
9 years ago
Yuri Kunde Schlesner
6dc133c24a
Kernel: Remove some unnecessary namespace qualifications
9 years ago
Subv
d7d0b46fc1
Services/UDS: Implement DecryptBeaconData.
This function decrypts the encrypted data tags contained in the 802.11 beacon frames.
9 years ago
Yuri Kunde Schlesner
d96a9e0c11
Service: Remove unnecessary includes from service.h
This has a huge fallout in terms of needing to fix other files because
all service implementations included that file.
9 years ago
Yuri Kunde Schlesner
23ec6b3d8f
Service: Make service registration part of the sm implementation
Also enhances the GetServiceHandle implementation to be more accurate.
9 years ago
Yuri Kunde Schlesner
e5a59ef27c
Service/sm: Use an actual semaphore for the notification semaphore
An Event was used way back then when we didn't have proper working
semaphores. Our Semaphore implementation is good enough now.
9 years ago
Yuri Kunde Schlesner
1eee09f364
Service: Move SRV interface to a new sm/ subdirectory
This will contain the implementation of the sm (Service Manager) system
module.
9 years ago
Yuri Kunde Schlesner
6354d08359
Kernel: Add a dedicated SetHleHandler method to ServerPort/ServerSession
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.
9 years ago
Yuri Kunde Schlesner
7e5dd46cf4
ResultVal: Add more convenience utils for creating and cascading results
9 years ago
Yuri Kunde Schlesner
e626a520ca
HLE: Move SessionRequestHandler from Service:: to Kernel::
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.
9 years ago
TheKoopaKingdom
f008b22e3b
Addressed Bunnei's review comments, and made some other tweaks:
- Deleted GetStatus() because it wasn't used anywhere outside of Core::System.
- Fixed design flaw where the message bar status could be set despite the game being stopped.
9 years ago
TheKoopaKingdom
59de38b965
Switched to the ERROR_NOT_FOUND constant from errors.h.
9 years ago
TheKoopaKingdom
cea19fd659
Moved whitelist checks from FS_User to the Archive_NCCH handler.
9 years ago
TheKoopaKingdom
a8aef599e0
Created a whitelist of system archives to prevent false positives creating dialogs.
9 years ago
TheKoopaKingdom
37bec598ea
Made some changes from review comments:
- Made LoadKernelSystemMode return a pair consisting of a system mode and a result code (Could use review).
- Deleted ErrorOpenGL error code in favor of just having ErrorVideoCore.
- Made dialog messages more clear.
- Compared archive ID in fs_user.cpp to ArchiveIdCode::NCCH as opposed to hex magic.
- Cleaned up some other stuff.
9 years ago
TheKoopaKingdom
1ecb322daa
Added system for handling core errors in citra-qt.
9 years ago
Yuri Kunde Schlesner
be031989ee
Kernel: Move HandleTable to a separate file
9 years ago
Yuri Kunde Schlesner
64ecf81a3c
Kernel: Move WaitObject to a separate file
Now that HandleTable doesn't directly depend on WaitObject anymore, this
can be separated from the main kernel.h header.
9 years ago
Yuri Kunde Schlesner
9453223075
Kernel: Removed HandleTable::GetWaitObject
This isn't necessary anymore since plain Get works correctly for
WaitObjects.
9 years ago
Yuri Kunde Schlesner
b17754f998
Kernel: Extract dynamic Object pointer cast into its own function
9 years ago
Yuri Kunde Schlesner
e91f2b7663
Remove some unnecessary inclusions of video_core.h
9 years ago
Yuri Kunde Schlesner
ae095cfb71
Core: Fix some out-of-style includes
9 years ago
wwylele
857510a7c0
fixup!cam: use IPCHelper
9 years ago
Yuri Kunde Schlesner
a5810d61da
FS: Remove unused result definition
9 years ago
Yuri Kunde Schlesner
2cdb40d709
Kernel: Centralize error definitions in errors.h
9 years ago
Yuri Kunde Schlesner
743d18f0e4
GSP_GPU: Move error codes from result.h to local file
9 years ago
Yuri Kunde Schlesner
92be29adba
FileSys: Move all result description to errors.h
9 years ago
Yuri Kunde Schlesner
3b1f0fea31
result: Make error description a generic integer
It is now known that result code description vary depending on the
module, and so they're best defined on a per-module basis. To support
this, allow passing in an arbitrary integer instead of limiting to the
ones in the ErrorDescription enum. These will be gradually migrated to
their individual users, but a few will be kept as "common" codes shared
by all modules.
9 years ago
Yuri Kunde Schlesner
a75145a2c6
Make BitField and ResultCode constexpr-initializable
9 years ago
wwylele
8cd9522526
cam: move u32->u8 trancation to IPCHelper
9 years ago
wwylele
924292f2cc
cam: use IPCHelper
9 years ago
Subv
37347bfa38
Kernel/Sessions: Remove the ClientSession::Create function.
It is not meant to be used by anything other than CreateSessionPair.
9 years ago
emmaus
b2e82d16c8
use IPCHelper for PTM services
9 years ago
Subv
f2d5d8cfac
Services/UDS: Use the new IPC helper functions.
9 years ago
Subv
846cc6cee3
Services/UDS: Implement RecvBeaconBroadcastData.
This allows the applications to retrieve 802.11 beacon frames from nearby UDS networks.
Note that the networks are still not announced anywhere.
9 years ago
Subv
528dea988c
Services/UDS: Generate the UDS beacons when the beacon callback fires.
9 years ago
Subv
ce5bc477ca
Kernel: Remove a now unused enum and variable regarding a session's status.
9 years ago
Subv
ddfabf3133
Kernel: Use a Session object to keep track of the status of a Client/Server session pair.
Reduce the associated port's connection count when a ServerSession is destroyed.
9 years ago