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

📄 mach0data.c

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 C
字号:
/**********************************************************************Utilities for converting data from the database fileto the machine format. (c) 1995 Innobase OyCreated 11/28/1995 Heikki Tuuri***********************************************************************/#include "mach0data.h"#ifdef UNIV_NONINL#include "mach0data.ic"#endif/*************************************************************Reads a ulint in a compressed form if the log record fully contains it. */byte*mach_parse_compressed(/*==================*/			/* out: pointer to end of the stored field, NULL if			not complete */	byte*   ptr,   	/* in: pointer to buffer from where to read */	byte*	end_ptr,/* in: pointer to end of the buffer */	ulint*	val)	/* out: read value (< 2^32) */ {	ulint	flag;	ut_ad(ptr && end_ptr && val);	if (ptr >= end_ptr) {		return(NULL);	}	flag = mach_read_from_1(ptr);	if (flag < 0x80UL) {		*val = flag;		return(ptr + 1);			} else if (flag < 0xC0UL) {		if (end_ptr < ptr + 2) {			return(NULL);		}					*val = mach_read_from_2(ptr) & 0x7FFFUL;		return(ptr + 2);			} else if (flag < 0xE0UL) {		if (end_ptr < ptr + 3) {			return(NULL);		}					*val = mach_read_from_3(ptr) & 0x3FFFFFUL;		return(ptr + 3);	} else if (flag < 0xF0UL) {		if (end_ptr < ptr + 4) {			return(NULL);		}					*val = mach_read_from_4(ptr) & 0x1FFFFFFFUL;		return(ptr + 4);	} else {		ut_ad(flag == 0xF0UL);		if (end_ptr < ptr + 5) {			return(NULL);		}		*val = mach_read_from_4(ptr + 1);		return(ptr + 5);	}}/*************************************************************Reads a dulint in a compressed form if the log record fully contains it. */byte*mach_dulint_parse_compressed(/*=========================*/			/* out: pointer to end of the stored field, NULL if			not complete */	byte*   ptr,   	/* in: pointer to buffer from where to read */	byte*	end_ptr,/* in: pointer to end of the buffer */	dulint*	val)	/* out: read value */ {	ulint	high;	ulint	low;	ulint	size;	ut_ad(ptr && end_ptr && val);	if (end_ptr < ptr + 5) {		return(NULL);	}	high = mach_read_compressed(ptr);	size = mach_get_compressed_size(high);	ptr += size;	if (end_ptr < ptr + 4) {		return(NULL);	}	low = mach_read_from_4(ptr);	*val = ut_dulint_create(high, low);	return(ptr + 4); }

⌨️ 快捷键说明

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