~linuxjedi/drizzle/trunk-bug-667053

« back to all changes in this revision

Viewing changes to storage/innobase/include/fut0fut.ic

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

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