Files
luban-lite/bsp/artinchip/include/hal/bouncebuf.h

33 lines
827 B
C
Raw Normal View History

2025-01-08 19:12:06 +08:00
/*
* Copyright (c) 2022-2024, ArtInChip Technology Co., Ltd
*
* SPDX-License-Identifier: Apache-2.0
*/
2023-08-30 16:21:18 +08:00
#ifndef __INCLUDE_BOUNCEBUF_H__
#define __INCLUDE_BOUNCEBUF_H__
2025-01-08 19:12:06 +08:00
#define GEN_BB_READ (1 << 0)
#define GEN_BB_WRITE (1 << 1)
#define GEN_BB_RW (GEN_BB_READ | GEN_BB_WRITE)
2023-08-30 16:21:18 +08:00
struct bounce_buffer {
2025-01-08 19:12:06 +08:00
void *user_buffer;
void *bounce_buffer;
size_t len;
size_t len_aligned;
unsigned int flags;
2023-08-30 16:21:18 +08:00
};
int bounce_buffer_start(struct bounce_buffer *state, void *data,
2025-01-08 19:12:06 +08:00
size_t len, unsigned int flags);
2023-08-30 16:21:18 +08:00
int bounce_buffer_start_extalign(struct bounce_buffer *state, void *data,
2025-01-08 19:12:06 +08:00
size_t len, unsigned int flags,
size_t alignment,
int (*addr_is_aligned)(struct bounce_buffer *state));
2023-08-30 16:21:18 +08:00
int bounce_buffer_stop(struct bounce_buffer *state);
#endif