# File lib/innodb/xdes.rb, line 112
  def each_page_status
    unless block_given?
      return enum_for(:each_page_status)
    end

    bitmap = xdes[:bitmap].enum_for(:each_byte)

    bitmap.each_with_index do |byte, byte_index|
      (0..3).each do |page_offset|
        page_number = xdes[:start_page] + (byte_index * 4) + page_offset
        page_bits = ((byte >> (page_offset * BITS_PER_PAGE)) & BITMAP_BV_ALL)
        page_status = {
          :free   => (page_bits & BITMAP_BV_FREE  != 0),
          :clean  => (page_bits & BITMAP_BV_CLEAN != 0),
        }
        yield page_number, page_status
      end
    end

    nil
  end