aboutsummaryrefslogtreecommitdiff
path: root/include/linux/ivshmem.h
blob: bad8547f071b69851b1ea2238751b3ff783f8a1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* 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 */