138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/**************************************************************************** 238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris **************************************************************************** 338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** 438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** This header was automatically generated from a Linux kernel header 538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** of the same name, to make information necessary for userspace to 638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** call into the kernel available to libc. It contains only constants, 738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** structures, and macros generated from the original header, and thus, 838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** contains no copyrightable information. 938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** 1038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** To edit the content of this header, modify the corresponding 1138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** source file (e.g. under external/kernel-headers/original/) then 1238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** run bionic/libc/kernel/tools/update_all.py 1338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** 1438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** Any manual change here will be lost the next time this script will 1538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** be run. You've been warned! 1638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** 1738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris **************************************************************************** 1838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ****************************************************************************/ 1938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#ifndef __LINUX_PUBLIC_GNTDEV_H__ 2038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define __LINUX_PUBLIC_GNTDEV_H__ 2105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#include <linux/types.h> 2238062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct ioctl_gntdev_grant_ref { 2305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 domid; 2405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 ref; 2538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 26d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define IOCTL_GNTDEV_MAP_GRANT_REF _IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref)) 2738062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct ioctl_gntdev_map_grant_ref { 2805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 count; 2905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 pad; 3005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u64 index; 31d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct ioctl_gntdev_grant_ref refs[1]; 3238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 33d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define IOCTL_GNTDEV_UNMAP_GRANT_REF _IOC(_IOC_NONE, 'G', 1, sizeof(struct ioctl_gntdev_unmap_grant_ref)) 3438062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct ioctl_gntdev_unmap_grant_ref { 3505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u64 index; 3605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 count; 3705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 pad; 3838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 3905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR _IOC(_IOC_NONE, 'G', 2, sizeof(struct ioctl_gntdev_get_offset_for_vaddr)) 4038062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct ioctl_gntdev_get_offset_for_vaddr { 4105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u64 vaddr; 4205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u64 offset; 4305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 count; 4405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 pad; 4538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 46d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define IOCTL_GNTDEV_SET_MAX_GRANTS _IOC(_IOC_NONE, 'G', 3, sizeof(struct ioctl_gntdev_set_max_grants)) 4705d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct ioctl_gntdev_set_max_grants { 4805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 count; 4938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 50d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define IOCTL_GNTDEV_SET_UNMAP_NOTIFY _IOC(_IOC_NONE, 'G', 7, sizeof(struct ioctl_gntdev_unmap_notify)) 5138062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct ioctl_gntdev_unmap_notify { 5205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u64 index; 5305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 action; 5405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 event_channel_port; 5538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 56106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct gntdev_grant_copy_segment { 57106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris union { 58106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris void __user * virt; 59106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris struct { 60106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris grant_ref_t ref; 61106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u16 offset; 62106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris domid_t domid; 63106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris } foreign; 64106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris } source, dest; 65106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u16 len; 66106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u16 flags; 67106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __s16 status; 68106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris}; 69106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define IOCTL_GNTDEV_GRANT_COPY _IOC(_IOC_NONE, 'G', 8, sizeof(struct ioctl_gntdev_grant_copy)) 70106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct ioctl_gntdev_grant_copy { 71106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris unsigned int count; 72106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris struct gntdev_grant_copy_segment __user * segments; 73106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris}; 7438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define UNMAP_NOTIFY_CLEAR_BYTE 0x1 7538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define UNMAP_NOTIFY_SEND_EVENT 0x2 7638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#endif 77