Commit graph

2042 commits

Author SHA1 Message Date
Weiyi Wang
f05740a5fd
Merge pull request #4224 from FearlessTobi/port-1310
Port #734 and #1310 from yuzu: Changes to Thread-related enums
2018-09-25 23:07:43 -04:00
Weiyi Wang
9668852c0d Service/AM: handle encrypted CIA 2018-09-23 13:05:55 -04:00
Pengfei Zhu
6b538a49ac
Merge pull request #4246 from FearlessTobi/port-1346
Port yuzu-emu/yuzu#1346: "svc_wrap: Convert the PARAM macro into a function"
2018-09-23 13:10:11 +08:00
Weiyi Wang
20e42592ff
Merge pull request #4249 from FearlessTobi/port-760
Port yuzu-emu/yuzu#760: "file_util: Use an enum class for GetUserPath()"
2018-09-22 23:42:59 -04:00
Lioncash
d2cd4a464d svc_wrap: Convert the PARAM macro into a function
This can just be a regular function, getting rid of the need to also
explicitly undef the define at the end of the file. Given FuncReturn()
was already converted into a function, it's #undef can also be removed.
2018-09-22 21:20:22 +02:00
Lioncash
b3221c3180 file_util: Use an enum class for GetUserPath()
Instead of using an unsigned int as a parameter and expecting a user to
always pass in the correct values, we can just convert the enum into an
enum class and use that type as the parameter type instead, which makes
the interface more type safe.

We also get rid of the bookkeeping "NUM_" element in the enum by just
using an unordered map. This function is generally low-frequency in
terms of calls (and I'd hope so, considering otherwise would mean we're
slamming the disk with IO all the time) so I'd consider this acceptable
in this case.
2018-09-22 21:18:56 +02:00
Lioncash
46da908a00 service: Use nested namespace specifiers where applicable
There were a few places where nested namespace specifiers weren't being
used where they could be within the service code. This amends that to
make the namespacing a tiny bit more compact.
2018-09-22 16:14:10 +02:00
Weiyi Wang
41d53cee1f nwm/uds_data: specify endianness for enum 2018-09-22 00:28:44 -04:00
Weiyi Wang
e0336403ee nwm/uds_connection: specify endiannes for enum 2018-09-22 00:28:44 -04:00
Weiyi Wang
16b36b6025 service/cro: specify endianness for enum 2018-09-22 00:28:44 -04:00
Weiyi Wang
18e94897c4 hle/swkbd: specify endianness for enum and other members 2018-09-22 00:28:44 -04:00
Weiyi Wang
d1a576eb14
Merge pull request #4113 from namkazt/soc_recv_from
fix soc service - RecvFrom - SendTo
2018-09-21 12:33:23 -04:00
Weiyi Wang
e9ed1c98da
Merge pull request #4114 from namkazt/soc_recv_from_other
Implement soc - RecvFromOther
2018-09-21 12:33:12 -04:00
fearlessTobi
3ee9f669c1 Address review comments 2018-09-21 16:39:10 +02:00
James Rowe
687e3e74ca
Merge pull request #3959 from zhaowenlan1779/semi-reset
service/apt: Implement soft reset & CloseApplication
2018-09-19 21:02:59 -06:00
Weiyi Wang
697bc1a9c7 loader, cfg: choose region based on language if multiple regions available 2018-09-18 10:26:31 -04:00
Lioncash
5ddd382a9b kernel/svc: Do nothing if svcOutputDebugString's length is <= 0
While likely very uncommon, this sanitizes the input and does nothing in
the event of the length being equal to or less than zero, avoiding
constructing a std::string when there's no need to. It also avoids an
out-of-memory scenario, as a negative value would wrap around to its
equivalent unsigned representation in std::string's constructor.

e.g. If someone was silly and a length of -1 was specified, this would
make a string with a length of 0xFFFFFFFFFFFFFFFF on a 64-bit platform,
which will obviously eventually fail due to the allocation being way too
large.
2018-09-17 19:52:53 -04:00
Lioncash
ca3d9d659e kernel/thread: Include thread-related enums within the kernel namespace
Previously, these were sitting outside of the Kernel namespace, which
doesn't really make sense, given they're related to the Thread class
which is within the Kernel namespace.
2018-09-15 17:16:20 +02:00
Lioncash
5dfa7b74b5 thread: Convert ThreadStatus into an enum class
Makes the thread status strongly typed, so implicit conversions can't
happen. It also makes it easier to catch mistakes at compile time.
2018-09-15 17:02:44 +02:00
zhupengfei
458f8d103b
service/ptm: Add Get/SetPlayCoins functions 2018-09-14 22:28:38 +08:00
Valentin Vanelslande
dce26367a2
ipc: fix typo 2018-09-13 11:51:08 -05:00
NarcolepticK
0d15b99bfc service/cecd: Corrected cecd:s function table 2018-09-11 14:39:48 -04:00
NarcolepticK
105bcc95c0 service/cecd: Add hmac handling 2018-09-10 19:53:23 -04:00
NarcolepticK
192a0f3b92 service/cecd: Update handling of /outbox/boxinfo and /outbox/obindex 2018-09-10 04:21:24 -04:00
Valentin Vanelslande
5c4da2d218
svc: change unknown to thread in CreateThread 2018-09-08 07:40:24 -05:00
NarcolepticK
648cecf1aa service/cecd: Utilize CryptoPP::Base64Encoder for message id 2018-09-07 23:09:14 -04:00
zhupengfei
ad6b140cb0
service/apt: Implement soft reset & CloseApplication 2018-09-08 11:05:23 +08:00
NarcolepticK
ff1beca74a service/cecd: Fixed enum item naming style 2018-09-07 19:36:33 -04:00
Weiyi Wang
7d8f115185 Prefix all size_t with std::
done automatically by executing regex replace `([^:0-9a-zA-Z_])size_t([^0-9a-zA-Z_])` -> `$1std::size_t$2`
2018-09-06 16:03:28 -04:00
Merry
eca98eeb3e
Merge pull request #4143 from zhaowenlan1779/shared-font-text-fix
core, citra_qt: unify status of system archives and shared fonts
2018-09-06 20:51:32 +01:00
NarcolepticK
69b3217394 service/cecd: Addressed comments, code cleanup 2018-09-06 15:50:27 -04:00
NarcolepticK
c89759f597 service/cecd: Corrected eventlog.dat creation 2018-09-06 15:50:27 -04:00
NarcolepticK
c185c35bc2 service/cecd: Clang format fixup 2018-09-06 15:50:27 -04:00
NarcolepticK
dd7234a6d0 service/cecd: Migrate Common::StringFromFormat(...) to fmt::format(...) 2018-09-06 15:50:27 -04:00
NarcolepticK
25e7209d5c service/cecd: Updated function names 2018-09-06 15:50:27 -04:00
NarcolepticK
7a8477d106 service/cecd: Implement mboxlist handling 2018-09-06 15:50:27 -04:00
NarcolepticK
0e8398b51c service/cecd: Update header checks and increased debug logging 2018-09-06 15:50:27 -04:00
NarcolepticK
71204e525f service/cecd: Corrected behaviour, started checking and updating file headers 2018-09-06 15:50:27 -04:00
NarcolepticK
d88ad61da4 service/cecd: Output icon to MBoxData.001 and title to MBoxData.010 2018-09-06 15:50:27 -04:00
NarcolepticK
010fbd8614 service/cecd: Update default values for in/out box info header 2018-09-06 15:50:27 -04:00
NarcolepticK
d99585aa53 service/cecd: Add MBox directory check to OpenAndRead and OpenAndWrite and added a CreateAndPopulateMBoxDirectory function 2018-09-06 15:50:27 -04:00
NarcolepticK
30bbea3f4e service/cecd: Add initial files to archive after it is formatted 2018-09-06 15:50:27 -04:00
NarcolepticK
e27c1bd1f5 service/cecd: Addressed comment about PopEnum 2018-09-06 15:50:27 -04:00
NarcolepticK
413f1651b7 service/cecd: Implement basic file handling functions. 2018-09-06 15:50:26 -04:00
NarcolepticK
2ee395d7de service/cecd: Implement functions 2018-09-06 15:50:26 -04:00
NarcolepticK
5dacf92fd7 service/cecd: Stub some functions 2018-09-06 15:50:26 -04:00
fearlessTobi
cf8b1726df Address review comments 2018-09-06 00:00:21 +02:00
fearlessTobi
cb3ef488c7 Fixup! string_util: Remove StringFromFormat() and related functions 2018-09-06 00:00:21 +02:00
Lioncash
3284bef360 string_util: Remove StringFromFormat() and related functions
Given we utilize fmt, we don't need to provide our own functions for formatting anymore
2018-09-06 00:00:21 +02:00
B3n30
dfb82b4dfd fixup! fix num_client_certs in CloseClientCertContext 2018-09-04 08:16:25 +02:00
Nguyen Dac Nam
a8af14ad12
change buffer index from 1 to 0. 2018-09-04 09:41:34 +07:00
Weiyi Wang
ae6007bf9d
Merge pull request #4069 from B3n30/wait_for_service_register
Service::SM: Wait till client is registered
2018-09-04 01:57:28 +03:00
Weiyi Wang
fffa55b5d8
Merge pull request #4139 from tgsm/hid-update-table
Service/HID: update function table
2018-09-04 01:47:26 +03:00
B3n30
cfd81be661 fixup! fixup! Service::SM: Wait till client is registered 2018-09-02 22:50:13 +02:00
B3n30
ae37b404c6 fixup! fixup! Service::SM: Wait till client is registered 2018-09-02 16:42:41 +02:00
Lioncash
c47e1db46d kernel/object: Tighten object against data races
Despite being covered by a global mutex, we should still ensure that the
class handles its reference counts properly. This avoids potential
shenanigans when it comes to data races.

Given this is the root object that drives quite a bit of the kernel
object hierarchy, ensuring we always have the correct behavior (and no
races) is a good thing.
2018-08-31 00:14:48 +02:00
tgsm
7136777fec Service/HID: update function table
update
2018-08-29 17:51:47 -04:00
zhupengfei
f28bc28d6b
core, citra_qt: unify status of system archives and shared fonts
Shared fonts is no different from any other system archives, and there is not really any point to make a separate status for it. This also fixes the incorrect error message that was introduced when I made the UI text improvements.
2018-08-27 22:40:35 +08:00
Ben
b20607dfc6 Add system time configuration (#4043)
* Add setting to switch between a fixed start time and the system time

Add clock settings to SDL

Make clock configureable in qt

Add a SharedPage handler class

Init shared_page_handler for tests
2018-08-26 11:47:45 -06:00
Merry
9b9227089b
Merge pull request #4121 from FearlessTobi/port-894
Port #894 from yuzu: "kernel: Move object class to its own source files"
2018-08-26 00:02:33 +01:00
fearlessTobi
8fceac801c Fix clang-format 2018-08-25 14:05:59 +02:00
Merry
cf4f8463f1
Merge pull request #4122 from FearlessTobi/port-905
Port #905 from yuzu: "kernel/vm_manager: Minor changes"
2018-08-24 19:01:57 +01:00
Merry
f2816aa430
Merge pull request #4123 from FearlessTobi/port-914
Port #914 from yuzu: "kernel/process: Use accessors instead of class members for referencing segment array"
2018-08-24 19:01:07 +01:00
zhaowenlan1779
642f0bd62b Port "kernel/event: Make data members private" from yuzu (#4077)
* kernel/event: Make data members private

Instead we can simply provide accessors to the required data instead of
giving external read/write access to the variables directly.

* fix compile error
2018-08-24 19:43:28 +02:00
zhaowenlan1779
75927ee462 Port "client_port: Make all data members private" from yuzu (#4064)
* client_port: Make all data members private

These members don't need to be entirely exposed, we can instead expose
an API to operate on them without directly needing to mutate them

We can also guard against overflow/API misuse this way as well, given
active_sessions is an unsigned value.

* make the condition an assert
2018-08-24 19:31:20 +02:00
Lioncash
c786df3e4b kernel/process: Use std::array where applicable 2018-08-23 18:08:20 +02:00
Lioncash
37e78de206 kernel/process: Use accessors instead of class members for referencing segment array
Using member variables for referencing the segments array increases the
size of the class in memory for little benefit. The same behavior can be
achieved through the use of accessors that just return the relevant
segment.
2018-08-23 18:08:03 +02:00
Lioncash
469ed4a09f kernel/vm_manager: Convert loop into std::any_of() 2018-08-23 17:53:37 +02:00
Lioncash
c7e1dab45b kernel/vm_manager: Use const where applicable
Makes our immutable state explicit.
2018-08-23 17:53:20 +02:00
Lioncash
bb88c3b7b5 kernel/vm_manager: Use the VAddr type alias in CarveVMA()
These two variables correspond to address ranges.
2018-08-23 17:39:18 +02:00
Lioncash
63c7b44ba8 kernel: Move object class to its own source files
General moving to keep kernel object types separate from the direct
kernel code. Also essentially a preliminary cleanup before eliminating
global kernel state in the kernel code.
2018-08-23 17:31:59 +02:00
Nguyen Dac Nam
41f256f3cd
fix clang-format 2018-08-21 22:22:50 +07:00
Nguyen Dac Nam
8d98a387ac
only get src_adr if input_adr available 2018-08-21 21:39:45 +07:00
Nguyen Dac Nam
0e89555a89
only get src_adr if input_adr available 2018-08-21 21:33:19 +07:00
Nguyen Dac Nam
e8bb79be2d
do not init and copy to ctr_dest_addr unless have data 2018-08-21 20:51:13 +07:00
Nguyen Dac Nam
3b736a72a5
fix clang-format 2018-08-21 13:45:28 +07:00
Nguyen Dac Nam
c5eec5656d
add RecvFromOther cmd 2018-08-21 13:40:11 +07:00
Nguyen Dac Nam
2cb979ed29
add header RecvFromOther 2018-08-21 13:38:14 +07:00
Nguyen Dac Nam
fc8c199895
fix soc service - RecvFrom crash on Citra but not on 3DS 2018-08-21 12:59:02 +07:00
Nguyen Dac Nam
7d8569d799
fix soc service - Fcntl failed on validate header 2018-08-21 12:14:18 +07:00
Weiyi Wang
1b1439c6af NWM_UDS: use sizeof(<var being used>) instead of hard-coded type (#4093)
* NWM_UDS: use sizeof(<var being used>) instead of hard-coded type

Intend to fix #4090. 

` node_map.node.second` type was changed to `u16` in #3985. However the type change wasn't reflected here. Should have used variable name instead to automatically do type change

* NWM_UDS: ... and also the node.first one

* NWM_UDS: ... and here

* Network: bump version because we changed UDS packet layout

* Update nwm_uds.cpp
2018-08-12 22:47:48 +02:00
Merry
44fc338f21
Merge pull request #4083 from zhaowenlan1779/port-yuzu-904
Port "kernel/thread: Minor changes" from yuzu
2018-08-10 21:08:22 +01:00
Lioncash
39d5ada4e1 kernel/thread: Remove unimplemented function prototype
Given there's no implementation, we may as well remove the code
entirely.
2018-08-10 17:05:01 +08:00
B3n30
10ef3109a4 fix num_client_certs in CloseClientCertContext 2018-08-10 09:55:59 +02:00
Lioncash
596caf70b7 kernel/thread: Make GetFreeThreadLocalSlot()'s loop indices size_t
Avoids using a u32 to compare against a range of size_t, which can be a
source of warnings. While we're at it, compress a std::tie into a
structured binding.
2018-08-10 10:13:50 +08:00
Lioncash
893d9c5ff3 kernel/thread: Make GetFreeThreadLocalSlot() reference parameter a const reference
This function only reads the data being referenced, it doesn't modify
it, so we can turn the reference into a const reference.
2018-08-10 10:13:49 +08:00
Lioncash
c71c9e63ec kernel/thread: Make GetFreeThreadLocalSlot() internally linked
This function isn't used outside of this translation unit, so we can
make it internally linked.
2018-08-10 10:13:48 +08:00
B3n30
c431b922d0 fix error code comment 2018-08-09 23:55:04 +02:00
B3n30
c6bdcf72a4 service::HTTP_C: Implement OpenClientCertContext, OpenDefaultClientCertContext, CloseClientCertContext 2018-08-09 23:05:09 +02:00
Ben
5e658efdb8
Service::HTTP_C: Add decryption of the ClCertA (#4045)
* Service::HTTP_C: Add decryption of the ClCertA

* fixup! Service::HTTP_C: Add decryption of the ClCertA

* fixup! Service::HTTP_C: Add decryption of the ClCertA

* FileSys:: Add MakeNCCHArchivePath and MakeNCCHFilePath; Small fixes in HTTP_C::DecryptDefaultClientCert

* fixup! fixup! Service::HTTP_C: Add decryption of the ClCertA

* fixup! fixup! fixup! Service::HTTP_C: Add decryption of the ClCertA
2018-08-09 23:02:53 +02:00
BreadFish64
d09646ab9d citra-qt: service: add convenient LLE service module configuration (#3967)
* citra-qt: service: add convenient LLE service module configuration

* fix SDL settings

* unexpose AttemptLLE

* static

* fix array includes

* use default with writesetting
2018-08-09 21:10:11 +02:00
James Rowe
cc6d3ce22f
Merge pull request #4053 from Steveice10/master
am: Corrections to handling of non-existent content indices.
2018-08-09 09:39:44 -06:00
B3n30
aa98e55a88 fixup! Service::SM: Wait till client is registered 2018-08-08 23:42:45 +02:00
B3n30
02a3b5ae2b Service::SM: Wait till client is registered 2018-08-08 23:30:48 +02:00
Ben
8ae126eb33
Merge pull request #4001 from Subv/http2
Services/HTTP: Corrected some error codes and added a few new ones.
2018-08-08 15:37:33 +02:00
Subv
b72e7d48e8 Service/HTTP: Added logs to some of the error conditions. 2018-08-08 08:32:46 -05:00
Steveice10
4c3961d5dd am: Correct ListDLCContentInfos index bounds. 2018-08-04 01:27:05 -07:00
Steveice10
d93ed644f6 am: Return empty path string for non-existent content indices. 2018-08-04 01:03:29 -07:00
Subv
79db1f8b49 Service/HTTP: Log the PIDs in the Initialize functions. 2018-08-03 15:24:26 -05:00
James Rowe
c35a251d86
Merge pull request #3985 from BreadFish64/fix-warnings
core: clean up warnings
2018-08-02 11:14:57 -06:00