/**********************************************************************//**
Inits an extent descriptor to the free and clean state. */
UNIV_INLINE
void
xdes_init(
/*======*/
    xdes_t*    descr,    /*!< in: descriptor */
    mtr_t*    mtr)    /*!< in: mtr */
{
    ulint    i;

    ut_ad(descr && mtr);
    ut_ad(mtr_memo_contains_page(mtr, descr, MTR_MEMO_PAGE_X_FIX));
    ut_ad((XDES_SIZE - XDES_BITMAP) %  == );
    /**
      *#define    XDES_BITMAP        (FLST_NODE_SIZE + 12)
      *#define    FLST_NODE_SIZE        (2 * FIL_ADDR_SIZE)
      *#define    FIL_ADDR_SIZE    6
      *为24
      *
      *
      *#define    XDES_SIZE                            \
            (XDES_BITMAP + UT_BITS_IN_BYTES(FSP_EXTENT_SIZE * XDES_BITS_PER_PAGE))
      *
      *==> (24 + (64*2)) = 152
      *
      *为64个小空格设置值
      */
    ) {
        mlog_write_ulint(descr + i, 0xFFFFFFFFUL, MLOG_4BYTES, mtr);
    }

    xdes_set_state(descr, XDES_FREE, mtr);
}
05-11 16:59