亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mem.h

?? GESPI 2.0動態系統模擬工具  
?? H
字號:
/*_ mem.h   Fri May 26 1989   Modified by: Walter Bright */
/* Copyright 1986-1991 by Walter Bright		*/
/* All Rights Reserved				*/
/* Written by Walter Bright			*/

#ifndef MEM_H
#define MEM_H	1

#ifndef P
#include	"toolkit.h"
#endif

/*
 * Memory management routines.
 *
 * Compiling:
 *
 *	#define MEM_DEBUG 1 when compiling to enable extended debugging
 *	features.
 *
 * Features always enabled:
 *
 *	o mem_init() is called at startup, and mem_term() at
 *	  close, which checks to see that the number of alloc's is
 *	  the same as the number of free's.
 *	o Behavior on out-of-memory conditions can be controlled
 *	  via mem_setexception().
 *
 * Extended debugging features:
 *
 *	o Enabled by #define MEM_DEBUG 1 when compiling.
 *	o Check values are inserted before and after the alloc'ed data
 *	  to detect pointer underruns and overruns.
 *	o Free'd pointers are checked against alloc'ed pointers.
 *	o Free'd storage is cleared to smoke out references to free'd data.
 *	o Realloc'd pointers are always changed, and the previous storage
 *	  is cleared, to detect erroneous dependencies on the previous
 *	  pointer.
 *	o The routine mem_checkptr() is provided to check an alloc'ed
 *	  pointer.
 */

/********************* GLOBAL VARIABLES *************************/

extern int mem_inited;		/* != 0 if mem package is initialized.	*/
				/* Test this if you have other packages	*/
				/* that depend on mem being initialized	*/

/********************* PUBLIC FUNCTIONS *************************/

/***********************************
 * Set behavior when mem runs out of memory.
 * Input:
 *	flag =	MEM_ABORTMSG:	Abort the program with the message
 *				'Fatal error: out of memory' sent
 *				to stdout. This is the default behavior.
 *		MEM_ABORT:	Abort the program with no message.
 *		MEM_RETNULL:	Return NULL back to caller.
 *		MEM_CALLFP:	Call application-specified function.
 *				fp must be supplied.
 *	fp			Optional function pointer. Supplied if
 *				(flag == MEM_CALLFP). This function returns
 *				MEM_XXXXX, indicating what mem should do next.
 *				The function could do things like swap
 *				data out to disk to free up more memory.
 *	fp could also return:
 *		MEM_RETRY:	Try again to allocate the space. Be
 *				careful not to go into an infinite loop.
 */

#if __ZTC__
enum MEM_E { MEM_ABORTMSG, MEM_ABORT, MEM_RETNULL, MEM_CALLFP, MEM_RETRY };
void mem_setexception P((enum MEM_E,...));
#else
#define MEM_ABORTMSG	0
#define MEM_ABORT	1
#define MEM_RETNULL	2
#define MEM_CALLFP	3
#define MEM_RETRY	4
void mem_setexception P((int,...));
#endif


/****************************
 * Allocate space for string, copy string into it, and
 * return pointer to the new string.
 * This routine doesn't really belong here, but it is used so often
 * that I gave up and put it here.
 * Use:
 *	char *mem_strdup(const char *s);
 * Returns:
 *	pointer to copied string if succussful.
 *	else returns NULL (if MEM_RETNULL)
 */

char *mem_strdup P((const char *));

/**************************
 * Function so we can have a pointer to function mem_free().
 * This is needed since mem_free is sometimes defined as a macro,
 * and then the preprocessor screws up.
 * The pointer to mem_free() is used frequently with the list package.
 * Use:
 *	void mem_freefp(void *p);
 */

/***************************
 * Check for errors. This routine does a consistency check on the
 * storage allocator, looking for corrupted data. It should be called
 * when the application has CPU cycles to burn.
 * Use:
 *	void mem_check(void);
 */

void mem_check P((void ));

/***************************
 * Check ptr to see if it is in the range of allocated data.
 * Cause assertion failure if it isn't.
 */

void mem_checkptr P((void *ptr));

/***************************
 * Allocate and return a pointer to numbytes of storage.
 * Use:
 *	void *mem_malloc(unsigned numbytes);
 *	void *mem_calloc(unsigned numbytes); allocated memory is cleared
 * Input:
 *	numbytes	Number of bytes to allocate
 * Returns:
 *	if (numbytes > 0)
 *		pointer to allocated data, NULL if out of memory
 *	else
 *		return NULL
 */

void *mem_malloc P((unsigned));
void *mem_calloc P((unsigned));

/*****************************
 * Reallocate memory.
 * Use:
 *	void *mem_realloc(void *ptr,unsigned numbytes);
 */

void *mem_realloc P((void *,unsigned));

/*****************************
 * Free memory allocated by mem_malloc(), mem_calloc() or mem_realloc().
 * Use:
 *	void mem_free(void *ptr);
 */

void mem_free P((void *));

/***************************
 * Initialize memory handler.
 * Use:
 *	void mem_init(void);
 * Output:
 *	mem_inited = 1
 */

void mem_init P((void ));

/***************************
 * Terminate memory handler. Useful for checking for errors.
 * Use:
 *	void mem_term(void);
 * Output:
 *	mem_inited = 0
 */

void mem_term P((void ));

/*******************************
 * Allocate memory and clear it.
 * This routine is special in that no overhead is kept for what
 * the size of the allocated block is. Thus, the application needs
 * too keep track of that. Free only with mem_sfree().
 */

#if MEM_DEBUG || !__ZTC__
#define mem_scalloc mem_calloc
#else
void *mem_scalloc P((size_t numbytes));
#endif

/*******************************
 * Free memory allocated with mem_scalloc().
 * Input:
 *	ptr	value returned by mem_scalloc().
 *	numbytes	size (must be same value as passed to mem_scalloc())
 */

#if MEM_DEBUG || !__ZTC__
#define mem_sfree(ptr,size) mem_free(ptr)
#else
void mem_sfree P((void *ptr, size_t numbytes));
#endif

/* The following stuff forms the implementation rather than the
 * definition, so ignore it.
 */

#if MEM_DEBUG		/* if creating debug version	*/
#define mem_strdup(p)	mem_strdup_debug((p),__FILE__,__LINE__)
#define mem_malloc(u)	mem_malloc_debug((u),__FILE__,__LINE__)
#define mem_calloc(u)	mem_calloc_debug((u),__FILE__,__LINE__)
#define mem_realloc(p,u)	mem_realloc_debug((p),(u),__FILE__,__LINE__)
#define mem_free(p)	mem_free_debug((p),__FILE__,__LINE__)

char *mem_strdup_debug	P((const char *,char *,int));
void *mem_calloc_debug	P((unsigned,char *,int));
void *mem_malloc_debug	P((unsigned,char *,int));
void *mem_realloc_debug P((void *,unsigned,char *,int));
void  mem_free_debug	P((void *,char *,int));
void  mem_freefp	P((void *));

void mem_setnewfileline P((void *,char *,int));

#else

#define mem_freefp	mem_free
#define mem_check()
#define mem_checkptr(p)

#endif /* MEM_DEBUG */

#endif /* MEM_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99v久久综合狠狠综合久久| 欧美一级专区免费大片| 中文字幕一区二区三区四区不卡| 久久不见久久见免费视频7 | 精品少妇一区二区| 日本成人中文字幕在线视频| 日韩精品专区在线影院观看| 国产成人精品一区二| 成人欧美一区二区三区白人 | 亚洲人被黑人高潮完整版| 91丨九色丨尤物| 亚洲主播在线播放| 欧美一区二区私人影院日本| 国内精品写真在线观看| 国产精品看片你懂得| 色婷婷狠狠综合| 五月婷婷久久丁香| 久久在线观看免费| 国产一区二区三区久久久| 精品国产乱码久久久久久牛牛| 国产乱码精品一区二区三| 亚洲三级电影网站| 9191久久久久久久久久久| 国产精品综合一区二区三区| 亚洲欧美成人一区二区三区| 91精品国产高清一区二区三区蜜臀| 久久精品国产网站| 亚洲精品国产第一综合99久久| 欧美喷水一区二区| 国产白丝精品91爽爽久久| 亚洲在线一区二区三区| 精品国产乱码久久久久久老虎 | 精品sm捆绑视频| 色综合中文综合网| 久久久久国产成人精品亚洲午夜| 国产乱码精品一区二区三区av | 日韩欧美成人激情| 国产成人免费视频网站高清观看视频| 中文字幕在线免费不卡| 欧美午夜寂寞影院| 寂寞少妇一区二区三区| 国产精品网站一区| 欧美精品在线观看一区二区| 激情图区综合网| 中文字幕在线观看一区二区| 欧美精品777| 国产成人av电影| 亚洲a一区二区| 国产精品久久毛片| 欧美成人精品二区三区99精品| 色婷婷精品久久二区二区蜜臀av | 在线日韩一区二区| 成人免费高清视频| 韩国精品一区二区| 日韩电影在线观看网站| 一区二区三区不卡在线观看| 中文字幕乱码久久午夜不卡| 精品国产乱码久久久久久蜜臀| 欧美日韩国产三级| 欧美日本国产视频| 91免费在线播放| 成人毛片老司机大片| 久久爱另类一区二区小说| 国产精品一区二区在线播放| 亚洲精品日韩综合观看成人91| 欧美一级片在线观看| 色妞www精品视频| 波多野结衣一区二区三区| 加勒比av一区二区| 久久精品国产亚洲aⅴ| 日韩电影在线一区二区| 丝袜脚交一区二区| 三级久久三级久久久| 性欧美大战久久久久久久久| 亚洲欧美一区二区不卡| 亚洲欧洲综合另类| 亚洲欧美激情在线| 中文字幕在线不卡一区二区三区| 国产色91在线| 国产精品久久久久一区二区三区| 日本一区二区三区dvd视频在线 | 国产视频一区二区在线| 久久伊人蜜桃av一区二区| 日韩美女一区二区三区四区| 日韩一区二区中文字幕| 欧美精品色综合| 欧美精品在线观看播放| 日韩三级电影网址| 欧美成人在线直播| 久久久久久久久一| 国产亚洲一本大道中文在线| 欧美一区二区三区免费大片| 精品毛片乱码1区2区3区| 精品国产乱码久久久久久久久| www成人在线观看| 久久精品一区蜜桃臀影院| 国产精品天干天干在观线| 国产精品国产三级国产aⅴ中文| 国产欧美一区二区精品性色| 久久久久高清精品| 久久精品人人做人人爽97| 久久青草国产手机看片福利盒子| 日韩免费视频一区| 欧美军同video69gay| 欧美裸体一区二区三区| 69堂国产成人免费视频| 欧美一区二区三区四区高清| 日韩一区二区三区视频在线观看| 在线成人av影院| 日韩欧美综合一区| 久久午夜电影网| 中文在线一区二区| 亚洲女同ⅹxx女同tv| 自拍偷在线精品自拍偷无码专区| 亚洲日本丝袜连裤袜办公室| 首页欧美精品中文字幕| 国产一区二区在线看| 日本高清不卡视频| 精品乱码亚洲一区二区不卡| 亚洲视频每日更新| 久久精品国产99久久6| 99国产精品国产精品久久| 在线91免费看| 亚洲欧洲av在线| 久久91精品国产91久久小草| 99精品久久99久久久久| 91精品国产综合久久精品麻豆 | 国产精品主播直播| 欧美调教femdomvk| 国产欧美日韩视频一区二区| 丝袜亚洲精品中文字幕一区| 成人深夜视频在线观看| 欧美一区二区三区视频免费播放| 国产精品女人毛片| 日韩av不卡一区二区| 91免费小视频| 国产欧美精品在线观看| 毛片一区二区三区| 色天天综合久久久久综合片| 欧美精品一区男女天堂| 天堂一区二区在线免费观看| 97久久超碰国产精品| 亚洲精品一区二区三区在线观看| 亚洲超丰满肉感bbw| 国产 日韩 欧美大片| 欧美美女激情18p| 一区二区三区欧美日韩| 国产91精品久久久久久久网曝门| 91精品在线一区二区| 亚洲国产wwwccc36天堂| 99视频在线观看一区三区| 久久精品夜色噜噜亚洲aⅴ| 日韩二区三区四区| 欧美日韩国产乱码电影| 一区二区三国产精华液| 99久久99精品久久久久久| 国产欧美精品国产国产专区| 久久成人精品无人区| 欧美日韩国产综合一区二区三区| 亚洲激情在线播放| 91免费视频网址| 国产精品的网站| 成人涩涩免费视频| 欧美韩日一区二区三区| 国产jizzjizz一区二区| 久久久五月婷婷| 国产资源在线一区| 欧美tickle裸体挠脚心vk| 六月丁香婷婷色狠狠久久| 日韩美女视频在线| 麻豆成人91精品二区三区| 欧美一区二区福利视频| 麻豆久久一区二区| 日韩精品中文字幕一区二区三区| 蜜桃视频免费观看一区| 精品国产精品一区二区夜夜嗨| 热久久一区二区| 日韩一区二区免费在线电影| 美女视频一区二区三区| 日韩免费高清电影| 国产酒店精品激情| 国产精品婷婷午夜在线观看| 91视频观看视频| 亚洲一区二区精品视频| 在线不卡中文字幕播放| 久久99国产乱子伦精品免费| 2022国产精品视频| 成人av在线资源网| 亚洲欧美aⅴ...| 欧美人伦禁忌dvd放荡欲情| 视频一区在线视频| 久久综合九色综合97婷婷 | 91老师片黄在线观看| 亚洲一区日韩精品中文字幕| 91久久人澡人人添人人爽欧美| 亚洲一区二区在线播放相泽| 91精品国产综合久久国产大片| 国产精品羞羞答答xxdd| 自拍偷拍国产亚洲| 欧美精品丝袜久久久中文字幕|