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