Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
async_xor.c File Reference
#include <linux/kernel.h>
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/mm.h>
#include <linux/dma-mapping.h>
#include <linux/raid/xor.h>
#include <linux/async_tx.h>

Go to the source code of this file.

Functions

struct dma_async_tx_descriptorasync_xor (struct page *dest, struct page **src_list, unsigned int offset, int src_cnt, size_t len, struct async_submit_ctl *submit)
 
 EXPORT_SYMBOL_GPL (async_xor)
 
struct dma_async_tx_descriptorasync_xor_val (struct page *dest, struct page **src_list, unsigned int offset, int src_cnt, size_t len, enum sum_check_flags *result, struct async_submit_ctl *submit)
 
 EXPORT_SYMBOL_GPL (async_xor_val)
 
 MODULE_AUTHOR ("Intel Corporation")
 
 MODULE_DESCRIPTION ("asynchronous xor/xor-zero-sum api")
 
 MODULE_LICENSE ("GPL")
 

Function Documentation

struct dma_async_tx_descriptor* async_xor ( struct page dest,
struct page **  src_list,
unsigned int  offset,
int  src_cnt,
size_t  len,
struct async_submit_ctl submit 
)
read

async_xor - attempt to xor a set of blocks with a dma engine. : destination page : array of source pages : common src/dst offset to start transaction : number of source pages : length in bytes : submission / completion modifiers

honored flags: ASYNC_TX_ACK, ASYNC_TX_XOR_ZERO_DST, ASYNC_TX_XOR_DROP_DST

xor_blocks always uses the dest as a source so the ASYNC_TX_XOR_ZERO_DST flag must be set to not include dest data in the calculation. The assumption with dma eninges is that they only use the destination buffer as a source when it is explicity specified in the source list.

src_list note: if the dest is also a source it must be at index zero. The contents of this array will be overwritten if a scribble region is not specified.

Definition at line 186 of file async_xor.c.

struct dma_async_tx_descriptor* async_xor_val ( struct page dest,
struct page **  src_list,
unsigned int  offset,
int  src_cnt,
size_t  len,
enum sum_check_flags result,
struct async_submit_ctl submit 
)
read

async_xor_val - attempt a xor parity check with a dma engine. : destination page used if the xor is performed synchronously : array of source pages : offset in pages to start transaction : number of source pages : length in bytes

Returns
: 0 if sum == 0 else non-zero : submission / completion modifiers

honored flags: ASYNC_TX_ACK

src_list note: if the dest is also a source it must be at index zero. The contents of this array will be overwritten if a scribble region is not specified.

Definition at line 266 of file async_xor.c.

EXPORT_SYMBOL_GPL ( async_xor  )
EXPORT_SYMBOL_GPL ( async_xor_val  )
MODULE_AUTHOR ( "Intel Corporation"  )
MODULE_DESCRIPTION ( "asynchronous xor/xor-zero-sum api"  )
MODULE_LICENSE ( "GPL"  )