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

📄 fut0lst.ic

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 IC
字号:
/**********************************************************************File-based list utilities(c) 1995 Innobase OyCreated 11/28/1995 Heikki Tuuri***********************************************************************/#include "fut0fut.h"#include "mtr0log.h"#include "buf0buf.h"/* We define the field offsets of a node for the list */#define FLST_PREV	0	/* 6-byte address of the previous list element;				the page part of address is FIL_NULL, if no				previous element */#define FLST_NEXT	FIL_ADDR_SIZE	/* 6-byte address of the next				list element; the page part of address				is FIL_NULL, if no next element *//* We define the field offsets of a base node for the list */#define FLST_LEN	0	/* 32-bit list length field */#define	FLST_FIRST	4	/* 6-byte address of the first element				of the list; undefined if empty list */#define	FLST_LAST	(4 + FIL_ADDR_SIZE) /* 6-byte address of the				last element of the list; undefined				if empty list *//************************************************************************Writes a file address. */UNIV_INLINEvoidflst_write_addr(/*============*/	fil_faddr_t*	faddr,	/* in: pointer to file faddress */	fil_addr_t	addr,	/* in: file address */	mtr_t*		mtr)	/* in: mini-transaction handle */{	ut_ad(faddr && mtr);	ut_ad(mtr_memo_contains(mtr, buf_block_align(faddr),							MTR_MEMO_PAGE_X_FIX));	mlog_write_ulint(faddr + FIL_ADDR_PAGE, addr.page, MLOG_4BYTES, mtr); 	mlog_write_ulint(faddr + FIL_ADDR_BYTE, addr.boffset,							MLOG_2BYTES, mtr); }/************************************************************************Reads a file address. */UNIV_INLINEfil_addr_tflst_read_addr(/*===========*/				/* out: file address */	fil_faddr_t*	faddr,	/* in: pointer to file faddress */	mtr_t*		mtr)	/* in: mini-transaction handle */{	fil_addr_t	addr;	ut_ad(faddr && mtr);	addr.page = mtr_read_ulint(faddr + FIL_ADDR_PAGE, MLOG_4BYTES, mtr); 	addr.boffset = mtr_read_ulint(faddr + FIL_ADDR_BYTE, MLOG_2BYTES, 								mtr);	return(addr); }/************************************************************************Initializes a list base node. */UNIV_INLINEvoidflst_init(/*======*/	flst_base_node_t*	base,	/* in: pointer to base node */	mtr_t*			mtr)	/* in: mini-transaction handle */{	ut_ad(mtr_memo_contains(mtr, buf_block_align(base),							MTR_MEMO_PAGE_X_FIX));	mlog_write_ulint(base + FLST_LEN, 0, MLOG_4BYTES, mtr); 	flst_write_addr(base + FLST_FIRST, fil_addr_null, mtr); 	flst_write_addr(base + FLST_LAST, fil_addr_null, mtr); }/************************************************************************Gets list length. */UNIV_INLINEulintflst_get_len(/*=========*/					/* out: length */	flst_base_node_t*	base,	/* in: pointer to base node */	mtr_t*			mtr)	/* in: mini-transaction handle */{	return(mtr_read_ulint(base + FLST_LEN, MLOG_4BYTES, mtr));}/************************************************************************Gets list first node address. */UNIV_INLINEfil_addr_tflst_get_first(/*===========*/					/* out: file address */	flst_base_node_t*	base,	/* in: pointer to base node */	mtr_t*			mtr)	/* in: mini-transaction handle */{	return(flst_read_addr(base + FLST_FIRST, mtr));}/************************************************************************Gets list last node address. */UNIV_INLINEfil_addr_tflst_get_last(/*==========*/					/* out: file address */	flst_base_node_t*	base,	/* in: pointer to base node */	mtr_t*			mtr)	/* in: mini-transaction handle */{	return(flst_read_addr(base + FLST_LAST, mtr));}/************************************************************************Gets list next node address. */UNIV_INLINEfil_addr_tflst_get_next_addr(/*===============*/				/* out: file address */	flst_node_t*	node,	/* in: pointer to node */	mtr_t*		mtr)	/* in: mini-transaction handle */{	return(flst_read_addr(node + FLST_NEXT, mtr));}/************************************************************************Gets list prev node address. */UNIV_INLINEfil_addr_tflst_get_prev_addr(/*===============*/				/* out: file address */	flst_node_t*	node,	/* in: pointer to node */	mtr_t*		mtr)	/* in: mini-transaction handle */{	return(flst_read_addr(node + FLST_PREV, mtr));}

⌨️ 快捷键说明

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