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_)