hash0hash.ic

来自「这是linux下运行的mysql软件包,可用于linux 下安装 php + m」· IC 代码 · 共 131 行

IC
131
字号
/******************************************************The simple hash table utility(c) 1997 Innobase OyCreated 5/20/1997 Heikki Tuuri*******************************************************/#include "ut0rnd.h"/****************************************************************Gets the nth cell in a hash table. */UNIV_INLINEhash_cell_t*hash_get_nth_cell(/*==============*/				/* out: pointer to cell */	hash_table_t* 	table,	/* in: hash table */	ulint 		n)	/* in: cell index */{	ut_ad(n < table->n_cells);	return(table->array + n);}/*****************************************************************Returns the number of cells in a hash table. */UNIV_INLINEulinthash_get_n_cells(/*=============*/				/* out: number of cells */	hash_table_t*	table)	/* in: table */{	return(table->n_cells);}/******************************************************************Calculates the hash value from a folded value. */UNIV_INLINEulinthash_calc_hash(/*===========*/				/* out: hashed value */	ulint		fold,	/* in: folded value */	hash_table_t*	table)	/* in: hash table */{	return(ut_hash_ulint(fold, table->n_cells));}/****************************************************************Gets the mutex index for a fold value in a hash table. */UNIV_INLINEulinthash_get_mutex_no(/*==============*/				/* out: mutex number */	hash_table_t* 	table,	/* in: hash table */	ulint 		fold)	/* in: fold */{	return(ut_2pow_remainder(fold, table->n_mutexes));}/****************************************************************Gets the nth heap in a hash table. */UNIV_INLINEmem_heap_t*hash_get_nth_heap(/*==============*/				/* out: mem heap */	hash_table_t* 	table,	/* in: hash table */	ulint 		i)	/* in: index of the heap */{	ut_ad(i < table->n_mutexes);	return(table->heaps[i]);}/****************************************************************Gets the heap for a fold value in a hash table. */UNIV_INLINEmem_heap_t*hash_get_heap(/*==========*/				/* out: mem heap */	hash_table_t* 	table,	/* in: hash table */	ulint 		fold)	/* in: fold */{	ulint	i;	if (table->heap) {		return(table->heap);	}	i = hash_get_mutex_no(table, fold);	return(hash_get_nth_heap(table, i));}/****************************************************************Gets the nth mutex in a hash table. */UNIV_INLINEmutex_t*hash_get_nth_mutex(/*===============*/				/* out: mutex */	hash_table_t* 	table,	/* in: hash table */	ulint 		i)	/* in: index of the mutex */{	ut_ad(i < table->n_mutexes);		return(table->mutexes + i);}/****************************************************************Gets the mutex for a fold value in a hash table. */UNIV_INLINEmutex_t*hash_get_mutex(/*===========*/				/* out: mutex */	hash_table_t* 	table,	/* in: hash table */	ulint 		fold)	/* in: fold */{	ulint	i;	i = hash_get_mutex_no(table, fold);	return(hash_get_nth_mutex(table, i));}

⌨️ 快捷键说明

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