diff options
author | Eric Anholt <eric@anholt.net> | 2007-03-15 19:13:28 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2007-03-15 19:13:28 -0700 |
commit | 213394fbaaf353404cbb3aaa4c20860f48ee1079 (patch) | |
tree | 61350845a3ce65410414df4310839b02a87a4696 /src/i830.h | |
parent | 316ee682d342556b65cbd60409201591e916aac5 (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.h | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -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 |