mirror of
https://github.com/cathery/sys-con.git
synced 2025-04-18 14:42:28 +00:00
Adjusting to new libnx build
This commit is contained in:
parent
467541fb6d
commit
82e6eca5ab
@ -105,7 +105,6 @@ Status XboxOneController::GetInput()
|
|||||||
if (S_FAILED(rc))
|
if (S_FAILED(rc))
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
//TODO: add ack check and send ack report!
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include "switch.h"
|
|
||||||
|
|
||||||
//This file exists for the sole purpose of fixing existing libnx bugs while the new release isn't out yet
|
|
||||||
|
|
||||||
//regular usbHsEpClose incorrectly accesses more memory than it should, causing a crash
|
|
||||||
void usbHsEpCloseFixed(UsbHsClientEpSession *s);
|
|
@ -33,12 +33,12 @@ Result SwitchUSBInterface::Open()
|
|||||||
//we're adjusting appropriately
|
//we're adjusting appropriately
|
||||||
for (int i = 0; i != 15; ++i)
|
for (int i = 0; i != 15; ++i)
|
||||||
{
|
{
|
||||||
m_inEndpoints.push_back(std::make_unique<SwitchUSBEndpoint>(m_session, m_session.inf.inf.output_endpoint_descs[i]));
|
m_inEndpoints.push_back(std::make_unique<SwitchUSBEndpoint>(m_session, m_session.inf.inf.input_endpoint_descs[i]));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i != 15; ++i)
|
for (int i = 0; i != 15; ++i)
|
||||||
{
|
{
|
||||||
m_outEndpoints.push_back(std::make_unique<SwitchUSBEndpoint>(m_session, m_session.inf.inf.input_endpoint_descs[i]));
|
m_outEndpoints.push_back(std::make_unique<SwitchUSBEndpoint>(m_session, m_session.inf.inf.output_endpoint_descs[i]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return rc;
|
return rc;
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
#include "libnxFix.h"
|
|
||||||
#include <cstring>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include "malloc.h"
|
|
||||||
|
|
||||||
static Result _usbHsCmdNoIO(Service *s, u64 cmd_id)
|
|
||||||
{
|
|
||||||
IpcCommand c;
|
|
||||||
ipcInitialize(&c);
|
|
||||||
|
|
||||||
struct Packet
|
|
||||||
{
|
|
||||||
u64 magic;
|
|
||||||
u64 cmd_id;
|
|
||||||
} * raw;
|
|
||||||
|
|
||||||
raw = static_cast<Packet *>(serviceIpcPrepareHeader(s, &c, sizeof(*raw)));
|
|
||||||
|
|
||||||
raw->magic = SFCI_MAGIC;
|
|
||||||
raw->cmd_id = cmd_id;
|
|
||||||
|
|
||||||
Result rc = serviceIpcDispatch(s);
|
|
||||||
|
|
||||||
if (R_SUCCEEDED(rc))
|
|
||||||
{
|
|
||||||
IpcParsedCommand r;
|
|
||||||
struct Reponse
|
|
||||||
{
|
|
||||||
u64 magic;
|
|
||||||
u64 result;
|
|
||||||
} * resp;
|
|
||||||
|
|
||||||
serviceIpcParse(s, &r, sizeof(*resp));
|
|
||||||
resp = static_cast<Reponse *>(r.Raw);
|
|
||||||
|
|
||||||
rc = resp->result;
|
|
||||||
}
|
|
||||||
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
void usbHsEpCloseFixed(UsbHsClientEpSession *s)
|
|
||||||
{
|
|
||||||
if (!serviceIsActive(&s->s))
|
|
||||||
return;
|
|
||||||
|
|
||||||
_usbHsCmdNoIO(&s->s, hosversionAtLeast(2, 0, 0) ? 1 : 3); //Close
|
|
||||||
|
|
||||||
serviceClose(&s->s);
|
|
||||||
eventClose(&s->eventXfer);
|
|
||||||
memset(s, 0, sizeof(UsbHsClientEpSession));
|
|
||||||
}
|
|
@ -48,19 +48,19 @@ extern "C"
|
|||||||
Result rc = 0;
|
Result rc = 0;
|
||||||
rc = hiddbgInitialize();
|
rc = hiddbgInitialize();
|
||||||
if (R_FAILED(rc))
|
if (R_FAILED(rc))
|
||||||
fatalSimple(rc);
|
fatalThrow(rc);
|
||||||
|
|
||||||
rc = hiddbgAttachHdlsWorkBuffer();
|
rc = hiddbgAttachHdlsWorkBuffer();
|
||||||
if (R_FAILED(rc))
|
if (R_FAILED(rc))
|
||||||
fatalSimple(rc);
|
fatalThrow(rc);
|
||||||
|
|
||||||
rc = usbHsInitialize();
|
rc = usbHsInitialize();
|
||||||
if (R_FAILED(rc))
|
if (R_FAILED(rc))
|
||||||
fatalSimple(rc);
|
fatalThrow(rc);
|
||||||
|
|
||||||
rc = usbCommsInitialize();
|
rc = usbCommsInitialize();
|
||||||
if (R_FAILED(rc))
|
if (R_FAILED(rc))
|
||||||
fatalSimple(rc);
|
fatalThrow(rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __attribute__((weak)) userAppExit(void)
|
void __attribute__((weak)) userAppExit(void)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user