DEV9: Add MAC_Address struct

This commit is contained in:
TheLastRar 2023-01-16 16:17:06 +00:00 committed by refractionpcsx2
parent b386f78d68
commit 8fbecbcdd7
6 changed files with 56 additions and 0 deletions

View File

@ -380,6 +380,7 @@ set(pcsx2DEV9Headers
DEV9/PacketReader/IP/IP_Packet.h
DEV9/PacketReader/IP/IP_Payload.h
DEV9/PacketReader/EthernetFrame.h
DEV9/PacketReader/MAC_Address.h
DEV9/PacketReader/NetLib.h
DEV9/PacketReader/Payload.h
DEV9/pcap_io.h

View File

@ -0,0 +1,37 @@
/* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2023 PCSX2 Dev Team
*
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version.
*
* PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with PCSX2.
* If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
namespace PacketReader
{
#pragma pack(push, 1)
struct MAC_Address
{
union
{
u8 bytes[6];
struct
{
u32 integer03;
u16 short45;
} u;
};
bool operator==(const MAC_Address& other) const { return (this->u.integer03 == other.u.integer03) && (this->u.short45 == other.u.short45); }
bool operator!=(const MAC_Address& other) const { return (this->u.integer03 != other.u.integer03) || (this->u.short45 != other.u.short45); }
};
#pragma pack(pop)
} // namespace PacketReader

View File

@ -23,6 +23,7 @@
#include <arpa/inet.h>
#endif
using namespace PacketReader;
using namespace PacketReader::IP;
namespace PacketReader::NetLib
@ -44,6 +45,11 @@ namespace PacketReader::NetLib
}
//Special
void WriteMACAddress(u8* data, int* index, MAC_Address value)
{
*(MAC_Address*)&data[*index] = value;
*index += sizeof(MAC_Address);
}
void WriteIPAddress(u8* data, int* index, IP_Address value)
{
*(IP_Address*)&data[*index] = value;
@ -74,6 +80,11 @@ namespace PacketReader::NetLib
}
//Special
void ReadMACAddress(u8* data, int* index, MAC_Address* value)
{
*value = *(MAC_Address*)&data[*index];
*index += sizeof(MAC_Address);
}
void ReadIPAddress(u8* data, int* index, IP_Address* value)
{
*value = *(IP_Address*)&data[*index];

View File

@ -15,6 +15,7 @@
#pragma once
#include "DEV9/PacketReader/MAC_Address.h"
#include "DEV9/PacketReader/IP/IP_Address.h"
namespace PacketReader::NetLib
@ -23,6 +24,7 @@ namespace PacketReader::NetLib
void WriteUInt16(u8* data, int* index, u16 value);
void WriteUInt32(u8* data, int* index, u32 value);
void WriteMACAddress(u8* data, int* index, PacketReader::MAC_Address value);
void WriteIPAddress(u8* data, int* index, PacketReader::IP::IP_Address value);
void WriteByteArray(u8* data, int* index, int length, u8* value);
@ -30,6 +32,7 @@ namespace PacketReader::NetLib
void ReadUInt16(u8* data, int* index, u16* value);
void ReadUInt32(u8* data, int* index, u32* value);
void ReadMACAddress(u8* data, int* index, PacketReader::MAC_Address* value);
void ReadIPAddress(u8* data, int* index, PacketReader::IP::IP_Address* value);
void ReadByteArray(u8* data, int* index, int length, u8* value);
} // namespace PacketReader::NetLib

View File

@ -512,6 +512,7 @@
<ClInclude Include="DEV9\net.h" />
<ClInclude Include="DEV9\PacketReader\ARP\ARP_Packet.h" />
<ClInclude Include="DEV9\PacketReader\EthernetFrame.h" />
<ClInclude Include="DEV9\PacketReader\MAC_Address.h" />
<ClInclude Include="DEV9\PacketReader\IP\ICMP\ICMP_Packet.h" />
<ClInclude Include="DEV9\PacketReader\IP\TCP\TCP_Options.h" />
<ClInclude Include="DEV9\PacketReader\IP\TCP\TCP_Packet.h" />

View File

@ -1834,6 +1834,9 @@
<ClInclude Include="DEV9\PacketReader\EthernetFrame.h">
<Filter>System\Ps2\DEV9\PacketReader</Filter>
</ClInclude>
<ClInclude Include="DEV9\PacketReader\MAC_Address.h">
<Filter>System\Ps2\DEV9\PacketReader</Filter>
</ClInclude>
<ClInclude Include="DEV9\PacketReader\NetLib.h">
<Filter>System\Ps2\DEV9\PacketReader</Filter>
</ClInclude>