Messages in this thread Patch in this message | | | From | Nigel Cunningham <> | Subject | [Suspend2][ 01/32] [Suspend2] Block I/O Header File | Date | Tue, 27 Jun 2006 08:37:09 +1000 |
| |
kernel/power/block_io.h is the header file for the lowlevel block i/o code. It defines the operations that the swapwriter and filewriter use to actually perform the I/O.
Signed-off-by: Nigel Cunningham <nigel@suspend2.net>
kernel/power/block_io.h | 55 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 55 insertions(+), 0 deletions(-)
diff --git a/kernel/power/block_io.h b/kernel/power/block_io.h new file mode 100644 index 0000000..2e89ca2 --- /dev/null +++ b/kernel/power/block_io.h @@ -0,0 +1,55 @@ +/* + * kernel/power/block_io.h + * + * Copyright 2004-2006 Nigel Cunningham <nigel@suspend2.net> + * + * Distributed under GPLv2. + * + * This file contains declarations for functions exported from + * block_io.c, which contains low level io functions. + */ + +#include <linux/buffer_head.h> +#include "extent.h" + +struct suspend_bdev_info { + struct block_device *bdev; + dev_t dev_t; + int bmap_shift; + int blocks_per_page; +}; + +/* + * Our exported interface so the swapwriter and filewriter don't + * need these functions duplicated. + */ +struct suspend_bio_ops { + int (*bdev_page_io) (int rw, struct block_device *bdev, long pos, + struct page *page); + void (*check_io_stats) (void); + void (*reset_io_stats) (void); + void (*finish_all_io) (void); + int (*prepare_readahead) (int index); + void (*cleanup_readahead) (int index); + struct page ** readahead_pages; + int (*readahead_ready) (int readahead_index); + int (*forward_one_page) (void); + void (*set_extra_page_forward) (void); + void (*set_devinfo) (struct suspend_bdev_info *info); + int (*read_chunk) (struct page *buffer_page, int sync); + int (*write_chunk) (struct page *buffer_page); + int (*rw_header_chunk) (int rw, struct suspend_module_ops *owner, + char *buffer, int buffer_size); + int (*write_header_chunk_finish) (void); + int (*rw_init) (int rw, int stream_number); + int (*rw_cleanup) (int rw); +}; + +extern struct suspend_bio_ops suspend_bio_ops; + +extern char *suspend_writer_buffer; +extern int suspend_writer_buffer_posn; +extern int suspend_read_fd; +extern struct extent_iterate_saved_state suspend_writer_posn_save[3]; +extern struct extent_iterate_state suspend_writer_posn; +extern int suspend_header_bytes_used; -- Nigel Cunningham nigel at suspend2 dot net - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |