fa53ccc74b
Merge pull request #2778 from Subv/uds_more
...
Services/UDS: Stub SendTo to generate the unencrypted data frames with the right headers
2017-06-26 19:35:52 -05:00
2eb174713b
UDS: Use the ToDS and FromDS fields to properly calculate the AAD used during encryption.
2017-06-26 12:24:14 -05:00
1f1739d366
UDS: Move the UDS keyslot used to generate the CCMP key to the AES::KeySlotID enum.
2017-06-26 12:24:13 -05:00
87168bfe8b
UDS: Run clang-format.
2017-06-26 12:24:11 -05:00
9befb8c887
UDS: Added functions to encrypt and decrypt the data frames.
...
The responsibility of encryption and encapsulation into an 802.11 MAC frame will fall into the callers of GenerateDataPayload.
2017-06-26 12:24:09 -05:00
c3c9175a1c
Kernel/Sessions: Clean up the list of pending request threads of a session when the client endpoint is closed.
2017-06-25 23:38:29 -05:00
88c93a7436
Kernel/SVC: Partially implemented svcReplyAndReceive.
...
It behaves mostly as WaitSynchronizationN with wait_all = false, except for IPC buffer translation.
The target thread of an IPC response will now wake up when responding.
IPC buffer translation is currently not implemented.
Error passing back to svcSendSyncRequest is currently not implemented.
2017-06-25 23:38:28 -05:00
9549eed0be
apt: load shared font from system archive
2017-06-26 01:38:12 +03:00
22994607cc
apt/shared_font: don't relocate zero offset
2017-06-26 00:43:23 +03:00
8feeb81af2
Kernel/ServerSession: Keep track of which threads have issued sync requests.
2017-06-25 14:47:25 -05:00
e192d417ec
Kernel: Implement AcceptSession SVC
2017-06-23 11:26:37 -07:00
8c6a8edaca
Kernel: Fix SVC wrapper for CreatePort
...
The return parameters were flipped.
2017-06-23 11:22:04 -07:00
aa0f3047d3
Kernel: Implement CreateSessionToPort SVC
2017-06-23 11:22:02 -07:00
6d436d7a52
Merge pull request #2798 from yuriks/svc-create-session
...
Kernel: Implement CreateSession SVC
2017-06-23 11:18:49 -07:00
f94093d0fd
Kernel: Implement CreateSession SVC
2017-06-22 00:39:27 -07:00
d553135748
Memory: Add function to flush a virtual range from the rasterizer cache
...
This is slightly more ergonomic to use, correctly handles virtual
regions which are disjoint in physical addressing space, and checks only
regions which can be cached by the rasterizer.
2017-06-21 22:57:12 -07:00
f2a5a77e27
Memory: Fix crash when unmapping a VMA covering cached surfaces
...
Unmapping pages tries to flush any cached GPU surfaces touching that
region. When a cached page is invalidated, GetPointerFromVMA() is used
to restore the original pagetable pointer. However, since that VMA has
already been deleted, this hits an UNREACHABLE case in that function.
Now when this happens, just set the page type to Unmapped and continue,
which arrives at the correct end result.
2017-06-21 22:56:31 -07:00
6ae0086b39
Memory: Add TryVirtualToPhysicalAddress, returning a boost::optional
2017-06-21 22:55:18 -07:00
326e7c7020
Memory: Make PhysicalToVirtualAddress return a boost::optional
...
And fix a few places in the code to take advantage of that.
2017-06-21 22:55:17 -07:00
f64d0b3f26
Kernel/IPC: Support translation of null handles
...
Missed this in my first implementation. Thanks to @wwylele for pointing
out that this was missing.
2017-06-21 14:27:03 -07:00
c4f0927a62
Merge pull request #2789 from yuriks/misc-kernel
...
Trivial no-op additions
2017-06-21 20:34:12 +03:00
b21dfbb295
Merge pull request #2790 from yuriks/remove-movefrom
...
Remove ResultVal::MoveFrom
2017-06-20 22:04:09 -07:00
42b198eb0a
Memory: Add enum definitions for the n3DS FCRAM size
2017-06-20 22:03:25 -07:00
96dcccc80c
Merge pull request #2779 from Subv/uds_more2
...
UDS: Added a hook for updating the connection status when a client connects to the network.
2017-06-21 02:29:00 +00:00
723dc644fa
ResultVal: Remove MoveFrom()
...
Replace it with std::move(result_val).Unwrap(), or Foo().Unwrap() in
case you already have an rvalue.
2017-06-18 19:03:15 -07:00
4cb47b0278
ResultVal: Add an rvalue overload of Unwrap()
2017-06-18 18:49:46 -07:00
90b8d4dd36
Kernel: Add comment about the extended linear heap area
2017-06-18 18:38:40 -07:00
0dfafdbe59
Kernel/IPC: Make HLERequestContext usable from outside kernel
2017-06-18 16:05:12 -07:00
812b404492
UDS: Clarify comment about the first 4 bytes of the SecureData header.
...
It is likely that these 4 bytes are actually a different header, part of some protocol that encapsulates the SecureData protocol.
2017-06-15 12:08:55 -05:00
61ce89a55a
UDS: Return the correct error messages in SendTo when not connected to a network or trying to send to itself.
2017-06-15 12:08:54 -05:00
7efb64132d
UDS: Stub SendTo to generate the unencrypted data frame with the right headers.
2017-06-15 12:08:53 -05:00
38ceab13f6
UDS: Added a hook for updating the connection status when a client connects to the network.
2017-06-15 11:57:49 -05:00
ac168eeb5d
Services/UDS: Set the proper bit in the ConnectionStatus structure when creating a network. ( #2738 )
...
* Services/UDS: Set the proper bit in the ConnectionStatus structure when creating a network.
This lets the application know that the host was successfully added to the session.
* Services/UDS: Reset the connection status when destroying the network
* Services/UDS: Reset the connection status's bitmask of changed nodes after reporting it to the game.
2017-06-13 22:00:58 +03:00
d8f6000f54
Kernel/IPC: Use boost::small_vector for HLE context objects
2017-06-11 16:34:13 -07:00
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).
2017-06-11 13:10:21 -07:00
8cb65fe65a
Kernel: Basic support for IPC translation for HLE services
2017-06-11 13:10:21 -07:00
7656d83df5
Service/sm: Convert srv: to use IPC helpers
2017-06-11 13:10:21 -07:00
21436f5ef7
IPC: Add Pop/PushObjects methods to RequestParser/Builder
...
These use the context functions to create and look-up handles for the
user.
2017-06-11 13:10:20 -07:00
1c4b0ebb1f
IPC: Add basic HLERequestContext support to RequestParser/Builder
2017-06-11 13:10:16 -07:00
05fee70211
Kernel: Add methods in HLERequestContext abstracting handle creation
2017-06-11 13:07:33 -07:00
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.
2017-06-11 13:07:33 -07:00
78398d0978
Merge pull request #2756 from yuriks/service-framework
...
New service framework
2017-06-08 21:03:03 -07:00
6f368abe13
Service/sm: Convert 'srv:' to ServiceFramework
2017-06-08 20:59:19 -07:00
838faf147e
Session: Remove/add some forward declarations
2017-06-08 00:33:57 -07:00
d666e01cdf
Kernel: Ensure objects are kept alive during ClientSession disconnection
...
Fixes #2760
2017-06-08 00:33:24 -07:00
c92a8a6154
Service: Remove a few redundant namespace qualifiers
2017-06-08 00:11:37 -07:00
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.
2017-06-08 00:11:37 -07:00
8c22334f96
Merge pull request #2737 from Subv/decryptbeacondata
...
Services/UDS: Implement DecryptBeaconData.
2017-06-07 10:08:43 -06:00
6dc133c24a
Kernel: Remove some unnecessary namespace qualifications
2017-06-06 14:51:42 -07:00
d7d0b46fc1
Services/UDS: Implement DecryptBeaconData.
...
This function decrypts the encrypted data tags contained in the 802.11 beacon frames.
2017-06-06 11:31:20 -05:00