31 lines
703 B
C
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 */
|