diff options
Diffstat (limited to 'src/xvmc/radeon_xvmc.h')
-rw-r--r-- | src/xvmc/radeon_xvmc.h | 48 |
1 files changed, 33 insertions, 15 deletions
diff --git a/src/xvmc/radeon_xvmc.h b/src/xvmc/radeon_xvmc.h index 7770ae7..be98ac2 100644 --- a/src/xvmc/radeon_xvmc.h +++ b/src/xvmc/radeon_xvmc.h @@ -50,39 +50,54 @@ #include <X11/extensions/XvMClib.h> #include <drm_sarea.h> -/* hw xvmc support type */ -#define XVMC_RADEON_MPEG2_MC 0x01 +#include "r500_hwmc.h" -typedef struct _radeon_xvmc_driver_rec +typedef struct radeon_xvmc_context { - int type; /* hw xvmc type */ - int screen; /* current screen num*/ + XvMCContext *context; + drm_context_t hw_context; /* context id to kernel drm */ + struct _radeon_xvmc_context *next; +} radeon_xvmc_context_t, *radeon_xvmc_context_ptr; - int fd; /* drm file handler */ - drm_handle_t hsarea; /* DRI open connect */ - char busID[32]; +typedef struct radeon_xvmc_drm_map +{ + drm_handle_t handle; + unsigned long offset; + unsigned long size; + unsigned long bus_addr; + drmAddress map; +} radeon_xvmc_drm_map_t, *radeon_xvmc_drm_map_ptr; + +typedef struct radeon_xvmc_driver +{ + int type; /* hw xvmc type */ + int screen; /* current screen num*/ + + int fd; /* drm file handler */ + drm_handle_t hsarea; /* DRI open connect */ + char busID[32]; unsigned int sarea_size; - drmAddress sarea_address; + drmAddress sarea_address; struct { - unsigned int start_offset; - unsigned int size; - unsigned int space; + unsigned int start_offset; + unsigned int size; + unsigned int space; unsigned char *ptr; } batch; struct { - void *ptr; + void *ptr; unsigned int size; unsigned int offset; unsigned int active_buf; unsigned int irq_emitted; } alloc; -// radeon_xvmc_drm_map_t batchbuffer; + radeon_xvmc_drm_map_t batchbuffer; unsigned int last_render; sigset_t sa_mask; @@ -127,6 +142,9 @@ typedef struct _radeon_xvmc_driver_rec Status (*get_surface_status)(Display *display, XvMCSurface *surface, int *stat); -}; +}radeon_xvmc_driver_t, *radeon_xvmc_driver_ptr; + +extern struct radeon_xvmc_driver *xvmc_driver_ptr; +extern struct radeon_xvmc_driver r500_xvmc_driver; #endif
\ No newline at end of file |