Permalink
Browse files

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.
  • Loading branch information...
lioncash committed May 16, 2018
1 parent fc78a4c commit e7403e121eda6301245cdd174e66d18081f15d29
Showing with 15 additions and 40 deletions.
  1. +0 −11 Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp
  2. +15 −29 Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h
@@ -26,9 +26,7 @@ CEXIETHERNET::CEXIETHERNET()
{
tx_fifo = std::make_unique<u8[]>(BBA_TXFIFO_SIZE);
mBbaMem = std::make_unique<u8[]>(BBA_MEM_SIZE);
mRecvBuffer = std::make_unique<u8[]>(BBA_RECV_SIZE);
mRecvBufferLength = 0;
MXHardReset();
@@ -48,15 +46,6 @@ CEXIETHERNET::CEXIETHERNET()
// HACK: .. fully established 100BASE-T link
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()
@@ -227,7 +227,7 @@ class CEXIETHERNET : public IEXIDevice
u16 address;
bool valid;
} transfer;
} transfer = {};
enum
{
@@ -251,28 +251,14 @@ class CEXIETHERNET : public IEXIDevice
TRANSFER = 0x80
};
u8 revision_id;
u8 interrupt_mask;
u8 interrupt;
u16 device_id;
u8 acstart;
u32 hash_challenge;
u32 hash_response;
u8 hash_status;
EXIStatus()
{
device_id = 0xd107;
revision_id = 0; // 0xf0;
acstart = 0x4e;
interrupt_mask = 0;
interrupt = 0;
hash_challenge = 0;
hash_response = 0;
hash_status = 0;
}
u8 revision_id = 0; // 0xf0
u8 interrupt_mask = 0;
u8 interrupt = 0;
u16 device_id = 0xD107;
u8 acstart = 0x4E;
u32 hash_challenge = 0;
u32 hash_response = 0;
u8 hash_status = 0;
} exi_status;
struct Descriptor
@@ -322,16 +308,16 @@ class CEXIETHERNET : public IEXIDevice
void RecvStop();
std::unique_ptr<u8[]> mRecvBuffer;
u32 mRecvBufferLength;
u32 mRecvBufferLength = 0;
#if defined(_WIN32)
HANDLE mHAdapter;
OVERLAPPED mReadOverlapped;
OVERLAPPED mWriteOverlapped;
HANDLE mHAdapter = INVALID_HANDLE_VALUE;
OVERLAPPED mReadOverlapped = {};
OVERLAPPED mWriteOverlapped = {};
std::vector<u8> mWriteBuffer;
bool mWritePending;
bool mWritePending = false;
#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)
int fd;
int fd = -1;
#endif
#if defined(WIN32) || defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \

0 comments on commit e7403e1

Please sign in to comment.