diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2009-08-07 17:50:51 +1000 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2009-08-07 17:50:51 +1000 |
commit | eec1ba76a0f043bdea21db10df4287bb5a4d25a8 (patch) | |
tree | 269e10ce578105322820dd426e30cf9eea7513c6 /drivers/staging/rtl8192e/ieee80211/scatterwalk.h | |
parent | 9fdbbf93bb3bb2b62335e780bb94871fc39dc5d8 (diff) | |
parent | bb104a76ac0e6c103c36623616c7dee8cd9d165c (diff) |
Merge branch 'quilt/staging'
Conflicts:
drivers/staging/epl/VirtualEthernetLinux.c
Diffstat (limited to 'drivers/staging/rtl8192e/ieee80211/scatterwalk.h')
-rw-r--r-- | drivers/staging/rtl8192e/ieee80211/scatterwalk.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/drivers/staging/rtl8192e/ieee80211/scatterwalk.h b/drivers/staging/rtl8192e/ieee80211/scatterwalk.h new file mode 100644 index 000000000000..b16446519017 --- /dev/null +++ b/drivers/staging/rtl8192e/ieee80211/scatterwalk.h @@ -0,0 +1,51 @@ +/* + * Cryptographic API. + * + * Copyright (c) 2002 James Morris <jmorris@intercode.com.au> + * Copyright (c) 2002 Adam J. Richter <adam@yggdrasil.com> + * Copyright (c) 2004 Jean-Luc Cooke <jlcooke@certainkey.com> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + */ + +#ifndef _CRYPTO_SCATTERWALK_H +#define _CRYPTO_SCATTERWALK_H +#include <linux/mm.h> +#include <asm/scatterlist.h> + +struct scatter_walk { + struct scatterlist *sg; + struct page *page; + void *data; + unsigned int len_this_page; + unsigned int len_this_segment; + unsigned int offset; +}; + +/* Define sg_next is an inline routine now in case we want to change + scatterlist to a linked list later. */ +static inline struct scatterlist *sg_next(struct scatterlist *sg) +{ + return sg + 1; +} + +static inline int scatterwalk_samebuf(struct scatter_walk *walk_in, + struct scatter_walk *walk_out, + void *src_p, void *dst_p) +{ + return walk_in->page == walk_out->page && + walk_in->offset == walk_out->offset && + walk_in->data == src_p && walk_out->data == dst_p; +} + +void *scatterwalk_whichbuf(struct scatter_walk *walk, unsigned int nbytes, void *scratch); +void scatterwalk_start(struct scatter_walk *walk, struct scatterlist *sg); +int scatterwalk_copychunks(void *buf, struct scatter_walk *walk, size_t nbytes, int out); +void scatterwalk_map(struct scatter_walk *walk, int out); +void scatterwalk_done(struct scatter_walk *walk, int out, int more); + +#endif /* _CRYPTO_SCATTERWALK_H */ |