gpio: update for 23.0.0

This commit is contained in:
hexkyz
2026-09-17 19:40:17 +01:00
parent ff09b598d5
commit 9b4e4a2190
9 changed files with 135 additions and 73 deletions

View File

@@ -21,17 +21,17 @@
#include <stratosphere/gpio/gpio_select_pad_name.hpp> #include <stratosphere/gpio/gpio_select_pad_name.hpp>
#include <stratosphere/gpio/sf/gpio_sf_i_pad_session.hpp> #include <stratosphere/gpio/sf/gpio_sf_i_pad_session.hpp>
#define AMS_GPIO_I_MANAGER_INTERFACE_INFO(C, H) \ #define AMS_GPIO_I_MANAGER_INTERFACE_INFO(C, H) \
AMS_SF_METHOD_INFO(C, H, 0, Result, OpenSessionForDev, (ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, s32 pad_descriptor), (out, pad_descriptor) ) \ AMS_SF_METHOD_INFO(C, H, 0, Result, OpenSessionForDevDeprecated, (ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, s32 pad_descriptor), (out, pad_descriptor)) \
AMS_SF_METHOD_INFO(C, H, 1, Result, OpenSession, (ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name), (out, pad_name) ) \ AMS_SF_METHOD_INFO(C, H, 1, Result, OpenSessionDeprecated, (ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name), (out, pad_name)) \
AMS_SF_METHOD_INFO(C, H, 2, Result, OpenSessionForTest, (ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name), (out, pad_name) ) \ AMS_SF_METHOD_INFO(C, H, 2, Result, OpenSessionForTestDeprecated, (ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name), (out, pad_name)) \
AMS_SF_METHOD_INFO(C, H, 3, Result, IsWakeEventActive, (ams::sf::Out<bool> out, gpio::GpioPadName pad_name), (out, pad_name), hos::Version_Min, hos::Version_6_2_0) \ AMS_SF_METHOD_INFO(C, H, 3, Result, IsWakeEventActiveDeprecated, (ams::sf::Out<bool> out, gpio::GpioPadName pad_name), (out, pad_name), hos::Version_1_0_0, hos::Version_6_2_0) \
AMS_SF_METHOD_INFO(C, H, 4, Result, GetWakeEventActiveFlagSet, (ams::sf::Out<gpio::WakeBitFlag> out), (out), hos::Version_Min, hos::Version_6_2_0) \ AMS_SF_METHOD_INFO(C, H, 4, Result, GetWakeEventActiveFlagSetDeprecated, (ams::sf::Out<gpio::WakeBitFlag> out), (out), hos::Version_1_0_0, hos::Version_6_2_0) \
AMS_SF_METHOD_INFO(C, H, 5, Result, SetWakeEventActiveFlagSetForDebug, (gpio::GpioPadName pad_name, bool is_enabled), (pad_name, is_enabled), hos::Version_Min, hos::Version_6_2_0) \ AMS_SF_METHOD_INFO(C, H, 5, Result, SetWakeEventActiveFlagSetForDebugDeprecated, (gpio::GpioPadName pad_name, bool is_enabled), (pad_name, is_enabled), hos::Version_1_0_0, hos::Version_6_2_0) \
AMS_SF_METHOD_INFO(C, H, 6, Result, SetWakePinDebugMode, (s32 mode), (mode) ) \ AMS_SF_METHOD_INFO(C, H, 6, Result, SetWakePinDebugMode, (s32 mode), (mode)) \
AMS_SF_METHOD_INFO(C, H, 7, Result, OpenSession2, (ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, DeviceCode device_code, ddsf::AccessMode access_mode), (out, device_code, access_mode), hos::Version_5_0_0 ) \ AMS_SF_METHOD_INFO(C, H, 7, Result, OpenSession, (ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, DeviceCode device_code, ddsf::AccessMode access_mode), (out, device_code, access_mode), hos::Version_5_0_0) \
AMS_SF_METHOD_INFO(C, H, 8, Result, IsWakeEventActive2, (ams::sf::Out<bool> out, DeviceCode device_code), (out, device_code), hos::Version_5_0_0 ) \ AMS_SF_METHOD_INFO(C, H, 8, Result, IsWakeEventActive, (ams::sf::Out<bool> out, DeviceCode device_code), (out, device_code), hos::Version_5_0_0) \
AMS_SF_METHOD_INFO(C, H, 9, Result, SetWakeEventActiveFlagSetForDebug2, (DeviceCode device_code, bool is_enabled), (device_code, is_enabled), hos::Version_5_0_0 ) \ AMS_SF_METHOD_INFO(C, H, 9, Result, SetWakeEventActiveFlagSetForDebug, (DeviceCode device_code, bool is_enabled), (device_code, is_enabled), hos::Version_5_0_0) \
AMS_SF_METHOD_INFO(C, H, 10, Result, SetRetryValues, (u32 arg0, u32 arg1), (arg0, arg1), hos::Version_6_0_0 ) AMS_SF_METHOD_INFO(C, H, 10, Result, DumpStateForDebug, (u32 arg0, u32 arg1), (arg0, arg1), hos::Version_6_0_0)
AMS_SF_DEFINE_INTERFACE(ams::gpio::sf, IManager, AMS_GPIO_I_MANAGER_INTERFACE_INFO, 0xD219501E) AMS_SF_DEFINE_INTERFACE(ams::gpio::sf, IManager, AMS_GPIO_I_MANAGER_INTERFACE_INFO, 0xD219501E)

View File

@@ -18,24 +18,28 @@
#include <vapours.hpp> #include <vapours.hpp>
#include <stratosphere/gpio/gpio_types.hpp> #include <stratosphere/gpio/gpio_types.hpp>
#define AMS_GPIO_I_PAD_SESSION_INTERFACE_INFO(C, H) \ #define AMS_GPIO_I_PAD_SESSION_INTERFACE_INFO(C, H) \
AMS_SF_METHOD_INFO(C, H, 0, Result, SetDirection, (gpio::Direction direction), (direction) ) \ AMS_SF_METHOD_INFO(C, H, 0, Result, SetDirectionDeprecated, (gpio::Direction direction), (direction)) \
AMS_SF_METHOD_INFO(C, H, 1, Result, GetDirection, (ams::sf::Out<gpio::Direction> out), (out) ) \ AMS_SF_METHOD_INFO(C, H, 1, Result, GetDirection, (ams::sf::Out<gpio::Direction> out), (out)) \
AMS_SF_METHOD_INFO(C, H, 2, Result, SetInterruptMode, (gpio::InterruptMode mode), (mode) ) \ AMS_SF_METHOD_INFO(C, H, 2, Result, SetInterruptMode, (gpio::InterruptMode mode), (mode)) \
AMS_SF_METHOD_INFO(C, H, 3, Result, GetInterruptMode, (ams::sf::Out<gpio::InterruptMode> out), (out) ) \ AMS_SF_METHOD_INFO(C, H, 3, Result, GetInterruptMode, (ams::sf::Out<gpio::InterruptMode> out), (out)) \
AMS_SF_METHOD_INFO(C, H, 4, Result, SetInterruptEnable, (bool enable), (enable) ) \ AMS_SF_METHOD_INFO(C, H, 4, Result, SetInterruptEnable, (bool enable), (enable)) \
AMS_SF_METHOD_INFO(C, H, 5, Result, GetInterruptEnable, (ams::sf::Out<bool> out), (out) ) \ AMS_SF_METHOD_INFO(C, H, 5, Result, GetInterruptEnable, (ams::sf::Out<bool> out), (out)) \
AMS_SF_METHOD_INFO(C, H, 6, Result, GetInterruptStatus, (ams::sf::Out<gpio::InterruptStatus> out), (out) ) \ AMS_SF_METHOD_INFO(C, H, 6, Result, GetInterruptStatus, (ams::sf::Out<gpio::InterruptStatus> out), (out), hos::Version_1_0_0, hos::Version_16_1_0) \
AMS_SF_METHOD_INFO(C, H, 7, Result, ClearInterruptStatus, (), () ) \ AMS_SF_METHOD_INFO(C, H, 7, Result, ClearInterruptStatus, (), (), hos::Version_1_0_0, hos::Version_16_1_0) \
AMS_SF_METHOD_INFO(C, H, 8, Result, SetValue, (gpio::GpioValue value), (value) ) \ AMS_SF_METHOD_INFO(C, H, 8, Result, SetValue, (gpio::GpioValue value), (value)) \
AMS_SF_METHOD_INFO(C, H, 9, Result, GetValue, (ams::sf::Out<gpio::GpioValue> out), (out) ) \ AMS_SF_METHOD_INFO(C, H, 9, Result, GetValue, (ams::sf::Out<gpio::GpioValue> out), (out)) \
AMS_SF_METHOD_INFO(C, H, 10, Result, BindInterrupt, (ams::sf::OutCopyHandle out), (out) ) \ AMS_SF_METHOD_INFO(C, H, 10, Result, BindInterrupt, (ams::sf::OutCopyHandle out), (out)) \
AMS_SF_METHOD_INFO(C, H, 11, Result, UnbindInterrupt, (), () ) \ AMS_SF_METHOD_INFO(C, H, 11, Result, UnbindInterrupt, (), ()) \
AMS_SF_METHOD_INFO(C, H, 12, Result, SetDebounceEnabled, (bool enable), (enable) ) \ AMS_SF_METHOD_INFO(C, H, 12, Result, SetDebounceEnabled, (bool enable), (enable)) \
AMS_SF_METHOD_INFO(C, H, 13, Result, GetDebounceEnabled, (ams::sf::Out<bool> out), (out) ) \ AMS_SF_METHOD_INFO(C, H, 13, Result, GetDebounceEnabled, (ams::sf::Out<bool> out), (out)) \
AMS_SF_METHOD_INFO(C, H, 14, Result, SetDebounceTime, (s32 ms), (ms) ) \ AMS_SF_METHOD_INFO(C, H, 14, Result, SetDebounceTime, (s32 ms), (ms)) \
AMS_SF_METHOD_INFO(C, H, 15, Result, GetDebounceTime, (ams::sf::Out<s32> out), (out) ) \ AMS_SF_METHOD_INFO(C, H, 15, Result, GetDebounceTime, (ams::sf::Out<s32> out), (out)) \
AMS_SF_METHOD_INFO(C, H, 16, Result, SetValueForSleepState, (gpio::GpioValue value), (value), hos::Version_4_0_0) \ AMS_SF_METHOD_INFO(C, H, 16, Result, SetValueForSleepState, (gpio::GpioValue value), (value), hos::Version_4_0_0) \
AMS_SF_METHOD_INFO(C, H, 16, Result, GetValueForSleepState, (ams::sf::Out<gpio::GpioValue> out), (out), hos::Version_6_0_0) AMS_SF_METHOD_INFO(C, H, 17, Result, GetMaxDebounceTime, (ams::sf::Out<gpio::GpioValue> out), (out), hos::Version_6_0_0) \
AMS_SF_METHOD_INFO(C, H, 18, Result, SetDirectionInput, (), (), hos::Version_12_0_0) \
AMS_SF_METHOD_INFO(C, H, 19, Result, SetDirectionOutput, (gpio::GpioValue value), (value), hos::Version_12_0_0) \
AMS_SF_METHOD_INFO(C, H, 20, Result, SetUnknownEnabled, (bool enable), (enable), hos::Version_23_0_0) \
AMS_SF_METHOD_INFO(C, H, 21, Result, GetUnknownEnabled, (ams::sf::Out<bool> out), (out), hos::Version_23_0_0)
AMS_SF_DEFINE_INTERFACE(ams::gpio::sf, IPadSession, AMS_GPIO_I_PAD_SESSION_INTERFACE_INFO, 0x7448A8A7) AMS_SF_DEFINE_INTERFACE(ams::gpio::sf, IPadSession, AMS_GPIO_I_PAD_SESSION_INTERFACE_INFO, 0x7448A8A7)

View File

@@ -81,9 +81,9 @@ namespace ams::gpio {
ams::sf::SharedPointer<gpio::sf::IPadSession> session; ams::sf::SharedPointer<gpio::sf::IPadSession> session;
{ {
if (hos::GetVersion() >= hos::Version_7_0_0) { if (hos::GetVersion() >= hos::Version_7_0_0) {
R_TRY(g_manager->OpenSession2(std::addressof(session), device_code, ddsf::AccessMode_ReadWrite)); R_TRY(g_manager->OpenSession(std::addressof(session), device_code, ddsf::AccessMode_ReadWrite));
} else { } else {
R_TRY(g_manager->OpenSession(std::addressof(session), ConvertToGpioPadName(device_code))); R_TRY(g_manager->OpenSessionDeprecated(std::addressof(session), ConvertToGpioPadName(device_code)));
} }
} }
@@ -110,9 +110,9 @@ namespace ams::gpio {
Result IsWakeEventActive(bool *out_is_active, ams::DeviceCode device_code) { Result IsWakeEventActive(bool *out_is_active, ams::DeviceCode device_code) {
if (hos::GetVersion() >= hos::Version_7_0_0) { if (hos::GetVersion() >= hos::Version_7_0_0) {
R_TRY(g_manager->IsWakeEventActive2(out_is_active, device_code)); R_TRY(g_manager->IsWakeEventActive(out_is_active, device_code));
} else { } else {
R_TRY(g_manager->IsWakeEventActive(out_is_active, ConvertToGpioPadName(device_code))); R_TRY(g_manager->IsWakeEventActiveDeprecated(out_is_active, ConvertToGpioPadName(device_code)));
} }
R_SUCCEED(); R_SUCCEED();
@@ -125,7 +125,7 @@ namespace ams::gpio {
} }
void SetDirection(GpioPadSession *session, Direction direction) { void SetDirection(GpioPadSession *session, Direction direction) {
R_ABORT_UNLESS(GetInterface(session)->SetDirection(direction)); R_ABORT_UNLESS(GetInterface(session)->SetDirectionDeprecated(direction));
} }
GpioValue GetValue(GpioPadSession *session) { GpioValue GetValue(GpioPadSession *session) {

View File

@@ -34,7 +34,7 @@ namespace ams::gpio {
} }
Result RemoteManagerImpl::OpenSession(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name) { Result RemoteManagerImpl::OpenSessionDeprecated(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name) {
::GpioPadSession p; ::GpioPadSession p;
R_TRY(::gpioOpenSession(std::addressof(p), static_cast<::GpioPadName>(static_cast<u32>(pad_name)))); R_TRY(::gpioOpenSession(std::addressof(p), static_cast<::GpioPadName>(static_cast<u32>(pad_name))));
@@ -42,7 +42,7 @@ namespace ams::gpio {
R_SUCCEED(); R_SUCCEED();
} }
Result RemoteManagerImpl::OpenSession2(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, DeviceCode device_code, ddsf::AccessMode access_mode) { Result RemoteManagerImpl::OpenSession(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, DeviceCode device_code, ddsf::AccessMode access_mode) {
::GpioPadSession p; ::GpioPadSession p;
R_TRY(::gpioOpenSession2(std::addressof(p), device_code.GetInternalValue(), access_mode)); R_TRY(::gpioOpenSession2(std::addressof(p), device_code.GetInternalValue(), access_mode));

View File

@@ -27,31 +27,31 @@ namespace ams::gpio {
~RemoteManagerImpl() { /* ... */ } ~RemoteManagerImpl() { /* ... */ }
public: public:
/* Actual commands. */ /* Actual commands. */
Result OpenSessionForDev(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, s32 pad_descriptor) { Result OpenSessionForDevDeprecated(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, s32 pad_descriptor) {
/* TODO: libnx bindings */ /* TODO: libnx bindings */
AMS_UNUSED(out, pad_descriptor); AMS_UNUSED(out, pad_descriptor);
AMS_ABORT(); AMS_ABORT();
} }
Result OpenSession(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name); Result OpenSessionDeprecated(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name);
Result OpenSessionForTest(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name) { Result OpenSessionForTestDeprecated(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name) {
/* TODO: libnx bindings */ /* TODO: libnx bindings */
AMS_UNUSED(out, pad_name); AMS_UNUSED(out, pad_name);
AMS_ABORT(); AMS_ABORT();
} }
Result IsWakeEventActive(ams::sf::Out<bool> out, gpio::GpioPadName pad_name) { Result IsWakeEventActiveDeprecated(ams::sf::Out<bool> out, gpio::GpioPadName pad_name) {
R_RETURN(::gpioIsWakeEventActive2(out.GetPointer(), static_cast<::GpioPadName>(static_cast<u32>(pad_name)))); R_RETURN(::gpioIsWakeEventActive2(out.GetPointer(), static_cast<::GpioPadName>(static_cast<u32>(pad_name))));
} }
Result GetWakeEventActiveFlagSet(ams::sf::Out<gpio::WakeBitFlag> out) { Result GetWakeEventActiveFlagSetDeprecated(ams::sf::Out<gpio::WakeBitFlag> out) {
/* TODO: libnx bindings */ /* TODO: libnx bindings */
AMS_UNUSED(out); AMS_UNUSED(out);
AMS_ABORT(); AMS_ABORT();
} }
Result SetWakeEventActiveFlagSetForDebug(gpio::GpioPadName pad_name, bool is_enabled) { Result SetWakeEventActiveFlagSetForDebugDeprecated(gpio::GpioPadName pad_name, bool is_enabled) {
/* TODO: libnx bindings */ /* TODO: libnx bindings */
AMS_UNUSED(pad_name, is_enabled); AMS_UNUSED(pad_name, is_enabled);
AMS_ABORT(); AMS_ABORT();
@@ -63,19 +63,19 @@ namespace ams::gpio {
AMS_ABORT(); AMS_ABORT();
} }
Result OpenSession2(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, DeviceCode device_code, ddsf::AccessMode access_mode); Result OpenSession(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, DeviceCode device_code, ddsf::AccessMode access_mode);
Result IsWakeEventActive2(ams::sf::Out<bool> out, DeviceCode device_code) { Result IsWakeEventActive(ams::sf::Out<bool> out, DeviceCode device_code) {
R_RETURN(::gpioIsWakeEventActive2(out.GetPointer(), device_code.GetInternalValue())); R_RETURN(::gpioIsWakeEventActive2(out.GetPointer(), device_code.GetInternalValue()));
} }
Result SetWakeEventActiveFlagSetForDebug2(DeviceCode device_code, bool is_enabled) { Result SetWakeEventActiveFlagSetForDebug(DeviceCode device_code, bool is_enabled) {
/* TODO: libnx bindings */ /* TODO: libnx bindings */
AMS_UNUSED(device_code, is_enabled); AMS_UNUSED(device_code, is_enabled);
AMS_ABORT(); AMS_ABORT();
} }
Result SetRetryValues(u32 arg0, u32 arg1) { Result DumpStateForDebug(u32 arg0, u32 arg1) {
/* TODO: libnx bindings */ /* TODO: libnx bindings */
AMS_UNUSED(arg0, arg1); AMS_UNUSED(arg0, arg1);
AMS_ABORT(); AMS_ABORT();

View File

@@ -28,7 +28,7 @@ namespace ams::gpio {
~RemotePadSessionImpl() { ::gpioPadClose(std::addressof(m_srv)); } ~RemotePadSessionImpl() { ::gpioPadClose(std::addressof(m_srv)); }
public: public:
/* Actual commands. */ /* Actual commands. */
Result SetDirection(gpio::Direction direction) { Result SetDirectionDeprecated(gpio::Direction direction) {
R_RETURN(::gpioPadSetDirection(std::addressof(m_srv), static_cast<::GpioDirection>(static_cast<u32>(direction)))); R_RETURN(::gpioPadSetDirection(std::addressof(m_srv), static_cast<::GpioDirection>(static_cast<u32>(direction))));
} }
@@ -105,7 +105,30 @@ namespace ams::gpio {
AMS_ABORT(); AMS_ABORT();
} }
Result GetValueForSleepState(ams::sf::Out<gpio::GpioValue> out) { Result GetMaxDebounceTime(ams::sf::Out<gpio::GpioValue> out) {
/* TODO: libnx bindings. */
AMS_UNUSED(out);
AMS_ABORT();
}
Result SetDirectionInput() {
/* TODO: libnx bindings. */
AMS_ABORT();
}
Result SetDirectionOutput(gpio::GpioValue value) {
/* TODO: libnx bindings. */
AMS_UNUSED(value);
AMS_ABORT();
}
Result SetUnknownEnabled(bool enable) {
/* TODO: libnx bindings. */
AMS_UNUSED(enable);
AMS_ABORT();
}
Result GetUnknownEnabled(ams::sf::Out<bool> out) {
/* TODO: libnx bindings. */ /* TODO: libnx bindings. */
AMS_UNUSED(out); AMS_UNUSED(out);
AMS_ABORT(); AMS_ABORT();

View File

@@ -27,35 +27,35 @@ namespace ams::gpio::server {
lmem::DestroyExpHeap(m_heap_handle); lmem::DestroyExpHeap(m_heap_handle);
} }
Result ManagerImpl::OpenSessionForDev(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, s32 pad_descriptor) { Result ManagerImpl::OpenSessionForDevDeprecated(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, s32 pad_descriptor) {
/* TODO */ /* TODO */
AMS_UNUSED(out, pad_descriptor); AMS_UNUSED(out, pad_descriptor);
AMS_ABORT(); AMS_ABORT();
} }
Result ManagerImpl::OpenSession(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name) { Result ManagerImpl::OpenSessionDeprecated(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name) {
R_RETURN(this->OpenSession2(out, ConvertToDeviceCode(pad_name), ddsf::AccessMode_ReadWrite)); R_RETURN(this->OpenSession(out, ConvertToDeviceCode(pad_name), ddsf::AccessMode_ReadWrite));
} }
Result ManagerImpl::OpenSessionForTest(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name) { Result ManagerImpl::OpenSessionForTestDeprecated(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name) {
/* TODO */ /* TODO */
AMS_UNUSED(out, pad_name); AMS_UNUSED(out, pad_name);
AMS_ABORT(); AMS_ABORT();
} }
Result ManagerImpl::IsWakeEventActive(ams::sf::Out<bool> out, gpio::GpioPadName pad_name) { Result ManagerImpl::IsWakeEventActiveDeprecated(ams::sf::Out<bool> out, gpio::GpioPadName pad_name) {
/* TODO */ /* TODO */
AMS_UNUSED(out, pad_name); AMS_UNUSED(out, pad_name);
AMS_ABORT(); AMS_ABORT();
} }
Result ManagerImpl::GetWakeEventActiveFlagSet(ams::sf::Out<gpio::WakeBitFlag> out) { Result ManagerImpl::GetWakeEventActiveFlagSetDeprecated(ams::sf::Out<gpio::WakeBitFlag> out) {
/* TODO */ /* TODO */
AMS_UNUSED(out); AMS_UNUSED(out);
AMS_ABORT(); AMS_ABORT();
} }
Result ManagerImpl::SetWakeEventActiveFlagSetForDebug(gpio::GpioPadName pad_name, bool is_enabled) { Result ManagerImpl::SetWakeEventActiveFlagSetForDebugDeprecated(gpio::GpioPadName pad_name, bool is_enabled) {
/* TODO */ /* TODO */
AMS_UNUSED(pad_name, is_enabled); AMS_UNUSED(pad_name, is_enabled);
AMS_ABORT(); AMS_ABORT();
@@ -67,7 +67,7 @@ namespace ams::gpio::server {
AMS_ABORT(); AMS_ABORT();
} }
Result ManagerImpl::OpenSession2(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, DeviceCode device_code, ddsf::AccessMode access_mode) { Result ManagerImpl::OpenSession(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, DeviceCode device_code, ddsf::AccessMode access_mode) {
/* Allocate a session. */ /* Allocate a session. */
auto session = Factory::CreateSharedEmplaced<gpio::sf::IPadSession, PadSessionImpl>(std::addressof(m_pad_allocator), this); auto session = Factory::CreateSharedEmplaced<gpio::sf::IPadSession, PadSessionImpl>(std::addressof(m_pad_allocator), this);
@@ -79,19 +79,19 @@ namespace ams::gpio::server {
R_SUCCEED(); R_SUCCEED();
} }
Result ManagerImpl::IsWakeEventActive2(ams::sf::Out<bool> out, DeviceCode device_code) { Result ManagerImpl::IsWakeEventActive(ams::sf::Out<bool> out, DeviceCode device_code) {
/* TODO */ /* TODO */
AMS_UNUSED(out, device_code); AMS_UNUSED(out, device_code);
AMS_ABORT(); AMS_ABORT();
} }
Result ManagerImpl::SetWakeEventActiveFlagSetForDebug2(DeviceCode device_code, bool is_enabled) { Result ManagerImpl::SetWakeEventActiveFlagSetForDebug(DeviceCode device_code, bool is_enabled) {
/* TODO */ /* TODO */
AMS_UNUSED(device_code, is_enabled); AMS_UNUSED(device_code, is_enabled);
AMS_ABORT(); AMS_ABORT();
} }
Result ManagerImpl::SetRetryValues(u32 arg0, u32 arg1) { Result ManagerImpl::DumpStateForDebug(u32 arg0, u32 arg1) {
/* TODO */ /* TODO */
AMS_UNUSED(arg0, arg1); AMS_UNUSED(arg0, arg1);
AMS_ABORT(); AMS_ABORT();

View File

@@ -33,17 +33,17 @@ namespace ams::gpio::server {
~ManagerImpl(); ~ManagerImpl();
public: public:
/* Actual commands. */ /* Actual commands. */
Result OpenSessionForDev(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, s32 pad_descriptor); Result OpenSessionForDevDeprecated(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, s32 pad_descriptor);
Result OpenSession(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name); Result OpenSessionDeprecated(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name);
Result OpenSessionForTest(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name); Result OpenSessionForTestDeprecated(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, gpio::GpioPadName pad_name);
Result IsWakeEventActive(ams::sf::Out<bool> out, gpio::GpioPadName pad_name); Result IsWakeEventActiveDeprecated(ams::sf::Out<bool> out, gpio::GpioPadName pad_name);
Result GetWakeEventActiveFlagSet(ams::sf::Out<gpio::WakeBitFlag> out); Result GetWakeEventActiveFlagSetDeprecated(ams::sf::Out<gpio::WakeBitFlag> out);
Result SetWakeEventActiveFlagSetForDebug(gpio::GpioPadName pad_name, bool is_enabled); Result SetWakeEventActiveFlagSetForDebugDeprecated(gpio::GpioPadName pad_name, bool is_enabled);
Result SetWakePinDebugMode(s32 mode); Result SetWakePinDebugMode(s32 mode);
Result OpenSession2(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, DeviceCode device_code, ddsf::AccessMode access_mode); Result OpenSession(ams::sf::Out<ams::sf::SharedPointer<gpio::sf::IPadSession>> out, DeviceCode device_code, ddsf::AccessMode access_mode);
Result IsWakeEventActive2(ams::sf::Out<bool> out, DeviceCode device_code); Result IsWakeEventActive(ams::sf::Out<bool> out, DeviceCode device_code);
Result SetWakeEventActiveFlagSetForDebug2(DeviceCode device_code, bool is_enabled); Result SetWakeEventActiveFlagSetForDebug(DeviceCode device_code, bool is_enabled);
Result SetRetryValues(u32 arg0, u32 arg1); Result DumpStateForDebug(u32 arg0, u32 arg1);
}; };
static_assert(gpio::sf::IsIManager<ManagerImpl>); static_assert(gpio::sf::IsIManager<ManagerImpl>);

View File

@@ -44,7 +44,7 @@ namespace ams::gpio::server {
} }
public: public:
/* Actual commands. */ /* Actual commands. */
Result SetDirection(gpio::Direction direction) { Result SetDirectionDeprecated(gpio::Direction direction) {
/* Validate our state. */ /* Validate our state. */
AMS_ASSERT(m_has_session); AMS_ASSERT(m_has_session);
@@ -205,7 +205,42 @@ namespace ams::gpio::server {
AMS_ABORT(); AMS_ABORT();
} }
Result GetValueForSleepState(ams::sf::Out<gpio::GpioValue> out) { Result GetMaxDebounceTime(ams::sf::Out<gpio::GpioValue> out) {
/* Validate our state. */
AMS_ASSERT(m_has_session);
/* TODO */
AMS_UNUSED(out);
AMS_ABORT();
}
Result SetDirectionInput() {
/* Validate our state. */
AMS_ASSERT(m_has_session);
/* TODO */
AMS_ABORT();
}
Result SetDirectionOutput(gpio::GpioValue value) {
/* Validate our state. */
AMS_ASSERT(m_has_session);
/* TODO */
AMS_UNUSED(value);
AMS_ABORT();
}
Result SetUnknownEnabled(bool enable) {
/* Validate our state. */
AMS_ASSERT(m_has_session);
/* TODO */
AMS_UNUSED(enable);
AMS_ABORT();
}
Result GetUnknownEnabled(ams::sf::Out<bool> out) {
/* Validate our state. */ /* Validate our state. */
AMS_ASSERT(m_has_session); AMS_ASSERT(m_has_session);