1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/**************************************************************************** 2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** This header was automatically generated from a Linux kernel header 5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** of the same name, to make information necessary for userspace to 6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** call into the kernel available to libc. It contains only constants, 7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** structures, and macros generated from the original header, and thus, 8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** contains no copyrightable information. 9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** To edit the content of this header, modify the corresponding 11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** source file (e.g. under external/kernel-headers/original/) then 12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** run bionic/libc/kernel/tools/update_all.py 13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** Any manual change here will be lost the next time this script will 15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** be run. You've been warned! 16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/ 19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _UAPI_AGP_H 20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _UAPI_AGP_H 21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define AGPIOC_BASE 'A' 22d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define AGPIOC_INFO _IOR(AGPIOC_BASE, 0, struct agp_info *) 23d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define AGPIOC_ACQUIRE _IO(AGPIOC_BASE, 1) 24d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define AGPIOC_RELEASE _IO(AGPIOC_BASE, 2) 25d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define AGPIOC_SETUP _IOW(AGPIOC_BASE, 3, struct agp_setup *) 26d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define AGPIOC_RESERVE _IOW(AGPIOC_BASE, 4, struct agp_region *) 27d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define AGPIOC_PROTECT _IOW(AGPIOC_BASE, 5, struct agp_region *) 28d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define AGPIOC_ALLOCATE _IOWR(AGPIOC_BASE, 6, struct agp_allocate *) 29d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define AGPIOC_DEALLOCATE _IOW(AGPIOC_BASE, 7, int) 30d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define AGPIOC_BIND _IOW(AGPIOC_BASE, 8, struct agp_bind *) 31d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define AGPIOC_UNBIND _IOW(AGPIOC_BASE, 9, struct agp_unbind *) 32d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define AGPIOC_CHIPSET_FLUSH _IO(AGPIOC_BASE, 10) 33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define AGP_DEVICE "/dev/agpgart" 34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef TRUE 35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TRUE 1 36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif 37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef FALSE 38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FALSE 0 39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif 40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h> 41106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#include <stdlib.h> 42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct agp_version { 43106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u16 major; 44d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 minor; 45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct _agp_info { 47106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris struct agp_version version; 48d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 bridge_id; 49d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 agp_mode; 50d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned long aper_base; 51106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris size_t aper_size; 52d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao size_t pg_total; 53d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao size_t pg_system; 54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao size_t pg_used; 55106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris} agp_info; 56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct _agp_setup { 57d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 agp_mode; 58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} agp_setup; 59106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferristypedef struct _agp_segment { 60d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __kernel_off_t pg_start; 61d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __kernel_size_t pg_count; 62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int prot; 63106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris} agp_segment; 64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct _agp_region { 65d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __kernel_pid_t pid; 66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __kernel_size_t seg_count; 67106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris struct _agp_segment * seg_list; 68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} agp_region; 69655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct _agp_allocate { 70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int key; 71106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __kernel_size_t pg_count; 72d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 type; 73d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 physical; 74655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} agp_allocate; 75106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferristypedef struct _agp_bind { 76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int key; 77d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __kernel_off_t pg_start; 78655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} agp_bind; 79106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferristypedef struct _agp_unbind { 80d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int key; 81d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 priority; 82655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} agp_unbind; 83106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#endif 84