41 flst_base_node_t* base,
50 ut_ad(mtr && base && node);
52 ut_ad(mtr_memo_contains_page(mtr, base, MTR_MEMO_PAGE_X_FIX));
53 ut_ad(mtr_memo_contains_page(mtr, node, MTR_MEMO_PAGE_X_FIX));
77 flst_base_node_t* base,
85 flst_node_t* last_node;
87 ut_ad(mtr && base && node);
89 ut_ad(mtr_memo_contains_page(mtr, base, MTR_MEMO_PAGE_X_FIX));
90 ut_ad(mtr_memo_contains_page(mtr, node, MTR_MEMO_PAGE_X_FIX));
98 if (last_addr.
page == node_addr.
page) {
103 last_node =
fut_get_ptr(space, zip_size, last_addr,
110 flst_add_to_empty(base, node, mtr);
120 flst_base_node_t* base,
128 flst_node_t* first_node;
130 ut_ad(mtr && base && node);
132 ut_ad(mtr_memo_contains_page(mtr, base, MTR_MEMO_PAGE_X_FIX));
133 ut_ad(mtr_memo_contains_page(mtr, node, MTR_MEMO_PAGE_X_FIX));
141 if (first_addr.
page == node_addr.
page) {
146 first_node =
fut_get_ptr(space, zip_size, first_addr,
153 flst_add_to_empty(base, node, mtr);
163 flst_base_node_t* base,
175 ut_ad(mtr && node1 && node2 && base);
176 ut_ad(base != node1);
177 ut_ad(base != node2);
178 ut_ad(node2 != node1);
179 ut_ad(mtr_memo_contains_page(mtr, base, MTR_MEMO_PAGE_X_FIX));
180 ut_ad(mtr_memo_contains_page(mtr, node1, MTR_MEMO_PAGE_X_FIX));
181 ut_ad(mtr_memo_contains_page(mtr, node2, MTR_MEMO_PAGE_X_FIX));
197 node3_addr, RW_X_LATCH, mtr);
218 flst_base_node_t* base,
230 ut_ad(mtr && node2 && node3 && base);
231 ut_ad(base != node2);
232 ut_ad(base != node3);
233 ut_ad(node2 != node3);
234 ut_ad(mtr_memo_contains_page(mtr, base, MTR_MEMO_PAGE_X_FIX));
235 ut_ad(mtr_memo_contains_page(mtr, node2, MTR_MEMO_PAGE_X_FIX));
236 ut_ad(mtr_memo_contains_page(mtr, node3, MTR_MEMO_PAGE_X_FIX));
272 flst_base_node_t* base,
285 ut_ad(mtr && node2 && base);
286 ut_ad(mtr_memo_contains_page(mtr, base, MTR_MEMO_PAGE_X_FIX));
287 ut_ad(mtr_memo_contains_page(mtr, node2, MTR_MEMO_PAGE_X_FIX));
299 if (node1_addr.
page == node2_addr.
page) {
304 node1_addr, RW_X_LATCH, mtr);
307 ut_ad(node1 != node2);
318 if (node3_addr.
page == node2_addr.
page) {
323 node3_addr, RW_X_LATCH, mtr);
326 ut_ad(node2 != node3);
349 flst_base_node_t* base,
361 ut_ad(mtr && node2 && base);
362 ut_ad(mtr_memo_contains_page(mtr, base, MTR_MEMO_PAGE_X_FIX));
363 ut_ad(mtr_memo_contains_page(mtr, node2, MTR_MEMO_PAGE_X_FIX));
374 if (node1_addr.
page == node2_addr.
page) {
380 node1_addr, RW_X_LATCH, mtr);
393 ut_ad(len >= n_nodes);
406 flst_base_node_t* base,
415 ut_ad(mtr && node2 && base);
416 ut_ad(mtr_memo_contains_page(mtr, base, MTR_MEMO_PAGE_X_FIX));
417 ut_ad(mtr_memo_contains_page(mtr, node2, MTR_MEMO_PAGE_X_FIX));
434 ut_ad(len >= n_nodes);
446 const flst_base_node_t* base,
451 const flst_node_t* node;
459 ut_ad(mtr_memo_contains_page(mtr1, base, MTR_MEMO_PAGE_X_FIX));
475 for (i = 0; i < len; i++) {
479 node_addr, RW_X_LATCH, &mtr2);
490 for (i = 0; i < len; i++) {
494 node_addr, RW_X_LATCH, &mtr2);
512 const flst_base_node_t* base,
519 ut_ad(mtr_memo_contains_page(mtr, base, MTR_MEMO_PAGE_X_FIX));
526 "Base node in space %lu page %lu byte offset %lu; len %lu\n",