www.pudn.com > GOS.rar > KCore.h
// KCore.h: interface for the KCore class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_KCORE_H__E5E4312F_ACDC_493F_BBF2_3B0B8FE64110__INCLUDED_)
#define AFX_KCORE_H__E5E4312F_ACDC_493F_BBF2_3B0B8FE64110__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define OS_MAXTHREAD 4
#define OS_HEAPSIZE 0x40000 //1M¿Õ¼ä
typedef void(*OS_THREADPROC)(void);
typedef struct _tagTCB
{
PVOID sp;
DWORD nTick;
}OS_TCB,*POS_TCB;
#define ZeroMemory(pDest,nLength) FillMemory(pDest,nLength,0)
void OS_Init(void);
void OS_OnIdle(void);
LPVOID HeapAlloc(int nBytes);
void HeapFree(PVOID pData);
int HeapAllocSize(PVOID pData);
void CopyMemory(LPVOID pDest,LPCVOID pSrc,DWORD nLength);
void FillMemory(LPVOID pDest,DWORD nLength,BYTE nFill);
BOOL MessageBeep(int nType);
POS_TCB GetCurThread(void);
POS_TCB GetNextThread(void);
void CreateThread(OS_THREADPROC pThreadProc,int nStackSize);
//PVOID operator new(UINT nSize,PVOID pObj);
//VOID operator delete(PVOID pData,PVOID pObj);
//PVOID operator new[](UINT nSize);
//VOID operator delete[](PVOID pData);
//PVOID operator new(UINT nSize);
//VOID operator delete(PVOID pData);
PVOID inline operator new(UINT nSize,PVOID pObj){nSize=nSize;return pObj;}
VOID inline operator delete(PVOID pData,PVOID pObj){pData=pObj;return;}
PVOID inline operator new[](UINT nSize){return HeapAlloc(nSize);}
VOID inline operator delete[](PVOID pData){HeapFree(pData);}
PVOID inline operator new(UINT nSize){return HeapAlloc(nSize);}
VOID inline operator delete(PVOID pData){HeapFree(pData);}
#endif // !defined(AFX_KCORE_H__E5E4312F_ACDC_493F_BBF2_3B0B8FE64110__INCLUDED_)