hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
kernel/include/linux/async_tx.h
....@@ -1,19 +1,6 @@
1
+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * Copyright © 2006, Intel Corporation.
3
- *
4
- * This program is free software; you can redistribute it and/or modify it
5
- * under the terms and conditions of the GNU General Public License,
6
- * version 2, as published by the Free Software Foundation.
7
- *
8
- * This program is distributed in the hope it will be useful, but WITHOUT
9
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11
- * more details.
12
- *
13
- * You should have received a copy of the GNU General Public License along with
14
- * this program; if not, write to the Free Software Foundation, Inc.,
15
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
16
- *
174 */
185 #ifndef _ASYNC_TX_H_
196 #define _ASYNC_TX_H_
....@@ -49,7 +36,7 @@
4936 /**
5037 * async_tx_flags - modifiers for the async_* calls
5138 * @ASYNC_TX_XOR_ZERO_DST: this flag must be used for xor operations where the
52
- * the destination address is not a source. The asynchronous case handles this
39
+ * destination address is not a source. The asynchronous case handles this
5340 * implicitly, the synchronous case needs to zero the destination block.
5441 * @ASYNC_TX_XOR_DROP_DST: this flag must be used if the destination address is
5542 * also one of the source addresses. In the synchronous case the destination
....@@ -176,9 +163,20 @@
176163 int src_cnt, size_t len, struct async_submit_ctl *submit);
177164
178165 struct dma_async_tx_descriptor *
166
+async_xor_offs(struct page *dest, unsigned int offset,
167
+ struct page **src_list, unsigned int *src_offset,
168
+ int src_cnt, size_t len, struct async_submit_ctl *submit);
169
+
170
+struct dma_async_tx_descriptor *
179171 async_xor_val(struct page *dest, struct page **src_list, unsigned int offset,
180172 int src_cnt, size_t len, enum sum_check_flags *result,
181173 struct async_submit_ctl *submit);
174
+
175
+struct dma_async_tx_descriptor *
176
+async_xor_val_offs(struct page *dest, unsigned int offset,
177
+ struct page **src_list, unsigned int *src_offset,
178
+ int src_cnt, size_t len, enum sum_check_flags *result,
179
+ struct async_submit_ctl *submit);
182180
183181 struct dma_async_tx_descriptor *
184182 async_memcpy(struct page *dest, struct page *src, unsigned int dest_offset,
....@@ -188,21 +186,23 @@
188186 struct dma_async_tx_descriptor *async_trigger_callback(struct async_submit_ctl *submit);
189187
190188 struct dma_async_tx_descriptor *
191
-async_gen_syndrome(struct page **blocks, unsigned int offset, int src_cnt,
189
+async_gen_syndrome(struct page **blocks, unsigned int *offsets, int src_cnt,
192190 size_t len, struct async_submit_ctl *submit);
193191
194192 struct dma_async_tx_descriptor *
195
-async_syndrome_val(struct page **blocks, unsigned int offset, int src_cnt,
193
+async_syndrome_val(struct page **blocks, unsigned int *offsets, int src_cnt,
196194 size_t len, enum sum_check_flags *pqres, struct page *spare,
197
- struct async_submit_ctl *submit);
195
+ unsigned int s_off, struct async_submit_ctl *submit);
198196
199197 struct dma_async_tx_descriptor *
200198 async_raid6_2data_recov(int src_num, size_t bytes, int faila, int failb,
201
- struct page **ptrs, struct async_submit_ctl *submit);
199
+ struct page **ptrs, unsigned int *offs,
200
+ struct async_submit_ctl *submit);
202201
203202 struct dma_async_tx_descriptor *
204203 async_raid6_datap_recov(int src_num, size_t bytes, int faila,
205
- struct page **ptrs, struct async_submit_ctl *submit);
204
+ struct page **ptrs, unsigned int *offs,
205
+ struct async_submit_ctl *submit);
206206
207207 void async_tx_quiesce(struct dma_async_tx_descriptor **tx);
208208 #endif /* _ASYNC_TX_H_ */