block_copy_request Struct Reference

#include <copy.h>

Collaboration diagram for block_copy_request:

Collaboration graph
[legend]

Data Fields

struct block_devicesource
 Source of the copy operation.
struct block_devicetarget
 Target of the copy operation.
block_addr_t source_start
 First block of the source to copy from.
block_addr_t target_start
 First block of the target to copy to.
uint32_t length
 Number of blocks to copy.
uint32_t total_blocks_copied
 Number of blocks copied so far (passed to callbacks).
int status
 Status of the copy operation.
int source_status
 Status of the copy operation on source.
int dest_status
 Status of the copy operation on destination.
void(* completion_callback )(struct block_copy_request *req, uint32_t blocks_copied, void *data)
 Callback called when the operation is completed.
void(* progress_callback )(struct block_copy_request *req, uint32_t blocks_copied, void *data)
 Callback called after each successful write operation.
void * data
 Data passed to the callback.
struct block_requestread_req
 Block request used when reading from source.
struct block_requestwrite_req
 Block request used when writing to target.
struct slist buffer_list
 List of buffers used for the transfer.
uint32_t blocks_allocated
 Total number of blocks allocated as buffers.
size_t block_size
 Block size of the devices (must match).
size_t blocks_pr_buf
 Numbers of blocks that fit into one buffer.
struct workqueue_item work
 Workqueue item used when adding work to the workqueue.

Detailed Description

Structure holding a description of a copy operation.

Definition at line 59 of file copy.h.


Field Documentation

Block size of the devices (must match).

Definition at line 95 of file copy.h.

Referenced by block_copy_alloc(), block_copy_set_dest(), and block_copy_set_source().

Total number of blocks allocated as buffers.

Definition at line 93 of file copy.h.

Referenced by block_copy_alloc().

Numbers of blocks that fit into one buffer.

Definition at line 97 of file copy.h.

Referenced by block_copy_alloc().

List of buffers used for the transfer.

Definition at line 91 of file copy.h.

Referenced by block_copy_alloc(), and block_copy_free().

void(* block_copy_request::completion_callback)(struct block_copy_request *req, uint32_t blocks_copied, void *data)

Callback called when the operation is completed.

Referenced by block_copy_set_completion_callback().

Data passed to the callback.

Definition at line 85 of file copy.h.

Referenced by block_copy_alloc().

Status of the copy operation on destination.

Definition at line 77 of file copy.h.

Number of blocks to copy.

Definition at line 69 of file copy.h.

Referenced by block_copy_alloc().

void(* block_copy_request::progress_callback)(struct block_copy_request *req, uint32_t blocks_copied, void *data)

Callback called after each successful write operation.

Referenced by block_copy_set_progress_callback().

Block request used when reading from source.

Definition at line 87 of file copy.h.

Referenced by block_copy_free(), block_copy_set_source(), and block_copy_submit().

Source of the copy operation.

Definition at line 61 of file copy.h.

Referenced by block_copy_free(), block_copy_set_source(), and block_copy_submit().

First block of the source to copy from.

Definition at line 65 of file copy.h.

Referenced by block_copy_set_source().

Status of the copy operation on source.

Definition at line 75 of file copy.h.

Status of the copy operation.

Definition at line 73 of file copy.h.

Target of the copy operation.

Definition at line 63 of file copy.h.

Referenced by block_copy_free(), block_copy_set_dest(), and block_copy_submit().

First block of the target to copy to.

Definition at line 67 of file copy.h.

Referenced by block_copy_set_dest().

Number of blocks copied so far (passed to callbacks).

Definition at line 71 of file copy.h.

Referenced by block_copy_submit().

Workqueue item used when adding work to the workqueue.

Definition at line 99 of file copy.h.

Block request used when writing to target.

Definition at line 89 of file copy.h.

Referenced by block_copy_free(), block_copy_set_dest(), and block_copy_submit().


The documentation for this struct was generated from the following file:

Generated on Tue Sep 15 10:22:16 2009 for libavr32 by  doxygen 1.5.8