/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* * include/uapi/linux/rpbuf.h * * (C) Copyright 2020-2025 * Allwinner Technology Co., Ltd. * Junyan Lin * * RPBuf user interface header. * * 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 __UAPI_RPBUF_H__ #define __UAPI_RPBUF_H__ #include #include #define RPBUF_NAME_SIZE 32 /* include trailing '\0' */ struct rpbuf_buffer_info { char name[RPBUF_NAME_SIZE]; __u32 len; }; struct rpbuf_buffer_xfer { __u32 offset; __u32 data_len; __s32 timeout_ms; }; #define RPBUF_CTRL_DEV_IOCTL_MAGIC 0xb8 #define RPBUF_CTRL_DEV_IOCTL_CREATE_BUF \ _IOW(RPBUF_CTRL_DEV_IOCTL_MAGIC, 0x1, struct rpbuf_buffer_info) #define RPBUF_CTRL_DEV_IOCTL_DESTROY_BUF \ _IOW(RPBUF_CTRL_DEV_IOCTL_MAGIC, 0x2, struct rpbuf_buffer_info) #define RPBUF_BUF_DEV_IOCTL_MAGIC 0xb9 #define RPBUF_BUF_DEV_IOCTL_CHECK_AVAIL \ _IOR(RPBUF_BUF_DEV_IOCTL_MAGIC, 0x1, __u8) #define RPBUF_BUF_DEV_IOCTL_TRANSMIT_BUF \ _IOW(RPBUF_BUF_DEV_IOCTL_MAGIC, 0x2, struct rpbuf_buffer_xfer) #define RPBUF_BUF_DEV_IOCTL_RECEIVE_BUF \ _IOWR(RPBUF_BUF_DEV_IOCTL_MAGIC, 0x3, struct rpbuf_buffer_xfer) #define RPBUF_BUF_DEV_IOCTL_SET_SYNC_BUF \ _IOW(RPBUF_BUF_DEV_IOCTL_MAGIC, 0x4, struct rpbuf_buffer_xfer) #endif