summaryrefslogtreecommitdiff
path: root/src/i830.h
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2007-03-15 19:13:28 -0700
committerEric Anholt <eric@anholt.net>2007-03-15 19:13:28 -0700
commit213394fbaaf353404cbb3aaa4c20860f48ee1079 (patch)
tree61350845a3ce65410414df4310839b02a87a4696 /src/i830.h
parent316ee682d342556b65cbd60409201591e916aac5 (diff)
Fix crashes and other failures when a cursor allocation fails.
Now, we allocate one single block of memory for cursors, and either succeed or fail once, rather than trying to support partial fallback modes that generally resulted in pain due to being untested. In particular, this fixes cursors on FreeBSD, which only allowed one large physically-contiguous allocation.
Diffstat (limited to 'src/i830.h')
-rw-r--r--src/i830.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/i830.h b/src/i830.h
index 661d27e5..f8416dec 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -227,8 +227,14 @@ typedef struct _I830CrtcPrivateRec {
ExaOffscreenArea *rotate_mem_exa;
#endif
- i830_memory *cursor_mem;
- i830_memory *cursor_mem_argb;
+ /* Card virtual address of the cursor */
+ unsigned long cursor_offset;
+ unsigned long cursor_argb_offset;
+ /* Physical or virtual addresses of the cursor for setting in the cursor
+ * registers.
+ */
+ unsigned long cursor_addr;
+ unsigned long cursor_argb_addr;
Bool cursor_is_argb;
} I830CrtcPrivateRec, *I830CrtcPrivatePtr;
@@ -276,6 +282,7 @@ typedef struct _I830Rec {
i830_memory *front_buffer;
i830_memory *front_buffer_2;
+ i830_memory *cursor_mem;
i830_memory *xaa_scratch;
i830_memory *xaa_scratch_2;
#ifdef I830_USE_EXA