#ifndef MEMFUNC_H
#define MEMFUNC_H

#pragma pack(1)

ULONG	WINAPI _MemReadBlockLong(ULONG address, UCHAR* data, ULONG count);
 
ULONG	WINAPI _MemReadBlockShort(ULONG address, UCHAR* data, ULONG count);
 
ULONG	WINAPI _MemReadBlockChar(ULONG address, UCHAR* data, ULONG count);

 
ULONG	WINAPI _MemReadLong(ULONG address);
 
USHORT	WINAPI _MemReadShort(ULONG address);
 
UCHAR	WINAPI _MemReadChar(ULONG address);

 
ULONG	WINAPI _MemWriteBlockLong(ULONG address, UCHAR* data, ULONG count);
 
ULONG	WINAPI _MemWriteBlockShort(ULONG address, UCHAR* data, ULONG count);
 
ULONG	WINAPI _MemWriteBlockChar(ULONG address, UCHAR* data, ULONG count);

 
void WINAPI _MemWriteLong(ULONG address, ULONG data);
 
void WINAPI _MemWriteShort(ULONG address, USHORT data);
 
void WINAPI _MemWriteChar(ULONG address, UCHAR data);

// add copy and fill function  ver 1.1
ULONG WINAPI _MemCopyLong(ULONG src_address, ULONG dest_address, ULONG count);

ULONG WINAPI _MemCopyShort(ULONG src_address, ULONG dest_address, ULONG count);

ULONG WINAPI _MemCopyChar(ULONG src_address, ULONG dest_address, ULONG count);

ULONG WINAPI _MemFillLong(ULONG  address, ULONG data, ULONG count);

ULONG WINAPI _MemFillShort(ULONG  address, USHORT data, ULONG count);

ULONG WINAPI _MemFillChar(ULONG  address, UCHAR data, ULONG count);

#pragma pack()

#endif