ioat.h (a5d8944a83ff8a3aad14197b7aa0800ff9bda95e) ioat.h (9950fde08daf5f30631d61601cc601e6e7a64055)
1/*-
2 * Copyright (C) 2012 Intel Corporation
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 70 unchanged lines hidden (view full) ---

79 void *callback_arg, uint32_t flags);
80
81/* Issues the copy data operation */
82struct bus_dmadesc *ioat_copy(bus_dmaengine_t dmaengine, bus_addr_t dst,
83 bus_addr_t src, bus_size_t len, bus_dmaengine_callback_t callback_fn,
84 void *callback_arg, uint32_t flags);
85
86/*
1/*-
2 * Copyright (C) 2012 Intel Corporation
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 70 unchanged lines hidden (view full) ---

79 void *callback_arg, uint32_t flags);
80
81/* Issues the copy data operation */
82struct bus_dmadesc *ioat_copy(bus_dmaengine_t dmaengine, bus_addr_t dst,
83 bus_addr_t src, bus_size_t len, bus_dmaengine_callback_t callback_fn,
84 void *callback_arg, uint32_t flags);
85
86/*
87 * Issue a copy data operation, with constraints:
88 * - src1, src2, dst1, dst2 are all page-aligned addresses
89 * - The quantity to copy is exactly 2 pages;
90 * - src1 -> dst1, src2 -> dst2
91 *
92 * Why use this instead of normal _copy()? You can copy two non-contiguous
93 * pages (src, dst, or both) with one descriptor.
94 */
95struct bus_dmadesc *ioat_copy_8k_aligned(bus_dmaengine_t dmaengine,
96 bus_addr_t dst1, bus_addr_t dst2, bus_addr_t src1, bus_addr_t src2,
97 bus_dmaengine_callback_t callback_fn, void *callback_arg, uint32_t flags);
98
99/*
87 * Issues a null operation. This issues the operation to the hardware, but the
88 * hardware doesn't do anything with it.
89 */
90struct bus_dmadesc *ioat_null(bus_dmaengine_t dmaengine,
91 bus_dmaengine_callback_t callback_fn, void *callback_arg, uint32_t flags);
92
93
94#endif /* __IOAT_H__ */
95
100 * Issues a null operation. This issues the operation to the hardware, but the
101 * hardware doesn't do anything with it.
102 */
103struct bus_dmadesc *ioat_null(bus_dmaengine_t dmaengine,
104 bus_dmaengine_callback_t callback_fn, void *callback_arg, uint32_t flags);
105
106
107#endif /* __IOAT_H__ */
108