| InnoDB Plugin
    1.0
    | 
#include <buf0dblwr.h>

| Data Fields | |
| ib_mutex_t | mutex | 
| ulint | block1 | 
| ulint | block2 | 
| ulint | first_free | 
| ulint | b_reserved | 
| os_event_t | b_event | 
| ulint | s_reserved | 
| os_event_t | s_event | 
| bool * | in_use | 
| bool | batch_running | 
| byte * | write_buf | 
| byte * | write_buf_unaligned | 
| buf_page_t ** | buf_block_arr | 
Doublewrite control struct
| os_event_t buf_dblwr_t::b_event | 
event where threads wait for a batch flush to end.
| ulint buf_dblwr_t::b_reserved | 
number of slots currently reserved for batch flush.
| bool buf_dblwr_t::batch_running | 
set to TRUE if currently a batch is being written from the doublewrite buffer.
| ulint buf_dblwr_t::block1 | 
the page number of the first doublewrite block (64 pages)
| ulint buf_dblwr_t::block2 | 
page number of the second block
| buf_page_t** buf_dblwr_t::buf_block_arr | 
array to store pointers to the buffer blocks which have been cached to write_buf
| ulint buf_dblwr_t::first_free | 
first free position in write_buf measured in units of UNIV_PAGE_SIZE
| bool* buf_dblwr_t::in_use | 
flag used to indicate if a slot is in use. Only used for single page flushes.
| ib_mutex_t buf_dblwr_t::mutex | 
mutex protecting the first_free field and write_buf
| os_event_t buf_dblwr_t::s_event | 
event where threads wait for a single page flush slot.
| ulint buf_dblwr_t::s_reserved | 
number of slots currently reserved for single page flushes.
| byte* buf_dblwr_t::write_buf | 
write buffer used in writing to the doublewrite buffer, aligned to an address divisible by UNIV_PAGE_SIZE (which is required by Windows aio)
| byte* buf_dblwr_t::write_buf_unaligned | 
pointer to write_buf, but unaligned
 1.8.1.2
 1.8.1.2