InnoDB Plugin  1.0
buf0types.h
Go to the documentation of this file.
1 /*****************************************************************************
2 
3 Copyright (c) 1995, 2013, 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 /**************************************************/
26 #ifndef buf0types_h
27 #define buf0types_h
28 
29 #if defined(INNODB_PAGE_ATOMIC_REF_COUNT) && defined(HAVE_ATOMIC_BUILTINS)
30 #define PAGE_ATOMIC_REF_COUNT
31 #endif /* INNODB_PAGE_ATOMIC_REF_COUNT && HAVE_ATOMIC_BUILTINS */
32 
34 struct buf_page_t;
36 struct buf_block_t;
38 struct buf_chunk_t;
40 struct buf_pool_t;
42 struct buf_pool_stat_t;
44 struct buf_buddy_stat_t;
46 struct buf_dblwr_t;
47 
49 typedef byte buf_frame_t;
50 
59 };
60 
70 };
71 
73 enum buf_io_fix {
80 };
81 
97 };
98 
100 /* @{ */
102 #define BUF_BUDDY_LOW_SHIFT UNIV_ZIP_SIZE_SHIFT_MIN
103 
105 #define BUF_BUDDY_LOW (1U << BUF_BUDDY_LOW_SHIFT)
106 
108 #define BUF_BUDDY_SIZES (UNIV_PAGE_SIZE_SHIFT - BUF_BUDDY_LOW_SHIFT)
109 
111 #define BUF_BUDDY_SIZES_MAX (UNIV_PAGE_SIZE_SHIFT_MAX \
112  - BUF_BUDDY_LOW_SHIFT)
113 
117 #define BUF_BUDDY_HIGH (BUF_BUDDY_LOW << BUF_BUDDY_SIZES)
118 /* @} */
119 
120 #endif /* buf0types.h */