MySQL 5.6.14 Source Code Document
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
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
61
flst_add_last
(
62
/*==========*/
63
flst_base_node_t* base,
64
flst_node_t* node,
65
mtr_t
*
mtr
);
66
/********************************************************************/
68
UNIV_INTERN
69
void
70
flst_add_first
(
71
/*===========*/
72
flst_base_node_t* base,
73
flst_node_t* node,
74
mtr_t
*
mtr
);
75
/********************************************************************/
77
UNIV_INTERN
78
void
79
flst_insert_after
(
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
89
flst_insert_before
(
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
99
flst_remove
(
100
/*========*/
101
flst_base_node_t* base,
102
flst_node_t* node2,
103
mtr_t
*
mtr
);
104
/********************************************************************/
108
UNIV_INTERN
109
void
110
flst_cut_end
(
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
123
flst_truncate_end
(
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
134
flst_get_len
(
135
/*=========*/
136
const
flst_base_node_t* base,
137
mtr_t
*
mtr
);
138
/********************************************************************/
141
UNIV_INLINE
142
fil_addr_t
143
flst_get_first
(
144
/*===========*/
145
const
flst_base_node_t* base,
146
mtr_t
*
mtr
);
147
/********************************************************************/
150
UNIV_INLINE
151
fil_addr_t
152
flst_get_last
(
153
/*==========*/
154
const
flst_base_node_t* base,
155
mtr_t
*
mtr
);
156
/********************************************************************/
159
UNIV_INLINE
160
fil_addr_t
161
flst_get_next_addr
(
162
/*===============*/
163
const
flst_node_t* node,
164
mtr_t
*
mtr
);
165
/********************************************************************/
168
UNIV_INLINE
169
fil_addr_t
170
flst_get_prev_addr
(
171
/*===============*/
172
const
flst_node_t* node,
173
mtr_t
*
mtr
);
174
/********************************************************************/
176
UNIV_INLINE
177
void
178
flst_write_addr
(
179
/*============*/
180
fil_faddr_t
* faddr,
181
fil_addr_t
addr,
182
mtr_t
*
mtr
);
183
/********************************************************************/
186
UNIV_INLINE
187
fil_addr_t
188
flst_read_addr
(
189
/*===========*/
190
const
fil_faddr_t
* faddr,
191
mtr_t
*
mtr
);
192
/********************************************************************/
195
UNIV_INTERN
196
ibool
197
flst_validate
(
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
storage
innobase
include
fut0lst.h
Generated on Sat Nov 9 2013 01:26:35 for MySQL 5.6.14 Source Code Document by
1.8.1.2