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

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

?? erl_memory_trace_block_table.c

?? OTP是開放電信平臺的簡稱
?? C
?? 第 1 頁 / 共 2 頁
字號:
static INLINE intgrow_table(emtbt_table *table){    if (table->current_size_index < sizeof(table_sizes)/sizeof(int)) {	int new_size;	table->current_size_index++;	new_size = table_sizes[table->current_size_index];	ASSERT(new_size > 0);	return resize_table(table, new_size);    }    return 1;}static INLINE voidshrink_table(emtbt_table *table){    if (table->current_size_index > 0) {	int new_size;	table->current_size_index--;	new_size = table_sizes[table->current_size_index];	ASSERT(new_size > 0);	(void) resize_table(table, new_size);    }}static INLINE emtbt_block *peek_block(emtbt_table *table, usgnd_int_max ptr){    emtbt_block **bucket;    emtbt_block *block;    usgnd_int_32 hash;    MK_HASH(hash, ptr, table->is_64_bit);    bucket = &table->buckets[hash % table->no_of_buckets];    block = *bucket;    if (!block)	return NULL;    while (block->bucket == bucket) {	ASSERT(block);	if (block->pointer == ptr)	    return block;	if (!block->next)	    break;	block = block->next;    }    return NULL;}static INLINE intinsert_block(emtbt_table *table, emtbt_block *block){    emtbt_block **bucket;    emtbt_block *tmp_block;    usgnd_int_32 hash;    usgnd_int_max p;#if HARD_DEBUG    check_table(table);#endif    if (table->used_buckets >= table->max_used_buckets) {	if(!grow_table(table))	    return -1;    }    p = block->pointer;    MK_HASH(hash, p, table->is_64_bit);    block->hash = hash;    bucket = &table->buckets[hash % table->no_of_buckets];    tmp_block = *bucket;    if (tmp_block) {	while (tmp_block->bucket == bucket) {	    if (tmp_block->pointer == p)		return 0;	    if (!tmp_block->next)		break;	    tmp_block = tmp_block->next;	}    }    link_block(table, bucket, block);    ASSERT(block == peek_block(table, p));    return 1;}static INLINE voiddelete_block(emtbt_table *table, emtbt_block *block){    emtbt_block **bucket;    if (!block)	return;#if HARD_DEBUG    check_table(table);#endif    bucket = block->bucket;    ASSERT(bucket);    if (block->prev)	block->prev->next = block->next;    else	table->blocks = block->next;    if (block->next)	block->next->prev = block->prev;    if (block == *bucket) {	ASSERT(!block->prev || block->prev->bucket != bucket);	if (block->next && block->next->bucket == bucket)	    *bucket = block->next;	else {	    ASSERT(table->used_buckets > 0);	    *bucket = NULL;	    table->used_buckets--;	}    }#ifdef DEBUG    block->next = ((emtbt_block *) 0xfffffff0);    block->prev = ((emtbt_block *) 0xfffffff0);    block->bucket = ((emtbt_block **) 0xfffffff0);#endif    ASSERT(table->no_blocks > 0);    table->no_blocks--;    if (table->used_buckets < table->min_used_buckets)	shrink_table(table);#if HARD_DEBUG    check_table(table);#endif}static INLINE emtbt_block *fetch_block(emtbt_table *table, usgnd_int_max ptr){    emtbt_block *block;    block = peek_block(table, ptr);    delete_block(table, block);    return block;}const char *emtbt_error_string(int error){    switch (error) {    case EMTBT_ALLOC_XBLK_ERROR:	return "Allocation to an already existing block";    case EMTBT_REALLOC_NOBLK_ERROR:	return "Reallocation of non-existing block";    case EMTBT_REALLOC_XBLK_ERROR:	return "Reallocation to an already existing block";    case EMTBT_REALLOC_BLK_TYPE_MISMATCH:	return "Block types mismatch when reallocating";    case EMTBT_FREE_NOBLK_ERROR:	return "Deallocation of non-existing block";    case EMTBT_FREE_BLK_TYPE_MISMATCH:	return "Block types mismatch when deallocating";    case EMTBT_INTERNAL_ERROR:	return "Block table internal error";    default:	return NULL;    }}emtbt_table *emtbt_new_table(int is_64_bit,		void * (*alloc)(size_t),		void * (*realloc)(void *, size_t),		void   (*free)(void *)){    emtbt_table *tab = (*alloc)(sizeof(emtbt_table));    if (tab) {	tab->alloc = alloc;	tab->realloc = realloc;	tab->free = free;	tab->is_64_bit = is_64_bit;	tab->no_blocks = 0;	tab->no_of_buckets = 0;	tab->max_used_buckets = 0;	tab->min_used_buckets = 0;	tab->used_buckets = 0;	tab->current_size_index = 0;	tab->blocks = NULL;	tab->buckets = NULL;	tab->block_pools = NULL;	tab->free_blocks = NULL;	tab->blocks_per_pool = EMTBT_BLOCKS_PER_POOL;    }    return tab;}voidemtbt_destroy_table(emtbt_table *tab){    void (*freep)(void *);    emtbt_block_pool *poolp1, *poolp2;    freep = tab->free;    /* Free block pools */    poolp1 = tab->block_pools;    while (poolp1) {	poolp2 = poolp1;	poolp1 = poolp1->next;	(*freep)((void *) poolp2);    }    if (tab->buckets)	(*freep)((void *) tab->buckets);    (*freep)((void *) tab);}#define CP_BLK(TO, FROM)						\do {									\    (TO)->time.secs	= (FROM)->time.secs;				\    (TO)->time.usecs	= (FROM)->time.usecs;				\    (TO)->type		= (FROM)->type;					\    (TO)->pointer	= (FROM)->pointer;				\    (TO)->size		= (FROM)->size;					\} while (0)intemtbt_alloc_op(emtbt_table *tab, emtp_operation *op){    int res;    emtbt_block *blk;    blk = block_alloc(tab);    if (!blk)	return ENOMEM;	    blk->time.secs	= op->time.secs;    blk->time.usecs	= op->time.usecs;    blk->type		= op->u.block.type;    blk->pointer	= op->u.block.new_ptr;    blk->size		= op->u.block.new_size;    res = insert_block(tab, blk);    if (res < 0)	return ENOMEM;    else if (res == 0)	return EMTBT_ALLOC_XBLK_ERROR;    return 0;}intemtbt_realloc_op(emtbt_table *tab, emtp_operation *op, emtbt_block *old_blk){    int res;    emtbt_block *blk;    if (!op->u.block.new_size) {	/* freed block */	blk = fetch_block(tab, op->u.block.prev_ptr);	if (!blk)	    return EMTBT_REALLOC_NOBLK_ERROR;	CP_BLK(old_blk, blk);	block_free(tab, blk);    }    else {	if (!op->u.block.new_ptr) {	    /* failed operation */	    if (!op->u.block.prev_ptr)		CP_BLK(old_blk, &null_blk);	    else {		blk = peek_block(tab, op->u.block.prev_ptr);		if (!blk)		    return EMTBT_REALLOC_NOBLK_ERROR;		CP_BLK(old_blk, blk);#if 0		if (blk->type != op->u.block.type)		    return EMTBT_REALLOC_BLK_TYPE_MISMATCH;#endif	    }	}	else if (!op->u.block.prev_ptr) {	    /* new block */	    CP_BLK(old_blk, &null_blk);	    blk = block_alloc(tab);	    if (!blk)		return ENOMEM;	    blk->type		= op->u.block.type;	    blk->pointer	= op->u.block.new_ptr;	    blk->time.secs	= op->time.secs;	    blk->time.usecs	= op->time.usecs;	    blk->size		= op->u.block.new_size;	    res = insert_block(tab, blk);	    if (res < 0)		return ENOMEM;	    else if (res == 0)		return EMTBT_REALLOC_XBLK_ERROR;	}	else if (op->u.block.new_ptr == op->u.block.prev_ptr) {	    /* resized block */	    blk = peek_block(tab, op->u.block.prev_ptr);	    if (!blk)		return EMTBT_REALLOC_NOBLK_ERROR;	    CP_BLK(old_blk, blk);	    blk->time.secs	= op->time.secs;	    blk->time.usecs	= op->time.usecs;	    blk->size		= op->u.block.new_size;#if 0	    if (blk->type != op->u.block.type)		return EMTBT_REALLOC_BLK_TYPE_MISMATCH;#endif	}	else {	    /* moved block */	    blk = fetch_block(tab, op->u.block.prev_ptr);	    if (!blk)		return EMTBT_REALLOC_NOBLK_ERROR;	    CP_BLK(old_blk, blk);	    blk->time.secs	= op->time.secs;	    blk->time.usecs	= op->time.usecs;	    blk->pointer 	= op->u.block.new_ptr;	    blk->size		= op->u.block.new_size;	    res = insert_block(tab, blk);	    if (res < 0)		return ENOMEM;	    else if (res == 0)		return EMTBT_REALLOC_XBLK_ERROR;#if 0	    if (blk->type != op->u.block.type)		return EMTBT_REALLOC_BLK_TYPE_MISMATCH;#endif	}    }       return 0;}intemtbt_free_op(emtbt_table *tab, emtp_operation *op, emtbt_block *old_blk){    emtbt_block *blk;    if (!op->u.block.prev_ptr)	CP_BLK(old_blk, &null_blk);    else {	blk = fetch_block(tab, op->u.block.prev_ptr);	if (!blk)	    return EMTBT_FREE_NOBLK_ERROR;	CP_BLK(old_blk, blk);	block_free(tab, blk);#if 0	if (blk->type != op->u.block.type)	    return EMTBT_FREE_BLK_TYPE_MISMATCH;#endif    }    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
性欧美疯狂xxxxbbbb| 555夜色666亚洲国产免| 欧美国产综合一区二区| 国产成人亚洲综合色影视| 日韩三级电影网址| 久久国产精品72免费观看| 久久久一区二区| 成人高清免费在线播放| 亚洲国产一区在线观看| 日韩欧美一二区| 国产成人精品免费视频网站| 中文字幕一区二区三区在线观看| 色网站国产精品| 一二三四社区欧美黄| 亚洲精品高清在线| 欧美性猛片aaaaaaa做受| 日本va欧美va欧美va精品| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 亚洲欧美日韩小说| 欧美日韩一区二区在线视频| 日韩—二三区免费观看av| 久久精子c满五个校花| 97超碰欧美中文字幕| 日韩高清欧美激情| 国产三级一区二区三区| 欧美在线观看视频在线| 国产精品影音先锋| 一个色妞综合视频在线观看| 日韩欧美一二区| 懂色av一区二区三区免费看| 亚洲自拍偷拍九九九| 精品国产乱码久久久久久老虎| 波多野结衣中文字幕一区| 丝袜诱惑制服诱惑色一区在线观看| 精品国产自在久精品国产| 91麻豆精东视频| 韩国av一区二区| 天天影视涩香欲综合网| 中文字幕一区二区三区不卡| 日韩一区二区麻豆国产| 91欧美激情一区二区三区成人| 久久99精品国产.久久久久| 亚洲激情在线播放| 久久久另类综合| 91精品国产品国语在线不卡| 一本到不卡免费一区二区| 国产福利91精品| 日本 国产 欧美色综合| 亚洲一区二区三区四区在线 | xfplay精品久久| 在线观看视频91| 不卡av在线网| 国产一区二区剧情av在线| 亚洲超丰满肉感bbw| 国产精品久久精品日日| 久久久久国产成人精品亚洲午夜| 精品视频在线看| 国产三级精品三级在线专区| 日韩一区二区三区四区| 欧美性猛交xxxx乱大交退制版| 成人免费视频国产在线观看| 另类成人小视频在线| 日韩国产欧美视频| 亚洲丰满少妇videoshd| 亚洲精品欧美激情| 亚洲男人都懂的| ㊣最新国产の精品bt伙计久久| 久久久久9999亚洲精品| 精品成a人在线观看| 91麻豆精品国产自产在线| 欧美高清dvd| 欧美精品三级在线观看| 欧美性猛交xxxxxxxx| 91成人国产精品| 91福利在线观看| 99精品久久只有精品| aaa亚洲精品| 91丨九色丨蝌蚪丨老版| 99r国产精品| 91亚洲精品久久久蜜桃网站| 成a人片亚洲日本久久| proumb性欧美在线观看| 91美女在线视频| 欧美亚洲尤物久久| 欧美网站大全在线观看| 欧美日本免费一区二区三区| 在线成人av网站| 欧美一区二区三区在线| 精品国产凹凸成av人网站| 久久综合狠狠综合久久激情 | 亚洲一二三四区| 成人午夜电影网站| 99re免费视频精品全部| 欧美在线三级电影| 欧美精品视频www在线观看| 日韩西西人体444www| 久久久国际精品| 国产精品久久久久久一区二区三区| 亚洲免费视频成人| 肉色丝袜一区二区| 国内精品嫩模私拍在线| 成人黄色av电影| 欧美无砖专区一中文字| 日韩女优毛片在线| 亚洲国产高清在线观看视频| 亚洲精选视频在线| 免费成人在线视频观看| 国产不卡高清在线观看视频| 色视频一区二区| 欧美电视剧免费全集观看| 国产欧美日本一区二区三区| 亚洲制服丝袜av| 国内精品自线一区二区三区视频| 成人av先锋影音| 91精品国产综合久久久久久久久久 | 制服丝袜亚洲网站| 国产女同互慰高潮91漫画| 亚洲制服丝袜在线| 国产成人av电影在线观看| 日本韩国一区二区| www国产精品av| www.欧美色图| 欧美一卡2卡3卡4卡| 中文子幕无线码一区tr| 日韩经典一区二区| 9i看片成人免费高清| 日韩一区二区三区在线视频| 国产精品久久久久久亚洲毛片| 日韩中文字幕91| av亚洲精华国产精华精华| 日韩一区二区三区三四区视频在线观看| 国产色一区二区| 奇米一区二区三区| 欧美伊人久久久久久午夜久久久久| 精品国产人成亚洲区| 亚洲综合色成人| av日韩在线网站| 久久综合中文字幕| 石原莉奈在线亚洲二区| 一本到不卡精品视频在线观看| 久久在线观看免费| 亚洲香肠在线观看| 91在线高清观看| 日本一区二区免费在线观看视频| 日日夜夜免费精品| 在线观看91视频| 亚洲视频电影在线| 成人综合婷婷国产精品久久| 日韩欧美中文一区| 婷婷综合在线观看| 欧美亚洲自拍偷拍| 亚洲精品少妇30p| 91丨porny丨户外露出| 日本一区二区三区久久久久久久久不 | 欧美精选在线播放| 一区二区三区资源| av一区二区久久| 欧美国产激情二区三区| 国产酒店精品激情| 日韩欧美黄色影院| 日本成人在线看| 欧美一区二区精品在线| 丝袜a∨在线一区二区三区不卡 | 国产91综合网| 国产亚洲欧美激情| 国产精品综合二区| 国产日韩欧美精品在线| 国产麻豆成人精品| 久久夜色精品国产噜噜av| 国内精品在线播放| 国产欧美日韩激情| 国产suv一区二区三区88区| 欧美激情一区二区三区蜜桃视频 | 色欧美片视频在线观看在线视频| 国产精品美女久久久久久久久久久 | 欧美老肥妇做.爰bbww视频| 亚洲国产日韩综合久久精品| 欧美日韩一级二级| 人人爽香蕉精品| 久久影院午夜片一区| 粉嫩13p一区二区三区| 中文字幕亚洲在| 在线看不卡av| 欧美午夜免费电影| 亚洲成人tv网| 精品裸体舞一区二区三区| 国精产品一区一区三区mba桃花 | 中国色在线观看另类| 91天堂素人约啪| 日韩成人一区二区| 欧美精品一区视频| 99久久精品一区二区| 亚洲大尺度视频在线观看| 日韩欧美在线123| 成人性生交大片免费看中文 | 欧美做爰猛烈大尺度电影无法无天| 亚洲韩国精品一区| 精品久久人人做人人爰| 成年人国产精品| 日本成人在线看|