⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unx_memmgr.h

📁 smallbasic for linux
💻 H
字号:
/***	unx_memmgr.h	**	Unix & PalmOS memory manager for Unix. This module is a bug killer.**	Nicholas Christopoulos**	This program is distributed under the terms of the GPL v2.0 or later*	Download the GNU Public License (GPL) from www.gnu.org*/#if !defined(_unix_memmgr_h)#define _unix_memmgr_h#if defined(_BCB_W32_IDE)	#include <string.h>#endif#if defined(__cplusplus)extern "C"	{#endiftypedef	int MemHandle;typedef void* MemPtr;void		memmgr_init();void		memmgr_close();int			memmgr_getalloc();MemHandle	MemHandleNewX(int size, const char *file, int line);void		MemHandleFreeX(MemHandle h, const char *file, int line);int 		MemHandleResizeX(MemHandle h, int new_size, const char *file, int line);int			MemHandleSizeX(MemHandle h, const char *file, int line);MemPtr		MemHandleLockX(MemHandle h, const char *file, int line);void		MemHandleUnlockX(MemHandle h, const char *file, int line);MemPtr		MemPtrNewX(int size, const char *file, int line);void		MemPtrFreeX(MemPtr p, const char *file, int line);int			MemPtrSizeX(const MemPtr p, const char *file, int line);MemHandle	MemPtrRecoverHandleX(MemPtr p, const char *file, int line);void		CheckPtr(const void *ptr, int inside);void		MemMoveX(void *dst, const void *src, int size, const char *file, int line);void		MemSetX(void *dst, int size, int val, const char *file, int line);int			MemCmpX(const void *p1, const void *p2, int n, const char *file, int line);char*		StrRevChrX(const char *, int c, const char *file, int line);int			StrLenX(const char *, const char *file, int line);char*		StrCopyX(char *dst, const char *src, const char *file, int line);char*		StrCatX(char *dst, const char *src, const char *file, int line);int			StrCompareX(const char *a, const char *b, const char *file, int line);char*		StrChrX(const char *src, int c, const char *file, int line);int			StrCaselessCompareX(const char *s1, const char *s2, const char *file, int line);int			StrNCaselessCompareSM(const char *s1, const char *s2, int n);int			StrNCaselessCompareX(const char *s1, const char *s2, int n, const char *file, int line);char*		StrNCatX(char *dst, const char *src, int n, const char *file, int line);char*		StrNCopyX(char *dst, const char *src, int n, const char *file, int line);int	   		StrNCompareX(const char *a, const char *b, int n, const char *file, int line);char*		StrStrX(const char *s1, const char *s2, const char *file, int line);char*		StrErrorX(int err, const char *file, int line);#if !defined(UMM_MODULE)/**	C Memory Manager*/#if defined(CHECK_PTRS_LEV2)#define		malloc(n)		MemPtrNewX((n), __FILE__, __LINE__)#define		free(p)			MemPtrFreeX((p), __FILE__, __LINE__)#define		realloc(p,n)	MemPtrResizeX((p), (n), __FILE__, __LINE__)#else#include <stdlib.h>#endif/**	C String Library*/#if defined(CHECK_PTRS_LEV2)#define		memcpy(a,b,c)	MemMoveX((a),(b),(c), __FILE__, __LINE__)#define		memset(a,b,c)	MemSetX((a),(c),(b), __FILE__, __LINE__)#define		strlen(a)		StrLenX((a), __FILE__, __LINE__)#define		strcpy(a,b)		StrCopyX((a),(b), __FILE__, __LINE__)#define		strcat(a,b)		StrCatX((a),(b), __FILE__, __LINE__)#define		strcmp(a,b)		StrCompareX((a),(b), __FILE__, __LINE__)#define		strncmp(a,b,c)	StrNCompareX((a),(b),(c), __FILE__, __LINE__)#define		strchr(a,b)		StrChrX((a),(b), __FILE__, __LINE__)#define		stricmp(a,b)	StrCaselessCompareX((a),(b), __FILE__, __LINE__)#define		strncpy(a,b,c)	StrNCopyX((a),(b),(c), __FILE__, __LINE__)#define		strrchr(a,b)	StrRevChrX((a),(b), __FILE__, __LINE__)#define		strerror(a)		StrErrorX((a), __FILE__, __LINE__)#define		bzero(a,n)		MemSetX((a),(n),0, __FILE__, __LINE__)#define		strstr(a,b)		StrStrX((a),(b), __FILE__, __LINE__)#else#include <string.h>#endif/**	PalmOS Memory Manager*/#define		MemHandleNew(h)			MemHandleNewX((h), __FILE__, __LINE__)#define		MemHandleFree(h)		MemHandleFreeX((h), __FILE__, __LINE__)#define		MemHandleResize(h,n)	MemHandleResizeX((h), (n), __FILE__, __LINE__)#define		MemHandleSize(h)		MemHandleSizeX((h), __FILE__, __LINE__)#define		MemHandleLock(h)		MemHandleLockX((h), __FILE__, __LINE__)#define		MemHandleUnlock(h)		MemHandleUnlockX((h), __FILE__, __LINE__)#define		MemPtrNew(n)			MemPtrNewX((n), __FILE__, __LINE__)#define		MemPtrFree(p)			MemPtrFreeX((p), __FILE__, __LINE__)#define		MemPtrSize(p)			MemPtrSizeX((p), __FILE__, __LINE__)#define		MemPtrRecoverHandle(p)	MemPtrRecoverHandleX((p), __FILE__, __LINE__)/**	PalmOS String Library*/#if defined(CHECK_PTRS_LEV2)#define		MemMove(a,b,c)		MemMoveX((a),(b),(c), __FILE__, __LINE__)#define		MemSet(a,b,c)		MemSetX((a),(b),(c), __FILE__, __LINE__)#define		StrLen(a)			StrLenX((a), __FILE__, __LINE__)#define		StrCopy(a,b)		StrCopyX((a),(b), __FILE__, __LINE__)#define		StrCat(a,b)			StrCatX((a),(b), __FILE__, __LINE__)#define		StrCompare(a,b)		StrCompareX((a),(b), __FILE__, __LINE__)#define		StrNCompare(a,b,c)	StrNCompareX((a),(b),(c), __FILE__, __LINE__)#define		StrChr(a,b)			StrChrX((a),(b), __FILE__, __LINE__)#define		StrCaselessCompare(a,b)	StrCaselessCompareX((a),(b), __FILE__, __LINE__)#define		StrNCaselessCompare(a,b,c)	StrNCaselessCompareX((a),(b),(c), __FILE__, __LINE__)#define		StrNCopy(a,b,c)		StrNCopyX((a),(b),(c), __FILE__, __LINE__)#define		StrStr(a,b)			StrStrX((a),(b), __FILE__, __LINE__)#else#define		StrNCaselessCompare(a,b,c)	StrNCaselessCompareSM((a),(b),(c))#endif#endif#if defined(__cplusplus)}#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -