mirror of
https://github.com/MariaDB/server.git
synced 2025-02-02 12:01:42 +01:00
111 lines
3.9 KiB
C
111 lines
3.9 KiB
C
|
/*****************************************************************************
|
||
|
|
||
|
Copyright (c) 1995, 2009, Innobase Oy. All Rights Reserved.
|
||
|
|
||
|
This program is free software; you can redistribute it and/or modify it under
|
||
|
the terms of the GNU General Public License as published by the Free Software
|
||
|
Foundation; version 2 of the License.
|
||
|
|
||
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||
|
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU General Public License along with
|
||
|
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||
|
Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
|
||
|
*****************************************************************************/
|
||
|
|
||
|
/******************************************************
|
||
|
@file include/fsp0types.h
|
||
|
File space management types
|
||
|
|
||
|
Created May 26, 2009 Vasil Dimov
|
||
|
*******************************************************/
|
||
|
|
||
|
#ifndef fsp0types_h
|
||
|
#define fsp0types_h
|
||
|
|
||
|
#include "univ.i"
|
||
|
|
||
|
#include "fil0fil.h" /* for FIL_PAGE_DATA */
|
||
|
|
||
|
/** @name Flags for inserting records in order
|
||
|
If records are inserted in order, there are the following
|
||
|
flags to tell this (their type is made byte for the compiler
|
||
|
to warn if direction and hint parameters are switched in
|
||
|
fseg_alloc_free_page) */
|
||
|
/* @{ */
|
||
|
#define FSP_UP ((byte)111) /*!< alphabetically upwards */
|
||
|
#define FSP_DOWN ((byte)112) /*!< alphabetically downwards */
|
||
|
#define FSP_NO_DIR ((byte)113) /*!< no order */
|
||
|
/* @} */
|
||
|
|
||
|
/** File space extent size (one megabyte) in pages */
|
||
|
#define FSP_EXTENT_SIZE (1 << (20 - UNIV_PAGE_SIZE_SHIFT))
|
||
|
|
||
|
/** On a page of any file segment, data may be put starting from this
|
||
|
offset */
|
||
|
#define FSEG_PAGE_DATA FIL_PAGE_DATA
|
||
|
|
||
|
/** @name File segment header
|
||
|
The file segment header points to the inode describing the file segment. */
|
||
|
/* @{ */
|
||
|
/** Data type for file segment header */
|
||
|
typedef byte fseg_header_t;
|
||
|
|
||
|
#define FSEG_HDR_SPACE 0 /*!< space id of the inode */
|
||
|
#define FSEG_HDR_PAGE_NO 4 /*!< page number of the inode */
|
||
|
#define FSEG_HDR_OFFSET 8 /*!< byte offset of the inode */
|
||
|
|
||
|
#define FSEG_HEADER_SIZE 10 /*!< Length of the file system
|
||
|
header, in bytes */
|
||
|
/* @} */
|
||
|
|
||
|
/** Flags for fsp_reserve_free_extents @{ */
|
||
|
#define FSP_NORMAL 1000000
|
||
|
#define FSP_UNDO 2000000
|
||
|
#define FSP_CLEANING 3000000
|
||
|
/* @} */
|
||
|
|
||
|
/* Number of pages described in a single descriptor page: currently each page
|
||
|
description takes less than 1 byte; a descriptor page is repeated every
|
||
|
this many file pages */
|
||
|
/* #define XDES_DESCRIBED_PER_PAGE UNIV_PAGE_SIZE */
|
||
|
/* This has been replaced with either UNIV_PAGE_SIZE or page_zip->size. */
|
||
|
|
||
|
/** @name The space low address page map
|
||
|
The pages at FSP_XDES_OFFSET and FSP_IBUF_BITMAP_OFFSET are repeated
|
||
|
every XDES_DESCRIBED_PER_PAGE pages in every tablespace. */
|
||
|
/* @{ */
|
||
|
/*--------------------------------------*/
|
||
|
#define FSP_XDES_OFFSET 0 /* !< extent descriptor */
|
||
|
#define FSP_IBUF_BITMAP_OFFSET 1 /* !< insert buffer bitmap */
|
||
|
/* The ibuf bitmap pages are the ones whose
|
||
|
page number is the number above plus a
|
||
|
multiple of XDES_DESCRIBED_PER_PAGE */
|
||
|
|
||
|
#define FSP_FIRST_INODE_PAGE_NO 2 /*!< in every tablespace */
|
||
|
/* The following pages exist
|
||
|
in the system tablespace (space 0). */
|
||
|
#define FSP_IBUF_HEADER_PAGE_NO 3 /*!< insert buffer
|
||
|
header page, in
|
||
|
tablespace 0 */
|
||
|
#define FSP_IBUF_TREE_ROOT_PAGE_NO 4 /*!< insert buffer
|
||
|
B-tree root page in
|
||
|
tablespace 0 */
|
||
|
/* The ibuf tree root page number in
|
||
|
tablespace 0; its fseg inode is on the page
|
||
|
number FSP_FIRST_INODE_PAGE_NO */
|
||
|
#define FSP_TRX_SYS_PAGE_NO 5 /*!< transaction
|
||
|
system header, in
|
||
|
tablespace 0 */
|
||
|
#define FSP_FIRST_RSEG_PAGE_NO 6 /*!< first rollback segment
|
||
|
page, in tablespace 0 */
|
||
|
#define FSP_DICT_HDR_PAGE_NO 7 /*!< data dictionary header
|
||
|
page, in tablespace 0 */
|
||
|
/*--------------------------------------*/
|
||
|
/* @} */
|
||
|
|
||
|
#endif /* fsp0types_h */
|