122851890Sopenharmony_ci/* 222851890Sopenharmony_ci * This header was generated from the Linux kernel headers by update_headers.py, 322851890Sopenharmony_ci * to provide necessary information from kernel to userspace, such as constants, 422851890Sopenharmony_ci * structures, and macros, and thus, contains no copyrightable information. 522851890Sopenharmony_ci */ 622851890Sopenharmony_ci#ifndef __LINUX_PUBLIC_GNTDEV_H__ 722851890Sopenharmony_ci#define __LINUX_PUBLIC_GNTDEV_H__ 822851890Sopenharmony_ci#include <linux/types.h> 922851890Sopenharmony_cistruct ioctl_gntdev_grant_ref { 1022851890Sopenharmony_ci 1122851890Sopenharmony_ci __u32 domid; 1222851890Sopenharmony_ci 1322851890Sopenharmony_ci __u32 ref; 1422851890Sopenharmony_ci}; 1522851890Sopenharmony_ci#define IOCTL_GNTDEV_MAP_GRANT_REF \ 1622851890Sopenharmony_ci_IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref)) 1722851890Sopenharmony_cistruct ioctl_gntdev_map_grant_ref { 1822851890Sopenharmony_ci 1922851890Sopenharmony_ci 2022851890Sopenharmony_ci __u32 count; 2122851890Sopenharmony_ci __u32 pad; 2222851890Sopenharmony_ci 2322851890Sopenharmony_ci 2422851890Sopenharmony_ci __u64 index; 2522851890Sopenharmony_ci 2622851890Sopenharmony_ci 2722851890Sopenharmony_ci struct ioctl_gntdev_grant_ref refs[1]; 2822851890Sopenharmony_ci}; 2922851890Sopenharmony_ci#define IOCTL_GNTDEV_UNMAP_GRANT_REF \ 3022851890Sopenharmony_ci_IOC(_IOC_NONE, 'G', 1, sizeof(struct ioctl_gntdev_unmap_grant_ref)) 3122851890Sopenharmony_cistruct ioctl_gntdev_unmap_grant_ref { 3222851890Sopenharmony_ci 3322851890Sopenharmony_ci 3422851890Sopenharmony_ci __u64 index; 3522851890Sopenharmony_ci 3622851890Sopenharmony_ci __u32 count; 3722851890Sopenharmony_ci __u32 pad; 3822851890Sopenharmony_ci}; 3922851890Sopenharmony_ci#define IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR \ 4022851890Sopenharmony_ci_IOC(_IOC_NONE, 'G', 2, sizeof(struct ioctl_gntdev_get_offset_for_vaddr)) 4122851890Sopenharmony_cistruct ioctl_gntdev_get_offset_for_vaddr { 4222851890Sopenharmony_ci 4322851890Sopenharmony_ci 4422851890Sopenharmony_ci __u64 vaddr; 4522851890Sopenharmony_ci 4622851890Sopenharmony_ci 4722851890Sopenharmony_ci __u64 offset; 4822851890Sopenharmony_ci 4922851890Sopenharmony_ci __u32 count; 5022851890Sopenharmony_ci __u32 pad; 5122851890Sopenharmony_ci}; 5222851890Sopenharmony_ci#define IOCTL_GNTDEV_SET_MAX_GRANTS \ 5322851890Sopenharmony_ci_IOC(_IOC_NONE, 'G', 3, sizeof(struct ioctl_gntdev_set_max_grants)) 5422851890Sopenharmony_cistruct ioctl_gntdev_set_max_grants { 5522851890Sopenharmony_ci 5622851890Sopenharmony_ci 5722851890Sopenharmony_ci __u32 count; 5822851890Sopenharmony_ci}; 5922851890Sopenharmony_ci#define IOCTL_GNTDEV_SET_UNMAP_NOTIFY \ 6022851890Sopenharmony_ci_IOC(_IOC_NONE, 'G', 7, sizeof(struct ioctl_gntdev_unmap_notify)) 6122851890Sopenharmony_cistruct ioctl_gntdev_unmap_notify { 6222851890Sopenharmony_ci 6322851890Sopenharmony_ci 6422851890Sopenharmony_ci __u64 index; 6522851890Sopenharmony_ci 6622851890Sopenharmony_ci __u32 action; 6722851890Sopenharmony_ci 6822851890Sopenharmony_ci __u32 event_channel_port; 6922851890Sopenharmony_ci}; 7022851890Sopenharmony_cistruct gntdev_grant_copy_segment { 7122851890Sopenharmony_ci union { 7222851890Sopenharmony_ci void __user *virt; 7322851890Sopenharmony_ci struct { 7422851890Sopenharmony_ci grant_ref_t ref; 7522851890Sopenharmony_ci __u16 offset; 7622851890Sopenharmony_ci domid_t domid; 7722851890Sopenharmony_ci } foreign; 7822851890Sopenharmony_ci } source, dest; 7922851890Sopenharmony_ci __u16 len; 8022851890Sopenharmony_ci __u16 flags; 8122851890Sopenharmony_ci __s16 status; 8222851890Sopenharmony_ci}; 8322851890Sopenharmony_ci#define IOCTL_GNTDEV_GRANT_COPY \ 8422851890Sopenharmony_ci _IOC(_IOC_NONE, 'G', 8, sizeof(struct ioctl_gntdev_grant_copy)) 8522851890Sopenharmony_cistruct ioctl_gntdev_grant_copy { 8622851890Sopenharmony_ci unsigned int count; 8722851890Sopenharmony_ci struct gntdev_grant_copy_segment __user *segments; 8822851890Sopenharmony_ci}; 8922851890Sopenharmony_ci#define UNMAP_NOTIFY_CLEAR_BYTE 0x1 9022851890Sopenharmony_ci#define UNMAP_NOTIFY_SEND_EVENT 0x2 9122851890Sopenharmony_ci#define GNTDEV_DMA_FLAG_WC (1 << 0) 9222851890Sopenharmony_ci#define GNTDEV_DMA_FLAG_COHERENT (1 << 1) 9322851890Sopenharmony_ci#define IOCTL_GNTDEV_DMABUF_EXP_FROM_REFS \ 9422851890Sopenharmony_ci _IOC(_IOC_NONE, 'G', 9, \ 9522851890Sopenharmony_ci sizeof(struct ioctl_gntdev_dmabuf_exp_from_refs)) 9622851890Sopenharmony_cistruct ioctl_gntdev_dmabuf_exp_from_refs { 9722851890Sopenharmony_ci 9822851890Sopenharmony_ci 9922851890Sopenharmony_ci __u32 flags; 10022851890Sopenharmony_ci 10122851890Sopenharmony_ci __u32 count; 10222851890Sopenharmony_ci 10322851890Sopenharmony_ci 10422851890Sopenharmony_ci __u32 fd; 10522851890Sopenharmony_ci 10622851890Sopenharmony_ci __u32 domid; 10722851890Sopenharmony_ci 10822851890Sopenharmony_ci 10922851890Sopenharmony_ci __u32 refs[1]; 11022851890Sopenharmony_ci}; 11122851890Sopenharmony_ci#define IOCTL_GNTDEV_DMABUF_EXP_WAIT_RELEASED \ 11222851890Sopenharmony_ci _IOC(_IOC_NONE, 'G', 10, \ 11322851890Sopenharmony_ci sizeof(struct ioctl_gntdev_dmabuf_exp_wait_released)) 11422851890Sopenharmony_cistruct ioctl_gntdev_dmabuf_exp_wait_released { 11522851890Sopenharmony_ci 11622851890Sopenharmony_ci __u32 fd; 11722851890Sopenharmony_ci __u32 wait_to_ms; 11822851890Sopenharmony_ci}; 11922851890Sopenharmony_ci#define IOCTL_GNTDEV_DMABUF_IMP_TO_REFS \ 12022851890Sopenharmony_ci _IOC(_IOC_NONE, 'G', 11, \ 12122851890Sopenharmony_ci sizeof(struct ioctl_gntdev_dmabuf_imp_to_refs)) 12222851890Sopenharmony_cistruct ioctl_gntdev_dmabuf_imp_to_refs { 12322851890Sopenharmony_ci 12422851890Sopenharmony_ci 12522851890Sopenharmony_ci __u32 fd; 12622851890Sopenharmony_ci 12722851890Sopenharmony_ci __u32 count; 12822851890Sopenharmony_ci 12922851890Sopenharmony_ci __u32 domid; 13022851890Sopenharmony_ci 13122851890Sopenharmony_ci __u32 reserved; 13222851890Sopenharmony_ci 13322851890Sopenharmony_ci 13422851890Sopenharmony_ci __u32 refs[1]; 13522851890Sopenharmony_ci}; 13622851890Sopenharmony_ci#define IOCTL_GNTDEV_DMABUF_IMP_RELEASE \ 13722851890Sopenharmony_ci _IOC(_IOC_NONE, 'G', 12, \ 13822851890Sopenharmony_ci sizeof(struct ioctl_gntdev_dmabuf_imp_release)) 13922851890Sopenharmony_cistruct ioctl_gntdev_dmabuf_imp_release { 14022851890Sopenharmony_ci 14122851890Sopenharmony_ci __u32 fd; 14222851890Sopenharmony_ci __u32 reserved; 14322851890Sopenharmony_ci}; 14422851890Sopenharmony_ci#endif 145