• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef UAPI_GOLDFISH_ADDRESS_SPACE_H
3 #define UAPI_GOLDFISH_ADDRESS_SPACE_H
4 
5 #include <linux/types.h>
6 
7 #define GOLDFISH_ADDRESS_SPACE_DEVICE_NAME	"goldfish_address_space"
8 
9 struct goldfish_address_space_allocate_block {
10 	__u64 size;
11 	__u64 offset;
12 	__u64 phys_addr;
13 };
14 
15 struct goldfish_address_space_ping {
16 	__u64 offset;
17 	__u64 size;
18 	__u64 metadata;
19 	__u64 wait_offset;
20 	__u32 wait_flags;
21 	__u32 direction;
22 };
23 
24 #define GOLDFISH_ADDRESS_SPACE_IOCTL_MAGIC	'G'
25 
26 #define GOLDFISH_ADDRESS_SPACE_IOCTL_OP(OP, T)	\
27 	_IOWR(GOLDFISH_ADDRESS_SPACE_IOCTL_MAGIC, OP, T)
28 
29 #define GOLDFISH_ADDRESS_SPACE_IOCTL_ALLOCATE_BLOCK \
30 	GOLDFISH_ADDRESS_SPACE_IOCTL_OP(10, \
31 		struct goldfish_address_space_allocate_block)
32 
33 #define GOLDFISH_ADDRESS_SPACE_IOCTL_DEALLOCATE_BLOCK \
34 	GOLDFISH_ADDRESS_SPACE_IOCTL_OP(11, __u64)
35 
36 #define GOLDFISH_ADDRESS_SPACE_IOCTL_PING \
37 	GOLDFISH_ADDRESS_SPACE_IOCTL_OP(12, \
38 		struct goldfish_address_space_ping)
39 
40 #endif /* UAPI_GOLDFISH_ADDRESS_SPACE_H */
41