fut0fut.ic
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /**********************************************************************
  2. File-based utilities
  3. (c) 1995 Innobase Oy
  4. Created 12/13/1995 Heikki Tuuri
  5. ***********************************************************************/
  6. #include "sync0rw.h"
  7. #include "buf0buf.h"
  8. /************************************************************************
  9. Gets a pointer to a file address and latches the page. */
  10. UNIV_INLINE
  11. byte*
  12. fut_get_ptr(
  13. /*========*/
  14. /* out: pointer to a byte in a frame; the file
  15. page in the frame is bufferfixed and latched */
  16. ulint space, /* in: space id */
  17. fil_addr_t addr, /* in: file address */
  18. ulint rw_latch, /* in: RW_S_LATCH, RW_X_LATCH */
  19. mtr_t* mtr) /* in: mtr handle */
  20. {
  21. byte* ptr;
  22. ut_ad(mtr);
  23. ut_ad(addr.boffset < UNIV_PAGE_SIZE);
  24. ut_ad((rw_latch == RW_S_LATCH) || (rw_latch == RW_X_LATCH));
  25. ptr = buf_page_get(space, addr.page, rw_latch, mtr) + addr.boffset;
  26. #ifdef UNIV_SYNC_DEBUG
  27. buf_page_dbg_add_level(ptr, SYNC_NO_ORDER_CHECK);
  28. #endif /* UNIV_SYNC_DEBUG */
  29. return(ptr);
  30. }