#include "util.h" #include "types.h" bool CompareMemory(const void* Addr1, const void* Addr2, u32 Length) { const u8* Data1 = Addr1; const u8* Data2 = Addr2; for (uptr i = 0; i < Length; i++) { if (Data1[i] != Data2[i]) return false; } return true; } void PortWrite8(u16 Port, u8 Data) { asm ( "out %b1, %w0" : : "d" (Port), "a" (Data)); } void PortWrite16(u16 Port, u16 Data) { asm ( "out %w1, %w0" : : "d" (Port), "a" (Data)); } void PortWrite32(u16 Port, u32 Data) { asm ( "out %1, %w0" : : "d" (Port), "a" (Data)); } u8 PortRead8(u16 Port) { u8 Data = 0; asm ( "in %w1, %b0" : "=a" (Data) : "d" (Port)); return Data; } u16 PortRead16(u16 Port) { u16 Data = 0; asm ( "in %w1, %w0" : "=a" (Data) : "d" (Port)); return Data; } u32 PortRead32(u16 Port) { u32 Data = 0; asm ( "in %w1, %0" : "=a" (Data) : "d" (Port)); return Data; }