mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2025-05-28 05:34:11 -04:00
i2c/gpio: hook up open session for sf interface
This commit is contained in:
parent
b74b309a77
commit
42caa4ffd1
15 changed files with 571 additions and 16 deletions
|
@ -33,8 +33,7 @@ namespace ams::gpio::server {
|
|||
}
|
||||
|
||||
Result ManagerImpl::OpenSession(ams::sf::Out<std::shared_ptr<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name) {
|
||||
/* TODO */
|
||||
AMS_ABORT();
|
||||
return this->OpenSession2(out, ConvertToDeviceCode(pad_name), ddsf::AccessMode_ReadWrite);
|
||||
}
|
||||
|
||||
Result ManagerImpl::OpenSessionForTest(ams::sf::Out<std::shared_ptr<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name) {
|
||||
|
@ -63,8 +62,15 @@ namespace ams::gpio::server {
|
|||
}
|
||||
|
||||
Result ManagerImpl::OpenSession2(ams::sf::Out<std::shared_ptr<gpio::sf::IPadSession>> out, DeviceCode device_code, ddsf::AccessMode access_mode) {
|
||||
/* TODO */
|
||||
AMS_ABORT();
|
||||
/* Allocate a session. */
|
||||
auto session = ams::sf::AllocateShared<gpio::sf::IPadSession, PadSessionImpl>(this->pad_allocator, this);
|
||||
|
||||
/* Open the session. */
|
||||
R_TRY(session->GetImpl().OpenSession(device_code, access_mode));
|
||||
|
||||
/* We succeeded. */
|
||||
out.SetValue(std::move(session));
|
||||
return ResultSuccess();
|
||||
}
|
||||
|
||||
Result ManagerImpl::IsWakeEventActive2(ams::sf::Out<bool> out, DeviceCode device_code) {
|
||||
|
@ -82,5 +88,4 @@ namespace ams::gpio::server {
|
|||
AMS_ABORT();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -35,10 +35,10 @@ namespace ams::gpio::server {
|
|||
}
|
||||
}
|
||||
|
||||
Result OpenSession(DeviceCode device_code) {
|
||||
Result OpenSession(DeviceCode device_code, ddsf::AccessMode access_mode) {
|
||||
AMS_ABORT_UNLESS(!this->has_session);
|
||||
|
||||
R_TRY(gpio::driver::OpenSession(std::addressof(this->internal_pad_session), device_code));
|
||||
R_TRY(gpio::driver::OpenSession(std::addressof(this->internal_pad_session), device_code, access_mode));
|
||||
this->has_session = true;
|
||||
return ResultSuccess();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue