# 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