linux-brain/include/linux/ivshmem.h

31 lines
703 B
C

/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _LINUX_IVSHMEM_H
#define _LINUX_IVSHMEM_H
#include <linux/types.h>
#define IVSHM_PROTO_UNDEFINED 0x0000
#define IVSHM_PROTO_NET 0x0001
#define IVSHM_PROTO_VIRTIO_FRONT 0x8000
#define IVSHM_PROTO_VIRTIO_BACK 0xc000
#define IVSHM_PROTO_VIRTIO_DEVID_MASK 0x7fff
#define IVSHM_CFG_PRIV_CNTL 0x03
# define IVSHM_PRIV_CNTL_ONESHOT_INT BIT(0)
#define IVSHM_CFG_STATE_TAB_SZ 0x04
#define IVSHM_CFG_RW_SECTION_SZ 0x08
#define IVSHM_CFG_OUTPUT_SECTION_SZ 0x10
#define IVSHM_CFG_ADDRESS 0x18
struct ivshm_regs {
u32 id;
u32 max_peers;
u32 int_control;
u32 doorbell;
u32 state;
};
#define IVSHM_INT_ENABLE BIT(0)
#endif /* _LINUX_IVSHMEM_H */