/**************************************************************************** **************************************************************************** *** *** This header was automatically generated from a Linux kernel header *** of the same name, to make information necessary for userspace to *** call into the kernel available to libc. It contains only constants, *** structures, and macros generated from the original header, and thus, *** contains no copyrightable information. *** *** To edit the content of this header, modify the corresponding *** source file (e.g. under external/kernel-headers/original/) then *** run bionic/libc/kernel/tools/update_all.py *** *** Any manual change here will be lost the next time this script will *** be run. You've been warned! *** **************************************************************************** ****************************************************************************/ #ifndef __LINUX_PUBLIC_GNTDEV_H__ #define __LINUX_PUBLIC_GNTDEV_H__ #include <linux/types.h> struct ioctl_gntdev_grant_ref { __u32 domid; __u32 ref; }; #define IOCTL_GNTDEV_MAP_GRANT_REF _IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref)) struct ioctl_gntdev_map_grant_ref { __u32 count; __u32 pad; __u64 index; struct ioctl_gntdev_grant_ref refs[1]; }; #define IOCTL_GNTDEV_UNMAP_GRANT_REF _IOC(_IOC_NONE, 'G', 1, sizeof(struct ioctl_gntdev_unmap_grant_ref)) struct ioctl_gntdev_unmap_grant_ref { __u64 index; __u32 count; __u32 pad; }; #define IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR _IOC(_IOC_NONE, 'G', 2, sizeof(struct ioctl_gntdev_get_offset_for_vaddr)) struct ioctl_gntdev_get_offset_for_vaddr { __u64 vaddr; __u64 offset; __u32 count; __u32 pad; }; #define IOCTL_GNTDEV_SET_MAX_GRANTS _IOC(_IOC_NONE, 'G', 3, sizeof(struct ioctl_gntdev_set_max_grants)) struct ioctl_gntdev_set_max_grants { __u32 count; }; #define IOCTL_GNTDEV_SET_UNMAP_NOTIFY _IOC(_IOC_NONE, 'G', 7, sizeof(struct ioctl_gntdev_unmap_notify)) struct ioctl_gntdev_unmap_notify { __u64 index; __u32 action; __u32 event_channel_port; }; struct gntdev_grant_copy_segment { union { void __user * virt; struct { grant_ref_t ref; __u16 offset; domid_t domid; } foreign; } source, dest; __u16 len; __u16 flags; __s16 status; }; #define IOCTL_GNTDEV_GRANT_COPY _IOC(_IOC_NONE, 'G', 8, sizeof(struct ioctl_gntdev_grant_copy)) struct ioctl_gntdev_grant_copy { unsigned int count; struct gntdev_grant_copy_segment __user * segments; }; #define UNMAP_NOTIFY_CLEAR_BYTE 0x1 #define UNMAP_NOTIFY_SEND_EVENT 0x2 #define GNTDEV_DMA_FLAG_WC (1 << 0) #define GNTDEV_DMA_FLAG_COHERENT (1 << 1) #define IOCTL_GNTDEV_DMABUF_EXP_FROM_REFS _IOC(_IOC_NONE, 'G', 9, sizeof(struct ioctl_gntdev_dmabuf_exp_from_refs)) struct ioctl_gntdev_dmabuf_exp_from_refs { __u32 flags; __u32 count; __u32 fd; __u32 domid; __u32 refs[1]; }; #define IOCTL_GNTDEV_DMABUF_EXP_WAIT_RELEASED _IOC(_IOC_NONE, 'G', 10, sizeof(struct ioctl_gntdev_dmabuf_exp_wait_released)) struct ioctl_gntdev_dmabuf_exp_wait_released { __u32 fd; __u32 wait_to_ms; }; #define IOCTL_GNTDEV_DMABUF_IMP_TO_REFS _IOC(_IOC_NONE, 'G', 11, sizeof(struct ioctl_gntdev_dmabuf_imp_to_refs)) struct ioctl_gntdev_dmabuf_imp_to_refs { __u32 fd; __u32 count; __u32 domid; __u32 reserved; __u32 refs[1]; }; #define IOCTL_GNTDEV_DMABUF_IMP_RELEASE _IOC(_IOC_NONE, 'G', 12, sizeof(struct ioctl_gntdev_dmabuf_imp_release)) struct ioctl_gntdev_dmabuf_imp_release { __u32 fd; __u32 reserved; }; #endif