InnoDB Plugin  1.0
fut0lst.h
Go to the documentation of this file.
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 /******************************************************************/
26 #ifndef fut0lst_h
27 #define fut0lst_h
28 
29 #include "univ.i"
30 
31 #include "fil0fil.h"
32 #include "mtr0mtr.h"
33 
34 
35 /* The C 'types' of base node and list node: these should be used to
36 write self-documenting code. Of course, the sizeof macro cannot be
37 applied to these types! */
38 
39 typedef byte flst_base_node_t;
40 typedef byte flst_node_t;
41 
42 /* The physical size of a list base node in bytes */
43 #define FLST_BASE_NODE_SIZE (4 + 2 * FIL_ADDR_SIZE)
44 
45 /* The physical size of a list node in bytes */
46 #define FLST_NODE_SIZE (2 * FIL_ADDR_SIZE)
47 
48 #ifndef UNIV_HOTBACKUP
49 /********************************************************************/
51 UNIV_INLINE
52 void
53 flst_init(
54 /*======*/
55  flst_base_node_t* base,
56  mtr_t* mtr);
57 /********************************************************************/
59 UNIV_INTERN
60 void
62 /*==========*/
63  flst_base_node_t* base,
64  flst_node_t* node,
65  mtr_t* mtr);
66 /********************************************************************/
68 UNIV_INTERN
69 void
71 /*===========*/
72  flst_base_node_t* base,
73  flst_node_t* node,
74  mtr_t* mtr);
75 /********************************************************************/
77 UNIV_INTERN
78 void
80 /*==============*/
81  flst_base_node_t* base,
82  flst_node_t* node1,
83  flst_node_t* node2,
84  mtr_t* mtr);
85 /********************************************************************/
87 UNIV_INTERN
88 void
90 /*===============*/
91  flst_base_node_t* base,
92  flst_node_t* node2,
93  flst_node_t* node3,
94  mtr_t* mtr);
95 /********************************************************************/
97 UNIV_INTERN
98 void
100 /*========*/
101  flst_base_node_t* base,
102  flst_node_t* node2,
103  mtr_t* mtr);
104 /********************************************************************/
108 UNIV_INTERN
109 void
111 /*=========*/
112  flst_base_node_t* base,
113  flst_node_t* node2,
114  ulint n_nodes,
116  mtr_t* mtr);
117 /********************************************************************/
121 UNIV_INTERN
122 void
124 /*==============*/
125  flst_base_node_t* base,
126  flst_node_t* node2,
127  ulint n_nodes,
128  mtr_t* mtr);
129 /********************************************************************/
132 UNIV_INLINE
133 ulint
135 /*=========*/
136  const flst_base_node_t* base,
137  mtr_t* mtr);
138 /********************************************************************/
141 UNIV_INLINE
144 /*===========*/
145  const flst_base_node_t* base,
146  mtr_t* mtr);
147 /********************************************************************/
150 UNIV_INLINE
153 /*==========*/
154  const flst_base_node_t* base,
155  mtr_t* mtr);
156 /********************************************************************/
159 UNIV_INLINE
162 /*===============*/
163  const flst_node_t* node,
164  mtr_t* mtr);
165 /********************************************************************/
168 UNIV_INLINE
171 /*===============*/
172  const flst_node_t* node,
173  mtr_t* mtr);
174 /********************************************************************/
176 UNIV_INLINE
177 void
179 /*============*/
180  fil_faddr_t* faddr,
181  fil_addr_t addr,
182  mtr_t* mtr);
183 /********************************************************************/
186 UNIV_INLINE
189 /*===========*/
190  const fil_faddr_t* faddr,
191  mtr_t* mtr);
192 /********************************************************************/
195 UNIV_INTERN
196 ibool
198 /*==========*/
199  const flst_base_node_t* base,
200  mtr_t* mtr1);
201 /********************************************************************/
203 UNIV_INTERN
204 void
205 flst_print(
206 /*=======*/
207  const flst_base_node_t* base,
208  mtr_t* mtr);
211 #ifndef UNIV_NONINL
212 #include "fut0lst.ic"
213 #endif
214 
215 #endif /* !UNIV_HOTBACKUP */
216 
217 #endif