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

    bitmap = @bitmap.enum_for(:each_byte)

    bitmap.each_with_index do |byte, byte_index|
      (0..1).each do |page_offset|
        page_number = (byte_index * 2) + page_offset
        page_bits = ((byte >> (page_offset * BITS_PER_PAGE)) & BITMAP_BV_ALL)
        page_status = {
          :free => (page_bits & BITMAP_BV_FREE),
          :buffered => (page_bits & BITMAP_BV_BUFFERED != 0),
          :ibuf => (page_bits & BITMAP_BV_IBUF != 0),
        }
        yield page_number, page_status
      end
    end
  end