EXI_DeviceEthernet: In-class initialize members
Gets rid of a second pair of ifdefs in the constructor. This also makes sure the fd on Unix/BSD platforms is uniformly initialized. Previously fd would be in an inconsistent state on FreeBSD or OpenBSD due to the BSD OS checks not being present in the #elif within the constructor.
This commit is contained in:
parent
fc78a4c993
commit
e7403e121e
|
@ -26,9 +26,7 @@ CEXIETHERNET::CEXIETHERNET()
|
||||||
{
|
{
|
||||||
tx_fifo = std::make_unique<u8[]>(BBA_TXFIFO_SIZE);
|
tx_fifo = std::make_unique<u8[]>(BBA_TXFIFO_SIZE);
|
||||||
mBbaMem = std::make_unique<u8[]>(BBA_MEM_SIZE);
|
mBbaMem = std::make_unique<u8[]>(BBA_MEM_SIZE);
|
||||||
|
|
||||||
mRecvBuffer = std::make_unique<u8[]>(BBA_RECV_SIZE);
|
mRecvBuffer = std::make_unique<u8[]>(BBA_RECV_SIZE);
|
||||||
mRecvBufferLength = 0;
|
|
||||||
|
|
||||||
MXHardReset();
|
MXHardReset();
|
||||||
|
|
||||||
|
@ -48,15 +46,6 @@ CEXIETHERNET::CEXIETHERNET()
|
||||||
|
|
||||||
// HACK: .. fully established 100BASE-T link
|
// HACK: .. fully established 100BASE-T link
|
||||||
mBbaMem[BBA_NWAYS] = NWAYS_LS100 | NWAYS_LPNWAY | NWAYS_100TXF | NWAYS_ANCLPT;
|
mBbaMem[BBA_NWAYS] = NWAYS_LS100 | NWAYS_LPNWAY | NWAYS_100TXF | NWAYS_ANCLPT;
|
||||||
|
|
||||||
#if defined(_WIN32)
|
|
||||||
mHAdapter = INVALID_HANDLE_VALUE;
|
|
||||||
memset(&mReadOverlapped, 0, sizeof(mReadOverlapped));
|
|
||||||
memset(&mWriteOverlapped, 0, sizeof(mWriteOverlapped));
|
|
||||||
mWritePending = false;
|
|
||||||
#elif defined(__linux__) || defined(__APPLE__)
|
|
||||||
fd = -1;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CEXIETHERNET::~CEXIETHERNET()
|
CEXIETHERNET::~CEXIETHERNET()
|
||||||
|
|
|
@ -227,7 +227,7 @@ private:
|
||||||
|
|
||||||
u16 address;
|
u16 address;
|
||||||
bool valid;
|
bool valid;
|
||||||
} transfer;
|
} transfer = {};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
@ -251,28 +251,14 @@ private:
|
||||||
TRANSFER = 0x80
|
TRANSFER = 0x80
|
||||||
};
|
};
|
||||||
|
|
||||||
u8 revision_id;
|
u8 revision_id = 0; // 0xf0
|
||||||
u8 interrupt_mask;
|
u8 interrupt_mask = 0;
|
||||||
u8 interrupt;
|
u8 interrupt = 0;
|
||||||
u16 device_id;
|
u16 device_id = 0xD107;
|
||||||
u8 acstart;
|
u8 acstart = 0x4E;
|
||||||
u32 hash_challenge;
|
u32 hash_challenge = 0;
|
||||||
u32 hash_response;
|
u32 hash_response = 0;
|
||||||
u8 hash_status;
|
u8 hash_status = 0;
|
||||||
|
|
||||||
EXIStatus()
|
|
||||||
{
|
|
||||||
device_id = 0xd107;
|
|
||||||
revision_id = 0; // 0xf0;
|
|
||||||
acstart = 0x4e;
|
|
||||||
|
|
||||||
interrupt_mask = 0;
|
|
||||||
interrupt = 0;
|
|
||||||
hash_challenge = 0;
|
|
||||||
hash_response = 0;
|
|
||||||
hash_status = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
} exi_status;
|
} exi_status;
|
||||||
|
|
||||||
struct Descriptor
|
struct Descriptor
|
||||||
|
@ -322,16 +308,16 @@ private:
|
||||||
void RecvStop();
|
void RecvStop();
|
||||||
|
|
||||||
std::unique_ptr<u8[]> mRecvBuffer;
|
std::unique_ptr<u8[]> mRecvBuffer;
|
||||||
u32 mRecvBufferLength;
|
u32 mRecvBufferLength = 0;
|
||||||
|
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
HANDLE mHAdapter;
|
HANDLE mHAdapter = INVALID_HANDLE_VALUE;
|
||||||
OVERLAPPED mReadOverlapped;
|
OVERLAPPED mReadOverlapped = {};
|
||||||
OVERLAPPED mWriteOverlapped;
|
OVERLAPPED mWriteOverlapped = {};
|
||||||
std::vector<u8> mWriteBuffer;
|
std::vector<u8> mWriteBuffer;
|
||||||
bool mWritePending;
|
bool mWritePending = false;
|
||||||
#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||||
int fd;
|
int fd = -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(WIN32) || defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
|
#if defined(WIN32) || defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
|
||||||
|
|
Loading…
Reference in New Issue