summaryrefslogtreecommitdiff
path: root/innobase/include/fut0fut.ic
diff options
context:
space:
mode:
Diffstat (limited to 'innobase/include/fut0fut.ic')
-rw-r--r--innobase/include/fut0fut.ic36
1 files changed, 36 insertions, 0 deletions
diff --git a/innobase/include/fut0fut.ic b/innobase/include/fut0fut.ic
new file mode 100644
index 00000000000..0f1aa9dd9ae
--- /dev/null
+++ b/innobase/include/fut0fut.ic
@@ -0,0 +1,36 @@
+/**********************************************************************
+File-based utilities
+
+(c) 1995 Innobase Oy
+
+Created 12/13/1995 Heikki Tuuri
+***********************************************************************/
+
+#include "sync0rw.h"
+#include "buf0buf.h"
+
+/************************************************************************
+Gets a pointer to a file address and latches the page. */
+UNIV_INLINE
+byte*
+fut_get_ptr(
+/*========*/
+ /* out: pointer to a byte in a frame; the file
+ page in the frame is bufferfixed and latched */
+ ulint space, /* in: space id */
+ fil_addr_t addr, /* in: file address */
+ ulint rw_latch, /* in: RW_S_LATCH, RW_X_LATCH */
+ mtr_t* mtr) /* in: mtr handle */
+{
+ byte* ptr;
+
+ ut_ad(mtr);
+ ut_ad(addr.boffset < UNIV_PAGE_SIZE);
+ ut_ad((rw_latch == RW_S_LATCH) || (rw_latch == RW_X_LATCH));
+
+ ptr = buf_page_get(space, addr.page, rw_latch, mtr) + addr.boffset;
+
+ buf_page_dbg_add_level(ptr, SYNC_NO_ORDER_CHECK);
+
+ return(ptr);
+}