diff options
Diffstat (limited to 'usr/src/uts/common/sys/agpgart.h')
-rw-r--r-- | usr/src/uts/common/sys/agpgart.h | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/usr/src/uts/common/sys/agpgart.h b/usr/src/uts/common/sys/agpgart.h index c8770ae..cf25bf0 100644 --- a/usr/src/uts/common/sys/agpgart.h +++ b/usr/src/uts/common/sys/agpgart.h @@ -70,14 +70,16 @@ typedef struct _agp_allocate { typedef struct _agp_bind_pages { uint32_t agpb_pgstart; + uint32_t agpb_pgcount; pfn_t *agpb_pages; - unsigned long agpb_pgcount; + uint32_t agpb_type; /* AGP_USER_MEMORY */ } agp_bind_pages_t; typedef struct _agp_unbind_pages { - uint32_t agpb_pgstart; - unsigned long agpb_pgcount; - uint32_t agpb_type; + uint32_t agpu_pgstart; + uint32_t agpu_pgcount; + pfn_t agpu_scratch; + uint32_t agpu_flags; } agp_unbind_pages_t; typedef struct _agp_bind { @@ -90,6 +92,13 @@ typedef struct _agp_unbind { uint32_t agpu_pri; /* no use in solaris */ } agp_unbind_t; +typedef struct _agp_rw_gtt { + uint32_t agprw_pgstart; + uint32_t agprw_pgcount; + void *agprw_addr; /* buffer */ + uint32_t agprw_flags; /* 0:read, 1:write */ +} agp_rw_gtt_t; + #define AGPIOC_BASE 'G' #define AGPIOC_INFO _IOR(AGPIOC_BASE, 0, 100) #define AGPIOC_ACQUIRE _IO(AGPIOC_BASE, 1) @@ -106,7 +115,12 @@ typedef struct _agp_unbind { #define AGPIOC_FLUSHCHIPSET _IO(AGPIOC_BASE, 12) #define AGPIOC_PAGES_BIND _IOW(AGPIOC_BASE, 13, agp_bind_pages_t) #define AGPIOC_PAGES_UNBIND _IOW(AGPIOC_BASE, 14, agp_unbind_pages_t) -#define AGPIOC_PAGES_REBIND _IO(AGPIOC_BASE, 15) +#define AGPIOC_RW_GTT _IOW(AGPIOC_BASE, 15, agp_rw_gtt_t) + +/* AGP bind pages type values */ +#define AGP_USER_TYPES (1 << 16) +#define AGP_USER_MEMORY (AGP_USER_TYPES) +#define AGP_USER_CACHED_MEMORY (AGP_USER_TYPES + 1) /* AGP status register bits definition */ #define AGPSTAT_RQ_MASK 0xff000000 /* target only */ |