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

📄 mach0data.h

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 H
字号:
/**********************************************************************Utilities for converting data from the database fileto the machine format. (c) 1995 Innobase OyCreated 11/28/1995 Heikki Tuuri***********************************************************************/#ifndef mach0data_h#define mach0data_h#include "univ.i"#include "ut0byte.h"/* The data and all fields are always stored in a database filein the same format: ascii, big-endian, ... .All data in the files MUST be accessed using the functions in thismodule. *//***********************************************************The following function is used to store data in one byte. */UNIV_INLINEvoid mach_write_to_1(/*============*/	byte*   b,      /* in: pointer to byte where to store */	ulint   n);      /* in: ulint integer to be stored, >= 0, < 256 */ /************************************************************The following function is used to fetch data from one byte. */UNIV_INLINEulint mach_read_from_1(/*=============*/			/* out: ulint integer, >= 0, < 256 */	byte*   b);      /* in: pointer to byte *//***********************************************************The following function is used to store data in two consecutivebytes. We store the most significant byte to the lower address. */UNIV_INLINEvoid mach_write_to_2(/*============*/	byte*   b,      /* in: pointer to two bytes where to store */	ulint   n);      /* in: ulint integer to be stored, >= 0, < 64k */ /************************************************************The following function is used to fetch data from two consecutivebytes. The most significant byte is at the lowest address. */UNIV_INLINEulint mach_read_from_2(/*=============*/			/* out: ulint integer, >= 0, < 64k */	byte*   b);      /* in: pointer to two bytes *//************************************************************The following function is used to convert a 16-bit data itemto the canonical format, for fast bytewise equality testagainst memory. */UNIV_INLINEuint16mach_encode_2(/*==========*/			/* out: 16-bit integer in canonical format */	ulint	n);	/* in: integer in machine-dependent format *//************************************************************The following function is used to convert a 16-bit data itemfrom the canonical format, for fast bytewise equality testagainst memory. */UNIV_INLINEulintmach_decode_2(/*==========*/			/* out: integer in machine-dependent format */	uint16	n);	/* in: 16-bit integer in canonical format *//***********************************************************The following function is used to store data in 3 consecutivebytes. We store the most significant byte to the lowest address. */UNIV_INLINEvoid mach_write_to_3(/*============*/	byte*   b,      /* in: pointer to 3 bytes where to store */	ulint	n);      /* in: ulint integer to be stored */ /************************************************************The following function is used to fetch data from 3 consecutivebytes. The most significant byte is at the lowest address. */UNIV_INLINEulint mach_read_from_3(/*=============*/			/* out: ulint integer */	byte*   b);      /* in: pointer to 3 bytes *//***********************************************************The following function is used to store data in four consecutivebytes. We store the most significant byte to the lowest address. */UNIV_INLINEvoid mach_write_to_4(/*============*/	byte*   b,      /* in: pointer to four bytes where to store */	ulint	n);      /* in: ulint integer to be stored */ /************************************************************The following function is used to fetch data from 4 consecutivebytes. The most significant byte is at the lowest address. */UNIV_INLINEulint mach_read_from_4(/*=============*/			/* out: ulint integer */	byte*   b);      /* in: pointer to four bytes *//*************************************************************Writes a ulint in a compressed form (1..5 bytes). */UNIV_INLINEulintmach_write_compressed(/*==================*/			/* out: stored size in bytes */	byte*   b,      /* in: pointer to memory where to store */	ulint   n);     /* in: ulint integer to be stored */ /*************************************************************Returns the size of an ulint when written in the compressed form. */UNIV_INLINEulintmach_get_compressed_size(/*=====================*/			/* out: compressed size in bytes */	ulint   n);     /* in: ulint integer to be stored */ /*************************************************************Reads a ulint in a compressed form. */UNIV_INLINEulintmach_read_compressed(/*=================*/			/* out: read integer */	byte*   b);     /* in: pointer to memory from where to read *//***********************************************************The following function is used to store data in 6 consecutivebytes. We store the most significant byte to the lowest address. */UNIV_INLINEvoid mach_write_to_6(/*============*/	byte*   b,      /* in: pointer to 6 bytes where to store */	dulint	n);      /* in: dulint integer to be stored */ /************************************************************The following function is used to fetch data from 6 consecutivebytes. The most significant byte is at the lowest address. */UNIV_INLINEdulint mach_read_from_6(/*=============*/			/* out: dulint integer */	byte*   b);      /* in: pointer to 6 bytes *//***********************************************************The following function is used to store data in 7 consecutivebytes. We store the most significant byte to the lowest address. */UNIV_INLINEvoid mach_write_to_7(/*============*/	byte*   b,      /* in: pointer to 7 bytes where to store */	dulint	n);      /* in: dulint integer to be stored */ /************************************************************The following function is used to fetch data from 7 consecutivebytes. The most significant byte is at the lowest address. */UNIV_INLINEdulint mach_read_from_7(/*=============*/			/* out: dulint integer */	byte*   b);      /* in: pointer to 7 bytes *//***********************************************************The following function is used to store data in 8 consecutivebytes. We store the most significant byte to the lowest address. */UNIV_INLINEvoid mach_write_to_8(/*============*/	byte*   b,      /* in: pointer to 8 bytes where to store */	dulint	n);     /* in: dulint integer to be stored */ /************************************************************The following function is used to fetch data from 8 consecutivebytes. The most significant byte is at the lowest address. */UNIV_INLINEdulint mach_read_from_8(/*=============*/			/* out: dulint integer */	byte*   b);      /* in: pointer to 8 bytes *//*************************************************************Writes a dulint in a compressed form (5..9 bytes). */UNIV_INLINEulintmach_dulint_write_compressed(/*=========================*/			/* out: size in bytes */	byte*   b,      /* in: pointer to memory where to store */	dulint  n);     /* in: dulint integer to be stored */ /*************************************************************Returns the size of a dulint when written in the compressed form. */UNIV_INLINEulintmach_dulint_get_compressed_size(/*============================*/			/* out: compressed size in bytes */	dulint   n);    /* in: dulint integer to be stored */ /*************************************************************Reads a dulint in a compressed form. */UNIV_INLINEdulintmach_dulint_read_compressed(/*========================*/			/* out: read dulint */	byte*   b);     /* in: pointer to memory from where to read *//*************************************************************Writes a dulint in a compressed form (1..11 bytes). */UNIV_INLINEulintmach_dulint_write_much_compressed(/*==============================*/			/* out: size in bytes */	byte*   b,      /* in: pointer to memory where to store */	dulint  n);     /* in: dulint integer to be stored */ /*************************************************************Returns the size of a dulint when written in the compressed form. */UNIV_INLINEulintmach_dulint_get_much_compressed_size(/*=================================*/			/* out: compressed size in bytes */	dulint   n);     /* in: dulint integer to be stored */ /*************************************************************Reads a dulint in a compressed form. */UNIV_INLINEdulintmach_dulint_read_much_compressed(/*=============================*/			/* out: read dulint */	byte*   b);      /* in: pointer to memory from where to read *//*************************************************************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 */ /*************************************************************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 */ /*************************************************************Reads a double. It is stored in a little-endian format. */UNIV_INLINEdoublemach_double_read(/*=============*/			/* out: double read */	byte*   b);      /* in: pointer to memory from where to read *//*************************************************************Writes a double. It is stored in a little-endian format. */UNIV_INLINEvoidmach_double_write(/*==============*/	byte*   b,      /* in: pointer to memory where to write */	double 	d);	/* in: double *//*************************************************************Reads a float. It is stored in a little-endian format. */UNIV_INLINEfloatmach_float_read(/*=============*/			/* out: float read */	byte*   b);      /* in: pointer to memory from where to read *//*************************************************************Writes a float. It is stored in a little-endian format. */UNIV_INLINEvoidmach_float_write(/*==============*/	byte*   b,      /* in: pointer to memory where to write */	float 	d);	/* in: float *//*************************************************************Reads a ulint stored in the little-endian format. */UNIV_INLINEulintmach_read_from_n_little_endian(/*===========================*/				/* out: unsigned long int */	byte*	buf,		/* in: from where to read */	ulint	buf_size);	/* in: from how many bytes to read *//*************************************************************Writes a ulint in the little-endian format. */UNIV_INLINEvoidmach_write_to_n_little_endian(/*==========================*/	byte*	dest,		/* in: where to write */	ulint	dest_size,	/* in: into how many bytes to write */	ulint	n);		/* in: unsigned long int to write *//*************************************************************Reads a ulint stored in the little-endian format. */UNIV_INLINEulintmach_read_from_2_little_endian(/*===========================*/				/* out: unsigned long int */	byte*	buf);		/* in: from where to read *//*************************************************************Writes a ulint in the little-endian format. */UNIV_INLINEvoidmach_write_to_2_little_endian(/*==========================*/	byte*	dest,		/* in: where to write */	ulint	n);		/* in: unsigned long int to write */	#ifndef UNIV_NONINL#include "mach0data.ic"#endif#endif

⌨️ 快捷键说明

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