agpgart.h
001: 
002: 
003: 
004: 
005: 
006: 
007: 
008: 
009: 
010: 
011: 
012: 
013: 
014: 
015: 
016: 
017: 
018: 
019: 
020: 
021: 
022: 
023: 
024: 
025: 
026: 
027: #ifndef _AGP_H
028: #define _AGP_H 1
029: 
030: #define AGPIOC_BASE       'A'
031: #define AGPIOC_INFO       _IOR (AGPIOC_BASE, 0, struct agp_info*)
032: #define AGPIOC_ACQUIRE    _IO  (AGPIOC_BASE, 1)
033: #define AGPIOC_RELEASE    _IO  (AGPIOC_BASE, 2)
034: #define AGPIOC_SETUP      _IOW (AGPIOC_BASE, 3, struct agp_setup*)
035: #define AGPIOC_RESERVE    _IOW (AGPIOC_BASE, 4, struct agp_region*)
036: #define AGPIOC_PROTECT    _IOW (AGPIOC_BASE, 5, struct agp_region*)
037: #define AGPIOC_ALLOCATE   _IOWR(AGPIOC_BASE, 6, struct agp_allocate*)
038: #define AGPIOC_DEALLOCATE _IOW (AGPIOC_BASE, 7, int)
039: #define AGPIOC_BIND       _IOW (AGPIOC_BASE, 8, struct agp_bind*)
040: #define AGPIOC_UNBIND     _IOW (AGPIOC_BASE, 9, struct agp_unbind*)
041: #define AGPIOC_CHIPSET_FLUSH _IO (AGPIOC_BASE, 10)
042: 
043: #define AGP_DEVICE      "/dev/agpgart"
044: 
045: #ifndef TRUE
046: #define TRUE 1
047: #endif
048: 
049: #ifndef FALSE
050: #define FALSE 0
051: #endif
052: 
053: #include <linux/types.h>
054: 
055: struct agp_version {
056:         __u16 major;
057:         __u16 minor;
058: };
059: 
060: typedef struct _agp_info {
061:         struct agp_version version;     
062:         __u32 bridge_id;        
063:         __u32 agp_mode;         
064:         unsigned long aper_base;
065:         size_t aper_size;       
066:         size_t pg_total;        
067:         size_t pg_system;       
068:         size_t pg_used;         
069: } agp_info;
070: 
071: typedef struct _agp_setup {
072:         __u32 agp_mode;         
073: } agp_setup;
074: 
075: 
076: 
077: 
078: typedef struct _agp_segment {
079:         __kernel_off_t pg_start;        
080:         __kernel_size_t pg_count;       
081:         int prot;                       
082: } agp_segment;
083: 
084: typedef struct _agp_region {
085:         __kernel_pid_t pid;             
086:         __kernel_size_t seg_count;      
087:         struct _agp_segment *seg_list;
088: } agp_region;
089: 
090: typedef struct _agp_allocate {
091:         int key;                
092:         __kernel_size_t pg_count;
093:         __u32 type;             
094:         __u32 physical;         
095: 
096: 
097: 
098: } agp_allocate;
099: 
100: typedef struct _agp_bind {
101:         int key;                
102:         __kernel_off_t pg_start;
103: } agp_bind;
104: 
105: typedef struct _agp_unbind {
106:         int key;                
107:         __u32 priority;         
108: } agp_unbind;
109: 
110: 
111: #endif                          
112: 
      
      
      
      
   
      
      
         
            
            © Andrew Scott 2006 -
            2025, 
            All Rights Reserved