InnoDB Plugin  1.0
fsp0types.h
1 /*****************************************************************************
2 
3 Copyright (c) 1995, 2009, Oracle and/or its affiliates. All Rights Reserved.
4 
5 This program is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free Software
7 Foundation; version 2 of the License.
8 
9 This program is distributed in the hope that it will be useful, but WITHOUT
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 
13 You should have received a copy of the GNU General Public License along with
14 this program; if not, write to the Free Software Foundation, Inc.,
15 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
16 
17 *****************************************************************************/
18 
19 /******************************************************
20 @file include/fsp0types.h
21 File space management types
22 
23 Created May 26, 2009 Vasil Dimov
24 *******************************************************/
25 
26 #ifndef fsp0types_h
27 #define fsp0types_h
28 
29 #include "univ.i"
30 
31 #include "fil0fil.h" /* for FIL_PAGE_DATA */
32 
38 /* @{ */
39 #define FSP_UP ((byte)111)
40 #define FSP_DOWN ((byte)112)
41 #define FSP_NO_DIR ((byte)113)
42 /* @} */
43 
45 #define FSP_EXTENT_SIZE (1048576U / UNIV_PAGE_SIZE)
46 
48 #define FSP_EXTENT_SIZE_MAX (1048576 / UNIV_PAGE_SIZE_MAX)
49 
51 #define FSP_EXTENT_SIZE_MIN (1048576 / UNIV_PAGE_SIZE_MIN)
52 
55 #define FSEG_PAGE_DATA FIL_PAGE_DATA
56 
59 /* @{ */
61 typedef byte fseg_header_t;
62 
63 #define FSEG_HDR_SPACE 0
64 #define FSEG_HDR_PAGE_NO 4
65 #define FSEG_HDR_OFFSET 8
67 #define FSEG_HEADER_SIZE 10
69 /* @} */
70 
72 #define FSP_NORMAL 1000000
73 #define FSP_UNDO 2000000
74 #define FSP_CLEANING 3000000
75 /* @} */
76 
77 /* Number of pages described in a single descriptor page: currently each page
78 description takes less than 1 byte; a descriptor page is repeated every
79 this many file pages */
80 /* #define XDES_DESCRIBED_PER_PAGE UNIV_PAGE_SIZE */
81 /* This has been replaced with either UNIV_PAGE_SIZE or page_zip->size. */
82 
86 /* @{ */
87 /*--------------------------------------*/
88 #define FSP_XDES_OFFSET 0 /* !< extent descriptor */
89 #define FSP_IBUF_BITMAP_OFFSET 1 /* !< insert buffer bitmap */
90  /* The ibuf bitmap pages are the ones whose
91  page number is the number above plus a
92  multiple of XDES_DESCRIBED_PER_PAGE */
93 
94 #define FSP_FIRST_INODE_PAGE_NO 2
95  /* The following pages exist
96  in the system tablespace (space 0). */
97 #define FSP_IBUF_HEADER_PAGE_NO 3
100 #define FSP_IBUF_TREE_ROOT_PAGE_NO 4
103  /* The ibuf tree root page number in
104  tablespace 0; its fseg inode is on the page
105  number FSP_FIRST_INODE_PAGE_NO */
106 #define FSP_TRX_SYS_PAGE_NO 5
109 #define FSP_FIRST_RSEG_PAGE_NO 6
111 #define FSP_DICT_HDR_PAGE_NO 7
113 /*--------------------------------------*/
114 /* @} */
115 
116 #endif /* fsp0types_h */