huangliang 3 роки тому
батько
коміт
6472354023
30 змінених файлів з 36 додано та 20135 видалено
  1. 1 1
      buildroot-external/package/demo-v4l2-1668e/Makefile
  2. BIN
      buildroot-external/package/demo-v4l2-1668e/demo-v4l2
  3. 0 434
      buildroot-external/package/demo-v4l2-1668e/include/ark_api.h
  4. 0 415
      buildroot-external/package/demo-v4l2-1668e/include/ark_list.h
  5. 0 1
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/aqHal.h
  6. 0 2859
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal.h
  7. 0 5530
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_base.h
  8. 0 1131
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_driver.h
  9. 0 262
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_driver_vg.h
  10. 0 81
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_dump.h
  11. 0 623
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_eglplatform.h
  12. 0 293
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_eglplatform_type.h
  13. 0 1207
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_engine_vg.h
  14. 0 1622
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_enum.h
  15. 0 1275
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_options.h
  16. 0 577
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_profiler.h
  17. 0 1030
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_raster.h
  18. 0 235
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_rename.h
  19. 0 924
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_types.h
  20. 0 31
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_version.h
  21. 0 889
      buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_vg.h
  22. 0 38
      buildroot-external/package/demo-v4l2-1668e/include/sys/basetype.h
  23. 0 197
      buildroot-external/package/demo-v4l2-1668e/include/sys/decapicommon.h
  24. 0 180
      buildroot-external/package/demo-v4l2-1668e/include/sys/dwl.h
  25. 0 54
      buildroot-external/package/demo-v4l2-1668e/include/sys/memalloc.h
  26. 0 87
      buildroot-external/package/demo-v4l2-1668e/include/sys/mfcapi.h
  27. BIN
      buildroot-external/package/demo-v4l2-1668e/lib/libGAL.so
  28. BIN
      buildroot-external/package/demo-v4l2-1668e/lib/libarkapi.so
  29. BIN
      buildroot-external/package/demo-v4l2-1668e/lib/libmfc.so
  30. 35 159
      buildroot-external/package/demo-v4l2-1668e/main.c

+ 1 - 1
buildroot-external/package/demo-v4l2-1668e/Makefile

@@ -6,7 +6,7 @@ SRCS = main.c
 
 INC = -I./include -I./include/sys
 LDFLAGS += -L./lib
-DLIBS = -lmfc -larkapi -lpthread  -lrt -lGAL
+DLIBS = -lpthread  -lrt
 OBJS = $(SRCS:.c=.o)
 
 #CFLAGS += -DgcdENABLE_3D=0

BIN
buildroot-external/package/demo-v4l2-1668e/demo-v4l2


+ 0 - 434
buildroot-external/package/demo-v4l2-1668e/include/ark_api.h

@@ -1,434 +0,0 @@
-#ifndef __ARK_API_H__
-#define __ARK_API_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "basetype.h"
-#include "mfcapi.h"
-#include "ark_list.h"
-
-
-enum mirror_direction {
-	LANDSCAPE,
-	VERTICAL,
-};
-
-/* Surface formats. */
-enum ark_2d_format
-{
-	/* RGB formats. */
-	ARK_gcvSURF_R5G6B5              = 209,
-	ARK_gcvSURF_R8G8B8,
-	ARK_gcvSURF_A8R8G8B8            = 212,
-
-	/* BGR formats. */
-	ARK_gcvSURF_B5G6R5              = 302,
-	ARK_gcvSURF_B8G8R8,
-	ARK_gcvSURF_A8B8G8R8            = 306,
-
-	/* YUV formats. */
-	ARK_gcvSURF_YUY2                = 500,
-	ARK_gcvSURF_UYVY,
-	ARK_gcvSURF_YV12,
-	ARK_gcvSURF_I420,
-	ARK_gcvSURF_NV12,
-	ARK_gcvSURF_NV21,
-	ARK_gcvSURF_NV16,
-	ARK_gcvSURF_NV61,
-	ARK_gcvSURF_YVYU,
-	ARK_gcvSURF_VYUY,
-};
-
-
-enum ark_disp_layer {
-	PRIMARY_LAYER,      //fb0 for UI
-	VIDEO_LAYER,        //video/phonelink display
-	OVER_LAYER,         //overlay for UI
-	TVOUT_LAYER,        //tvout  display
-	AUX_LAYER,          //itu601/656 display
-	MAX_LAYERS
-};
-
- enum ark_disp_mode {
-	DISP_NONE = -1,
-	DISP_PLAYER,
-	DISP_CARLIFE,
-	DISP_CARPLAY,
-	DISP_AUX,
-	DISP_MODE_NUM,
-};
-
-enum ark_disp_format {
-	ARK_LCDC_FORMAT_YUV422,
-	ARK_LCDC_FORMAT_YUV420,
-	ARK_LCDC_FORMAT_VYUY,
-	ARK_LCDC_FORMAT_YUV,
-	ARK_LCDC_FORMAT_RGBI555,
-	ARK_LCDC_FORMAT_R5G6B5,
-	ARK_LCDC_FORMAT_RGBA888,
-	ARK_LCDC_FORMAT_RGB888,
-
-	ARK_LCDC_FORMAT_Y_UV422 = 0x10,
-	ARK_LCDC_FORMAT_Y_UV420 = 0x11,
-};
-
-typedef enum ark_scalar_format {
-	ARK_SCALE_FORMAT_YUV422 = 0,
-	ARK_SCALE_FORMAT_Y_UV422 = (1 << 8) | ARK_SCALE_FORMAT_YUV422,
-	ARK_SCALE_FORMAT_Y_U_V420 = 1,
-	ARK_SCALE_FORMAT_Y_UV420 = (1 << 8) | ARK_SCALE_FORMAT_Y_U_V420,
-	ARK_SCALE_FORMAT_YUYV = 2,
-	ARK_SCALE_FORMAT_YVYU = (1 << 8) | ARK_SCALE_FORMAT_YUYV,
-	ARK_SCALE_FORMAT_UYVY = (2 << 8) | ARK_SCALE_FORMAT_YUYV,
-	ARK_SCALE_FORMAT_VYUY = (3 << 8) | ARK_SCALE_FORMAT_YUYV,
-	ARK_SCALE_FORMAT_YUV = 3,
-}scalar_in_format;
-
-typedef enum ark_scalar_output_format {
-	ARK_SCALE_OUT_FORMAT_Y_UV422 = (1 << 8) | ARK_SCALE_FORMAT_YUV422,
-	ARK_SCALE_OUT_FORMAT_Y_UV420 = (1 << 8) | ARK_SCALE_FORMAT_Y_U_V420,
-	ARK_SCALE_OUT_FORMAT_YUYV = 2,
-	ARK_SCALE_OUT_FORMAT_END
-}scalar_out_format;
-
-enum ark_yuv_order {
-	ARK_LCDC_ORDER_VYUY = 0x000000,
-	ARK_LCDC_ORDER_UYVY = 0x010000,
-	ARK_LCDC_ORDER_YVYU = 0x020000,
-	ARK_LCDC_ORDER_YUYV = 0x030000,
-};
-
-enum ark_rgb_order {
-	ARK_LCDC_ORDER_RGB = 0x00000000,
-	ARK_LCDC_ORDER_RBG = 0x01000000,
-	ARK_LCDC_ORDER_GRB = 0x02000000,
-	ARK_LCDC_ORDER_GBR = 0x03000000,
-	ARK_LCDC_ORDER_BRG = 0x04000000,
-	ARK_LCDC_ORDER_BGR = 0x05000000,
-};
-
-enum ark_platform_type {
-	ARK_PLATFORM_ARK1668,
-	ARK_PLATFORM_ARKN141,
-	ARK_PLATFORM_ARK1668E,
-	ARK_PLATFORM_MAX
-};
-
-typedef enum ark_scale_rotate {
-	SCALE_ROTATE_0,
-	SCALE_ROTATE_90,
-	SCALE_ROTATE_180,
-	SCALE_ROTATE_270,
-	SCALE_ROTATE_0_MIRROR,
-	SCALE_ROTATE_90_MIRROR,
-	SCALE_ROTATE_180_MIRROR,
-	SCALE_ROTATE_270_MIRROR,
-	SCALE_ROTATE_END
-} scale_rotate;
-
-typedef struct ark_platform_info {
-	u32 type;
-	u32 reserve[32];
-} platform_info;
-
-typedef struct ark_disp_window {
-	int pos_x;
-	int pos_y;
-	int width;
-	int height; 
-	int format;
-	int yuyv_order;
-	int rgb_order;
-} disp_window;
-
-/* lcd display video layer scale */
-typedef struct ark_disp_scaler {   
-	int src_w;
-	int src_h;
-	int win_x;
-	int win_y;
-	int win_w;
-	int win_h;
-	int out_x;
-	int out_y;
-	int out_w;
-	int out_h;
-	int cut_top;
-	int cut_bottom;
-	int cut_left;
-	int cut_right;
-} disp_scaler;
-
-typedef struct ark_disp_color {
-	u8 contrast;
-	u8 brightness;
-	u8 saturation;
-	u8 hue;
-} disp_color;
-
-typedef struct ark_disp_vp {
-	struct ark_disp_color color;
-	int reg[6];
-}disp_vp;
-
-typedef struct ark_screen {
-	u32 type;
-	u32 width;
-	u32 height;
-
-	u32 disp_x;
-	u32 disp_y;
-	u32 disp_width;
-	u32 disp_height;
-} screen_info;
-
-typedef struct ark_disp_addr {
-	u32 yaddr;
-	u32 cbaddr;
-	u32 craddr;
-	u32 wait_vsync;
-} disp_addr;
-
-#define FRAME_MAX               5
-#define ROTATE_BUF_MAX          3
-
-typedef struct ark_reqbuf{
-	struct list_head list; 
-	u32 count;
-	u32 size;
-	u32 phy_addr[FRAME_MAX]; 
-	u32 *virt_addr[FRAME_MAX];
-}reqbuf_info;
-
-
-typedef struct{
-	int fd;
-	int reqbuf_cnt;
-	reqbuf_info *reqbuf_head;
-} memalloc_handle;
-
-typedef struct ark_disp_handle{
-	struct list_head list; 
-	memalloc_handle *mem_handle;
-
-	int fd;
-	int layer_id;
-	int display_mode;
-	int atomic_stat;
-	int show;
-	int force;
-
-	disp_window win;
-	disp_addr addr;
-	disp_scaler scaler;
-	disp_color color;
-	screen_info screen;
-	platform_info platform;
-	reqbuf_info reqbuf;
-
-	void *disp_head;
-	u32 reserve[32];
-}disp_handle;
-
-typedef struct{
-	u32 disp_x;
-	u32 disp_y;
-	u32 disp_width;
-	u32 disp_height;
-	u32 direction;
-}video_cfg;
-
-typedef struct{
-	u32 src_width;
-	u32 src_height;
-
-	u32 win_src_x;
-	u32 win_src_y;
-	u32 win_src_width;
-	u32 win_src_height;
-
-	u32 dst_width;
-	u32 dst_height;
-
-	u32 win_dst_x;
-	u32 win_dst_y;
-	u32 win_dst_width;
-	u32 win_dst_height;
-
-	int src_format;
-	int dst_format;
-
-	int direction;
-}ark2d_cfg;
-
-typedef struct{
-	struct list_head list; 
-
-	void * head_2d;
-	ark2d_cfg cfg_2d;
-
-	u32 out_width;
-	u32 out_height;
-
-}ark2d_handle;
-
-
-typedef struct{
-	struct list_head list; 
-
-	memalloc_handle *handle_mem;
-
-	disp_handle *handle_disp;
-	int first_show;
-	u32 last_display_addr;
-
-	int dec_first_frame;
-	int rotate_buffer_index;
-
-	ark2d_handle *handle_2d;
-	int cur_direction;
-	video_cfg cfg_vid;
-	int active;
-
-
-	MFCHandle *handle_mfc;
-	OutFrameBuffer out_buffer;
-	DWLLinearMem_t in_buffer;
-	DWLLinearMem_t rotate_buffer[ROTATE_BUF_MAX];
-
-}video_handle;
-
-
-/*-----------------------------ARK  API: VIDEO------------------------------------*/
-
-video_handle *arkapi_video_init(int stream_type);
-int arkapi_video_set_config(video_handle *handle, video_cfg *cfg_vid);
-int arkapi_video_get_config(video_handle *handle, video_cfg *cfg_vid);
-int arkapi_video_play(video_handle *handle, const void *src_addr, int len);
-int arkapi_video_show(video_handle *handle, int enable);// 1: show  0: hide
-void arkapi_video_release(video_handle *handle);
-
-
-/*-----------------------------ARK API BASE:  DISPLAY------------------------------*/
-disp_handle *arkapi_display_open_layer(enum ark_disp_layer layer);
-void arkapi_display_close_layer(disp_handle *handle);
-int arkapi_display_show_layer(disp_handle *handle);
-int arkapi_display_hide_layer(disp_handle *handle);
-int arkapi_display_set_mode(disp_handle *handle, int mode);
-
-int arkapi_display_recycle_layer(enum ark_disp_layer layer);
-int arkapi_display_force_show_layer(enum ark_disp_layer layer);
-int arkapi_display_force_hide_layer(enum ark_disp_layer layer);
-
-int arkapi_display_set_layer_pos(disp_handle *handle, int x, int y);
-int arkapi_display_set_layer_size(disp_handle *handle, int width, int height);
-int arkapi_display_set_layer_format(disp_handle *handle, int format);
-int arkapi_display_set_layer_scaler(disp_handle *handle, disp_scaler* spara);
-int arkapi_display_set_layer_addr(disp_handle *handle, u32 pyrgbaddr, u32 pcbaddr, u32 pcraddr);
-int arkapi_set_layer_priority(disp_handle *handle,int video_pri, int video2_pri, int win1_pri,int win2_pri,int win3_pri);
-
-int arkapi_display_set_layer_pos_atomic(disp_handle *handle, int x, int y);
-int arkapi_display_set_layer_size_atomic(disp_handle *handle, int width, int height);
-int arkapi_display_set_layer_format_atomic(disp_handle *handle, int format);
-int arkapi_display_set_layer_addr_atomic(disp_handle *handle, u32 pyrgbaddr, u32 pcbaddr, u32 pcraddr);
-int arkapi_display_set_layer_scaler_atomic(disp_handle *handle, disp_scaler *spara);
-int arkapi_display_layer_update_commit(disp_handle *handle);
-
-int arkapi_display_layer_set_color(enum ark_disp_layer layer, disp_color* vp);
-int arkapi_display_layer_get_color(enum ark_disp_layer layer, disp_color* vp);
-
-int arkapi_display_wait_for_vsync(disp_handle *handle);
-int arkapi_display_get_vsync_status(disp_handle *handle);
-int arkapi_display_get_layer_addr(disp_handle *handle, u32 *pyrgbaddr, u32 *pcbaddr, u32 *pcraddr);
-int arkapi_display_get_screen_info(screen_info *screen);
-int arkapi_display_set_screen_info(screen_info *screen);
-
-
-/*-----------------------------ARK API BASE:  MEM-----------------------------------------*/
-memalloc_handle *arkapi_memalloc_init(void);
-int arkapi_memalloc_reqbuf(memalloc_handle *handle, reqbuf_info *reqbuf);
-void arkapi_memalloc_release(memalloc_handle *handle);
-int arkapi_memalloc_free(memalloc_handle *handle, reqbuf_info *reqbuf);
-
-void* arkapi_mem_map(unsigned int phy_addr, unsigned int size);
-int arkapi_mem_unmap(void* virt_addr, unsigned int size);
-
-
-/*-----------------------------------ARK API BASE:  2D-----------------------------------*/
-ark2d_handle *arkapi_2d_init(void);
-int arkapi_2d_set_config(ark2d_handle *handle, ark2d_cfg *cfg_2d);
-int arkapi_2d_get_config(ark2d_handle *handle, ark2d_cfg *cfg_2d);
-int arkapi_2d_process(ark2d_handle *handle, u32 src_phyaddr, u32 dst_phyaddr);
-void arkapi_2d_release(ark2d_handle *handle);
-
-/*-----------------------------------ARK API BASE:  ARK API SCALAR -----------------------*/
-int arkapi_scalar(
-	unsigned int iyaddr,
-	unsigned int iuaddr,
-	unsigned int ivaddr,
-	scalar_in_format iformat,
-	unsigned int iwidth,
-	unsigned int iheight,
-	unsigned int iwindow_x,
-	unsigned int iwindow_y,
-	unsigned int iwinwidth,
-	unsigned int iwinheight,
-	unsigned int left_cut,
-	unsigned int right_cut,
-	unsigned int up_cut,
-	unsigned int bottom_cut,
-	unsigned int owidth,
-	unsigned int oheight,
-	unsigned int oyaddr,
-	unsigned int ouaddr,
-	unsigned int ovaddr,
-	scalar_out_format oformat,	//oformat: not effect for arkn141.
-	scale_rotate rotate);		//rotate: not effect for arkn141.
-
-#if 1
-/*-----------------------------------ARK API BASE:  ARK API N141 SCALAR -----------------------*/
-
-
-//以下接口启动,请使用arkapi_scalar() 代替arkapi_n141_scalar().
-
-
-/* <<< ******	Abandon Warning	****** >>> 
- *
- *		arkn141 interface have been abandoned as follows, 
- *		please using arkapi_scalar() instead it.
- *
- */
-
-int arkapi_n141_scalar(
-	unsigned int iyaddr,
-	unsigned int iuaddr,
-	unsigned int ivaddr,
-	unsigned int window_x,
-	unsigned int window_y,
-	unsigned int window_width,
-	unsigned int window_height,
-	unsigned int iwidth,
-	unsigned int iheight,
-	unsigned int owidth,
-	unsigned int oheight,
-	unsigned int ostride,
-	unsigned int format,
-	unsigned int yout,
-	unsigned int uout,
-	unsigned int vout);
-int arkapi_n141_scalar_lock(void);
-int arkapi_n141_scalar_unlock(void);
-#endif
-
-/*----------------------------------------END------------------------------------------*/
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

+ 0 - 415
buildroot-external/package/demo-v4l2-1668e/include/ark_list.h

@@ -1,415 +0,0 @@
-#ifndef __ARK_LIST_H__
-#define __ARK_LIST_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//#define LIST_MOVE_REPLACE_CUT_SPLICE   
-
-#define offsetof0(TYPE, MEMBER)   ((size_t) &((TYPE *)0)->MEMBER)
-
-/** 
-   * container_of - cast a member of a structure out to the containing structure 
-   * @ptr:    the pointer to the member. * @type:    the type of the container struct this is embedded in. 
-   * @member:    the name of the member within the struct. 
-   * 
-   */
-#define container_of(ptr, type, member) (type *)((char *)ptr -offsetof0(type,member))
-
-
-#define LIST_POISON1    NULL
-#define LIST_POISON2    NULL
-
-
-struct list_head {
-	struct list_head *next, *prev;
-};
-
-/** 
-   * list_entry - get the struct for this entry 
-   * @ptr:    the &struct list_head pointer. 
-   * @type:    the type of the struct this is embedded in. 
-   * @member:    the name of the list_struct within the struct. 
-   */
-#define list_entry(ptr, type, member) \
-	container_of(ptr, type, member)
-
-
-/** 
-   * list_first_entry - get the first element from a list 
-   * @ptr:	the list head to take the element from. 
-   * @type:	the type of the struct this is embedded in. 
-   * @member:	the name of the list_struct within the struct. 
-   * 
-   * Note, that list is expected to be not empty. 
-   */
-   
-#define list_first_entry(ptr, type, member) \
-	list_entry((ptr)->next, type, member)
-
-
-
-
-/**
- * LIST_HEAD(name) = { &(name), &(name) }
- * init the struct list_head, next = prev = &name
- */
-#define LIST_HEAD_INIT(name) { &(name), &(name) }
-
-#define LIST_HEAD(name) \
-	struct list_head name = LIST_HEAD_INIT(name)
-
-/**
- * INIT_LIST_HEAD is a fun for init list 
- * LIST_HEAD_INIT is macro for init list
- */
-static void INIT_LIST_HEAD(struct list_head *list)
-{
-	list->next = list;
-	list->prev = list;
-}
-
-/** 
- * list_for_each    -    iterate over a list 
- * @pos:    the &struct list_head to use as a loop counter. 
- * @head:    the head for your list. 
- */
-#define list_for_each(pos, head) \
-	for (pos = (head)->next; pos != (head); pos = pos->next)
-
-/** 
- * list_for_each_safe - iterate over a list safe against removal of list entry 
- * @pos:       the &struct list_head to use as a loop cursor. 
- * @n:            another &struct list_head to use as temporary storage 
- * @head:  the head for your list. 
- */                
-#define list_for_each_safe(pos, n, head) \
-	for (pos = (head)->next, n = pos->next; pos != (head); \
-		pos = n, n = pos->next)
-                
-
-/** 
- * list_for_each_r    -    iterate over a list reversely 
- * @pos:    the &struct list_head to use as a loop counter. 
- * @head:    the head for your list. 
- */
-#define list_for_each_r(pos, head) \
-	for (pos = (head)->prev; pos != (head); pos = pos->prev)
-        
-        
-/* 
- * Insert a new entry between two known consecutive entries. 
- * 
- * This is only for internal list manipulation where we know 
- * the prev/next entries already! 
- */
-static void __list_add(struct list_head *pnew,
-                  struct list_head *prev,
-                  struct list_head *next)
-{
-	next->prev = pnew;
-	pnew->next = next;
-	pnew->prev = prev;
-	prev->next = pnew;
-}
-
-
-/**
- * list_add - add a new entry
- * @new: new entry to be added
- * @head: list head to add it after
- *
- * Insert a new entry after the specified head.
- * This is good for implementing stacks.
- */
-static void list_add(struct list_head *pnew, struct list_head *head)
-{
-	__list_add(pnew, head, head->next);
-}
-
-
-
-/**
- * list_add_tail - add a new entry
- * @new: new entry to be added
- * @head: list head to add it before
- *
- * Insert a new entry before the specified head.
- * This is useful for implementing queues.
- */
-static void list_add_tail(struct list_head *pnew, struct list_head *head)
-{
-	__list_add(pnew, head->prev, head);
-}
-
-/*
- * Delete a list entry by making the prev/next entries
- * point to each other.
- *
- * This is only for internal list manipulation where we know
- * the prev/next entries already!
- * The caller must free the memerry.
- */
-static void __list_del(struct list_head * prev, struct list_head * next)
-{
-	next->prev = prev;
-	prev->next = next;
-}
-
-/**
- * list_del - deletes entry from list.
- * @entry: the element to delete from the list.
- * Note: list_empty() on entry does not return true after this, the entry is
- * in an undefined state.
- */
-static void list_del(struct list_head *entry)
-{
-	__list_del(entry->prev, entry->next);
-	entry->next = LIST_POISON1;
-	entry->prev = LIST_POISON2;
-}
-
-/**
- * list_del_init - deletes entry from list and reinitialize it.
- * @entry: the element to delete from the list.
- */
-static  void list_del_init(struct list_head *entry)
-{
-	__list_del(entry->prev, entry->next);
-	INIT_LIST_HEAD(entry);
-}
-
-
-/**
- * list_is_last - tests whether @list is the last entry in list @head
- * @list: the entry to test
- * @head: the head of the list
- */
-static int list_is_last(const struct list_head *list,
-                const struct list_head *head)
-{
-	return list->next == head;
-}
-
-/**
- * list_empty - tests whether a list is empty
- * @head: the list to test.
- */
-static inline int list_empty(const struct list_head *head)
-{
-	return head->next == head;
-}
-
-/**
- * list_empty_careful - tests whether a list is empty and not being modified
- * @head: the list to test
- *
- * Description:
- * tests whether a list is empty _and_ checks that no other CPU might be
- * in the process of modifying either member (next or prev)
- *
- * NOTE: using list_empty_careful() without synchronization
- * can only be safe if the only activity that can happen
- * to the list entry is list_del_init(). Eg. it cannot be used
- * if another CPU could re-list_add() it.
- */
-static int list_empty_careful(const struct list_head *head)
-{
-	struct list_head *next = head->next;
-	return (next == head) && (next == head->prev);
-}
-
-/**
- * list_is_singular - tests whether a list has just one entry.
- * @head: the list to test.
- */
-
-static  int list_is_singular(const struct list_head *head)
-{
-	return !list_empty(head) && (head->next == head->prev);
-}
-
-
-/**************************************************************************************
- *
- *                                                 LIST_MOVE_REPLACE_CUT_SPLICE
- *
- ***************************************************************************************
- */
-#ifdef LIST_MOVE_REPLACE_CUT_SPLICE
-
-/**
- * list_replace - replace old entry by new one
- * @old : the element to be replaced
- * @new : the new element to insert
- *
- * If @old was empty, it will be overwritten.
- */
-static void list_replace(struct list_head *old,
-                struct list_head *pnew)
-{
-	pnew->next = old->next;
-	pnew->next->prev = pnew;
-	pnew->prev = old->prev;
-	pnew->prev->next = pnew;
-}
-
-static void list_replace_init(struct list_head *old,
-                                        struct list_head *pnew)
-{
-	list_replace(old, pnew);
-	INIT_LIST_HEAD(old);
-}
-
-/**
- * list_move - delete from one list and add as another's head
- * @list: the entry to move
- * @head: the head that will precede our entry
- */
-static void list_move(struct list_head *list, struct list_head *head)
-{
-	__list_del(list->prev, list->next);
-	list_add(list, head);
-}
-
-/**
- * list_move_tail - delete from one list and add as another's tail
- * @list: the entry to move
- * @head: the head that will follow our entry
- */
-static void list_move_tail(struct list_head *list,
-                  struct list_head *head)
-{
-	__list_del(list->prev, list->next);
-	list_add_tail(list, head);
-}
-
-static  void __list_cut_position(struct list_head *list,
-                struct list_head *head, struct list_head *entry)
-{       
-	struct list_head *new_first = entry->next;
-	list->next = head->next;
-	list->next->prev = list;
-	list->prev = entry;
-	entry->next = list;
-	head->next = new_first;
-	new_first->prev = head;
-}
-
-
-/** 
- * list_cut_position - cut a list into two 
- * @list: a new list to add all removed entries 
- * @head: a list with entries 
- * @entry: an entry within head, could be the head itself 
- *	and if so we won't cut the list 
- * 
- * This helper moves the initial part of @head, up to and 
- * including @entry, from @head to @list. You should 
- * pass on @entry an element you know is on @head. @list 
- * should be an empty list or a list you do not care about 
- * losing its data. 
- * 
- */
-
-static void list_cut_position(struct list_head *list,		
-               struct list_head *head, struct list_head *entry)
-{	
-	if (list_empty(head))		
-		return;	
-	if (list_is_singular(head) &&		
-				(head->next != entry && head != entry))         
-		return; 
-	if (entry == head)              
-		INIT_LIST_HEAD(list);   
-	else            
-		__list_cut_position(list, head, entry);
-}
-
-
-/**
- * add list between prev and next
- */
-static void __list_splice(const struct list_head *list,	
-                           struct list_head *prev,				 
-                           struct list_head *next)
-{	
-	struct list_head *first = list->next;
-	struct list_head *last = list->prev;
-
-	first->prev = prev;
-	prev->next = first;
-
-	last->next = next;
-	next->prev = last;
-}
-
-
-/** 
- * list_splice - join two lists, this is designed for stacks 
- * @list: the new list to add. 
- * @head: the place to add it in the first list. 
- */
-static void list_splice(const struct list_head *list,
-                         struct list_head *head)
-{	
-	if (!list_empty(list))		
-		__list_splice(list, head, head->next);
-}
-
-/** 
- * list_splice_tail - join two lists, each list being a queue 
- * @list: the new list to add. 
- * @head: the place to add it in the first list. 
- */
-static void list_splice_tail(struct list_head *list,
-                                    struct list_head *head)
-{ 
-	if (!list_empty(list))
-		__list_splice(list, head->prev, head);
-}
-
-/** 
-* list_splice_init - join two lists and reinitialise the emptied list. 
-* @list: the new list to add. * @head: the place to add it in the first list. 
-* 
-* The list at @list is reinitialised 
-*/
-static void list_splice_init(struct list_head *list,  
-                                   struct list_head *head)
-{
-	if (!list_empty(list))
-	{                
-		__list_splice(list, head, head->next);
-		INIT_LIST_HEAD(list);
-	}
-} 
-
-/** 
- * list_splice_tail_init - join two lists and reinitialise the emptied list 
- * @list: the new list to add. 
- * @head: the place to add it in the first list. 
- * 
- * Each of the lists is a queue. 
- * The list at @list is reinitialised
- */
-static void list_splice_tail_init(struct list_head *list,
-                                         struct list_head *head)
-{
-	if (!list_empty(list))
-	{               
-		__list_splice(list, head->prev, head);
-		INIT_LIST_HEAD(list);
-	}
-}
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif// __ARK_LIST_H__
-

+ 0 - 1
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/aqHal.h

@@ -1 +0,0 @@
-#include "HAL/gc_hal.h"

+ 0 - 2859
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal.h

@@ -1,2859 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_h_
-#define __gc_hal_h_
-
-#include "gc_hal_rename.h"
-#include "gc_hal_types.h"
-#include "gc_hal_enum.h"
-#include "gc_hal_base.h"
-#include "gc_hal_profiler.h"
-#include "gc_hal_driver.h"
-#if gcdENABLE_3D
-#include "gc_hal_statistics.h"
-#endif
-
-#if gcdSECURITY
-#include "gc_hal_security_interface.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/******************************************************************************\
-******************************* Alignment Macros *******************************
-\******************************************************************************/
-
-/* Alignment with a non-power of two value. */
-#define gcmALIGN_NP2(n, align) \
-( \
-    ((n) + (align) - 1) - (((n) + (align) - 1) % (align)) \
-)
-
-/* Alignment with a power of two value. */
-#define gcmALIGN(n, align) \
-( \
-    ((n) + ((align) - 1)) & ~((align) - 1) \
-)
-
-#define gcmALIGN_BASE(n, align) \
-( \
-    ((n) & ~((align) - 1)) \
-)
-
-/******************************************************************************\
-***************************** Element Count Macro *****************************
-\******************************************************************************/
-
-#define gcmSIZEOF(a) \
-( \
-    (gctSIZE_T) (sizeof(a)) \
-)
-
-#define gcmCOUNTOF(a) \
-( \
-    sizeof(a) / sizeof(a[0]) \
-)
-
-/******************************************************************************\
-********************************* Cast Macro **********************************
-\******************************************************************************/
-#define gcmNAME_TO_PTR(na) \
-        gckKERNEL_QueryPointerFromName(kernel, gcmALL_TO_UINT32(na))
-
-#define gcmPTR_TO_NAME(ptr) \
-        gckKERNEL_AllocateNameFromPointer(kernel, ptr)
-
-#define gcmRELEASE_NAME(na) \
-        gckKERNEL_DeleteName(kernel, gcmALL_TO_UINT32(na))
-
-#define gcmALL_TO_UINT32(t) \
-( \
-    (gctUINT32) (gctUINTPTR_T) (t)\
-)
-
-#define gcmPTR_TO_UINT64(p) \
-( \
-    (gctUINT64) (gctUINTPTR_T) (p)\
-)
-
-#define gcmUINT64_TO_PTR(u) \
-( \
-    (gctPOINTER) (gctUINTPTR_T) (u)\
-)
-
-#define gcmUINT64_TO_TYPE(u, t) \
-( \
-    (t) (gctUINTPTR_T) (u)\
-)
-
-/******************************************************************************\
-******************************** Useful Macro *********************************
-\******************************************************************************/
-
-#define gcvINVALID_ADDRESS          ~0U
-
-#define gcmGET_PRE_ROTATION(rotate) \
-    ((rotate) & (~(gcvSURF_POST_FLIP_X | gcvSURF_POST_FLIP_Y)))
-
-#define gcmGET_POST_ROTATION(rotate) \
-    ((rotate) & (gcvSURF_POST_FLIP_X | gcvSURF_POST_FLIP_Y))
-
-/******************************************************************************\
-******************************** gcsOBJECT Object *******************************
-\******************************************************************************/
-
-/* Type of objects. */
-typedef enum _gceOBJECT_TYPE
-{
-    gcvOBJ_UNKNOWN              = 0,
-    gcvOBJ_2D                   = gcmCC('2','D',' ',' '),
-    gcvOBJ_3D                   = gcmCC('3','D',' ',' '),
-    gcvOBJ_ATTRIBUTE            = gcmCC('A','T','T','R'),
-    gcvOBJ_BRUSHCACHE           = gcmCC('B','R','U','$'),
-    gcvOBJ_BRUSHNODE            = gcmCC('B','R','U','n'),
-    gcvOBJ_BRUSH                = gcmCC('B','R','U','o'),
-    gcvOBJ_BUFFER               = gcmCC('B','U','F','R'),
-    gcvOBJ_COMMAND              = gcmCC('C','M','D',' '),
-    gcvOBJ_COMMANDBUFFER        = gcmCC('C','M','D','B'),
-    gcvOBJ_CONTEXT              = gcmCC('C','T','X','T'),
-    gcvOBJ_DEVICE               = gcmCC('D','E','V',' '),
-    gcvOBJ_DUMP                 = gcmCC('D','U','M','P'),
-    gcvOBJ_EVENT                = gcmCC('E','V','N','T'),
-    gcvOBJ_FUNCTION             = gcmCC('F','U','N','C'),
-    gcvOBJ_HAL                  = gcmCC('H','A','L',' '),
-    gcvOBJ_HARDWARE             = gcmCC('H','A','R','D'),
-    gcvOBJ_HEAP                 = gcmCC('H','E','A','P'),
-    gcvOBJ_INDEX                = gcmCC('I','N','D','X'),
-    gcvOBJ_INTERRUPT            = gcmCC('I','N','T','R'),
-    gcvOBJ_KERNEL               = gcmCC('K','E','R','N'),
-    gcvOBJ_KERNEL_FUNCTION      = gcmCC('K','F','C','N'),
-    gcvOBJ_MEMORYBUFFER         = gcmCC('M','E','M','B'),
-    gcvOBJ_MMU                  = gcmCC('M','M','U',' '),
-    gcvOBJ_OS                   = gcmCC('O','S',' ',' '),
-    gcvOBJ_OUTPUT               = gcmCC('O','U','T','P'),
-    gcvOBJ_PAINT                = gcmCC('P','N','T',' '),
-    gcvOBJ_PATH                 = gcmCC('P','A','T','H'),
-    gcvOBJ_QUEUE                = gcmCC('Q','U','E',' '),
-    gcvOBJ_SAMPLER              = gcmCC('S','A','M','P'),
-    gcvOBJ_SHADER               = gcmCC('S','H','D','R'),
-    gcvOBJ_STREAM               = gcmCC('S','T','R','M'),
-    gcvOBJ_SURF                 = gcmCC('S','U','R','F'),
-    gcvOBJ_TEXTURE              = gcmCC('T','X','T','R'),
-    gcvOBJ_UNIFORM              = gcmCC('U','N','I','F'),
-    gcvOBJ_VARIABLE             = gcmCC('V','A','R','I'),
-    gcvOBJ_VERTEX               = gcmCC('V','R','T','X'),
-    gcvOBJ_VIDMEM               = gcmCC('V','M','E','M'),
-    gcvOBJ_VG                   = gcmCC('V','G',' ',' '),
-    gcvOBJ_BUFOBJ               = gcmCC('B','U','F','O'),
-    gcvOBJ_UNIFORM_BLOCK        = gcmCC('U','B','L','K'),
-    gcvOBJ_CL                   = gcmCC('C','L',' ',' '),
-}
-gceOBJECT_TYPE;
-
-/* gcsOBJECT object defintinon. */
-typedef struct _gcsOBJECT
-{
-    /* Type of an object. */
-    gceOBJECT_TYPE              type;
-}
-gcsOBJECT;
-
-typedef struct _gckHARDWARE *       gckHARDWARE;
-
-/* CORE flags. */
-typedef enum _gceCORE
-{
-    gcvCORE_MAJOR       = 0x0,
-    gcvCORE_2D          = 0x1,
-    gcvCORE_VG          = 0x2,
-#if gcdMULTI_GPU_AFFINITY
-    gcvCORE_OCL         = 0x3,
-#endif
-}
-gceCORE;
-
-#if gcdMULTI_GPU_AFFINITY
-#define gcdMAX_GPU_COUNT               4
-#else
-#define gcdMAX_GPU_COUNT               3
-#endif
-
-#define gcdMAX_SURF_LAYERS              4
-
-#define gcdMAX_DRAW_BUFFERS            8
-
-/*******************************************************************************
-**
-**  gcmVERIFY_OBJECT
-**
-**      Assert if an object is invalid or is not of the specified type.  If the
-**      object is invalid or not of the specified type, gcvSTATUS_INVALID_OBJECT
-**      will be returned from the current function.  In retail mode this macro
-**      does nothing.
-**
-**  ARGUMENTS:
-**
-**      obj     Object to test.
-**      t       Expected type of the object.
-*/
-#if gcmIS_DEBUG(gcdDEBUG_TRACE)
-#define _gcmVERIFY_OBJECT(prefix, obj, t) \
-    if ((obj) == gcvNULL) \
-    { \
-        prefix##TRACE(gcvLEVEL_ERROR, \
-                      #prefix "VERIFY_OBJECT failed: NULL"); \
-        prefix##TRACE(gcvLEVEL_ERROR, "  expected: %c%c%c%c", \
-                      gcmCC_PRINT(t)); \
-        prefix##ASSERT((obj) != gcvNULL); \
-        prefix##FOOTER_ARG("status=%d", gcvSTATUS_INVALID_OBJECT); \
-        return gcvSTATUS_INVALID_OBJECT; \
-    } \
-    else if (((gcsOBJECT*) (obj))->type != t) \
-    { \
-        prefix##TRACE(gcvLEVEL_ERROR, \
-                      #prefix "VERIFY_OBJECT failed: %c%c%c%c", \
-                      gcmCC_PRINT(((gcsOBJECT*) (obj))->type)); \
-        prefix##TRACE(gcvLEVEL_ERROR, "  expected: %c%c%c%c", \
-                      gcmCC_PRINT(t)); \
-        prefix##ASSERT(((gcsOBJECT*)(obj))->type == t); \
-        prefix##FOOTER_ARG("status=%d", gcvSTATUS_INVALID_OBJECT); \
-        return gcvSTATUS_INVALID_OBJECT; \
-    }
-
-#   define gcmVERIFY_OBJECT(obj, t)     _gcmVERIFY_OBJECT(gcm, obj, t)
-#   define gcmkVERIFY_OBJECT(obj, t)    _gcmVERIFY_OBJECT(gcmk, obj, t)
-#else
-#   define gcmVERIFY_OBJECT(obj, t)     do {} while (gcvFALSE)
-#   define gcmkVERIFY_OBJECT(obj, t)    do {} while (gcvFALSE)
-#endif
-
-/******************************************************************************/
-/*VERIFY_OBJECT if special return expected*/
-/******************************************************************************/
-#ifndef EGL_API_ANDROID
-#   define _gcmVERIFY_OBJECT_RETURN(prefix, obj, t, retVal) \
-        do \
-        { \
-            if ((obj) == gcvNULL) \
-            { \
-                prefix##PRINT_VERSION(); \
-                prefix##TRACE(gcvLEVEL_ERROR, \
-                              #prefix "VERIFY_OBJECT_RETURN failed: NULL"); \
-                prefix##TRACE(gcvLEVEL_ERROR, "  expected: %c%c%c%c", \
-                              gcmCC_PRINT(t)); \
-                prefix##ASSERT((obj) != gcvNULL); \
-                prefix##FOOTER_ARG("retVal=%d", retVal); \
-                return retVal; \
-            } \
-            else if (((gcsOBJECT*) (obj))->type != t) \
-            { \
-                prefix##PRINT_VERSION(); \
-                prefix##TRACE(gcvLEVEL_ERROR, \
-                              #prefix "VERIFY_OBJECT_RETURN failed: %c%c%c%c", \
-                              gcmCC_PRINT(((gcsOBJECT*) (obj))->type)); \
-                prefix##TRACE(gcvLEVEL_ERROR, "  expected: %c%c%c%c", \
-                              gcmCC_PRINT(t)); \
-                prefix##ASSERT(((gcsOBJECT*)(obj))->type == t); \
-                prefix##FOOTER_ARG("retVal=%d", retVal); \
-                return retVal; \
-            } \
-        } \
-        while (gcvFALSE)
-#   define gcmVERIFY_OBJECT_RETURN(obj, t, retVal) \
-                            _gcmVERIFY_OBJECT_RETURN(gcm, obj, t, retVal)
-#   define gcmkVERIFY_OBJECT_RETURN(obj, t, retVal) \
-                            _gcmVERIFY_OBJECT_RETURN(gcmk, obj, t, retVal)
-#else
-#   define gcmVERIFY_OBJECT_RETURN(obj, t)     do {} while (gcvFALSE)
-#   define gcmVERIFY_OBJECT_RETURN(obj, t)    do {} while (gcvFALSE)
-#endif
-
-/******************************************************************************\
-********************************** gckOS Object *********************************
-\******************************************************************************/
-
-/* Construct a new gckOS object. */
-gceSTATUS
-gckOS_Construct(
-    IN gctPOINTER Context,
-    OUT gckOS * Os
-    );
-
-/* Destroy an gckOS object. */
-gceSTATUS
-gckOS_Destroy(
-    IN gckOS Os
-    );
-
-/* Query the video memory. */
-gceSTATUS
-gckOS_QueryVideoMemory(
-    IN gckOS Os,
-    OUT gctPHYS_ADDR * InternalAddress,
-    OUT gctSIZE_T * InternalSize,
-    OUT gctPHYS_ADDR * ExternalAddress,
-    OUT gctSIZE_T * ExternalSize,
-    OUT gctPHYS_ADDR * ContiguousAddress,
-    OUT gctSIZE_T * ContiguousSize
-    );
-
-/* Allocate memory from the heap. */
-gceSTATUS
-gckOS_Allocate(
-    IN gckOS Os,
-    IN gctSIZE_T Bytes,
-    OUT gctPOINTER * Memory
-    );
-
-/* Free allocated memory. */
-gceSTATUS
-gckOS_Free(
-    IN gckOS Os,
-    IN gctPOINTER Memory
-    );
-
-/* Wrapper for allocation memory.. */
-gceSTATUS
-gckOS_AllocateMemory(
-    IN gckOS Os,
-    IN gctSIZE_T Bytes,
-    OUT gctPOINTER * Memory
-    );
-
-/* Wrapper for freeing memory. */
-gceSTATUS
-gckOS_FreeMemory(
-    IN gckOS Os,
-    IN gctPOINTER Memory
-    );
-
-/* Allocate paged memory. */
-gceSTATUS
-gckOS_AllocatePagedMemory(
-    IN gckOS Os,
-    IN gctSIZE_T Bytes,
-    OUT gctPHYS_ADDR * Physical
-    );
-
-/* Allocate paged memory. */
-gceSTATUS
-gckOS_AllocatePagedMemoryEx(
-    IN gckOS Os,
-    IN gctUINT32 Flag,
-    IN gctSIZE_T Bytes,
-    OUT gctUINT32 * Gid,
-    OUT gctPHYS_ADDR * Physical
-    );
-
-/* Lock pages. */
-gceSTATUS
-gckOS_LockPages(
-    IN gckOS Os,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T Bytes,
-    IN gctBOOL Cacheable,
-    OUT gctPOINTER * Logical,
-    OUT gctSIZE_T * PageCount
-    );
-
-/* Map pages. */
-gceSTATUS
-gckOS_MapPages(
-    IN gckOS Os,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T PageCount,
-    IN gctPOINTER PageTable
-    );
-
-/* Map pages. */
-gceSTATUS
-gckOS_MapPagesEx(
-    IN gckOS Os,
-    IN gceCORE Core,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T PageCount,
-    IN gctUINT32 Address,
-    IN gctPOINTER PageTable
-    );
-
-gceSTATUS
-gckOS_UnmapPages(
-    IN gckOS Os,
-    IN gctSIZE_T PageCount,
-    IN gctUINT32 Address
-    );
-
-/* Unlock pages. */
-gceSTATUS
-gckOS_UnlockPages(
-    IN gckOS Os,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T Bytes,
-    IN gctPOINTER Logical
-    );
-
-/* Free paged memory. */
-gceSTATUS
-gckOS_FreePagedMemory(
-    IN gckOS Os,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T Bytes
-    );
-
-/* Allocate non-paged memory. */
-gceSTATUS
-gckOS_AllocateNonPagedMemory(
-    IN gckOS Os,
-    IN gctBOOL InUserSpace,
-    IN OUT gctSIZE_T * Bytes,
-    OUT gctPHYS_ADDR * Physical,
-    OUT gctPOINTER * Logical
-    );
-
-/* Free non-paged memory. */
-gceSTATUS
-gckOS_FreeNonPagedMemory(
-    IN gckOS Os,
-    IN gctSIZE_T Bytes,
-    IN gctPHYS_ADDR Physical,
-    IN gctPOINTER Logical
-    );
-
-/* Allocate contiguous memory. */
-gceSTATUS
-gckOS_AllocateContiguous(
-    IN gckOS Os,
-    IN gctBOOL InUserSpace,
-    IN OUT gctSIZE_T * Bytes,
-    OUT gctPHYS_ADDR * Physical,
-    OUT gctPOINTER * Logical
-    );
-
-/* Free contiguous memory. */
-gceSTATUS
-gckOS_FreeContiguous(
-    IN gckOS Os,
-    IN gctPHYS_ADDR Physical,
-    IN gctPOINTER Logical,
-    IN gctSIZE_T Bytes
-    );
-
-/* Get the number fo bytes per page. */
-gceSTATUS
-gckOS_GetPageSize(
-    IN gckOS Os,
-    OUT gctSIZE_T * PageSize
-    );
-
-/* Get the physical address of a corresponding logical address. */
-gceSTATUS
-gckOS_GetPhysicalAddress(
-    IN gckOS Os,
-    IN gctPOINTER Logical,
-    OUT gctUINT32 * Address
-    );
-
-/* Get the physical address of a corresponding user logical address. */
-gceSTATUS
-gckOS_UserLogicalToPhysical(
-    IN gckOS Os,
-    IN gctPOINTER Logical,
-    OUT gctUINT32 * Address
-    );
-
-/* Get the physical address of a corresponding logical address. */
-gceSTATUS
-gckOS_GetPhysicalAddressProcess(
-    IN gckOS Os,
-    IN gctPOINTER Logical,
-    IN gctUINT32 ProcessID,
-    OUT gctUINT32 * Address
-    );
-
-/* Map physical memory. */
-gceSTATUS
-gckOS_MapPhysical(
-    IN gckOS Os,
-    IN gctUINT32 Physical,
-    IN gctSIZE_T Bytes,
-    OUT gctPOINTER * Logical
-    );
-
-/* Unmap previously mapped physical memory. */
-gceSTATUS
-gckOS_UnmapPhysical(
-    IN gckOS Os,
-    IN gctPOINTER Logical,
-    IN gctSIZE_T Bytes
-    );
-
-/* Get real physical address from descriptor. */
-gceSTATUS
-gckOS_PhysicalToPhysicalAddress(
-    IN gckOS Os,
-    IN gctPOINTER Physical,
-    OUT gctUINT32 * PhysicalAddress
-    );
-
-/* Read data from a hardware register. */
-gceSTATUS
-gckOS_ReadRegister(
-    IN gckOS Os,
-    IN gctUINT32 Address,
-    OUT gctUINT32 * Data
-    );
-
-/* Read data from a hardware register. */
-gceSTATUS
-gckOS_ReadRegisterEx(
-    IN gckOS Os,
-    IN gceCORE Core,
-    IN gctUINT32 Address,
-    OUT gctUINT32 * Data
-    );
-
-/* Write data to a hardware register. */
-gceSTATUS
-gckOS_WriteRegister(
-    IN gckOS Os,
-    IN gctUINT32 Address,
-    IN gctUINT32 Data
-    );
-
-/* Write data to a hardware register. */
-gceSTATUS
-gckOS_WriteRegisterEx(
-    IN gckOS Os,
-    IN gceCORE Core,
-    IN gctUINT32 Address,
-    IN gctUINT32 Data
-    );
-
-#if gcdMULTI_GPU
-gceSTATUS
-gckOS_ReadRegisterByCoreId(
-    IN gckOS Os,
-    IN gceCORE Core,
-    IN gctUINT32 CoreId,
-    IN gctUINT32 Address,
-    OUT gctUINT32 * Data
-    );
-
-gceSTATUS
-gckOS_WriteRegisterByCoreId(
-    IN gckOS Os,
-    IN gceCORE Core,
-    IN gctUINT32 CoreId,
-    IN gctUINT32 Address,
-    IN gctUINT32 Data
-    );
-#endif
-
-/* Write data to a 32-bit memory location. */
-gceSTATUS
-gckOS_WriteMemory(
-    IN gckOS Os,
-    IN gctPOINTER Address,
-    IN gctUINT32 Data
-    );
-
-/* Map physical memory into the process space. */
-gceSTATUS
-gckOS_MapMemory(
-    IN gckOS Os,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T Bytes,
-    OUT gctPOINTER * Logical
-    );
-
-/* Unmap physical memory from the specified process space. */
-gceSTATUS
-gckOS_UnmapMemoryEx(
-    IN gckOS Os,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T Bytes,
-    IN gctPOINTER Logical,
-    IN gctUINT32 PID
-    );
-
-/* Unmap physical memory from the process space. */
-gceSTATUS
-gckOS_UnmapMemory(
-    IN gckOS Os,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T Bytes,
-    IN gctPOINTER Logical
-    );
-
-/* Unmap user logical memory out of physical memory.
- * This function is only supported in Linux currently.
- */
-gceSTATUS
-gckOS_UnmapUserLogical(
-    IN gckOS Os,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T Bytes,
-    IN gctPOINTER Logical
-    );
-
-/* Create a new mutex. */
-gceSTATUS
-gckOS_CreateMutex(
-    IN gckOS Os,
-    OUT gctPOINTER * Mutex
-    );
-
-/* Delete a mutex. */
-gceSTATUS
-gckOS_DeleteMutex(
-    IN gckOS Os,
-    IN gctPOINTER Mutex
-    );
-
-/* Acquire a mutex. */
-gceSTATUS
-gckOS_AcquireMutex(
-    IN gckOS Os,
-    IN gctPOINTER Mutex,
-    IN gctUINT32 Timeout
-    );
-
-/* Release a mutex. */
-gceSTATUS
-gckOS_ReleaseMutex(
-    IN gckOS Os,
-    IN gctPOINTER Mutex
-    );
-
-/* Atomically exchange a pair of 32-bit values. */
-gceSTATUS
-gckOS_AtomicExchange(
-    IN gckOS Os,
-    IN OUT gctUINT32_PTR Target,
-    IN gctUINT32 NewValue,
-    OUT gctUINT32_PTR OldValue
-    );
-
-/* Atomically exchange a pair of pointers. */
-gceSTATUS
-gckOS_AtomicExchangePtr(
-    IN gckOS Os,
-    IN OUT gctPOINTER * Target,
-    IN gctPOINTER NewValue,
-    OUT gctPOINTER * OldValue
-    );
-
-gceSTATUS
-gckOS_AtomSetMask(
-    IN gctPOINTER Atom,
-    IN gctUINT32 Mask
-    );
-
-gceSTATUS
-gckOS_AtomClearMask(
-    IN gctPOINTER Atom,
-    IN gctUINT32 Mask
-    );
-
-gceSTATUS
-gckOS_DumpCallStack(
-    IN gckOS Os
-    );
-
-gceSTATUS
-gckOS_GetProcessNameByPid(
-    IN gctINT Pid,
-    IN gctSIZE_T Length,
-    OUT gctUINT8_PTR String
-    );
-
-/*******************************************************************************
-**
-**  gckOS_AtomConstruct
-**
-**  Create an atom.
-**
-**  INPUT:
-**
-**      gckOS Os
-**          Pointer to a gckOS object.
-**
-**  OUTPUT:
-**
-**      gctPOINTER * Atom
-**          Pointer to a variable receiving the constructed atom.
-*/
-gceSTATUS
-gckOS_AtomConstruct(
-    IN gckOS Os,
-    OUT gctPOINTER * Atom
-    );
-
-/*******************************************************************************
-**
-**  gckOS_AtomDestroy
-**
-**  Destroy an atom.
-**
-**  INPUT:
-**
-**      gckOS Os
-**          Pointer to a gckOS object.
-**
-**      gctPOINTER Atom
-**          Pointer to the atom to destroy.
-**
-**  OUTPUT:
-**
-**      Nothing.
-*/
-gceSTATUS
-gckOS_AtomDestroy(
-    IN gckOS Os,
-    OUT gctPOINTER Atom
-    );
-
-/*******************************************************************************
-**
-**  gckOS_AtomGet
-**
-**  Get the 32-bit value protected by an atom.
-**
-**  INPUT:
-**
-**      gckOS Os
-**          Pointer to a gckOS object.
-**
-**      gctPOINTER Atom
-**          Pointer to the atom.
-**
-**  OUTPUT:
-**
-**      gctINT32_PTR Value
-**          Pointer to a variable the receives the value of the atom.
-*/
-gceSTATUS
-gckOS_AtomGet(
-    IN gckOS Os,
-    IN gctPOINTER Atom,
-    OUT gctINT32_PTR Value
-    );
-
-/*******************************************************************************
-**
-**  gckOS_AtomSet
-**
-**  Set the 32-bit value protected by an atom.
-**
-**  INPUT:
-**
-**      gckOS Os
-**          Pointer to a gckOS object.
-**
-**      gctPOINTER Atom
-**          Pointer to the atom.
-**
-**      gctINT32 Value
-**          The value of the atom.
-**
-**  OUTPUT:
-**
-**      Nothing.
-*/
-gceSTATUS
-gckOS_AtomSet(
-    IN gckOS Os,
-    IN gctPOINTER Atom,
-    IN gctINT32 Value
-    );
-
-/*******************************************************************************
-**
-**  gckOS_AtomIncrement
-**
-**  Atomically increment the 32-bit integer value inside an atom.
-**
-**  INPUT:
-**
-**      gckOS Os
-**          Pointer to a gckOS object.
-**
-**      gctPOINTER Atom
-**          Pointer to the atom.
-**
-**  OUTPUT:
-**
-**      gctINT32_PTR Value
-**          Pointer to a variable the receives the original value of the atom.
-*/
-gceSTATUS
-gckOS_AtomIncrement(
-    IN gckOS Os,
-    IN gctPOINTER Atom,
-    OUT gctINT32_PTR Value
-    );
-
-/*******************************************************************************
-**
-**  gckOS_AtomDecrement
-**
-**  Atomically decrement the 32-bit integer value inside an atom.
-**
-**  INPUT:
-**
-**      gckOS Os
-**          Pointer to a gckOS object.
-**
-**      gctPOINTER Atom
-**          Pointer to the atom.
-**
-**  OUTPUT:
-**
-**      gctINT32_PTR Value
-**          Pointer to a variable the receives the original value of the atom.
-*/
-gceSTATUS
-gckOS_AtomDecrement(
-    IN gckOS Os,
-    IN gctPOINTER Atom,
-    OUT gctINT32_PTR Value
-    );
-
-/* Delay a number of microseconds. */
-gceSTATUS
-gckOS_Delay(
-    IN gckOS Os,
-    IN gctUINT32 Delay
-    );
-
-/* Get time in milliseconds. */
-gceSTATUS
-gckOS_GetTicks(
-    OUT gctUINT32_PTR Time
-    );
-
-/* Compare time value. */
-gceSTATUS
-gckOS_TicksAfter(
-    IN gctUINT32 Time1,
-    IN gctUINT32 Time2,
-    OUT gctBOOL_PTR IsAfter
-    );
-
-/* Get time in microseconds. */
-gceSTATUS
-gckOS_GetTime(
-    OUT gctUINT64_PTR Time
-    );
-
-/* Memory barrier. */
-gceSTATUS
-gckOS_MemoryBarrier(
-    IN gckOS Os,
-    IN gctPOINTER Address
-    );
-
-/* Map user pointer. */
-gceSTATUS
-gckOS_MapUserPointer(
-    IN gckOS Os,
-    IN gctPOINTER Pointer,
-    IN gctSIZE_T Size,
-    OUT gctPOINTER * KernelPointer
-    );
-
-/* Unmap user pointer. */
-gceSTATUS
-gckOS_UnmapUserPointer(
-    IN gckOS Os,
-    IN gctPOINTER Pointer,
-    IN gctSIZE_T Size,
-    IN gctPOINTER KernelPointer
-    );
-
-/*******************************************************************************
-**
-**  gckOS_QueryNeedCopy
-**
-**  Query whether the memory can be accessed or mapped directly or it has to be
-**  copied.
-**
-**  INPUT:
-**
-**      gckOS Os
-**          Pointer to an gckOS object.
-**
-**      gctUINT32 ProcessID
-**          Process ID of the current process.
-**
-**  OUTPUT:
-**
-**      gctBOOL_PTR NeedCopy
-**          Pointer to a boolean receiving gcvTRUE if the memory needs a copy or
-**          gcvFALSE if the memory can be accessed or mapped dircetly.
-*/
-gceSTATUS
-gckOS_QueryNeedCopy(
-    IN gckOS Os,
-    IN gctUINT32 ProcessID,
-    OUT gctBOOL_PTR NeedCopy
-    );
-
-/*******************************************************************************
-**
-**  gckOS_CopyFromUserData
-**
-**  Copy data from user to kernel memory.
-**
-**  INPUT:
-**
-**      gckOS Os
-**          Pointer to an gckOS object.
-**
-**      gctPOINTER KernelPointer
-**          Pointer to kernel memory.
-**
-**      gctPOINTER Pointer
-**          Pointer to user memory.
-**
-**      gctSIZE_T Size
-**          Number of bytes to copy.
-**
-**  OUTPUT:
-**
-**      Nothing.
-*/
-gceSTATUS
-gckOS_CopyFromUserData(
-    IN gckOS Os,
-    IN gctPOINTER KernelPointer,
-    IN gctPOINTER Pointer,
-    IN gctSIZE_T Size
-    );
-
-/*******************************************************************************
-**
-**  gckOS_CopyToUserData
-**
-**  Copy data from kernel to user memory.
-**
-**  INPUT:
-**
-**      gckOS Os
-**          Pointer to an gckOS object.
-**
-**      gctPOINTER KernelPointer
-**          Pointer to kernel memory.
-**
-**      gctPOINTER Pointer
-**          Pointer to user memory.
-**
-**      gctSIZE_T Size
-**          Number of bytes to copy.
-**
-**  OUTPUT:
-**
-**      Nothing.
-*/
-gceSTATUS
-gckOS_CopyToUserData(
-    IN gckOS Os,
-    IN gctPOINTER KernelPointer,
-    IN gctPOINTER Pointer,
-    IN gctSIZE_T Size
-    );
-
-gceSTATUS
-gckOS_SuspendInterrupt(
-    IN gckOS Os
-    );
-
-gceSTATUS
-gckOS_SuspendInterruptEx(
-    IN gckOS Os,
-    IN gceCORE Core
-    );
-
-gceSTATUS
-gckOS_ResumeInterrupt(
-    IN gckOS Os
-    );
-
-gceSTATUS
-gckOS_ResumeInterruptEx(
-    IN gckOS Os,
-    IN gceCORE Core
-    );
-
-/* Get the base address for the physical memory. */
-gceSTATUS
-gckOS_GetBaseAddress(
-    IN gckOS Os,
-    OUT gctUINT32_PTR BaseAddress
-    );
-
-/* Perform a memory copy. */
-gceSTATUS
-gckOS_MemCopy(
-    IN gctPOINTER Destination,
-    IN gctCONST_POINTER Source,
-    IN gctSIZE_T Bytes
-    );
-
-/* Zero memory. */
-gceSTATUS
-gckOS_ZeroMemory(
-    IN gctPOINTER Memory,
-    IN gctSIZE_T Bytes
-    );
-
-/* Device I/O control to the kernel HAL layer. */
-gceSTATUS
-gckOS_DeviceControl(
-    IN gckOS Os,
-    IN gctBOOL FromUser,
-    IN gctUINT32 IoControlCode,
-    IN gctPOINTER InputBuffer,
-    IN gctSIZE_T InputBufferSize,
-    OUT gctPOINTER OutputBuffer,
-    IN gctSIZE_T OutputBufferSize
-    );
-
-/*******************************************************************************
-**
-**  gckOS_GetProcessID
-**
-**  Get current process ID.
-**
-**  INPUT:
-**
-**      Nothing.
-**
-**  OUTPUT:
-**
-**      gctUINT32_PTR ProcessID
-**          Pointer to the variable that receives the process ID.
-*/
-gceSTATUS
-gckOS_GetProcessID(
-    OUT gctUINT32_PTR ProcessID
-    );
-
-gceSTATUS
-gckOS_GetCurrentProcessID(
-    OUT gctUINT32_PTR ProcessID
-    );
-
-/*******************************************************************************
-**
-**  gckOS_GetThreadID
-**
-**  Get current thread ID.
-**
-**  INPUT:
-**
-**      Nothing.
-**
-**  OUTPUT:
-**
-**      gctUINT32_PTR ThreadID
-**          Pointer to the variable that receives the thread ID.
-*/
-gceSTATUS
-gckOS_GetThreadID(
-    OUT gctUINT32_PTR ThreadID
-    );
-
-#if gcdSECURITY
-gceSTATUS
-gckOS_OpenSecurityChannel(
-    IN gckOS Os,
-    IN gceCORE Core,
-    OUT gctUINT32 *Channel
-    );
-
-gceSTATUS
-gckOS_CloseSecurityChannel(
-    IN gctUINT32 Channel
-    );
-
-gceSTATUS
-gckOS_CallSecurityService(
-    IN gctUINT32 Channel,
-    IN gcsTA_INTERFACE * Interface
-    );
-
-gceSTATUS
-gckOS_InitSecurityChannel(
-    OUT gctUINT32 Channel
-    );
-
-gceSTATUS
-gckOS_AllocatePageArray(
-    IN gckOS Os,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T PageCount,
-    OUT gctPOINTER * PageArrayLogical,
-    OUT gctPHYS_ADDR * PageArrayPhysical
-    );
-#endif
-
-/******************************************************************************\
-********************************** Signal Object *********************************
-\******************************************************************************/
-
-/* Create a signal. */
-gceSTATUS
-gckOS_CreateSignal(
-    IN gckOS Os,
-    IN gctBOOL ManualReset,
-    OUT gctSIGNAL * Signal
-    );
-
-/* Destroy a signal. */
-gceSTATUS
-gckOS_DestroySignal(
-    IN gckOS Os,
-    IN gctSIGNAL Signal
-    );
-
-/* Signal a signal. */
-gceSTATUS
-gckOS_Signal(
-    IN gckOS Os,
-    IN gctSIGNAL Signal,
-    IN gctBOOL State
-    );
-
-/* Wait for a signal. */
-gceSTATUS
-gckOS_WaitSignal(
-    IN gckOS Os,
-    IN gctSIGNAL Signal,
-    IN gctUINT32 Wait
-    );
-
-#ifdef __QNXNTO__
-gceSTATUS
-gckOS_SignalPulse(
-    IN gckOS Os,
-    IN gctSIGNAL Signal
-    );
-
-gceSTATUS
-gckOS_SignalPending(
-    IN gckOS Os,
-    IN gctSIGNAL Signal
-    );
-#endif
-
-/* Map a user signal to the kernel space. */
-gceSTATUS
-gckOS_MapSignal(
-    IN gckOS Os,
-    IN gctSIGNAL Signal,
-    IN gctHANDLE Process,
-    OUT gctSIGNAL * MappedSignal
-    );
-
-/* Unmap a user signal */
-gceSTATUS
-gckOS_UnmapSignal(
-    IN gckOS Os,
-    IN gctSIGNAL Signal
-    );
-
-/* Map user memory. */
-gceSTATUS
-gckOS_MapUserMemory(
-    IN gckOS Os,
-    IN gceCORE Core,
-    IN gctPOINTER Memory,
-    IN gctUINT32 Physical,
-    IN gctSIZE_T Size,
-    OUT gctPOINTER * Info,
-    OUT gctUINT32_PTR Address
-    );
-
-/* Unmap user memory. */
-gceSTATUS
-gckOS_UnmapUserMemory(
-    IN gckOS Os,
-    IN gceCORE Core,
-    IN gctPOINTER Memory,
-    IN gctSIZE_T Size,
-    IN gctPOINTER Info,
-    IN gctUINT32 Address
-    );
-
-/******************************************************************************\
-************************** Android Native Fence Sync ***************************
-\******************************************************************************/
-gceSTATUS
-gckOS_CreateSyncTimeline(
-    IN gckOS Os,
-    OUT gctHANDLE * Timeline
-    );
-
-gceSTATUS
-gckOS_DestroySyncTimeline(
-    IN gckOS Os,
-    IN gctHANDLE Timeline
-    );
-
-gceSTATUS
-gckOS_CreateSyncPoint(
-    IN gckOS Os,
-    OUT gctSYNC_POINT * SyncPoint
-    );
-
-gceSTATUS
-gckOS_ReferenceSyncPoint(
-    IN gckOS Os,
-    IN gctSYNC_POINT SyncPoint
-    );
-
-gceSTATUS
-gckOS_DestroySyncPoint(
-    IN gckOS Os,
-    IN gctSYNC_POINT SyncPoint
-    );
-
-gceSTATUS
-gckOS_SignalSyncPoint(
-    IN gckOS Os,
-    IN gctSYNC_POINT SyncPoint
-    );
-
-gceSTATUS
-gckOS_QuerySyncPoint(
-    IN gckOS Os,
-    IN gctSYNC_POINT SyncPoint,
-    OUT gctBOOL_PTR State
-    );
-
-gceSTATUS
-gckOS_CreateNativeFence(
-    IN gckOS Os,
-    IN gctHANDLE Timeline,
-    IN gctSYNC_POINT SyncPoint,
-    OUT gctINT * FenceFD
-    );
-
-#if !USE_NEW_LINUX_SIGNAL
-/* Create signal to be used in the user space. */
-gceSTATUS
-gckOS_CreateUserSignal(
-    IN gckOS Os,
-    IN gctBOOL ManualReset,
-    OUT gctINT * SignalID
-    );
-
-/* Destroy signal used in the user space. */
-gceSTATUS
-gckOS_DestroyUserSignal(
-    IN gckOS Os,
-    IN gctINT SignalID
-    );
-
-/* Wait for signal used in the user space. */
-gceSTATUS
-gckOS_WaitUserSignal(
-    IN gckOS Os,
-    IN gctINT SignalID,
-    IN gctUINT32 Wait
-    );
-
-/* Signal a signal used in the user space. */
-gceSTATUS
-gckOS_SignalUserSignal(
-    IN gckOS Os,
-    IN gctINT SignalID,
-    IN gctBOOL State
-    );
-#endif /* USE_NEW_LINUX_SIGNAL */
-
-/* Set a signal owned by a process. */
-#if defined(__QNXNTO__)
-gceSTATUS
-gckOS_UserSignal(
-    IN gckOS Os,
-    IN gctSIGNAL Signal,
-    IN gctINT Recvid,
-    IN gctINT Coid
-    );
-#else
-gceSTATUS
-gckOS_UserSignal(
-    IN gckOS Os,
-    IN gctSIGNAL Signal,
-    IN gctHANDLE Process
-    );
-#endif
-
-/******************************************************************************\
-** Cache Support
-*/
-
-gceSTATUS
-gckOS_CacheClean(
-    gckOS Os,
-    gctUINT32 ProcessID,
-    gctPHYS_ADDR Handle,
-    gctUINT32 Physical,
-    gctPOINTER Logical,
-    gctSIZE_T Bytes
-    );
-
-gceSTATUS
-gckOS_CacheFlush(
-    gckOS Os,
-    gctUINT32 ProcessID,
-    gctPHYS_ADDR Handle,
-    gctUINT32 Physical,
-    gctPOINTER Logical,
-    gctSIZE_T Bytes
-    );
-
-gceSTATUS
-gckOS_CacheInvalidate(
-    gckOS Os,
-    gctUINT32 ProcessID,
-    gctPHYS_ADDR Handle,
-    gctUINT32 Physical,
-    gctPOINTER Logical,
-    gctSIZE_T Bytes
-    );
-
-gceSTATUS
-gckOS_CPUPhysicalToGPUPhysical(
-    IN gckOS Os,
-    IN gctUINT32 CPUPhysical,
-    IN gctUINT32_PTR GPUPhysical
-    );
-
-gceSTATUS
-gckOS_GPUPhysicalToCPUPhysical(
-    IN gckOS Os,
-    IN gctUINT32 GPUPhysical,
-    IN gctUINT32_PTR CPUPhysical
-    );
-
-gceSTATUS
-gckOS_QueryOption(
-    IN gckOS Os,
-    IN gctCONST_STRING Option,
-    OUT gctUINT32 * Value
-    );
-
-/******************************************************************************\
-** Debug Support
-*/
-
-void
-gckOS_SetDebugLevel(
-    IN gctUINT32 Level
-    );
-
-void
-gckOS_SetDebugZone(
-    IN gctUINT32 Zone
-    );
-
-void
-gckOS_SetDebugLevelZone(
-    IN gctUINT32 Level,
-    IN gctUINT32 Zone
-    );
-
-void
-gckOS_SetDebugZones(
-    IN gctUINT32 Zones,
-    IN gctBOOL Enable
-    );
-
-void
-gckOS_SetDebugFile(
-    IN gctCONST_STRING FileName
-    );
-
-/*******************************************************************************
-** Broadcast interface.
-*/
-
-typedef enum _gceBROADCAST
-{
-    /* GPU might be idle. */
-    gcvBROADCAST_GPU_IDLE,
-
-    /* A commit is going to happen. */
-    gcvBROADCAST_GPU_COMMIT,
-
-    /* GPU seems to be stuck. */
-    gcvBROADCAST_GPU_STUCK,
-
-    /* First process gets attached. */
-    gcvBROADCAST_FIRST_PROCESS,
-
-    /* Last process gets detached. */
-    gcvBROADCAST_LAST_PROCESS,
-
-    /* AXI bus error. */
-    gcvBROADCAST_AXI_BUS_ERROR,
-
-    /* Out of memory. */
-    gcvBROADCAST_OUT_OF_MEMORY,
-}
-gceBROADCAST;
-
-gceSTATUS
-gckOS_Broadcast(
-    IN gckOS Os,
-    IN gckHARDWARE Hardware,
-    IN gceBROADCAST Reason
-    );
-
-gceSTATUS
-gckOS_BroadcastHurry(
-    IN gckOS Os,
-    IN gckHARDWARE Hardware,
-    IN gctUINT Urgency
-    );
-
-gceSTATUS
-gckOS_BroadcastCalibrateSpeed(
-    IN gckOS Os,
-    IN gckHARDWARE Hardware,
-    IN gctUINT Idle,
-    IN gctUINT Time
-    );
-
-/*******************************************************************************
-**
-**  gckOS_SetGPUPower
-**
-**  Set the power of the GPU on or off.
-**
-**  INPUT:
-**
-**      gckOS Os
-**          Pointer to a gckOS object.
-**
-**      gceCORE Core
-**          GPU whose power is set.
-**
-**      gctBOOL Clock
-**          gcvTRUE to turn on the clock, or gcvFALSE to turn off the clock.
-**
-**      gctBOOL Power
-**          gcvTRUE to turn on the power, or gcvFALSE to turn off the power.
-**
-**  OUTPUT:
-**
-**      Nothing.
-*/
-gceSTATUS
-gckOS_SetGPUPower(
-    IN gckOS Os,
-    IN gceCORE Core,
-    IN gctBOOL Clock,
-    IN gctBOOL Power
-    );
-
-gceSTATUS
-gckOS_ResetGPU(
-    IN gckOS Os,
-    IN gceCORE Core
-    );
-
-gceSTATUS
-gckOS_PrepareGPUFrequency(
-    IN gckOS Os,
-    IN gceCORE Core
-    );
-
-gceSTATUS
-gckOS_FinishGPUFrequency(
-    IN gckOS Os,
-    IN gceCORE Core
-    );
-
-gceSTATUS
-gckOS_QueryGPUFrequency(
-    IN gckOS Os,
-    IN gceCORE Core,
-    OUT gctUINT32 * Frequency,
-    OUT gctUINT8 * Scale
-    );
-
-gceSTATUS
-gckOS_SetGPUFrequency(
-    IN gckOS Os,
-    IN gceCORE Core,
-    IN gctUINT8 Scale
-    );
-
-/*******************************************************************************
-** Semaphores.
-*/
-
-/* Create a new semaphore. */
-gceSTATUS
-gckOS_CreateSemaphore(
-    IN gckOS Os,
-    OUT gctPOINTER * Semaphore
-    );
-
-#if gcdENABLE_VG
-gceSTATUS
-gckOS_CreateSemaphoreVG(
-    IN gckOS Os,
-    OUT gctPOINTER * Semaphore
-    );
-#endif
-
-/* Delete a semahore. */
-gceSTATUS
-gckOS_DestroySemaphore(
-    IN gckOS Os,
-    IN gctPOINTER Semaphore
-    );
-
-/* Acquire a semahore. */
-gceSTATUS
-gckOS_AcquireSemaphore(
-    IN gckOS Os,
-    IN gctPOINTER Semaphore
-    );
-
-/* Try to acquire a semahore. */
-gceSTATUS
-gckOS_TryAcquireSemaphore(
-    IN gckOS Os,
-    IN gctPOINTER Semaphore
-    );
-
-/* Release a semahore. */
-gceSTATUS
-gckOS_ReleaseSemaphore(
-    IN gckOS Os,
-    IN gctPOINTER Semaphore
-    );
-
-/*******************************************************************************
-** Timer API.
-*/
-
-typedef void (*gctTIMERFUNCTION)(gctPOINTER);
-
-/* Create a timer. */
-gceSTATUS
-gckOS_CreateTimer(
-    IN gckOS Os,
-    IN gctTIMERFUNCTION Function,
-    IN gctPOINTER Data,
-    OUT gctPOINTER * Timer
-    );
-
-/* Destory a timer. */
-gceSTATUS
-gckOS_DestroyTimer(
-    IN gckOS Os,
-    IN gctPOINTER Timer
-    );
-
-/* Start a timer. */
-gceSTATUS
-gckOS_StartTimer(
-    IN gckOS Os,
-    IN gctPOINTER Timer,
-    IN gctUINT32 Delay
-    );
-
-/* Stop a timer. */
-gceSTATUS
-gckOS_StopTimer(
-    IN gckOS Os,
-    IN gctPOINTER Timer
-    );
-
-/******************************************************************************\
-********************************* gckHEAP Object ********************************
-\******************************************************************************/
-
-typedef struct _gckHEAP *       gckHEAP;
-
-/* Construct a new gckHEAP object. */
-gceSTATUS
-gckHEAP_Construct(
-    IN gckOS Os,
-    IN gctSIZE_T AllocationSize,
-    OUT gckHEAP * Heap
-    );
-
-/* Destroy an gckHEAP object. */
-gceSTATUS
-gckHEAP_Destroy(
-    IN gckHEAP Heap
-    );
-
-/* Allocate memory. */
-gceSTATUS
-gckHEAP_Allocate(
-    IN gckHEAP Heap,
-    IN gctSIZE_T Bytes,
-    OUT gctPOINTER * Node
-    );
-
-/* Free memory. */
-gceSTATUS
-gckHEAP_Free(
-    IN gckHEAP Heap,
-    IN gctPOINTER Node
-    );
-
-/* Profile the heap. */
-gceSTATUS
-gckHEAP_ProfileStart(
-    IN gckHEAP Heap
-    );
-
-gceSTATUS
-gckHEAP_ProfileEnd(
-    IN gckHEAP Heap,
-    IN gctCONST_STRING Title
-    );
-
-
-/******************************************************************************\
-******************************** gckVIDMEM Object ******************************
-\******************************************************************************/
-
-typedef struct _gckVIDMEM *         gckVIDMEM;
-typedef struct _gckKERNEL *         gckKERNEL;
-typedef struct _gckDB *             gckDB;
-typedef struct _gckDVFS *           gckDVFS;
-
-/* Construct a new gckVIDMEM object. */
-gceSTATUS
-gckVIDMEM_Construct(
-    IN gckOS Os,
-    IN gctUINT32 BaseAddress,
-    IN gctSIZE_T Bytes,
-    IN gctSIZE_T Threshold,
-    IN gctSIZE_T Banking,
-    OUT gckVIDMEM * Memory
-    );
-
-/* Destroy an gckVDIMEM object. */
-gceSTATUS
-gckVIDMEM_Destroy(
-    IN gckVIDMEM Memory
-    );
-
-/* Allocate linear memory. */
-gceSTATUS
-gckVIDMEM_AllocateLinear(
-    IN gckKERNEL Kernel,
-    IN gckVIDMEM Memory,
-    IN gctSIZE_T Bytes,
-    IN gctUINT32 Alignment,
-    IN gceSURF_TYPE Type,
-    IN gctBOOL Specified,
-    OUT gcuVIDMEM_NODE_PTR * Node
-    );
-
-/* Free memory. */
-gceSTATUS
-gckVIDMEM_Free(
-    IN gckKERNEL Kernel,
-    IN gcuVIDMEM_NODE_PTR Node
-    );
-
-/* Lock memory. */
-gceSTATUS
-gckVIDMEM_Lock(
-    IN gckKERNEL Kernel,
-    IN gckVIDMEM_NODE Node,
-    IN gctBOOL Cacheable,
-    OUT gctUINT32 * Address,
-    OUT gctUINT32 * Gid,
-    OUT gctUINT64 * PhysicalAddress
-    );
-
-/* Unlock memory. */
-gceSTATUS
-gckVIDMEM_Unlock(
-    IN gckKERNEL Kernel,
-    IN gckVIDMEM_NODE Node,
-    IN gceSURF_TYPE Type,
-    IN OUT gctBOOL * Asynchroneous
-    );
-
-/* Construct a gcuVIDMEM_NODE union for virtual memory. */
-gceSTATUS
-gckVIDMEM_ConstructVirtual(
-    IN gckKERNEL Kernel,
-    IN gctUINT32 Flag,
-    IN gctSIZE_T Bytes,
-    OUT gcuVIDMEM_NODE_PTR * Node
-    );
-
-/* Destroy a gcuVIDMEM_NODE union for virtual memory. */
-gceSTATUS
-gckVIDMEM_DestroyVirtual(
-    IN gcuVIDMEM_NODE_PTR Node
-    );
-
-/******************************************************************************\
-******************************** gckKERNEL Object ******************************
-\******************************************************************************/
-
-struct _gcsHAL_INTERFACE;
-
-/* Notifications. */
-typedef enum _gceNOTIFY
-{
-    gcvNOTIFY_INTERRUPT,
-    gcvNOTIFY_COMMAND_QUEUE,
-}
-gceNOTIFY;
-
-/* Flush flags. */
-typedef enum _gceKERNEL_FLUSH
-{
-    gcvFLUSH_COLOR              = 0x01,
-    gcvFLUSH_DEPTH              = 0x02,
-    gcvFLUSH_TEXTURE            = 0x04,
-    gcvFLUSH_2D                 = 0x08,
-#if gcdMULTI_GPU
-    gcvFLUSH_L2                 = 0x10,
-#endif
-    gcvFLUSH_TILE_STATUS        = 0x20,
-    gcvFLUSH_ALL                = gcvFLUSH_COLOR
-                                | gcvFLUSH_DEPTH
-                                | gcvFLUSH_TEXTURE
-                                | gcvFLUSH_2D
-#if gcdMULTI_GPU
-                                | gcvFLUSH_L2
-#endif
-                                | gcvFLUSH_TILE_STATUS
-}
-gceKERNEL_FLUSH;
-
-/* Construct a new gckKERNEL object. */
-gceSTATUS
-gckKERNEL_Construct(
-    IN gckOS Os,
-    IN gceCORE Core,
-    IN gctPOINTER Context,
-    IN gckDB SharedDB,
-    OUT gckKERNEL * Kernel
-    );
-
-/* Destroy an gckKERNEL object. */
-gceSTATUS
-gckKERNEL_Destroy(
-    IN gckKERNEL Kernel
-    );
-
-/* Dispatch a user-level command. */
-gceSTATUS
-gckKERNEL_Dispatch(
-    IN gckKERNEL Kernel,
-    IN gctBOOL FromUser,
-    IN OUT struct _gcsHAL_INTERFACE * Interface
-    );
-
-/* Query Database requirements. */
-gceSTATUS
-    gckKERNEL_QueryDatabase(
-    IN gckKERNEL Kernel,
-    IN gctUINT32 ProcessID,
-    IN OUT gcsHAL_INTERFACE * Interface
-    );
-
-/* Query the video memory. */
-gceSTATUS
-gckKERNEL_QueryVideoMemory(
-    IN gckKERNEL Kernel,
-    OUT struct _gcsHAL_INTERFACE * Interface
-    );
-
-/* Lookup the gckVIDMEM object for a pool. */
-gceSTATUS
-gckKERNEL_GetVideoMemoryPool(
-    IN gckKERNEL Kernel,
-    IN gcePOOL Pool,
-    OUT gckVIDMEM * VideoMemory
-    );
-
-gceSTATUS
-gckKERNEL_AllocateLinearMemory(
-    IN gckKERNEL Kernel,
-    IN gctUINT32 ProcessID,
-    IN OUT gcePOOL * Pool,
-    IN gctSIZE_T Bytes,
-    IN gctUINT32 Alignment,
-    IN gceSURF_TYPE Type,
-    IN gctUINT32 Flag,
-    OUT gctUINT32 * Node
-    );
-
-gceSTATUS
-gckKERNEL_ReleaseVideoMemory(
-    IN gckKERNEL Kernel,
-    IN gctUINT32 ProcessID,
-    IN gctUINT32 Handle
-    );
-
-gceSTATUS
-gckKERNEL_LockVideoMemory(
-    IN gckKERNEL Kernel,
-    IN gceCORE Core,
-    IN gctUINT32 ProcessID,
-    IN gctBOOL FromUser,
-    IN OUT gcsHAL_INTERFACE * Interface
-    );
-
-gceSTATUS
-gckKERNEL_UnlockVideoMemory(
-    IN gckKERNEL Kernel,
-    IN gctUINT32 ProcessID,
-    IN OUT gcsHAL_INTERFACE * Interface
-    );
-
-/* Map video memory. */
-gceSTATUS
-gckKERNEL_MapVideoMemory(
-    IN gckKERNEL Kernel,
-    IN gctBOOL InUserSpace,
-    IN gctUINT32 Address,
-#ifdef __QNXNTO__
-    IN gctUINT32 Pid,
-    IN gctUINT32 Bytes,
-#endif
-    OUT gctPOINTER * Logical
-    );
-
-/* Map video memory. */
-gceSTATUS
-gckKERNEL_MapVideoMemoryEx(
-    IN gckKERNEL Kernel,
-    IN gceCORE Core,
-    IN gctBOOL InUserSpace,
-    IN gctUINT32 Address,
-#ifdef __QNXNTO__
-    IN gctUINT32 Pid,
-    IN gctUINT32 Bytes,
-#endif
-    OUT gctPOINTER * Logical
-    );
-
-#ifdef __QNXNTO__
-/* Unmap video memory. */
-gceSTATUS
-gckKERNEL_UnmapVideoMemory(
-    IN gckKERNEL Kernel,
-    IN gctPOINTER Logical,
-    IN gctUINT32 Pid,
-    IN gctUINT32 Bytes
-    );
-#endif
-
-/* Map memory. */
-gceSTATUS
-gckKERNEL_MapMemory(
-    IN gckKERNEL Kernel,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T Bytes,
-    OUT gctPOINTER * Logical
-    );
-
-/* Unmap memory. */
-gceSTATUS
-gckKERNEL_UnmapMemory(
-    IN gckKERNEL Kernel,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T Bytes,
-    IN gctPOINTER Logical
-    );
-
-/* Notification of events. */
-gceSTATUS
-gckKERNEL_Notify(
-    IN gckKERNEL Kernel,
-#if gcdMULTI_GPU
-    IN gctUINT CoreId,
-#endif
-    IN gceNOTIFY Notifcation,
-    IN gctBOOL Data
-    );
-
-gceSTATUS
-gckKERNEL_QuerySettings(
-    IN gckKERNEL Kernel,
-    OUT gcsKERNEL_SETTINGS * Settings
-    );
-
-/*******************************************************************************
-**
-**  gckKERNEL_Recovery
-**
-**  Try to recover the GPU from a fatal error.
-**
-**  INPUT:
-**
-**      gckKERNEL Kernel
-**          Pointer to an gckKERNEL object.
-**
-**  OUTPUT:
-**
-**      Nothing.
-*/
-gceSTATUS
-gckKERNEL_Recovery(
-    IN gckKERNEL Kernel
-    );
-
-/* Set the value of timeout on HW operation. */
-void
-gckKERNEL_SetTimeOut(
-    IN gckKERNEL Kernel,
-    IN gctUINT32 timeOut
-    );
-
-/* Get access to the user data. */
-gceSTATUS
-gckKERNEL_OpenUserData(
-    IN gckKERNEL Kernel,
-    IN gctBOOL NeedCopy,
-    IN gctPOINTER StaticStorage,
-    IN gctPOINTER UserPointer,
-    IN gctSIZE_T Size,
-    OUT gctPOINTER * KernelPointer
-    );
-
-/* Release resources associated with the user data connection. */
-gceSTATUS
-gckKERNEL_CloseUserData(
-    IN gckKERNEL Kernel,
-    IN gctBOOL NeedCopy,
-    IN gctBOOL FlushData,
-    IN gctPOINTER UserPointer,
-    IN gctSIZE_T Size,
-    OUT gctPOINTER * KernelPointer
-    );
-
-gceSTATUS
-gckDVFS_Construct(
-    IN gckHARDWARE Hardware,
-    OUT gckDVFS * Frequency
-    );
-
-gceSTATUS
-gckDVFS_Destroy(
-    IN gckDVFS Dvfs
-    );
-
-gceSTATUS
-gckDVFS_Start(
-    IN gckDVFS Dvfs
-    );
-
-gceSTATUS
-gckDVFS_Stop(
-    IN gckDVFS Dvfs
-    );
-
-/******************************************************************************\
-******************************* gckHARDWARE Object *****************************
-\******************************************************************************/
-
-/* Construct a new gckHARDWARE object. */
-gceSTATUS
-gckHARDWARE_Construct(
-    IN gckOS Os,
-    IN gceCORE Core,
-    OUT gckHARDWARE * Hardware
-    );
-
-/* Destroy an gckHARDWARE object. */
-gceSTATUS
-gckHARDWARE_Destroy(
-    IN gckHARDWARE Hardware
-    );
-
-/* Get hardware type. */
-gceSTATUS
-gckHARDWARE_GetType(
-    IN gckHARDWARE Hardware,
-    OUT gceHARDWARE_TYPE * Type
-    );
-
-/* Query system memory requirements. */
-gceSTATUS
-gckHARDWARE_QuerySystemMemory(
-    IN gckHARDWARE Hardware,
-    OUT gctSIZE_T * SystemSize,
-    OUT gctUINT32 * SystemBaseAddress
-    );
-
-/* Build virtual address. */
-gceSTATUS
-gckHARDWARE_BuildVirtualAddress(
-    IN gckHARDWARE Hardware,
-    IN gctUINT32 Index,
-    IN gctUINT32 Offset,
-    OUT gctUINT32 * Address
-    );
-
-/* Query command buffer requirements. */
-gceSTATUS
-gckHARDWARE_QueryCommandBuffer(
-    IN gckHARDWARE Hardware,
-    OUT gctUINT32 * Alignment,
-    OUT gctUINT32 * ReservedHead,
-    OUT gctUINT32 * ReservedTail
-    );
-
-/* Add a WAIT/LINK pair in the command queue. */
-gceSTATUS
-gckHARDWARE_WaitLink(
-    IN gckHARDWARE Hardware,
-    IN gctPOINTER Logical,
-    IN gctUINT32 Offset,
-    IN OUT gctUINT32 * Bytes,
-    OUT gctUINT32 * WaitOffset,
-    OUT gctUINT32 * WaitBytes
-    );
-
-/* Kickstart the command processor. */
-gceSTATUS
-gckHARDWARE_Execute(
-    IN gckHARDWARE Hardware,
-    IN gctUINT32 Address,
-    IN gctSIZE_T Bytes
-    );
-
-/* Add an END command in the command queue. */
-gceSTATUS
-gckHARDWARE_End(
-    IN gckHARDWARE Hardware,
-    IN gctPOINTER Logical,
-    IN OUT gctUINT32 * Bytes
-    );
-
-#if gcdMULTI_GPU
-gceSTATUS
-gckHARDWARE_ChipEnable(
-    IN gckHARDWARE Hardware,
-    IN gctPOINTER Logical,
-    IN gceCORE_3D_MASK ChipEnable,
-    IN OUT gctSIZE_T * Bytes
-    );
-#endif
-
-/* Add a NOP command in the command queue. */
-gceSTATUS
-gckHARDWARE_Nop(
-    IN gckHARDWARE Hardware,
-    IN gctPOINTER Logical,
-    IN OUT gctSIZE_T * Bytes
-    );
-
-/* Add a PIPESELECT command in the command queue. */
-gceSTATUS
-gckHARDWARE_PipeSelect(
-    IN gckHARDWARE Hardware,
-    IN gctPOINTER Logical,
-    IN gcePIPE_SELECT Pipe,
-    IN OUT gctUINT32 * Bytes
-    );
-
-/* Add a LINK command in the command queue. */
-gceSTATUS
-gckHARDWARE_Link(
-    IN gckHARDWARE Hardware,
-    IN gctPOINTER Logical,
-    IN gctUINT32 FetchAddress,
-    IN gctUINT32 FetchSize,
-    IN OUT gctUINT32 * Bytes
-    );
-
-/* Add an EVENT command in the command queue. */
-gceSTATUS
-gckHARDWARE_Event(
-    IN gckHARDWARE Hardware,
-    IN gctPOINTER Logical,
-    IN gctUINT8 Event,
-    IN gceKERNEL_WHERE FromWhere,
-    IN OUT gctUINT32 * Bytes
-    );
-
-/* Query the available memory. */
-gceSTATUS
-gckHARDWARE_QueryMemory(
-    IN gckHARDWARE Hardware,
-    OUT gctSIZE_T * InternalSize,
-    OUT gctUINT32 * InternalBaseAddress,
-    OUT gctUINT32 * InternalAlignment,
-    OUT gctSIZE_T * ExternalSize,
-    OUT gctUINT32 * ExternalBaseAddress,
-    OUT gctUINT32 * ExternalAlignment,
-    OUT gctUINT32 * HorizontalTileSize,
-    OUT gctUINT32 * VerticalTileSize
-    );
-
-/* Query the identity of the hardware. */
-gceSTATUS
-gckHARDWARE_QueryChipIdentity(
-    IN gckHARDWARE Hardware,
-    OUT gcsHAL_QUERY_CHIP_IDENTITY_PTR Identity
-    );
-
-/* Query the shader uniforms support. */
-gceSTATUS
-gckHARDWARE_QueryShaderCaps(
-    IN gckHARDWARE Hardware,
-    OUT gctUINT * VertexUniforms,
-    OUT gctUINT * FragmentUniforms,
-    OUT gctBOOL * UnifiedUnforms
-    );
-
-/* Split a harwdare specific address into API stuff. */
-gceSTATUS
-gckHARDWARE_SplitMemory(
-    IN gckHARDWARE Hardware,
-    IN gctUINT32 Address,
-    OUT gcePOOL * Pool,
-    OUT gctUINT32 * Offset
-    );
-
-/* Update command queue tail pointer. */
-gceSTATUS
-gckHARDWARE_UpdateQueueTail(
-    IN gckHARDWARE Hardware,
-    IN gctPOINTER Logical,
-    IN gctUINT32 Offset
-    );
-
-/* Convert logical address to hardware specific address. */
-gceSTATUS
-gckHARDWARE_ConvertLogical(
-    IN gckHARDWARE Hardware,
-    IN gctPOINTER Logical,
-    IN gctBOOL InUserSpace,
-    OUT gctUINT32 * Address
-    );
-
-/* Interrupt manager. */
-gceSTATUS
-gckHARDWARE_Interrupt(
-    IN gckHARDWARE Hardware,
-#if gcdMULTI_GPU
-    IN gctUINT CoreId,
-#endif
-    IN gctBOOL InterruptValid
-    );
-
-/* Program MMU. */
-gceSTATUS
-gckHARDWARE_SetMMU(
-    IN gckHARDWARE Hardware,
-    IN gctPOINTER Logical
-    );
-
-/* Flush the MMU. */
-gceSTATUS
-gckHARDWARE_FlushMMU(
-    IN gckHARDWARE Hardware
-    );
-
-/* Set the page table base address. */
-gceSTATUS
-gckHARDWARE_SetMMUv2(
-    IN gckHARDWARE Hardware,
-    IN gctBOOL Enable,
-    IN gctPOINTER MtlbAddress,
-    IN gceMMU_MODE Mode,
-    IN gctPOINTER SafeAddress,
-    IN gctBOOL FromPower
-    );
-
-#if gcdPROCESS_ADDRESS_SPACE
-/* Configure mmu configuration. */
-gceSTATUS
-gckHARDWARE_ConfigMMU(
-    IN gckHARDWARE Hardware,
-    IN gctPOINTER Logical,
-    IN gctPOINTER MtlbLogical,
-    IN gctUINT32 Offset,
-    IN OUT gctSIZE_T * Bytes,
-    OUT gctSIZE_T * WaitLinkOffset,
-    OUT gctSIZE_T * WaitLinkBytes
-    );
-#endif
-
-/* Get idle register. */
-gceSTATUS
-gckHARDWARE_GetIdle(
-    IN gckHARDWARE Hardware,
-    IN gctBOOL Wait,
-    OUT gctUINT32 * Data
-    );
-
-/* Flush the caches. */
-gceSTATUS
-gckHARDWARE_Flush(
-    IN gckHARDWARE Hardware,
-    IN gceKERNEL_FLUSH Flush,
-    IN gctPOINTER Logical,
-    IN OUT gctUINT32 * Bytes
-    );
-
-/* Enable/disable fast clear. */
-gceSTATUS
-gckHARDWARE_SetFastClear(
-    IN gckHARDWARE Hardware,
-    IN gctINT Enable,
-    IN gctINT Compression
-    );
-
-gceSTATUS
-gckHARDWARE_ReadInterrupt(
-    IN gckHARDWARE Hardware,
-    OUT gctUINT32_PTR IDs
-    );
-
-/* Power management. */
-gceSTATUS
-gckHARDWARE_SetPowerManagementState(
-    IN gckHARDWARE Hardware,
-    IN gceCHIPPOWERSTATE State
-    );
-
-gceSTATUS
-gckHARDWARE_QueryPowerManagementState(
-    IN gckHARDWARE Hardware,
-    OUT gceCHIPPOWERSTATE* State
-    );
-
-gceSTATUS
-gckHARDWARE_SetPowerManagement(
-    IN gckHARDWARE Hardware,
-    IN gctBOOL PowerManagement
-    );
-
-gceSTATUS
-gckHARDWARE_SetGpuProfiler(
-    IN gckHARDWARE Hardware,
-    IN gctBOOL GpuProfiler
-    );
-
-#if gcdENABLE_FSCALE_VAL_ADJUST
-gceSTATUS
-gckHARDWARE_SetFscaleValue(
-    IN gckHARDWARE Hardware,
-    IN gctUINT32   FscaleValue
-    );
-
-gceSTATUS
-gckHARDWARE_GetFscaleValue(
-    IN gckHARDWARE Hardware,
-    IN gctUINT * FscaleValue,
-    IN gctUINT * MinFscaleValue,
-    IN gctUINT * MaxFscaleValue
-    );
-
-gceSTATUS
-gckHARDWARE_SetMinFscaleValue(
-    IN gckHARDWARE Hardware,
-    IN gctUINT MinFscaleValue
-    );
-#endif
-
-#if gcdPOWEROFF_TIMEOUT
-gceSTATUS
-gckHARDWARE_SetPowerOffTimeout(
-    IN gckHARDWARE  Hardware,
-    IN gctUINT32    Timeout
-);
-
-gceSTATUS
-gckHARDWARE_QueryPowerOffTimeout(
-    IN gckHARDWARE  Hardware,
-    OUT gctUINT32*  Timeout
-);
-#endif
-
-/* Profile 2D Engine. */
-gceSTATUS
-gckHARDWARE_ProfileEngine2D(
-    IN gckHARDWARE Hardware,
-    OUT gcs2D_PROFILE_PTR Profile
-    );
-
-gceSTATUS
-gckHARDWARE_InitializeHardware(
-    IN gckHARDWARE Hardware
-    );
-
-gceSTATUS
-gckHARDWARE_Reset(
-    IN gckHARDWARE Hardware
-    );
-
-typedef gceSTATUS (*gctISRMANAGERFUNC)(gctPOINTER Context);
-
-gceSTATUS
-gckHARDWARE_SetIsrManager(
-    IN gckHARDWARE Hardware,
-    IN gctISRMANAGERFUNC StartIsr,
-    IN gctISRMANAGERFUNC StopIsr,
-    IN gctPOINTER Context
-    );
-
-/* Start a composition. */
-gceSTATUS
-gckHARDWARE_Compose(
-    IN gckHARDWARE Hardware,
-    IN gctUINT32 ProcessID,
-    IN gctPHYS_ADDR Physical,
-    IN gctPOINTER Logical,
-    IN gctSIZE_T Offset,
-    IN gctSIZE_T Size,
-    IN gctUINT8 EventID
-    );
-
-/* Check for Hardware features. */
-gceSTATUS
-gckHARDWARE_IsFeatureAvailable(
-    IN gckHARDWARE Hardware,
-    IN gceFEATURE Feature
-    );
-
-gceSTATUS
-gckHARDWARE_DumpMMUException(
-    IN gckHARDWARE Hardware
-    );
-
-gceSTATUS
-gckHARDWARE_DumpGPUState(
-    IN gckHARDWARE Hardware
-    );
-
-gceSTATUS
-gckHARDWARE_InitDVFS(
-    IN gckHARDWARE Hardware
-    );
-
-gceSTATUS
-gckHARDWARE_QueryLoad(
-    IN gckHARDWARE Hardware,
-    OUT gctUINT32 * Load
-    );
-
-gceSTATUS
-gckHARDWARE_SetDVFSPeroid(
-    IN gckHARDWARE Hardware,
-    IN gctUINT32 Frequency
-    );
-
-gceSTATUS
-gckHARDWARE_PrepareFunctions(
-    gckHARDWARE Hardware
-    );
-
-gceSTATUS
-gckHARDWARE_SetMMUStates(
-    IN gckHARDWARE Hardware,
-    IN gctPOINTER MtlbAddress,
-    IN gceMMU_MODE Mode,
-    IN gctPOINTER SafeAddress,
-    IN gctPOINTER Logical,
-    IN OUT gctUINT32 * Bytes
-    );
-
-#if !gcdENABLE_VG
-/******************************************************************************\
-***************************** gckINTERRUPT Object ******************************
-\******************************************************************************/
-
-typedef struct _gckINTERRUPT *  gckINTERRUPT;
-
-typedef gceSTATUS (* gctINTERRUPT_HANDLER)(
-    IN gckKERNEL Kernel
-    );
-
-gceSTATUS
-gckINTERRUPT_Construct(
-    IN gckKERNEL Kernel,
-    OUT gckINTERRUPT * Interrupt
-    );
-
-gceSTATUS
-gckINTERRUPT_Destroy(
-    IN gckINTERRUPT Interrupt
-    );
-
-gceSTATUS
-gckINTERRUPT_SetHandler(
-    IN gckINTERRUPT Interrupt,
-    IN OUT gctINT32_PTR Id,
-    IN gctINTERRUPT_HANDLER Handler
-    );
-
-gceSTATUS
-gckINTERRUPT_Notify(
-    IN gckINTERRUPT Interrupt,
-    IN gctBOOL Valid
-    );
-#endif
-/******************************************************************************\
-******************************** gckEVENT Object *******************************
-\******************************************************************************/
-
-typedef struct _gckEVENT *      gckEVENT;
-
-/* Construct a new gckEVENT object. */
-gceSTATUS
-gckEVENT_Construct(
-    IN gckKERNEL Kernel,
-    OUT gckEVENT * Event
-    );
-
-/* Destroy an gckEVENT object. */
-gceSTATUS
-gckEVENT_Destroy(
-    IN gckEVENT Event
-    );
-
-/* Reserve the next available hardware event. */
-#if gcdMULTI_GPU
-gceSTATUS
-gckEVENT_GetEvent(
-    IN gckEVENT Event,
-    IN gctBOOL Wait,
-    OUT gctUINT8 * EventID,
-    IN gceKERNEL_WHERE Source,
-    IN gceCORE_3D_MASK ChipEnable
-    );
-#else
-gceSTATUS
-gckEVENT_GetEvent(
-    IN gckEVENT Event,
-    IN gctBOOL Wait,
-    OUT gctUINT8 * EventID,
-    IN gceKERNEL_WHERE Source
-   );
-#endif
-
-/* Add a new event to the list of events. */
-gceSTATUS
-gckEVENT_AddList(
-    IN gckEVENT Event,
-    IN gcsHAL_INTERFACE_PTR Interface,
-    IN gceKERNEL_WHERE FromWhere,
-    IN gctBOOL AllocateAllowed,
-    IN gctBOOL FromKernel
-    );
-
-/* Schedule a FreeNonPagedMemory event. */
-gceSTATUS
-gckEVENT_FreeNonPagedMemory(
-    IN gckEVENT Event,
-    IN gctSIZE_T Bytes,
-    IN gctPHYS_ADDR Physical,
-    IN gctPOINTER Logical,
-    IN gceKERNEL_WHERE FromWhere
-    );
-
-/* Schedule a FreeContiguousMemory event. */
-gceSTATUS
-gckEVENT_FreeContiguousMemory(
-    IN gckEVENT Event,
-    IN gctSIZE_T Bytes,
-    IN gctPHYS_ADDR Physical,
-    IN gctPOINTER Logical,
-    IN gceKERNEL_WHERE FromWhere
-    );
-
-/* Schedule a FreeVideoMemory event. */
-gceSTATUS
-gckEVENT_FreeVideoMemory(
-    IN gckEVENT Event,
-    IN gcuVIDMEM_NODE_PTR VideoMemory,
-    IN gceKERNEL_WHERE FromWhere
-    );
-
-/* Schedule a signal event. */
-gceSTATUS
-gckEVENT_Signal(
-    IN gckEVENT Event,
-    IN gctSIGNAL Signal,
-    IN gceKERNEL_WHERE FromWhere
-    );
-
-/* Schedule an Unlock event. */
-gceSTATUS
-gckEVENT_Unlock(
-    IN gckEVENT Event,
-    IN gceKERNEL_WHERE FromWhere,
-    IN gctPOINTER Node,
-    IN gceSURF_TYPE Type
-    );
-
-gceSTATUS
-gckEVENT_CommitDone(
-    IN gckEVENT Event,
-    IN gceKERNEL_WHERE FromWhere
-    );
-
-/* Schedule a FreeVirtualCommandBuffer event. */
-gceSTATUS
-gckEVENT_DestroyVirtualCommandBuffer(
-    IN gckEVENT Event,
-    IN gctSIZE_T Bytes,
-    IN gctPHYS_ADDR Physical,
-    IN gctPOINTER Logical,
-    IN gceKERNEL_WHERE FromWhere
-    );
-
-#if gcdMULTI_GPU
-gceSTATUS
-gckEVENT_Submit(
-    IN gckEVENT Event,
-    IN gctBOOL Wait,
-    IN gctBOOL FromPower,
-    IN gceCORE_3D_MASK ChipEnable
-    );
-#else
-gceSTATUS
-gckEVENT_Submit(
-    IN gckEVENT Event,
-    IN gctBOOL Wait,
-    IN gctBOOL FromPower
-    );
-#endif
-
-#if gcdMULTI_GPU
-gceSTATUS
-gckEVENT_Commit(
-    IN gckEVENT Event,
-    IN gcsQUEUE_PTR Queue,
-    IN gceCORE_3D_MASK ChipEnable
-    );
-#else
-gceSTATUS
-gckEVENT_Commit(
-    IN gckEVENT Event,
-    IN gcsQUEUE_PTR Queue
-    );
-#endif
-
-/* Schedule a composition event. */
-gceSTATUS
-gckEVENT_Compose(
-    IN gckEVENT Event,
-    IN gcsHAL_COMPOSE_PTR Info
-    );
-
-/* Event callback routine. */
-gceSTATUS
-gckEVENT_Notify(
-    IN gckEVENT Event,
-    IN gctUINT32 IDs
-    );
-
-/* Event callback routine. */
-gceSTATUS
-gckEVENT_Interrupt(
-    IN gckEVENT Event,
-#if gcdMULTI_GPU
-    IN gctUINT CoreId,
-#endif
-    IN gctUINT32 IDs
-    );
-
-gceSTATUS
-gckEVENT_Dump(
-    IN gckEVENT Event
-    );
-/******************************************************************************\
-******************************* gckCOMMAND Object ******************************
-\******************************************************************************/
-
-typedef struct _gckCOMMAND *        gckCOMMAND;
-
-/* Construct a new gckCOMMAND object. */
-gceSTATUS
-gckCOMMAND_Construct(
-    IN gckKERNEL Kernel,
-    OUT gckCOMMAND * Command
-    );
-
-/* Destroy an gckCOMMAND object. */
-gceSTATUS
-gckCOMMAND_Destroy(
-    IN gckCOMMAND Command
-    );
-
-/* Acquire command queue synchronization objects. */
-gceSTATUS
-gckCOMMAND_EnterCommit(
-    IN gckCOMMAND Command,
-    IN gctBOOL FromPower
-    );
-
-/* Release command queue synchronization objects. */
-gceSTATUS
-gckCOMMAND_ExitCommit(
-    IN gckCOMMAND Command,
-    IN gctBOOL FromPower
-    );
-
-/* Start the command queue. */
-gceSTATUS
-gckCOMMAND_Start(
-    IN gckCOMMAND Command
-    );
-
-/* Stop the command queue. */
-gceSTATUS
-gckCOMMAND_Stop(
-    IN gckCOMMAND Command,
-    IN gctBOOL FromRecovery
-    );
-
-#if gcdMULTI_GPU
-/* Commit a buffer to the command queue. */
-gceSTATUS
-gckCOMMAND_Commit(
-    IN gckCOMMAND Command,
-    IN gckCONTEXT Context,
-    IN gcoCMDBUF CommandBuffer,
-    IN gcsSTATE_DELTA_PTR StateDelta,
-    IN gcsQUEUE_PTR EventQueue,
-    IN gctUINT32 ProcessID,
-    IN gceCORE_3D_MASK ChipEnable
-    );
-#else
-gceSTATUS
-gckCOMMAND_Commit(
-    IN gckCOMMAND Command,
-    IN gckCONTEXT Context,
-    IN gcoCMDBUF CommandBuffer,
-    IN gcsSTATE_DELTA_PTR StateDelta,
-    IN gcsQUEUE_PTR EventQueue,
-    IN gctUINT32 ProcessID
-    );
-#endif
-
-/* Reserve space in the command buffer. */
-gceSTATUS
-gckCOMMAND_Reserve(
-    IN gckCOMMAND Command,
-    IN gctUINT32 RequestedBytes,
-    OUT gctPOINTER * Buffer,
-    OUT gctUINT32 * BufferSize
-    );
-
-/* Execute reserved space in the command buffer. */
-gceSTATUS
-gckCOMMAND_Execute(
-    IN gckCOMMAND Command,
-    IN gctUINT32 RequstedBytes
-    );
-
-/* Stall the command queue. */
-#if gcdMULTI_GPU
-gceSTATUS
-gckCOMMAND_Stall(
-    IN gckCOMMAND Command,
-    IN gctBOOL FromPower,
-    IN gceCORE_3D_MASK ChipEnable
-    );
-#else
-gceSTATUS
-gckCOMMAND_Stall(
-    IN gckCOMMAND Command,
-    IN gctBOOL FromPower
-    );
-#endif
-
-/* Attach user process. */
-gceSTATUS
-gckCOMMAND_Attach(
-    IN gckCOMMAND Command,
-    OUT gckCONTEXT * Context,
-    OUT gctSIZE_T * StateCount,
-    IN gctUINT32 ProcessID
-    );
-
-/* Detach user process. */
-gceSTATUS
-gckCOMMAND_Detach(
-    IN gckCOMMAND Command,
-    IN gckCONTEXT Context
-    );
-
-/* Dump command buffer being executed by GPU. */
-gceSTATUS
-gckCOMMAND_DumpExecutingBuffer(
-    IN gckCOMMAND Command
-    );
-
-/* Whether a kernel command buffer address. */
-gceSTATUS
-gckCOMMAND_AddressInKernelCommandBuffer(
-    IN gckCOMMAND Command,
-    IN gctUINT32 Address,
-    OUT gctBOOL *In
-    );
-
-/******************************************************************************\
-********************************* gckMMU Object ********************************
-\******************************************************************************/
-
-typedef struct _gckMMU *            gckMMU;
-
-/* Construct a new gckMMU object. */
-gceSTATUS
-gckMMU_Construct(
-    IN gckKERNEL Kernel,
-    IN gctSIZE_T MmuSize,
-    OUT gckMMU * Mmu
-    );
-
-/* Destroy an gckMMU object. */
-gceSTATUS
-gckMMU_Destroy(
-    IN gckMMU Mmu
-    );
-
-/* Allocate pages inside the MMU. */
-gceSTATUS
-gckMMU_AllocatePages(
-    IN gckMMU Mmu,
-    IN gctSIZE_T PageCount,
-    OUT gctPOINTER * PageTable,
-    OUT gctUINT32 * Address
-    );
-
-gceSTATUS
-gckMMU_AllocatePagesEx(
-    IN gckMMU Mmu,
-    IN gctSIZE_T PageCount,
-    IN gceSURF_TYPE Type,
-    OUT gctPOINTER * PageTable,
-    OUT gctUINT32 * Address
-    );
-
-/* Remove a page table from the MMU. */
-gceSTATUS
-gckMMU_FreePages(
-    IN gckMMU Mmu,
-    IN gctPOINTER PageTable,
-    IN gctSIZE_T PageCount
-    );
-
-/* Set the MMU page with info. */
-gceSTATUS
-gckMMU_SetPage(
-   IN gckMMU Mmu,
-   IN gctUINT32 PageAddress,
-   IN gctUINT32 *PageEntry
-   );
-
-gceSTATUS
-gckMMU_Flush(
-    IN gckMMU Mmu,
-    IN gceSURF_TYPE Type
-    );
-
-gceSTATUS
-gckMMU_DumpPageTableEntry(
-    IN gckMMU Mmu,
-    IN gctUINT32 Address
-    );
-
-
-#if VIVANTE_PROFILER
-gceSTATUS
-gckHARDWARE_QueryProfileRegisters(
-    IN gckHARDWARE Hardware,
-    IN gctBOOL Reset,
-    OUT gcsPROFILER_COUNTERS * Counters
-    );
-#endif
-
-#if VIVANTE_PROFILER_CONTEXT
-gceSTATUS
-gckHARDWARE_QueryContextProfile(
-    IN gckHARDWARE Hardware,
-    IN gctBOOL Reset,
-    IN gckCONTEXT Context,
-    OUT gcsPROFILER_COUNTERS * Counters
-    );
-
-gceSTATUS
-gckHARDWARE_UpdateContextProfile(
-    IN gckHARDWARE Hardware,
-    IN gckCONTEXT Context
-    );
-#endif
-
-#if VIVANTE_PROFILER_NEW
-gceSTATUS
-gckHARDWARE_InitProfiler(
-    IN gckHARDWARE Hardware
-    );
-#endif
-
-gceSTATUS
-gckOS_SignalQueryHardware(
-    IN gckOS Os,
-    IN gctSIGNAL Signal,
-    OUT gckHARDWARE * Hardware
-    );
-
-gceSTATUS
-gckOS_SignalSetHardware(
-    IN gckOS Os,
-    IN gctSIGNAL Signal,
-    gckHARDWARE Hardware
-    );
-
-gceSTATUS
-gckOS_DetectProcessByName(
-    IN gctCONST_POINTER Name
-    );
-
-void
-gckOS_DumpParam(
-    void
-    );
-
-#ifdef __cplusplus
-}
-#endif
-
-#if gcdENABLE_VG
-#include "gc_hal_vg.h"
-#endif
-
-#endif /* __gc_hal_h_ */

+ 0 - 5530
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_base.h

@@ -1,5530 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_base_h_
-#define __gc_hal_base_h_
-
-#include "gc_hal_enum.h"
-#include "gc_hal_types.h"
-#include "gc_hal_dump.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/******************************************************************************\
-****************************** Object Declarations *****************************
-\******************************************************************************/
-
-typedef struct _gckOS *                 gckOS;
-typedef struct _gcoHAL *                gcoHAL;
-typedef struct _gcoOS *                 gcoOS;
-typedef struct _gco2D *                 gco2D;
-typedef struct gcsATOM *                gcsATOM_PTR;
-
-#if gcdENABLE_3D
-typedef struct _gco3D *                 gco3D;
-typedef struct _gcoCL *                 gcoCL;
-typedef struct _gcsFAST_FLUSH *         gcsFAST_FLUSH_PTR;
-#endif
-
-typedef struct _gcoSURF *               gcoSURF;
-typedef struct _gcsSURF_INFO *          gcsSURF_INFO_PTR;
-typedef struct _gcsSURF_NODE *          gcsSURF_NODE_PTR;
-typedef struct _gcsSURF_FORMAT_INFO *   gcsSURF_FORMAT_INFO_PTR;
-typedef struct _gcsPOINT *              gcsPOINT_PTR;
-typedef struct _gcsSIZE *               gcsSIZE_PTR;
-typedef struct _gcsRECT *               gcsRECT_PTR;
-typedef struct _gcsBOUNDARY *           gcsBOUNDARY_PTR;
-typedef struct _gcoDUMP *               gcoDUMP;
-typedef struct _gcoHARDWARE *           gcoHARDWARE;
-typedef union  _gcuVIDMEM_NODE *        gcuVIDMEM_NODE_PTR;
-typedef struct _gcsVIDMEM_NODE *        gckVIDMEM_NODE;
-
-#if gcdENABLE_VG
-typedef struct _gcoVG *                 gcoVG;
-typedef struct _gcsCOMPLETION_SIGNAL *  gcsCOMPLETION_SIGNAL_PTR;
-typedef struct _gcsCONTEXT_MAP *        gcsCONTEXT_MAP_PTR;
-#else
-typedef void *                          gcoVG;
-#endif
-
-#if gcdSYNC
-typedef struct _gcoFENCE *              gcoFENCE;
-typedef struct _gcsSYNC_CONTEXT *       gcsSYNC_CONTEXT_PTR;
-#endif
-
-/******************************************************************************\
-********************* Share obj lock/unlock macros. ****************************
-\******************************************************************************/
-#define gcmLOCK_SHARE_OBJ(Obj) \
-{ \
-    if(Obj->sharedLock != gcvNULL)\
-    {\
-        (gcoOS_AcquireMutex( \
-                     gcvNULL, Obj->sharedLock, gcvINFINITE));\
-    }\
-}
-
-
-#define gcmUNLOCK_SHARE_OBJ(Obj)\
-{\
-    if(Obj->sharedLock != gcvNULL)\
-    {\
-        (gcoOS_ReleaseMutex(gcvNULL, Obj->sharedLock));\
-    }\
-}
-
-#if defined(ANDROID)
-typedef struct _gcoOS_SymbolsList gcoOS_SymbolsList;
-#endif
-
-/******************************************************************************\
-******************************* Process local storage *************************
-\******************************************************************************/
-
-typedef struct _gcsPLS * gcsPLS_PTR;
-
-#if gcdENABLE_3D
-/******************************************************************************
-**
-** Patch defines which should be moved to dedicate file later
-**
-** !!! ALWAYS ADD new ID in the TAIL, otherwise will break exising TRACE FILE
-*******************************************************************************/
-typedef enum _gcePATCH_ID
-{
-    gcvPATCH_NOTINIT = -1,
-    gcvPATCH_INVALID = 0,
-
-#if gcdDEBUG_OPTION
-    gcvPATCH_DEBUG,
-#endif
-
-    gcvPATCH_GTFES30,
-    gcvPATCH_CTGL11,
-    gcvPATCH_CTGL20,
-    gcvPATCH_GLBM11,
-    gcvPATCH_GLBM21,
-    gcvPATCH_GLBM25,
-    gcvPATCH_GLBM27,
-    gcvPATCH_GLBMGUI,
-    gcvPATCH_GFXBENCH,
-    gcvPATCH_ANTUTU,        /* Antutu 3.x */
-    gcvPATCH_ANTUTU4X,      /* Antutu 4.x */
-    gcvPATCH_QUADRANT,
-    gcvPATCH_GPUBENCH,
-    gcvPATCH_DUOKAN,
-    gcvPATCH_GLOFTSXHM,
-    gcvPATCH_XRUNNER,
-    gcvPATCH_BUSPARKING3D,
-    gcvPATCH_SIEGECRAFT,
-    gcvPATCH_PREMIUM,
-    gcvPATCH_RACEILLEGAL,
-    gcvPATCH_MEGARUN,
-    gcvPATCH_BMGUI,
-    gcvPATCH_NENAMARK,
-    gcvPATCH_NENAMARK2,
-    gcvPATCH_FISHNOODLE,
-    gcvPATCH_MM06,
-    gcvPATCH_MM07,
-    gcvPATCH_BM21,
-    gcvPATCH_SMARTBENCH,
-    gcvPATCH_JPCT,
-    gcvPATCH_NEOCORE,
-    gcvPATCH_RTESTVA,
-    gcvPATCH_NBA2013,
-    gcvPATCH_BARDTALE,
-    gcvPATCH_F18,
-    gcvPATCH_CARPARK,
-    gcvPATCH_CARCHALLENGE,
-    gcvPATCH_HEROESCALL,
-    gcvPATCH_GLOFTF3HM,
-    gcvPATCH_CRAZYRACING,
-    gcvPATCH_FIREFOX,
-    gcvPATCH_CHROME,
-    gcvPATCH_MONOPOLY,
-    gcvPATCH_SNOWCOLD,
-    gcvPATCH_BM3,
-    gcvPATCH_BASEMARKX,
-    gcvPATCH_DEQP,
-    gcvPATCH_SF4,
-    gcePATCH_MGOHEAVEN2,
-    gcePATCH_SILIBILI,
-    gcePATCH_ELEMENTSDEF,
-    gcePATCH_GLOFTKRHM,
-    gcvPATCH_OCLCTS,
-    gcvPATCH_A8HP,
-    gcvPATCH_A8CN,
-    gcvPATCH_WISTONESG,
-    gcvPATCH_SPEEDRACE,
-    gcvPATCH_FSBHAWAIIF,
-    gcvPATCH_AIRNAVY,
-    gcvPATCH_F18NEW,
-    gcvPATCH_CKZOMBIES2,
-    gcvPATCH_EADGKEEPER,
-    gcvPATCH_BASEMARK2V2,
-    gcvPATCH_RIPTIDEGP2,
-    gcvPATCH_OESCTS,
-    gcvPATCH_GANGSTAR,
-    gcvPATCH_WHRKYZIXOVAN,
-    gcvPATCH_NAMESGAS,
-    gcvPATCH_AFTERBURNER,
-    gcvPATCH_UIMARK,
-    gcvPATCH_FM_OES_PLAYER,
-    gcvPATCH_SUMSUNG_BENCH,
-    gcvPATCH_ROCKSTAR_MAXPAYNE,
-    gcvPATCH_TITANPACKING,
-    gcvPATCH_OES20SFT,
-    gcvPATCH_OES30SFT,
-    gcvPATCH_BASEMARKOSIICN,
-    gcvPATCH_FRUITNINJA,
-#if defined(ANDROID)
-    gcePATCH_ANDROID_CTS_MEDIA_PRESENTATIONTIME,
-#endif
-    gcvPATCH_ANDROID_COMPOSITOR,
-    gcvPATCH_CTS_TEXTUREVIEW,
-    gcvPATCH_WATER2_CHUKONG,
-
-    gcvPATCH_COUNT
-} gcePATCH_ID;
-#endif /* gcdENABLE_3D */
-
-typedef void (* gctPLS_DESTRUCTOR) (
-    gcsPLS_PTR
-    );
-
-typedef struct _gcsPLS
-{
-    /* Global objects. */
-    gcoOS                       os;
-    gcoHAL                      hal;
-
-    /* Internal memory pool. */
-    gctSIZE_T                   internalSize;
-    gctPHYS_ADDR                internalPhysical;
-    gctPOINTER                  internalLogical;
-
-    /* External memory pool. */
-    gctSIZE_T                   externalSize;
-    gctPHYS_ADDR                externalPhysical;
-    gctPOINTER                  externalLogical;
-
-    /* Contiguous memory pool. */
-    gctSIZE_T                   contiguousSize;
-    gctPHYS_ADDR                contiguousPhysical;
-    gctPOINTER                  contiguousLogical;
-
-    /* EGL-specific process-wide objects. */
-    gctPOINTER                  eglDisplayInfo;
-    gctPOINTER                  eglSurfaceInfo;
-    gceSURF_FORMAT              eglConfigFormat;
-
-    /* PLS reference count */
-    gcsATOM_PTR                 reference;
-
-    /* PorcessID of the constrcutor process */
-    gctUINT32                   processID;
-
-    /* ThreadID of the constrcutor process. */
-    gctSIZE_T                   threadID;
-    /* Flag for calling module destructor. */
-    gctBOOL                     exiting;
-
-    gctBOOL                     bNeedSupportNP2Texture;
-
-    gctPLS_DESTRUCTOR           destructor;
-    /* Mutex to guard PLS access. currently it's for EGL.
-    ** We can use this mutex for every PLS access.
-    */
-    gctPOINTER                  accessLock;
-#if gcdENABLE_3D
-    /* Global patchID to overwrite the detection */
-    gcePATCH_ID                 patchID;
-#endif
-}
-gcsPLS;
-
-extern gcsPLS gcPLS;
-
-#if gcdENABLE_3D
-#define gcPLS_INITIALIZER \
-{ \
-    gcvNULL,         /* gcoOS object.      */ \
-    gcvNULL,         /* gcoHAL object.     */ \
-    0,               /* internalSize       */ \
-    gcvNULL,         /* internalPhysical   */ \
-    gcvNULL,         /* internalLogical    */ \
-    0,               /* externalSize       */ \
-    gcvNULL,         /* externalPhysical   */ \
-    gcvNULL,         /* externalLogical    */ \
-    0,               /* contiguousSize     */ \
-    gcvNULL,         /* contiguousPhysical */ \
-    gcvNULL,         /* contiguousLogical  */ \
-    gcvNULL,         /* eglDisplayInfo     */ \
-    gcvNULL,         /* eglSurfaceInfo     */ \
-    gcvSURF_A8R8G8B8,/* eglConfigFormat    */ \
-    gcvNULL,         /* reference          */ \
-    0,               /* processID          */ \
-    0,               /* threadID           */ \
-    gcvFALSE,        /* exiting            */ \
-    gcvFALSE,        /* Special flag for NP2 texture. */ \
-    gcvNULL,         /* destructor        */ \
-    gcvNULL,         /* accessLock        */ \
-    gcvPATCH_NOTINIT,/* global patchID    */ \
-}
-#else
-#define gcPLS_INITIALIZER \
-{ \
-    gcvNULL,         /* gcoOS object.      */ \
-    gcvNULL,         /* gcoHAL object.     */ \
-    0,               /* internalSize       */ \
-    gcvNULL,         /* internalPhysical   */ \
-    gcvNULL,         /* internalLogical    */ \
-    0,               /* externalSize       */ \
-    gcvNULL,         /* externalPhysical   */ \
-    gcvNULL,         /* externalLogical    */ \
-    0,               /* contiguousSize     */ \
-    gcvNULL,         /* contiguousPhysical */ \
-    gcvNULL,         /* contiguousLogical  */ \
-    gcvNULL,         /* eglDisplayInfo     */ \
-    gcvNULL,         /* eglSurfaceInfo     */ \
-    gcvSURF_A8R8G8B8,/* eglConfigFormat    */ \
-    gcvNULL,         /* reference          */ \
-    0,               /* processID          */ \
-    0,               /* threadID           */ \
-    gcvFALSE,        /* exiting            */ \
-    gcvFALSE,        /* Special flag for NP2 texture. */ \
-    gcvNULL,         /* destructor        */ \
-    gcvNULL,         /* accessLock        */ \
-}
-#endif
-
-/******************************************************************************\
-******************************* Thread local storage *************************
-\******************************************************************************/
-
-typedef struct _gcsTLS * gcsTLS_PTR;
-
-typedef void (* gctTLS_DESTRUCTOR) (
-    gcsTLS_PTR
-    );
-
-typedef struct _gcsTLS
-{
-    gceHARDWARE_TYPE            currentType;
-
-    /* Current 3D hardwre of this thread */
-    gcoHARDWARE                 currentHardware;
-
-    /* Default 3D hardware of this thread */
-    gcoHARDWARE                 defaultHardware;
-
-    /* Only for separated 3D and 2D */
-    gcoHARDWARE                 hardware2D;
-#if gcdENABLE_VG
-    gcoVGHARDWARE               vg;
-    gcoVG                       engineVG;
-#endif /* gcdENABLE_VG */
-#if gcdENABLE_3D
-    gco3D                       engine3D;
-#endif
-#if gcdENABLE_2D
-    gco2D                       engine2D;
-#endif
-
-    /*thread data */
-    gctPOINTER                  context;
-    /* ES(including es1 and es2) client driver context which is current state */
-    gctPOINTER                  esClientCtx;
-    gctTLS_DESTRUCTOR           destructor;
-
-    gctBOOL                     copied;
-
-    /* libGAL.so handle */
-    gctHANDLE                   handle;
-
-    /* If true, do not releas 2d engine and hardware in hal layer */
-    gctBOOL                     release2DUpper;
-}
-gcsTLS;
-
-/******************************************************************************\
-********************************* Enumerations *********************************
-\******************************************************************************/
-
-typedef enum _gcePLS_VALUE
-{
-  gcePLS_VALUE_EGL_DISPLAY_INFO,
-  gcePLS_VALUE_EGL_SURFACE_INFO,
-  gcePLS_VALUE_EGL_CONFIG_FORMAT_INFO,
-  gcePLS_VALUE_EGL_DESTRUCTOR_INFO,
-}
-gcePLS_VALUE;
-
-/* Video memory pool type. */
-typedef enum _gcePOOL
-{
-    gcvPOOL_UNKNOWN = 0,
-    gcvPOOL_DEFAULT,
-    gcvPOOL_LOCAL,
-    gcvPOOL_LOCAL_INTERNAL,
-    gcvPOOL_LOCAL_EXTERNAL,
-    gcvPOOL_UNIFIED,
-    gcvPOOL_SYSTEM,
-    gcvPOOL_VIRTUAL,
-    gcvPOOL_USER,
-    gcvPOOL_CONTIGUOUS,
-
-    gcvPOOL_NUMBER_OF_POOLS
-}
-gcePOOL;
-
-#if gcdENABLE_3D
-/* Blending functions. */
-typedef enum _gceBLEND_FUNCTION
-{
-    gcvBLEND_ZERO,
-    gcvBLEND_ONE,
-    gcvBLEND_SOURCE_COLOR,
-    gcvBLEND_INV_SOURCE_COLOR,
-    gcvBLEND_SOURCE_ALPHA,
-    gcvBLEND_INV_SOURCE_ALPHA,
-    gcvBLEND_TARGET_COLOR,
-    gcvBLEND_INV_TARGET_COLOR,
-    gcvBLEND_TARGET_ALPHA,
-    gcvBLEND_INV_TARGET_ALPHA,
-    gcvBLEND_SOURCE_ALPHA_SATURATE,
-    gcvBLEND_CONST_COLOR,
-    gcvBLEND_INV_CONST_COLOR,
-    gcvBLEND_CONST_ALPHA,
-    gcvBLEND_INV_CONST_ALPHA,
-}
-gceBLEND_FUNCTION;
-
-/* Blending modes. */
-typedef enum _gceBLEND_MODE
-{
-    gcvBLEND_ADD,
-    gcvBLEND_SUBTRACT,
-    gcvBLEND_REVERSE_SUBTRACT,
-    gcvBLEND_MIN,
-    gcvBLEND_MAX,
-}
-gceBLEND_MODE;
-
-/* Depth modes. */
-typedef enum _gceDEPTH_MODE
-{
-    gcvDEPTH_NONE,
-    gcvDEPTH_Z,
-    gcvDEPTH_W,
-}
-gceDEPTH_MODE;
-#endif /* gcdENABLE_3D */
-
-#if (gcdENABLE_3D || gcdENABLE_VG)
-/* API flags. */
-typedef enum _gceAPI
-{
-    gcvAPI_D3D = 1,
-    gcvAPI_OPENGL_ES11,
-    gcvAPI_OPENGL_ES20,
-    gcvAPI_OPENGL_ES30,
-    gcvAPI_OPENGL,
-    gcvAPI_OPENVG,
-    gcvAPI_OPENCL,
-}
-gceAPI;
-#endif
-
-
-typedef enum _gceWHERE
-{
-    gcvWHERE_COMMAND,
-    gcvWHERE_RASTER,
-    gcvWHERE_PIXEL,
-}
-gceWHERE;
-
-typedef enum _gceHOW
-{
-    gcvHOW_SEMAPHORE            = 0x1,
-    gcvHOW_STALL                = 0x2,
-    gcvHOW_SEMAPHORE_STALL      = 0x3,
-}
-gceHOW;
-
-typedef enum _gceSignalHandlerType
-{
-    gcvHANDLE_SIGFPE_WHEN_SIGNAL_CODE_IS_0        = 0x1,
-}
-gceSignalHandlerType;
-
-/* gcsHAL_Limits*/
-typedef struct _gcsHAL_LIMITS
-{
-    /* chip info */
-    gceCHIPMODEL    chipModel;
-    gctUINT32       chipRevision;
-    gctUINT32       featureCount;
-    gctUINT32       *chipFeatures;
-
-    /* target caps */
-    gctUINT32         maxWidth;
-    gctUINT32         maxHeight;
-    gctUINT32         multiTargetCount;
-    gctUINT32         maxSamples;
-
-}gcsHAL_LIMITS;
-
-/******************************************************************************\
-*********** Generic Memory Allocation Optimization Using Containers ************
-\******************************************************************************/
-
-/* Generic container definition. */
-typedef struct _gcsCONTAINER_LINK * gcsCONTAINER_LINK_PTR;
-typedef struct _gcsCONTAINER_LINK
-{
-    /* Points to the next container. */
-    gcsCONTAINER_LINK_PTR           next;
-}
-gcsCONTAINER_LINK;
-
-typedef struct _gcsCONTAINER_RECORD * gcsCONTAINER_RECORD_PTR;
-typedef struct _gcsCONTAINER_RECORD
-{
-    gcsCONTAINER_RECORD_PTR         prev;
-    gcsCONTAINER_RECORD_PTR         next;
-}
-gcsCONTAINER_RECORD;
-
-typedef struct _gcsCONTAINER * gcsCONTAINER_PTR;
-typedef struct _gcsCONTAINER
-{
-    gctUINT                         containerSize;
-    gctUINT                         recordSize;
-    gctUINT                         recordCount;
-    gcsCONTAINER_LINK_PTR           containers;
-    gcsCONTAINER_RECORD             freeList;
-    gcsCONTAINER_RECORD             allocList;
-}
-gcsCONTAINER;
-
-gceSTATUS
-gcsCONTAINER_Construct(
-    IN gcsCONTAINER_PTR Container,
-    gctUINT RecordsPerContainer,
-    gctUINT RecordSize
-    );
-
-gceSTATUS
-gcsCONTAINER_Destroy(
-    IN gcsCONTAINER_PTR Container
-    );
-
-gceSTATUS
-gcsCONTAINER_AllocateRecord(
-    IN gcsCONTAINER_PTR Container,
-    OUT gctPOINTER * Record
-    );
-
-gceSTATUS
-gcsCONTAINER_FreeRecord(
-    IN gcsCONTAINER_PTR Container,
-    IN gctPOINTER Record
-    );
-
-gceSTATUS
-gcsCONTAINER_FreeAll(
-    IN gcsCONTAINER_PTR Container
-    );
-
-/******************************************************************************\
-********************************* gcoHAL Object *********************************
-\******************************************************************************/
-
-/* Construct a new gcoHAL object. */
-gceSTATUS
-gcoHAL_ConstructEx(
-    IN gctPOINTER Context,
-    IN gcoOS Os,
-    OUT gcoHAL * Hal
-    );
-
-/* Destroy an gcoHAL object. */
-gceSTATUS
-gcoHAL_DestroyEx(
-    IN gcoHAL Hal
-    );
-
-/* Empty function for compatibility. */
-gceSTATUS
-gcoHAL_Construct(
-    IN gctPOINTER Context,
-    IN gcoOS Os,
-    OUT gcoHAL * Hal
-    );
-
-/* Empty function for compatibility. */
-gceSTATUS
-gcoHAL_Destroy(
-    IN gcoHAL Hal
-    );
-
-/* Get HAL options */
-gceSTATUS
-gcoHAL_GetOption(
-     IN gcoHAL Hal,
-     IN gceOPTION Option
-     );
-
-gceSTATUS
-gcoHAL_FrameInfoOps(
-    IN gcoHAL Hal,
-    IN gceFRAMEINFO FrameInfo,
-    IN gceFRAMEINFO_OP Op,
-    IN OUT gctUINT * Val
-    );
-
-
-gceSTATUS
-gcoHAL_GetHardware(
-    IN gcoHAL Hal,
-    OUT gcoHARDWARE* Hw
-    );
-
-#if gcdENABLE_2D
-/* Get pointer to gco2D object. */
-gceSTATUS
-gcoHAL_Get2DEngine(
-    IN gcoHAL Hal,
-    OUT gco2D * Engine
-    );
-#endif
-
-#if gcdENABLE_3D
-gceSTATUS
-gcoHAL_GetSpecialHintData(
-    IN gcoHAL Hal,
-    OUT gctINT * Hint
-    );
-/*
-** Deprecated(Don't use it), keep it here for external library(libgcu.so)
-*/
-gceSTATUS
-gcoHAL_Get3DEngine(
-    IN gcoHAL Hal,
-    OUT gco3D * Engine
-    );
-#endif /* gcdEANBLE_3D */
-
-
-gceSTATUS
-gcoHAL_GetProductName(
-    IN gcoHAL Hal,
-    OUT gctSTRING *ProductName
-    );
-
-gceSTATUS
-gcoHAL_SetFscaleValue(
-    IN gctUINT FscaleValue
-    );
-
-gceSTATUS
-gcoHAL_GetFscaleValue(
-    OUT gctUINT * FscaleValue,
-    OUT gctUINT * MinFscaleValue,
-    OUT gctUINT * MaxFscaleValue
-    );
-
-gceSTATUS
-gcoHAL_SetBltNP2Texture(
-    gctBOOL enable
-    );
-
-gceSTATUS
-gcoHAL_NameVideoMemory(
-    IN gctUINT32 Handle,
-    OUT gctUINT32 * Name
-    );
-
-gceSTATUS
-gcoHAL_ImportVideoMemory(
-    IN gctUINT32 Name,
-    OUT gctUINT32 * Handle
-    );
-
-gceSTATUS
-gcoHAL_GetVideoMemoryFd(
-    IN gctUINT32 Handle,
-    OUT gctINT * Fd
-    );
-
-/* Verify whether the specified feature is available in hardware. */
-gceSTATUS
-gcoHAL_IsFeatureAvailable(
-    IN gcoHAL Hal,
-    IN gceFEATURE Feature
-    );
-
-gceSTATUS
-gcoHAL_IsSwwaNeeded(
-    IN gcoHAL Hal,
-    IN gceSWWA Swwa
-    );
-
-gceSTATUS
-gcoHAL_IsFeatureAvailable1(
-    IN gcoHAL Hal,
-    IN gceFEATURE Feature
-    );
-
-/* Query the identity of the hardware. */
-gceSTATUS
-gcoHAL_QueryChipIdentity(
-    IN gcoHAL Hal,
-    OUT gceCHIPMODEL* ChipModel,
-    OUT gctUINT32* ChipRevision,
-    OUT gctUINT32* ChipFeatures,
-    OUT gctUINT32* ChipMinorFeatures
-    );
-
-/* Query the minor features of the hardware. */
-gceSTATUS gcoHAL_QueryChipMinorFeatures(
-    IN gcoHAL Hal,
-    OUT gctUINT32* NumFeatures,
-    OUT gctUINT32* ChipMinorFeatures
-    );
-
-gctINT32
-gcoOS_EndRecordAllocation(void);
-void
-gcoOS_RecordAllocation(void);
-void
-gcoOS_AddRecordAllocation(gctSIZE_T Size);
-
-/* Query the amount of video memory. */
-gceSTATUS
-gcoHAL_QueryVideoMemory(
-    IN gcoHAL Hal,
-    OUT gctPHYS_ADDR * InternalAddress,
-    OUT gctSIZE_T * InternalSize,
-    OUT gctPHYS_ADDR * ExternalAddress,
-    OUT gctSIZE_T * ExternalSize,
-    OUT gctPHYS_ADDR * ContiguousAddress,
-    OUT gctSIZE_T * ContiguousSize
-    );
-
-/* Map video memory. */
-gceSTATUS
-gcoHAL_MapMemory(
-    IN gcoHAL Hal,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T NumberOfBytes,
-    OUT gctPOINTER * Logical
-    );
-
-/* Unmap video memory. */
-gceSTATUS
-gcoHAL_UnmapMemory(
-    IN gcoHAL Hal,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T NumberOfBytes,
-    IN gctPOINTER Logical
-    );
-
-/* Schedule an unmap of a buffer mapped through its physical address. */
-gceSTATUS
-gcoHAL_ScheduleUnmapMemory(
-    IN gcoHAL Hal,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T NumberOfBytes,
-    IN gctPOINTER Logical
-    );
-
-/* Allocate video memory. */
-gceSTATUS
-gcoOS_AllocateVideoMemory(
-    IN gcoOS Os,
-    IN gctBOOL InUserSpace,
-    IN gctBOOL InCacheable,
-    IN OUT gctSIZE_T * Bytes,
-    OUT gctUINT32 * Physical,
-    OUT gctPOINTER * Logical,
-    OUT gctPOINTER * Handle
-    );
-
-/* Free video memory. */
-gceSTATUS
-gcoOS_FreeVideoMemory(
-    IN gcoOS Os,
-    IN gctPOINTER Handle
-    );
-
-/* Lock video memory. */
-gceSTATUS
-gcoOS_LockVideoMemory(
-    IN gcoOS Os,
-    IN gctPOINTER Handle,
-    IN gctBOOL InUserSpace,
-    IN gctBOOL InCacheable,
-    OUT gctUINT32 * Physical,
-    OUT gctPOINTER * Logical
-    );
-
-/* Map user memory. */
-gceSTATUS
-gcoHAL_MapUserMemory(
-    IN gctPOINTER Logical,
-    IN gctUINT32 Physical,
-    IN gctSIZE_T Size,
-    OUT gctPOINTER * Info,
-    OUT gctUINT32_PTR GPUAddress
-    );
-
-/* Unmap user memory. */
-gceSTATUS
-gcoHAL_UnmapUserMemory(
-    IN gctPOINTER Logical,
-    IN gctSIZE_T Size,
-    IN gctPOINTER Info,
-    IN gctUINT32 GPUAddress
-    );
-
-/* Schedule an unmap of a user buffer using event mechanism. */
-gceSTATUS
-gcoHAL_ScheduleUnmapUserMemory(
-    IN gcoHAL Hal,
-    IN gctPOINTER Info,
-    IN gctSIZE_T Size,
-    IN gctUINT32 Address,
-    IN gctPOINTER Memory
-    );
-
-/* Commit the current command buffer. */
-gceSTATUS
-gcoHAL_Commit(
-    IN gcoHAL Hal,
-    IN gctBOOL Stall
-    );
-
-#if gcdENABLE_3D
-/* Sencd fence command. */
-gceSTATUS
-gcoHAL_SendFence(
-    IN gcoHAL Hal
-    );
-#endif /* gcdENABLE_3D */
-
-/* Query the tile capabilities. */
-gceSTATUS
-gcoHAL_QueryTiled(
-    IN gcoHAL Hal,
-    OUT gctINT32 * TileWidth2D,
-    OUT gctINT32 * TileHeight2D,
-    OUT gctINT32 * TileWidth3D,
-    OUT gctINT32 * TileHeight3D
-    );
-
-gceSTATUS
-gcoHAL_Compact(
-    IN gcoHAL Hal
-    );
-
-#if VIVANTE_PROFILER
-gceSTATUS
-gcoHAL_ProfileStart(
-    IN gcoHAL Hal
-    );
-
-gceSTATUS
-gcoHAL_ProfileEnd(
-    IN gcoHAL Hal,
-    IN gctCONST_STRING Title
-    );
-#endif
-
-/* Power Management */
-gceSTATUS
-gcoHAL_SetPowerManagementState(
-    IN gcoHAL Hal,
-    IN gceCHIPPOWERSTATE State
-    );
-
-gceSTATUS
-gcoHAL_QueryPowerManagementState(
-    IN gcoHAL Hal,
-    OUT gceCHIPPOWERSTATE *State
-    );
-
-/* Set the filter type for filter blit. */
-gceSTATUS
-gcoHAL_SetFilterType(
-    IN gcoHAL Hal,
-    IN gceFILTER_TYPE FilterType
-    );
-
-gceSTATUS
-gcoHAL_GetDump(
-    IN gcoHAL Hal,
-    OUT gcoDUMP * Dump
-    );
-
-#if gcdENABLE_3D
-gceSTATUS
-gcoHAL_SetPatchID(
-    IN  gcoHAL Hal,
-    IN  gcePATCH_ID PatchID
-    );
-
-/* Get Patch ID based on process name */
-gceSTATUS
-gcoHAL_GetPatchID(
-    IN  gcoHAL Hal,
-    OUT gcePATCH_ID * PatchID
-    );
-
-gceSTATUS
-gcoHAL_SetGlobalPatchID(
-    IN  gcoHAL Hal,
-    IN  gcePATCH_ID PatchID
-    );
-#endif /* gcdENABLE_3D */
-/* Call the kernel HAL layer. */
-gceSTATUS
-gcoHAL_Call(
-    IN gcoHAL Hal,
-    IN OUT gcsHAL_INTERFACE_PTR Interface
-    );
-
-/* Schedule an event. */
-gceSTATUS
-gcoHAL_ScheduleEvent(
-    IN gcoHAL Hal,
-    IN OUT gcsHAL_INTERFACE_PTR Interface
-    );
-
-/* Destroy a surface. */
-gceSTATUS
-gcoHAL_DestroySurface(
-    IN gcoHAL Hal,
-    IN gcoSURF Surface
-    );
-
-/* Request a start/stop timestamp. */
-gceSTATUS
-gcoHAL_SetTimer(
-    IN gcoHAL Hal,
-    IN gctUINT32 Index,
-    IN gctBOOL Start
-    );
-
-/* Get Time delta from a Timer in microseconds. */
-gceSTATUS
-gcoHAL_GetTimerTime(
-    IN gcoHAL Hal,
-    IN gctUINT32 Timer,
-    OUT gctINT32_PTR TimeDelta
-    );
-
-/* set timeout value. */
-gceSTATUS
-gcoHAL_SetTimeOut(
-    IN gcoHAL Hal,
-    IN gctUINT32 timeOut
-    );
-
-gceSTATUS
-gcoHAL_SetHardwareType(
-    IN gcoHAL Hal,
-    IN gceHARDWARE_TYPE HardwardType
-    );
-
-gceSTATUS
-gcoHAL_GetHardwareType(
-    IN gcoHAL Hal,
-    OUT gceHARDWARE_TYPE * HardwardType
-    );
-
-gceSTATUS
-gcoHAL_QueryChipCount(
-    IN gcoHAL Hal,
-    OUT gctINT32 * Count
-    );
-
-gceSTATUS
-gcoHAL_Query3DCoreCount(
-    IN gcoHAL       Hal,
-    OUT gctUINT32  *Count
-    );
-
-gceSTATUS
-gcoHAL_QuerySeparated2D(
-    IN gcoHAL Hal
-    );
-
-gceSTATUS
-gcoHAL_Is3DAvailable(
-    IN gcoHAL Hal
-    );
-
-/* Get pointer to gcoVG object. */
-gceSTATUS
-gcoHAL_GetVGEngine(
-    IN gcoHAL Hal,
-    OUT gcoVG * Engine
-    );
-
-gceSTATUS
-gcoHAL_QueryChipLimits(
-    IN gcoHAL           Hal,
-    IN gctINT32         Chip,
-    IN gctINT32         Mask,
-    OUT gcsHAL_LIMITS   *Limits);
-
-gceSTATUS
-gcoHAL_QueryChipFeature(
-    IN gcoHAL       Hal,
-    IN gctINT32     Chip,
-    IN gctINT32     Mask,
-    IN gceFEATURE   Feature);
-
-/*----------------------------------------------------------------------------*/
-/*----- Shared Buffer --------------------------------------------------------*/
-
-/* Create shared buffer. */
-gceSTATUS
-gcoHAL_CreateShBuffer(
-    IN gctUINT32 Size,
-    OUT gctSHBUF * ShBuf
-    );
-
-/* Destroy shared buffer. */
-gceSTATUS
-gcoHAL_DestroyShBuffer(
-    IN gctSHBUF ShBuf
-    );
-
-/* Map shared buffer to current process. */
-gceSTATUS
-gcoHAL_MapShBuffer(
-    IN gctSHBUF ShBuf
-    );
-
-/* Write user data to shared buffer. */
-gceSTATUS
-gcoHAL_WriteShBuffer(
-    IN gctSHBUF ShBuf,
-    IN gctCONST_POINTER Data,
-    IN gctUINT32 ByteCount
-    );
-
-/* Read user data from shared buffer. */
-gceSTATUS
-gcoHAL_ReadShBuffer(
-    IN gctSHBUF ShBuf,
-    IN gctPOINTER Data,
-    IN gctUINT32 BytesCount,
-    OUT gctUINT32 * BytesRead
-    );
-
-/* Config power management to be enabled or disabled. */
-gceSTATUS
-gcoHAL_ConfigPowerManagement(
-    IN gctBOOL Enable
-    );
-
-gceSTATUS
-gcoHAL_AllocateVideoMemory(
-    IN gctUINT Alignment,
-    IN gceSURF_TYPE Type,
-    IN gctUINT32 Flag,
-    IN gcePOOL Pool,
-    IN OUT gctSIZE_T * Bytes,
-    OUT gctUINT32_PTR Node
-    );
-
-gceSTATUS
-gcoHAL_LockVideoMemory(
-    IN gctUINT32 Node,
-    IN gctBOOL Cacheable,
-    OUT gctUINT32 * Physical,
-    OUT gctPOINTER * Logical
-    );
-
-gceSTATUS
-gcoHAL_UnlockVideoMemory(
-    IN gctUINT32 Node,
-    IN gceSURF_TYPE Type
-    );
-
-gceSTATUS
-    gcoHAL_ReleaseVideoMemory(
-    IN gctUINT32 Node
-    );
-
-#if gcdENABLE_3D || gcdENABLE_VG
-/* Query the target capabilities. */
-gceSTATUS
-gcoHAL_QueryTargetCaps(
-    IN gcoHAL Hal,
-    OUT gctUINT * MaxWidth,
-    OUT gctUINT * MaxHeight,
-    OUT gctUINT * MultiTargetCount,
-    OUT gctUINT * MaxSamples
-    );
-#endif
-
-/******************************************************************************\
-********************************** gcoOS Object *********************************
-\******************************************************************************/
-/* Lock PLS access */
-gceSTATUS
-gcoOS_LockPLS(
-    void
-    );
-
-/* Unlock PLS access */
-gceSTATUS
-gcoOS_UnLockPLS(
-    void
-    );
-
-/* Get PLS value for given key */
-gctPOINTER
-gcoOS_GetPLSValue(
-    IN gcePLS_VALUE key
-    );
-
-/* Set PLS value of a given key */
-void
-gcoOS_SetPLSValue(
-    IN gcePLS_VALUE key,
-    OUT gctPOINTER value
-    );
-
-/* Get access to the thread local storage. */
-gceSTATUS
-gcoOS_GetTLS(
-    OUT gcsTLS_PTR * TLS
-    );
-
-    /* Copy the TLS from a source thread. */
-    gceSTATUS gcoOS_CopyTLS(IN gcsTLS_PTR Source);
-
-/* Destroy the objects associated with the current thread. */
-void
-gcoOS_FreeThreadData(
-    void
-    );
-
-/* Empty function for compatibility. */
-gceSTATUS
-gcoOS_Construct(
-    IN gctPOINTER Context,
-    OUT gcoOS * Os
-    );
-
-/* Empty function for compatibility. */
-gceSTATUS
-gcoOS_Destroy(
-    IN gcoOS Os
-    );
-
-/* Get the base address for the physical memory. */
-gceSTATUS
-gcoOS_GetBaseAddress(
-    IN gcoOS Os,
-    OUT gctUINT32_PTR BaseAddress
-    );
-
-/* Allocate memory from the heap. */
-gceSTATUS
-gcoOS_Allocate(
-    IN gcoOS Os,
-    IN gctSIZE_T Bytes,
-    OUT gctPOINTER * Memory
-    );
-
-/* Get allocated memory size. */
-gceSTATUS
-gcoOS_GetMemorySize(
-    IN gcoOS Os,
-    IN gctPOINTER Memory,
-    OUT gctSIZE_T_PTR MemorySize
-    );
-
-/* Free allocated memory. */
-gceSTATUS
-gcoOS_Free(
-    IN gcoOS Os,
-    IN gctPOINTER Memory
-    );
-
-/* Allocate memory. */
-gceSTATUS
-gcoOS_AllocateSharedMemory(
-    IN gcoOS Os,
-    IN gctSIZE_T Bytes,
-    OUT gctPOINTER * Memory
-    );
-
-/* Free memory. */
-gceSTATUS
-gcoOS_FreeSharedMemory(
-    IN gcoOS Os,
-    IN gctPOINTER Memory
-    );
-
-/* Allocate memory. */
-gceSTATUS
-gcoOS_AllocateMemory(
-    IN gcoOS Os,
-    IN gctSIZE_T Bytes,
-    OUT gctPOINTER * Memory
-    );
-
-/* Free memory. */
-gceSTATUS
-gcoOS_FreeMemory(
-    IN gcoOS Os,
-    IN gctPOINTER Memory
-    );
-
-/* Allocate contiguous memory. */
-gceSTATUS
-gcoOS_AllocateContiguous(
-    IN gcoOS Os,
-    IN gctBOOL InUserSpace,
-    IN OUT gctSIZE_T * Bytes,
-    OUT gctPHYS_ADDR * Physical,
-    OUT gctPOINTER * Logical
-    );
-
-/* Free contiguous memory. */
-gceSTATUS
-gcoOS_FreeContiguous(
-    IN gcoOS Os,
-    IN gctPHYS_ADDR Physical,
-    IN gctPOINTER Logical,
-    IN gctSIZE_T Bytes
-    );
-
-/* Map user memory. */
-gceSTATUS
-gcoOS_MapUserMemory(
-    IN gcoOS Os,
-    IN gctPOINTER Memory,
-    IN gctSIZE_T Size,
-    OUT gctPOINTER * Info,
-    OUT gctUINT32_PTR Address
-    );
-
-/* Map user memory. */
-gceSTATUS
-gcoOS_MapUserMemoryEx(
-    IN gcoOS Os,
-    IN gctPOINTER Memory,
-    IN gctUINT32 Physical,
-    IN gctSIZE_T Size,
-    OUT gctPOINTER * Info,
-    OUT gctUINT32_PTR Address
-    );
-
-/* Unmap user memory. */
-gceSTATUS
-gcoOS_UnmapUserMemory(
-    IN gcoOS Os,
-    IN gctPOINTER Memory,
-    IN gctSIZE_T Size,
-    IN gctPOINTER Info,
-    IN gctUINT32 Address
-    );
-
-/* Device I/O Control call to the kernel HAL layer. */
-gceSTATUS
-gcoOS_DeviceControl(
-    IN gcoOS Os,
-    IN gctUINT32 IoControlCode,
-    IN gctPOINTER InputBuffer,
-    IN gctSIZE_T InputBufferSize,
-    IN gctPOINTER OutputBuffer,
-    IN gctSIZE_T OutputBufferSize
-    );
-
-/* Allocate non paged memory. */
-gceSTATUS
-gcoOS_AllocateNonPagedMemory(
-    IN gcoOS Os,
-    IN gctBOOL InUserSpace,
-    IN OUT gctSIZE_T * Bytes,
-    OUT gctPHYS_ADDR * Physical,
-    OUT gctPOINTER * Logical
-    );
-
-/* Free non paged memory. */
-gceSTATUS
-gcoOS_FreeNonPagedMemory(
-    IN gcoOS Os,
-    IN gctSIZE_T Bytes,
-    IN gctPHYS_ADDR Physical,
-    IN gctPOINTER Logical
-    );
-
-#define gcmOS_SAFE_FREE(os, mem) \
-    gcoOS_Free(os, mem); \
-    mem = gcvNULL
-
-#define gcmOS_SAFE_FREE_SHARED_MEMORY(os, mem) \
-    gcoOS_FreeSharedMemory(os, mem); \
-    mem = gcvNULL
-
-#define gcmkOS_SAFE_FREE(os, mem) \
-    gckOS_Free(os, mem); \
-    mem = gcvNULL
-
-typedef enum _gceFILE_MODE
-{
-    gcvFILE_CREATE          = 0,
-    gcvFILE_APPEND,
-    gcvFILE_READ,
-    gcvFILE_CREATETEXT,
-    gcvFILE_APPENDTEXT,
-    gcvFILE_READTEXT,
-}
-gceFILE_MODE;
-
-/* Open a file. */
-gceSTATUS
-gcoOS_Open(
-    IN gcoOS Os,
-    IN gctCONST_STRING FileName,
-    IN gceFILE_MODE Mode,
-    OUT gctFILE * File
-    );
-
-/* Close a file. */
-gceSTATUS
-gcoOS_Close(
-    IN gcoOS Os,
-    IN gctFILE File
-    );
-
-/* Read data from a file. */
-gceSTATUS
-gcoOS_Read(
-    IN gcoOS Os,
-    IN gctFILE File,
-    IN gctSIZE_T ByteCount,
-    IN gctPOINTER Data,
-    OUT gctSIZE_T * ByteRead
-    );
-
-/* Write data to a file. */
-gceSTATUS
-gcoOS_Write(
-    IN gcoOS Os,
-    IN gctFILE File,
-    IN gctSIZE_T ByteCount,
-    IN gctCONST_POINTER Data
-    );
-
-/* Flush data to a file. */
-gceSTATUS
-gcoOS_Flush(
-    IN gcoOS Os,
-    IN gctFILE File
-    );
-
-/* Close a file descriptor. */
-gceSTATUS
-gcoOS_CloseFD(
-    IN gcoOS Os,
-    IN gctINT FD
-    );
-
-/* Dup file descriptor to another. */
-gceSTATUS
-gcoOS_DupFD(
-    IN gcoOS Os,
-    IN gctINT FD,
-    OUT gctINT * FD2
-    );
-
-/* Create an endpoint for communication. */
-gceSTATUS
-gcoOS_Socket(
-    IN gcoOS Os,
-    IN gctINT Domain,
-    IN gctINT Type,
-    IN gctINT Protocol,
-    OUT gctINT *SockFd
-    );
-
-/* Close a socket. */
-gceSTATUS
-gcoOS_CloseSocket(
-    IN gcoOS Os,
-    IN gctINT SockFd
-    );
-
-/* Initiate a connection on a socket. */
-gceSTATUS
-gcoOS_Connect(
-    IN gcoOS Os,
-    IN gctINT SockFd,
-    IN gctCONST_POINTER HostName,
-    IN gctUINT Port);
-
-/* Shut down part of connection on a socket. */
-gceSTATUS
-gcoOS_Shutdown(
-    IN gcoOS Os,
-    IN gctINT SockFd,
-    IN gctINT How
-    );
-
-/* Send a message on a socket. */
-gceSTATUS
-gcoOS_Send(
-    IN gcoOS Os,
-    IN gctINT SockFd,
-    IN gctSIZE_T ByteCount,
-    IN gctCONST_POINTER Data,
-    IN gctINT Flags
-    );
-
-/* Initiate a connection on a socket. */
-gceSTATUS
-gcoOS_WaitForSend(
-    IN gcoOS Os,
-    IN gctINT SockFd,
-    IN gctINT Seconds,
-    IN gctINT MicroSeconds);
-
-/* Get environment variable value. */
-gceSTATUS
-gcoOS_GetEnv(
-    IN gcoOS Os,
-    IN gctCONST_STRING VarName,
-    OUT gctSTRING * Value
-    );
-
-/* Set environment variable value. */
-gceSTATUS
-gcoOS_SetEnv(
-    IN gcoOS Os,
-    IN gctCONST_STRING VarName,
-    IN gctSTRING Value
-    );
-
-/* Get current working directory. */
-gceSTATUS
-gcoOS_GetCwd(
-    IN gcoOS Os,
-    IN gctINT SizeInBytes,
-    OUT gctSTRING Buffer
-    );
-
-/* Get file status info. */
-gceSTATUS
-gcoOS_Stat(
-    IN gcoOS Os,
-    IN gctCONST_STRING FileName,
-    OUT gctPOINTER Buffer
-    );
-
-typedef enum _gceFILE_WHENCE
-{
-    gcvFILE_SEEK_SET,
-    gcvFILE_SEEK_CUR,
-    gcvFILE_SEEK_END
-}
-gceFILE_WHENCE;
-
-/* Set the current position of a file. */
-gceSTATUS
-gcoOS_Seek(
-    IN gcoOS Os,
-    IN gctFILE File,
-    IN gctUINT32 Offset,
-    IN gceFILE_WHENCE Whence
-    );
-
-/* Set the current position of a file. */
-gceSTATUS
-gcoOS_SetPos(
-    IN gcoOS Os,
-    IN gctFILE File,
-    IN gctUINT32 Position
-    );
-
-/* Get the current position of a file. */
-gceSTATUS
-gcoOS_GetPos(
-    IN gcoOS Os,
-    IN gctFILE File,
-    OUT gctUINT32 * Position
-    );
-
-/* Same as strstr. */
-gceSTATUS
-gcoOS_StrStr(
-    IN gctCONST_STRING String,
-    IN gctCONST_STRING SubString,
-    OUT gctSTRING * Output
-    );
-
-/* Find the last occurance of a character inside a string. */
-gceSTATUS
-gcoOS_StrFindReverse(
-    IN gctCONST_STRING String,
-    IN gctINT8 Character,
-    OUT gctSTRING * Output
-    );
-
-gceSTATUS
-gcoOS_StrDup(
-    IN gcoOS Os,
-    IN gctCONST_STRING String,
-    OUT gctSTRING * Target
-    );
-
-/* Copy a string. */
-gceSTATUS
-gcoOS_StrCopySafe(
-    IN gctSTRING Destination,
-    IN gctSIZE_T DestinationSize,
-    IN gctCONST_STRING Source
-    );
-
-/* Append a string. */
-gceSTATUS
-gcoOS_StrCatSafe(
-    IN gctSTRING Destination,
-    IN gctSIZE_T DestinationSize,
-    IN gctCONST_STRING Source
-    );
-
-/* Compare two strings. */
-gceSTATUS
-gcoOS_StrCmp(
-    IN gctCONST_STRING String1,
-    IN gctCONST_STRING String2
-    );
-
-/* Compare characters of two strings. */
-gceSTATUS
-gcoOS_StrNCmp(
-    IN gctCONST_STRING String1,
-    IN gctCONST_STRING String2,
-    IN gctSIZE_T Count
-    );
-
-/* Convert string to float. */
-gceSTATUS
-gcoOS_StrToFloat(
-    IN gctCONST_STRING String,
-    OUT gctFLOAT * Float
-    );
-
-/* Convert hex string to integer. */
-gceSTATUS gcoOS_HexStrToInt(
-    IN gctCONST_STRING String,
-    OUT gctINT * Int
-    );
-
-/* Convert hex string to float. */
-gceSTATUS
-gcoOS_HexStrToFloat(
-    IN gctCONST_STRING String,
-    OUT gctFLOAT * Float
-    );
-
-/* Convert string to integer. */
-gceSTATUS
-gcoOS_StrToInt(
-    IN gctCONST_STRING String,
-    OUT gctINT * Int
-    );
-
-gceSTATUS
-gcoOS_MemCmp(
-    IN gctCONST_POINTER Memory1,
-    IN gctCONST_POINTER Memory2,
-    IN gctSIZE_T Bytes
-    );
-
-gceSTATUS
-gcoOS_PrintStrSafe(
-    OUT gctSTRING String,
-    IN gctSIZE_T StringSize,
-    IN OUT gctUINT * Offset,
-    IN gctCONST_STRING Format,
-    ...
-    );
-
-gceSTATUS
-gcoOS_LoadLibrary(
-    IN gcoOS Os,
-    IN gctCONST_STRING Library,
-    OUT gctHANDLE * Handle
-    );
-
-gceSTATUS
-gcoOS_FreeLibrary(
-    IN gcoOS Os,
-    IN gctHANDLE Handle
-    );
-
-gceSTATUS
-gcoOS_GetProcAddress(
-    IN gcoOS Os,
-    IN gctHANDLE Handle,
-    IN gctCONST_STRING Name,
-    OUT gctPOINTER * Function
-    );
-
-gceSTATUS
-gcoOS_Compact(
-    IN gcoOS Os
-    );
-
-gceSTATUS
-gcoOS_AddSignalHandler (
-    IN gceSignalHandlerType SignalHandlerType
-    );
-
-#if VIVANTE_PROFILER
-gceSTATUS
-gcoOS_ProfileStart(
-    IN gcoOS Os
-    );
-
-gceSTATUS
-gcoOS_ProfileEnd(
-    IN gcoOS Os,
-    IN gctCONST_STRING Title
-    );
-
-gceSTATUS
-gcoOS_SetProfileSetting(
-        IN gcoOS Os,
-        IN gctBOOL Enable,
-        IN gctCONST_STRING FileName
-        );
-#endif
-
-/* Query the video memory. */
-gceSTATUS
-gcoOS_QueryVideoMemory(
-    IN gcoOS Os,
-    OUT gctPHYS_ADDR * InternalAddress,
-    OUT gctSIZE_T * InternalSize,
-    OUT gctPHYS_ADDR * ExternalAddress,
-    OUT gctSIZE_T * ExternalSize,
-    OUT gctPHYS_ADDR * ContiguousAddress,
-    OUT gctSIZE_T * ContiguousSize
-    );
-
-/* Detect if the process is the executable specified. */
-gceSTATUS
-gcoOS_DetectProcessByNamePid(
-    IN gctCONST_STRING Name,
-    IN gctHANDLE Pid
-    );
-
-/* Detect if the current process is the executable specified. */
-gceSTATUS
-gcoOS_DetectProcessByName(
-    IN gctCONST_STRING Name
-    );
-
-gceSTATUS
-gcoOS_DetectProcessByEncryptedName(
-    IN gctCONST_STRING Name
-    );
-
-#if defined(ANDROID)
-gceSTATUS
-gcoOS_DetectProgrameByEncryptedSymbols(
-    IN gcoOS_SymbolsList Symbols
-    );
-#endif
-
-/*----------------------------------------------------------------------------*/
-/*----- Atoms ----------------------------------------------------------------*/
-
-/* Construct an atom. */
-gceSTATUS
-gcoOS_AtomConstruct(
-    IN gcoOS Os,
-    OUT gcsATOM_PTR * Atom
-    );
-
-/* Destroy an atom. */
-gceSTATUS
-gcoOS_AtomDestroy(
-    IN gcoOS Os,
-    IN gcsATOM_PTR Atom
-    );
-
-/* Get the 32-bit value protected by an atom. */
-gceSTATUS
-gcoOS_AtomGet(
-    IN gcoOS Os,
-    IN gcsATOM_PTR Atom,
-    OUT gctINT32_PTR Value
-    );
-
-/* Set the 32-bit value protected by an atom. */
-gceSTATUS
-gcoOS_AtomSet(
-    IN gcoOS Os,
-    IN gcsATOM_PTR Atom,
-    IN gctINT32 Value
-    );
-
-/* Increment an atom. */
-gceSTATUS
-gcoOS_AtomIncrement(
-    IN gcoOS Os,
-    IN gcsATOM_PTR Atom,
-    OUT gctINT32_PTR OldValue
-    );
-
-/* Decrement an atom. */
-gceSTATUS
-gcoOS_AtomDecrement(
-    IN gcoOS Os,
-    IN gcsATOM_PTR Atom,
-    OUT gctINT32_PTR OldValue
-    );
-
-gctHANDLE
-gcoOS_GetCurrentProcessID(
-    void
-    );
-
-gctHANDLE
-gcoOS_GetCurrentThreadID(
-    void
-    );
-
-/*----------------------------------------------------------------------------*/
-/*----- Time -----------------------------------------------------------------*/
-
-/* Get the number of milliseconds since the system started. */
-gctUINT32
-gcoOS_GetTicks(
-    void
-    );
-
-/* Get time in microseconds. */
-gceSTATUS
-gcoOS_GetTime(
-    gctUINT64_PTR Time
-    );
-
-/* Get CPU usage in microseconds. */
-gceSTATUS
-gcoOS_GetCPUTime(
-    gctUINT64_PTR CPUTime
-    );
-
-/* Get memory usage. */
-gceSTATUS
-gcoOS_GetMemoryUsage(
-    gctUINT32_PTR MaxRSS,
-    gctUINT32_PTR IxRSS,
-    gctUINT32_PTR IdRSS,
-    gctUINT32_PTR IsRSS
-    );
-
-/* Delay a number of microseconds. */
-gceSTATUS
-gcoOS_Delay(
-    IN gcoOS Os,
-    IN gctUINT32 Delay
-    );
-
-/*----------------------------------------------------------------------------*/
-/*----- Threads --------------------------------------------------------------*/
-
-#ifdef _WIN32
-/* Cannot include windows.h here becuase "near" and "far"
- * which are used in gcsDEPTH_INFO, are defined to nothing in WinDef.h.
- * So, use the real value of DWORD and WINAPI, instead.
- * DWORD is unsigned long, and WINAPI is __stdcall.
- * If these two are change in WinDef.h, the following two typdefs
- * need to be changed, too.
- */
-typedef unsigned long gctTHREAD_RETURN;
-typedef unsigned long (__stdcall * gcTHREAD_ROUTINE)(void * Argument);
-#else
-typedef void * gctTHREAD_RETURN;
-typedef void * (* gcTHREAD_ROUTINE)(void *);
-#endif
-
-/* Create a new thread. */
-gceSTATUS
-gcoOS_CreateThread(
-    IN gcoOS Os,
-    IN gcTHREAD_ROUTINE Worker,
-    IN gctPOINTER Argument,
-    OUT gctPOINTER * Thread
-    );
-
-/* Close a thread. */
-gceSTATUS
-gcoOS_CloseThread(
-    IN gcoOS Os,
-    IN gctPOINTER Thread
-    );
-
-/*----------------------------------------------------------------------------*/
-/*----- Mutexes --------------------------------------------------------------*/
-
-/* Create a new mutex. */
-gceSTATUS
-gcoOS_CreateMutex(
-    IN gcoOS Os,
-    OUT gctPOINTER * Mutex
-    );
-
-/* Delete a mutex. */
-gceSTATUS
-gcoOS_DeleteMutex(
-    IN gcoOS Os,
-    IN gctPOINTER Mutex
-    );
-
-/* Acquire a mutex. */
-gceSTATUS
-gcoOS_AcquireMutex(
-    IN gcoOS Os,
-    IN gctPOINTER Mutex,
-    IN gctUINT32 Timeout
-    );
-
-/* Release a mutex. */
-gceSTATUS
-gcoOS_ReleaseMutex(
-    IN gcoOS Os,
-    IN gctPOINTER Mutex
-    );
-
-/*----------------------------------------------------------------------------*/
-/*----- Signals --------------------------------------------------------------*/
-
-/* Create a signal. */
-gceSTATUS
-gcoOS_CreateSignal(
-    IN gcoOS Os,
-    IN gctBOOL ManualReset,
-    OUT gctSIGNAL * Signal
-    );
-
-/* Destroy a signal. */
-gceSTATUS
-gcoOS_DestroySignal(
-    IN gcoOS Os,
-    IN gctSIGNAL Signal
-    );
-
-/* Signal a signal. */
-gceSTATUS
-gcoOS_Signal(
-    IN gcoOS Os,
-    IN gctSIGNAL Signal,
-    IN gctBOOL State
-    );
-
-/* Wait for a signal. */
-gceSTATUS
-gcoOS_WaitSignal(
-    IN gcoOS Os,
-    IN gctSIGNAL Signal,
-    IN gctUINT32 Wait
-    );
-
-/* Map a signal from another process */
-gceSTATUS
-gcoOS_MapSignal(
-    IN gctSIGNAL  RemoteSignal,
-    OUT gctSIGNAL * LocalSignal
-    );
-
-/* Unmap a signal mapped from another process */
-gceSTATUS
-gcoOS_UnmapSignal(
-    IN gctSIGNAL Signal
-    );
-
-/*----------------------------------------------------------------------------*/
-/*----- Android Native Fence -------------------------------------------------*/
-
-/* Create sync point. */
-gceSTATUS
-gcoOS_CreateSyncPoint(
-    IN gcoOS Os,
-    OUT gctSYNC_POINT * SyncPoint
-    );
-
-/* Destroy sync point. */
-gceSTATUS
-gcoOS_DestroySyncPoint(
-    IN gcoOS Os,
-    IN gctSYNC_POINT SyncPoint
-    );
-
-/* Create native fence. */
-gceSTATUS
-gcoOS_CreateNativeFence(
-    IN gcoOS Os,
-    IN gctSYNC_POINT SyncPoint,
-    OUT gctINT * FenceFD
-    );
-
-/* Wait on native fence. */
-gceSTATUS
-gcoOS_WaitNativeFence(
-    IN gcoOS Os,
-    IN gctINT FenceFD,
-    IN gctUINT32 Timeout
-    );
-
-/*----------------------------------------------------------------------------*/
-/*----- Memory Access and Cache ----------------------------------------------*/
-
-/* Write a register. */
-gceSTATUS
-gcoOS_WriteRegister(
-    IN gcoOS Os,
-    IN gctUINT32 Address,
-    IN gctUINT32 Data
-    );
-
-/* Read a register. */
-gceSTATUS
-gcoOS_ReadRegister(
-    IN gcoOS Os,
-    IN gctUINT32 Address,
-    OUT gctUINT32 * Data
-    );
-
-gceSTATUS
-gcoOS_CacheClean(
-    IN gcoOS Os,
-    IN gctUINT32 Node,
-    IN gctPOINTER Logical,
-    IN gctSIZE_T Bytes
-    );
-
-gceSTATUS
-gcoOS_CacheFlush(
-    IN gcoOS Os,
-    IN gctUINT32 Node,
-    IN gctPOINTER Logical,
-    IN gctSIZE_T Bytes
-    );
-
-gceSTATUS
-gcoOS_CacheInvalidate(
-    IN gcoOS Os,
-    IN gctUINT32 Node,
-    IN gctPOINTER Logical,
-    IN gctSIZE_T Bytes
-    );
-
-gceSTATUS
-gcoOS_MemoryBarrier(
-    IN gcoOS Os,
-    IN gctPOINTER Logical
-    );
-
-gceSTATUS
-gcoOS_CPUPhysicalToGPUPhysical(
-    IN gctUINT32 CPUPhysical,
-    OUT gctUINT32_PTR GPUPhysical
-    );
-
-/*----------------------------------------------------------------------------*/
-/*----- Profile --------------------------------------------------------------*/
-
-gceSTATUS
-gckOS_GetProfileTick(
-    OUT gctUINT64_PTR Tick
-    );
-
-gceSTATUS
-gckOS_QueryProfileTickRate(
-    OUT gctUINT64_PTR TickRate
-    );
-
-gctUINT32
-gckOS_ProfileToMS(
-    IN gctUINT64 Ticks
-    );
-
-gceSTATUS
-gcoOS_GetProfileTick(
-    OUT gctUINT64_PTR Tick
-    );
-
-gceSTATUS
-gcoOS_QueryProfileTickRate(
-    OUT gctUINT64_PTR TickRate
-    );
-
-#define _gcmPROFILE_INIT(prefix, freq, start) \
-    do { \
-        prefix ## OS_QueryProfileTickRate(&(freq)); \
-        prefix ## OS_GetProfileTick(&(start)); \
-    } while (gcvFALSE)
-
-#define _gcmPROFILE_QUERY(prefix, start, ticks) \
-    do { \
-        prefix ## OS_GetProfileTick(&(ticks)); \
-        (ticks) = ((ticks) > (start)) ? ((ticks) - (start)) \
-                                      : (~0ull - (start) + (ticks) + 1); \
-    } while (gcvFALSE)
-
-#if gcdENABLE_PROFILING
-#   define gcmkPROFILE_INIT(freq, start)    _gcmPROFILE_INIT(gck, freq, start)
-#   define gcmkPROFILE_QUERY(start, ticks)  _gcmPROFILE_QUERY(gck, start, ticks)
-#   define gcmPROFILE_INIT(freq, start)     _gcmPROFILE_INIT(gco, freq, start)
-#   define gcmPROFILE_QUERY(start, ticks)   _gcmPROFILE_QUERY(gco, start, ticks)
-#   define gcmPROFILE_ONLY(x)               x
-#   define gcmPROFILE_ELSE(x)               do { } while (gcvFALSE)
-#   define gcmPROFILE_DECLARE_ONLY(x)       x
-#   define gcmPROFILE_DECLARE_ELSE(x)       typedef x
-#else
-#   define gcmkPROFILE_INIT(start, freq)    do { } while (gcvFALSE)
-#   define gcmkPROFILE_QUERY(start, ticks)  do { } while (gcvFALSE)
-#   define gcmPROFILE_INIT(start, freq)     do { } while (gcvFALSE)
-#   define gcmPROFILE_QUERY(start, ticks)   do { } while (gcvFALSE)
-#   define gcmPROFILE_ONLY(x)               do { } while (gcvFALSE)
-#   define gcmPROFILE_ELSE(x)               x
-#   define gcmPROFILE_DECLARE_ONLY(x)       do { } while (gcvFALSE)
-#   define gcmPROFILE_DECLARE_ELSE(x)       x
-#endif
-
-/*******************************************************************************
-**  gcoMATH object
-*/
-
-#define gcdPI                   3.14159265358979323846f
-
-/* Kernel. */
-gctINT
-gckMATH_ModuloInt(
-    IN gctINT X,
-    IN gctINT Y
-    );
-
-/* User. */
-gctUINT32
-gcoMATH_Log2in5dot5(
-    IN gctINT X
-    );
-
-
-gctFLOAT
-gcoMATH_UIntAsFloat(
-    IN gctUINT32 X
-    );
-
-gctUINT32
-gcoMATH_FloatAsUInt(
-    IN gctFLOAT X
-    );
-
-gctBOOL
-gcoMATH_CompareEqualF(
-    IN gctFLOAT X,
-    IN gctFLOAT Y
-    );
-
-gctUINT16
-gcoMATH_UInt8AsFloat16(
-    IN gctUINT8 X
-    );
-
-gctUINT32
-gcoMATH_Float16ToFloat(
-    IN gctUINT16 In
-    );
-
-gctUINT16
-gcoMATH_FloatToFloat16(
-    IN gctUINT32 In
-    );
-
-gctUINT32
-gcoMATH_Float11ToFloat(
-    IN gctUINT32 In
-    );
-
-gctUINT16
-gcoMATH_FloatToFloat11(
-    IN gctUINT32 In
-    );
-
-gctUINT32
-gcoMATH_Float10ToFloat(
-    IN gctUINT32 In
-    );
-
-gctUINT16
-gcoMATH_FloatToFloat10(
-    IN gctUINT32 In
-    );
-
-gctUINT32
-gcoMATH_Float14ToFloat(
-    IN gctUINT16 In
-    );
-
-/******************************************************************************\
-**************************** Coordinate Structures *****************************
-\******************************************************************************/
-
-typedef struct _gcsPOINT
-{
-    gctINT32                    x;
-    gctINT32                    y;
-}
-gcsPOINT;
-
-typedef struct _gcsSIZE
-{
-    gctINT32                    width;
-    gctINT32                    height;
-}
-gcsSIZE;
-
-typedef struct _gcsRECT
-{
-    gctINT32                    left;
-    gctINT32                    top;
-    gctINT32                    right;
-    gctINT32                    bottom;
-}
-gcsRECT;
-
-typedef union _gcsPIXEL
-{
-    struct
-    {
-        gctFLOAT r, g, b, a;
-        gctFLOAT d, s;
-    } pf;
-
-    struct
-    {
-        gctINT32 r, g, b, a;
-        gctINT32 d, s;
-    } pi;
-
-    struct
-    {
-        gctUINT32 r, g, b, a;
-        gctUINT32 d, s;
-    } pui;
-
-} gcsPIXEL;
-
-/******************************************************************************\
-********************************* gcoSURF Object ********************************
-\******************************************************************************/
-
-/*----------------------------------------------------------------------------*/
-/*------------------------------- gcoSURF Common ------------------------------*/
-
-/* Color format classes. */
-typedef enum _gceFORMAT_CLASS
-{
-    gcvFORMAT_CLASS_RGBA        = 4500,
-    gcvFORMAT_CLASS_YUV,
-    gcvFORMAT_CLASS_INDEX,
-    gcvFORMAT_CLASS_LUMINANCE,
-    gcvFORMAT_CLASS_BUMP,
-    gcvFORMAT_CLASS_DEPTH,
-    gcvFORMAT_CLASS_ASTC,
-    gcvFORMAT_CLASS_OTHER
-}
-gceFORMAT_CLASS;
-
-/* Color format data type */
-typedef enum _gceFORMAT_DATATYPE
-{
-    gcvFORMAT_DATATYPE_UNSIGNED_NORMALIZED,
-    gcvFORMAT_DATATYPE_SIGNED_NORMALIZED,
-    gcvFORMAT_DATATYPE_UNSIGNED_INTEGER,
-    gcvFORMAT_DATATYPE_SIGNED_INTEGER,
-    gcvFORMAT_DATATYPE_FLOAT16,
-    gcvFORMAT_DATATYPE_FLOAT32,
-    gcvFORMAT_DATATYPE_FLOAT_E5B9G9R9,
-    gcvFORMAT_DATATYPE_FLOAT_B10G11R11F,
-    gcvFORMAT_DATATYPE_INDEX,
-    gcvFORMAT_DATATYPE_SRGB,
-    gcvFORMAT_DATATYPE_FLOAT32_UINT,
-}
-gceFORMAT_DATATYPE;
-
-/* Special enums for width field in gcsFORMAT_COMPONENT. */
-typedef enum _gceCOMPONENT_CONTROL
-{
-    gcvCOMPONENT_NOTPRESENT     = 0x00,
-    gcvCOMPONENT_DONTCARE       = 0x80,
-    gcvCOMPONENT_WIDTHMASK      = 0x7F,
-    gcvCOMPONENT_ODD            = 0x80
-}
-gceCOMPONENT_CONTROL;
-
-/* Color format component parameters. */
-typedef struct _gcsFORMAT_COMPONENT
-{
-    gctUINT8                    start;
-    gctUINT8                    width;
-}
-gcsFORMAT_COMPONENT;
-
-/* RGBA color format class. */
-typedef struct _gcsFORMAT_CLASS_TYPE_RGBA
-{
-    gcsFORMAT_COMPONENT         alpha;
-    gcsFORMAT_COMPONENT         red;
-    gcsFORMAT_COMPONENT         green;
-    gcsFORMAT_COMPONENT         blue;
-}
-gcsFORMAT_CLASS_TYPE_RGBA;
-
-/* YUV color format class. */
-typedef struct _gcsFORMAT_CLASS_TYPE_YUV
-{
-    gcsFORMAT_COMPONENT         y;
-    gcsFORMAT_COMPONENT         u;
-    gcsFORMAT_COMPONENT         v;
-}
-gcsFORMAT_CLASS_TYPE_YUV;
-
-/* Index color format class. */
-typedef struct _gcsFORMAT_CLASS_TYPE_INDEX
-{
-    gcsFORMAT_COMPONENT         value;
-}
-gcsFORMAT_CLASS_TYPE_INDEX;
-
-/* Luminance color format class. */
-typedef struct _gcsFORMAT_CLASS_TYPE_LUMINANCE
-{
-    gcsFORMAT_COMPONENT         alpha;
-    gcsFORMAT_COMPONENT         value;
-}
-gcsFORMAT_CLASS_TYPE_LUMINANCE;
-
-/* Bump map color format class. */
-typedef struct _gcsFORMAT_CLASS_TYPE_BUMP
-{
-    gcsFORMAT_COMPONENT         alpha;
-    gcsFORMAT_COMPONENT         l;
-    gcsFORMAT_COMPONENT         v;
-    gcsFORMAT_COMPONENT         u;
-    gcsFORMAT_COMPONENT         q;
-    gcsFORMAT_COMPONENT         w;
-}
-gcsFORMAT_CLASS_TYPE_BUMP;
-
-/* Depth and stencil format class. */
-typedef struct _gcsFORMAT_CLASS_TYPE_DEPTH
-{
-    gcsFORMAT_COMPONENT         depth;
-    gcsFORMAT_COMPONENT         stencil;
-}
-gcsFORMAT_CLASS_TYPE_DEPTH;
-
-typedef union _gcuPIXEL_FORMAT_CLASS
-{
-    gcsFORMAT_CLASS_TYPE_BUMP       bump;
-    gcsFORMAT_CLASS_TYPE_RGBA       rgba;
-    gcsFORMAT_CLASS_TYPE_YUV        yuv;
-    gcsFORMAT_CLASS_TYPE_LUMINANCE  lum;
-    gcsFORMAT_CLASS_TYPE_INDEX      index;
-    gcsFORMAT_CLASS_TYPE_DEPTH      depth;
-}
-gcuPIXEL_FORMAT_CLASS;
-
-/* Format parameters. */
-typedef struct _gcsSURF_FORMAT_INFO
-{
-    /* Name of the format */
-    gctCONST_STRING             formatName;
-
-    /* Format code and class. */
-    gceSURF_FORMAT              format;
-    gceFORMAT_CLASS             fmtClass;
-
-    /* Format data type */
-    gceFORMAT_DATATYPE          fmtDataType;
-
-    /* The size of one pixel in bits. */
-    gctUINT8                    bitsPerPixel;
-
-    /* Pixel block dimensions. */
-    gctUINT                     blockWidth;
-    gctUINT                     blockHeight;
-
-    /* Pixel block size in bits. */
-    gctUINT                     blockSize;
-
-    /* Some formats are larger than what the GPU can support.      */
-    /* These formats are read in the number of layers specified.   */
-    gctUINT8                    layers;
-
-    /* The format is faked and software will interpret it differently
-    ** with HW. Most of them can't be blendable(PE) or filterable(TX).
-    */
-    gctBOOL                     fakedFormat;
-
-    /* Some formats have two neighbour pixels interleaved together. */
-    /* To describe such format, set the flag to 1 and add another   */
-    /* like this one describing the odd pixel format.               */
-    gctBOOL                     interleaved;
-
-    /* sRGB format. */
-    gctBOOL                     sRGB;
-
-    /* Format components. */
-    gcuPIXEL_FORMAT_CLASS       u;
-
-    /* Format components. */
-    gcuPIXEL_FORMAT_CLASS       uOdd;
-
-    /* Render format. */
-    gceSURF_FORMAT              closestRenderFormat;
-    /*gctCLOSEST_FORMAT           dynamicClosestRenderFormat;*/
-    gctUINT                     renderFormat;
-    const gceTEXTURE_SWIZZLE  * pixelSwizzle;
-
-    /* Texture format. */
-    gceSURF_FORMAT              closestTXFormat;
-    gctUINT                     txFormat;
-    const gceTEXTURE_SWIZZLE  * txSwizzle;
-    gctBOOL                     txIntFilter;
-}
-gcsSURF_FORMAT_INFO;
-
-/* Frame buffer information. */
-typedef struct _gcsSURF_FRAMEBUFFER
-{
-    gctPOINTER                  logical;
-    gctUINT                     width, height;
-    gctINT                      stride;
-    gceSURF_FORMAT              format;
-}
-gcsSURF_FRAMEBUFFER;
-
-/* Generic pixel component descriptors. */
-extern gcsFORMAT_COMPONENT gcvPIXEL_COMP_XXX8;
-extern gcsFORMAT_COMPONENT gcvPIXEL_COMP_XX8X;
-extern gcsFORMAT_COMPONENT gcvPIXEL_COMP_X8XX;
-extern gcsFORMAT_COMPONENT gcvPIXEL_COMP_8XXX;
-
-typedef enum _gceORIENTATION
-{
-    gcvORIENTATION_TOP_BOTTOM,
-    gcvORIENTATION_BOTTOM_TOP,
-}
-gceORIENTATION;
-
-
-/* Construct a new gcoSURF object. */
-gceSTATUS
-gcoSURF_Construct(
-    IN gcoHAL Hal,
-    IN gctUINT Width,
-    IN gctUINT Height,
-    IN gctUINT Depth,
-    IN gceSURF_TYPE Type,
-    IN gceSURF_FORMAT Format,
-    IN gcePOOL Pool,
-    OUT gcoSURF * Surface
-    );
-
-/* Destroy an gcoSURF object. */
-gceSTATUS
-gcoSURF_Destroy(
-    IN gcoSURF Surface
-    );
-
-/* Map user-allocated surface. */
-gceSTATUS
-gcoSURF_MapUserSurface(
-    IN gcoSURF Surface,
-    IN gctUINT Alignment,
-    IN gctPOINTER Logical,
-    IN gctUINT32 Physical
-    );
-
-/* Wrapp surface with known logical/GPU address */
-gceSTATUS
-gcoSURF_WrapSurface(
-    IN gcoSURF Surface,
-    IN gctUINT Alignment,
-    IN gctPOINTER Logical,
-    IN gctUINT32 Physical
-    );
-
-
-/* Query vid mem node info. */
-gceSTATUS
-gcoSURF_QueryVidMemNode(
-    IN gcoSURF Surface,
-    OUT gctUINT32 * Node,
-    OUT gcePOOL * Pool,
-    OUT gctSIZE_T_PTR Bytes
-    );
-
-/* Set the color type of the surface. */
-gceSTATUS
-gcoSURF_SetColorType(
-    IN gcoSURF Surface,
-    IN gceSURF_COLOR_TYPE ColorType
-    );
-
-/* Get the color type of the surface. */
-gceSTATUS
-gcoSURF_GetColorType(
-    IN gcoSURF Surface,
-    OUT gceSURF_COLOR_TYPE *ColorType
-    );
-
-/* Set the color space of the surface. */
-gceSTATUS
-gcoSURF_SetColorSpace(
-    IN gcoSURF Surface,
-    IN gceSURF_COLOR_SPACE ColorSpace
-    );
-
-/* Get the color space of the surface. */
-gceSTATUS
-gcoSURF_GetColorSpace(
-    IN gcoSURF Surface,
-    OUT gceSURF_COLOR_SPACE *ColorSpace
-    );
-
-
-/* Set the surface ration angle. */
-gceSTATUS
-gcoSURF_SetRotation(
-    IN gcoSURF Surface,
-    IN gceSURF_ROTATION Rotation
-    );
-
-gceSTATUS
-gcoSURF_IsValid(
-    IN gcoSURF Surface
-    );
-
-#if gcdENABLE_3D
-/* Verify and return the state of the tile status mechanism. */
-gceSTATUS
-gcoSURF_IsTileStatusSupported(
-    IN gcoSURF Surface
-    );
-
-/* Verify if surface has tile status enabled. */
-gceSTATUS
-gcoSURF_IsTileStatusEnabled(
-    IN gcoSURF Surface
-    );
-
-/* Verify if surface is compressed. */
-gceSTATUS
-gcoSURF_IsCompressed(
-    IN gcoSURF Surface
-    );
-
-/* Enable tile status for the specified surface on zero slot. */
-gceSTATUS
-gcoSURF_EnableTileStatus(
-    IN gcoSURF Surface
-    );
-
-/* Enable tile status for the specified surface on specified slot. */
-gceSTATUS
-gcoSURF_EnableTileStatusEx(
-    IN gcoSURF Surface,
-    IN gctUINT RtIndex
-    );
-
-/* Disable tile status for the specified surface. */
-gceSTATUS
-gcoSURF_DisableTileStatus(
-    IN gcoSURF Surface,
-    IN gctBOOL Decompress
-    );
-
-/* Flush tile status cache for the specified surface. */
-gceSTATUS
-gcoSURF_FlushTileStatus(
-    IN gcoSURF Surface,
-    IN gctBOOL Decompress
-    );
-#endif /* gcdENABLE_3D */
-
-/* Get surface size. */
-gceSTATUS
-gcoSURF_GetSize(
-    IN gcoSURF Surface,
-    OUT gctUINT * Width,
-    OUT gctUINT * Height,
-    OUT gctUINT * Depth
-    );
-
-/* Get surface aligned sizes. */
-gceSTATUS
-gcoSURF_GetAlignedSize(
-    IN gcoSURF Surface,
-    OUT gctUINT * Width,
-    OUT gctUINT * Height,
-    OUT gctINT * Stride
-    );
-
-/* Get alignments. */
-gceSTATUS
-gcoSURF_GetAlignment(
-    IN gceSURF_TYPE Type,
-    IN gceSURF_FORMAT Format,
-    OUT gctUINT * AddressAlignment,
-    OUT gctUINT * XAlignment,
-    OUT gctUINT * YAlignment
-    );
-
-gceSTATUS
-gcoSURF_AlignResolveRect(
-    IN gcoSURF Surf,
-    IN gcsPOINT_PTR RectOrigin,
-    IN gcsPOINT_PTR RectSize,
-    OUT gcsPOINT_PTR AlignedOrigin,
-    OUT gcsPOINT_PTR AlignedSize
-    );
-
-/* Get surface type and format. */
-gceSTATUS
-gcoSURF_GetFormat(
-    IN gcoSURF Surface,
-    OUT OPTIONAL gceSURF_TYPE * Type,
-    OUT OPTIONAL gceSURF_FORMAT * Format
-    );
-
-/* Get surface information */
-gceSTATUS
-gcoSURF_GetFormatInfo(
-    IN gcoSURF Surface,
-    OUT gcsSURF_FORMAT_INFO_PTR * formatInfo
-    );
-
-/* Get Surface pack format */
-gceSTATUS
-gcoSURF_GetPackedFormat(
-    IN gcoSURF Surface,
-    OUT gceSURF_FORMAT * Format
-    );
-
-/* Get surface tiling. */
-gceSTATUS
-gcoSURF_GetTiling(
-    IN gcoSURF Surface,
-    OUT gceTILING * Tiling
-    );
-
-/* Get flip bitmap offset bytes. */
-gceSTATUS
-gcoSURF_GetFlipBitmapOffset(
-    IN gcoSURF Surface,
-    OUT gctUINT_PTR FlipBitmapOffset
-    );
-
-/* Get bottom buffer offset bytes. */
-gceSTATUS
-gcoSURF_GetBottomBufferOffset(
-    IN gcoSURF Surface,
-    OUT gctUINT_PTR BottomBufferOffset
-    );
-
-/* Lock the surface. */
-gceSTATUS
-gcoSURF_Lock(
-    IN gcoSURF Surface,
-    IN OUT gctUINT32 * Address,
-    IN OUT gctPOINTER * Memory
-    );
-
-/* Unlock the surface. */
-gceSTATUS
-gcoSURF_Unlock(
-    IN gcoSURF Surface,
-    IN gctPOINTER Memory
-    );
-
-/*. Query surface flags.*/
-gceSTATUS
-gcoSURF_QueryFlags(
-    IN gcoSURF Surface,
-    IN gceSURF_FLAG Flag
-    );
-
-/* Return pixel format parameters; Info is required to be a pointer to an
- * array of at least two items because some formats have up to two records
- * of description. */
-gceSTATUS
-gcoSURF_QueryFormat(
-    IN gceSURF_FORMAT Format,
-    OUT gcsSURF_FORMAT_INFO_PTR * Info
-    );
-
-/* Compute the color pixel mask. */
-gceSTATUS
-gcoSURF_ComputeColorMask(
-    IN gcsSURF_FORMAT_INFO_PTR Format,
-    OUT gctUINT32_PTR ColorMask
-    );
-
-/* Flush the surface. */
-gceSTATUS
-gcoSURF_Flush(
-    IN gcoSURF Surface
-    );
-
-/* Fill surface from it's tile status buffer. */
-gceSTATUS
-gcoSURF_FillFromTile(
-    IN gcoSURF Surface
-    );
-
-/* Fill surface with a value. */
-gceSTATUS
-gcoSURF_Fill(
-    IN gcoSURF Surface,
-    IN gcsPOINT_PTR Origin,
-    IN gcsSIZE_PTR Size,
-    IN gctUINT32 Value,
-    IN gctUINT32 Mask
-    );
-
-/* Alpha blend two surfaces together. */
-gceSTATUS
-gcoSURF_Blend(
-    IN gcoSURF SrcSurface,
-    IN gcoSURF DestSurface,
-    IN gcsPOINT_PTR SrcOrig,
-    IN gcsPOINT_PTR DestOrigin,
-    IN gcsSIZE_PTR Size,
-    IN gceSURF_BLEND_MODE Mode
-    );
-
-/* Create a new gcoSURF wrapper object. */
-gceSTATUS
-gcoSURF_ConstructWrapper(
-    IN gcoHAL Hal,
-    OUT gcoSURF * Surface
-    );
-
-/* Set surface flags.*/
-gceSTATUS
-gcoSURF_SetFlags(
-    IN gcoSURF Surface,
-    IN gceSURF_FLAG Flag,
-    IN gctBOOL Value
-    );
-
-/* Set the underlying buffer for the surface wrapper. */
-gceSTATUS
-gcoSURF_SetBuffer(
-    IN gcoSURF Surface,
-    IN gceSURF_TYPE Type,
-    IN gceSURF_FORMAT Format,
-    IN gctUINT Stride,
-    IN gctPOINTER Logical,
-    IN gctUINT32 Physical
-    );
-
-/* Set the size of the surface in pixels and map the underlying buffer. */
-gceSTATUS
-gcoSURF_SetWindow(
-    IN gcoSURF Surface,
-    IN gctUINT X,
-    IN gctUINT Y,
-    IN gctUINT Width,
-    IN gctUINT Height
-    );
-
-/* Set width/height alignment of the surface directly and calculate stride/size. This is only for dri backend now. Please be careful before use. */
-gceSTATUS
-gcoSURF_SetAlignment(
-    IN gcoSURF Surface,
-    IN gctUINT Width,
-    IN gctUINT Height
-    );
-
-/* Increase reference count of the surface. */
-gceSTATUS
-gcoSURF_ReferenceSurface(
-    IN gcoSURF Surface
-    );
-
-/* Get surface reference count. */
-gceSTATUS
-gcoSURF_QueryReferenceCount(
-    IN gcoSURF Surface,
-    OUT gctINT32 * ReferenceCount
-    );
-
-/* Set surface orientation. */
-gceSTATUS
-gcoSURF_SetOrientation(
-    IN gcoSURF Surface,
-    IN gceORIENTATION Orientation
-    );
-
-/* Query surface orientation. */
-gceSTATUS
-gcoSURF_QueryOrientation(
-    IN gcoSURF Surface,
-    OUT gceORIENTATION * Orientation
-    );
-
-gceSTATUS
-gcoSURF_SetOffset(
-    IN gcoSURF Surface,
-    IN gctSIZE_T Offset
-    );
-
-gceSTATUS
-gcoSURF_NODE_Cache(
-    IN gcsSURF_NODE_PTR Node,
-    IN gctPOINTER Logical,
-    IN gctSIZE_T Bytes,
-    IN gceCACHEOPERATION Operation
-    );
-
-/* Lock and unlock surface node */
-gceSTATUS
-gcoSURF_LockNode(
-    IN gcsSURF_NODE_PTR Node,
-    OUT gctUINT32 * Address,
-    OUT gctPOINTER * Memory
-    );
-
-gceSTATUS
-gcoSURF_UnLockNode(
-    IN gcsSURF_NODE_PTR Node,
-    IN gceSURF_TYPE Type
-    );
-
-/* Perform CPU cache operation on surface node */
-gceSTATUS
-gcoSURF_NODE_CPUCacheOperation(
-    IN gcsSURF_NODE_PTR Node,
-    IN gceSURF_TYPE Type,
-    IN gctSIZE_T Offset,
-    IN gctSIZE_T Length,
-    IN gceCACHEOPERATION Operation
-    );
-
-/* Perform CPU cache operation on surface */
-gceSTATUS
-gcoSURF_CPUCacheOperation(
-    IN gcoSURF Surface,
-    IN gceCACHEOPERATION Operation
-    );
-
-
-gceSTATUS
-gcoSURF_Swap(
-    IN gcoSURF Surface1,
-    IN gcoSURF Surface2
-    );
-
-gceSTATUS
-gcoSURF_ResetSurWH(
-    IN gcoSURF Surface,
-    IN gctUINT oriw,
-    IN gctUINT orih,
-    IN gctUINT alignw,
-    IN gctUINT alignh,
-    IN gceSURF_FORMAT fmt
-);
-
-/* Update surface timestamp. */
-gceSTATUS
-gcoSURF_UpdateTimeStamp(
-    IN gcoSURF Surface
-    );
-
-/* Query surface current timestamp. */
-gceSTATUS
-gcoSURF_QueryTimeStamp(
-    IN gcoSURF Surface,
-    OUT gctUINT64 * TimeStamp
-    );
-
-/*
- * Allocate shared buffer for this surface, so that
- * surface states can be shared across processes.
- */
-gceSTATUS
-gcoSURF_AllocShBuffer(
-    IN gcoSURF Surface,
-    OUT gctSHBUF * ShBuf
-    );
-
-/* Bind shared buffer to this surface */
-gceSTATUS
-gcoSURF_BindShBuffer(
-    IN gcoSURF Surface,
-    IN gctSHBUF ShBuf
-    );
-
-/* Push surface shared states to shared buffer. */
-gceSTATUS
-gcoSURF_PushSharedInfo(
-    IN gcoSURF Surface
-    );
-
-/* Pop shared states from shared buffer. */
-gceSTATUS
-gcoSURF_PopSharedInfo(
-    IN gcoSURF Surface
-    );
-
-#if (gcdENABLE_3D || gcdENABLE_VG)
-/* Copy surface. */
-gceSTATUS
-gcoSURF_Copy(
-    IN gcoSURF Surface,
-    IN gcoSURF Source
-    );
-
-/* Set number of samples for a gcoSURF object. */
-gceSTATUS
-gcoSURF_SetSamples(
-    IN gcoSURF Surface,
-    IN gctUINT Samples
-    );
-
-/* Get the number of samples per pixel. */
-gceSTATUS
-gcoSURF_GetSamples(
-    IN gcoSURF Surface,
-    OUT gctUINT_PTR Samples
-    );
-#endif
-
-/******************************************************************************\
-********************************* gcoDUMP Object ********************************
-\******************************************************************************/
-
-/* Construct a new gcoDUMP object. */
-gceSTATUS
-gcoDUMP_Construct(
-    IN gcoOS Os,
-    IN gcoHAL Hal,
-    OUT gcoDUMP * Dump
-    );
-
-/* Destroy a gcoDUMP object. */
-gceSTATUS
-gcoDUMP_Destroy(
-    IN gcoDUMP Dump
-    );
-
-/* Enable/disable dumping. */
-gceSTATUS
-gcoDUMP_Control(
-    IN gcoDUMP Dump,
-    IN gctSTRING FileName
-    );
-
-gceSTATUS
-gcoDUMP_IsEnabled(
-    IN gcoDUMP Dump,
-    OUT gctBOOL * Enabled
-    );
-
-/* Add surface. */
-gceSTATUS
-gcoDUMP_AddSurface(
-    IN gcoDUMP Dump,
-    IN gctINT32 Width,
-    IN gctINT32 Height,
-    IN gceSURF_FORMAT PixelFormat,
-    IN gctUINT32 Address,
-    IN gctSIZE_T ByteCount
-    );
-
-/* Mark the beginning of a frame. */
-gceSTATUS
-gcoDUMP_FrameBegin(
-    IN gcoDUMP Dump
-    );
-
-/* Mark the end of a frame. */
-gceSTATUS
-gcoDUMP_FrameEnd(
-    IN gcoDUMP Dump
-    );
-
-/* Dump data. */
-gceSTATUS
-gcoDUMP_DumpData(
-    IN gcoDUMP Dump,
-    IN gceDUMP_TAG Type,
-    IN gctUINT32 Address,
-    IN gctSIZE_T ByteCount,
-    IN gctCONST_POINTER Data
-    );
-
-/* Delete an address. */
-gceSTATUS
-gcoDUMP_Delete(
-    IN gcoDUMP Dump,
-    IN gctUINT32 Address
-    );
-
-/* Enable dump or not. */
-gceSTATUS
-gcoDUMP_SetDumpFlag(
-    IN gctBOOL DumpState
-    );
-
-/******************************************************************************\
-******************************* gcsRECT Structure ******************************
-\******************************************************************************/
-
-/* Initialize rectangle structure. */
-gceSTATUS
-gcsRECT_Set(
-    OUT gcsRECT_PTR Rect,
-    IN gctINT32 Left,
-    IN gctINT32 Top,
-    IN gctINT32 Right,
-    IN gctINT32 Bottom
-    );
-
-/* Return the width of the rectangle. */
-gceSTATUS
-gcsRECT_Width(
-    IN gcsRECT_PTR Rect,
-    OUT gctINT32 * Width
-    );
-
-/* Return the height of the rectangle. */
-gceSTATUS
-gcsRECT_Height(
-    IN gcsRECT_PTR Rect,
-    OUT gctINT32 * Height
-    );
-
-/* Ensure that top left corner is to the left and above the right bottom. */
-gceSTATUS
-gcsRECT_Normalize(
-    IN OUT gcsRECT_PTR Rect
-    );
-
-/* Compare two rectangles. */
-gceSTATUS
-gcsRECT_IsEqual(
-    IN gcsRECT_PTR Rect1,
-    IN gcsRECT_PTR Rect2,
-    OUT gctBOOL * Equal
-    );
-
-/* Compare the sizes of two rectangles. */
-gceSTATUS
-gcsRECT_IsOfEqualSize(
-    IN gcsRECT_PTR Rect1,
-    IN gcsRECT_PTR Rect2,
-    OUT gctBOOL * EqualSize
-    );
-
-gceSTATUS
-gcsRECT_RelativeRotation(
-    IN gceSURF_ROTATION Orientation,
-    IN OUT gceSURF_ROTATION *Relation);
-
-gceSTATUS
-
-gcsRECT_Rotate(
-
-    IN OUT gcsRECT_PTR Rect,
-
-    IN gceSURF_ROTATION Rotation,
-
-    IN gceSURF_ROTATION toRotation,
-
-    IN gctINT32 SurfaceWidth,
-
-    IN gctINT32 SurfaceHeight
-
-    );
-
-/******************************************************************************\
-**************************** gcsBOUNDARY Structure *****************************
-\******************************************************************************/
-
-typedef struct _gcsBOUNDARY
-{
-    gctINT                      x;
-    gctINT                      y;
-    gctINT                      width;
-    gctINT                      height;
-}
-gcsBOUNDARY;
-
-/******************************************************************************\
-********************************* gcoHEAP Object ********************************
-\******************************************************************************/
-
-typedef struct _gcoHEAP *       gcoHEAP;
-
-/* Construct a new gcoHEAP object. */
-gceSTATUS
-gcoHEAP_Construct(
-    IN gcoOS Os,
-    IN gctSIZE_T AllocationSize,
-    OUT gcoHEAP * Heap
-    );
-
-/* Destroy an gcoHEAP object. */
-gceSTATUS
-gcoHEAP_Destroy(
-    IN gcoHEAP Heap
-    );
-
-/* Allocate memory. */
-gceSTATUS
-gcoHEAP_Allocate(
-    IN gcoHEAP Heap,
-    IN gctSIZE_T Bytes,
-    OUT gctPOINTER * Node
-    );
-
-gceSTATUS
-gcoHEAP_GetMemorySize(
-    IN gcoHEAP Heap,
-    IN gctPOINTER Memory,
-    OUT gctSIZE_T_PTR MemorySize
-    );
-
-/* Free memory. */
-gceSTATUS
-gcoHEAP_Free(
-    IN gcoHEAP Heap,
-    IN gctPOINTER Node
-    );
-
-#if (VIVANTE_PROFILER  || gcdDEBUG)
-/* Profile the heap. */
-gceSTATUS
-gcoHEAP_ProfileStart(
-    IN gcoHEAP Heap
-    );
-
-gceSTATUS
-gcoHEAP_ProfileEnd(
-    IN gcoHEAP Heap,
-    IN gctCONST_STRING Title
-    );
-#endif
-
-
-/******************************************************************************\
-******************************* Debugging Macros *******************************
-\******************************************************************************/
-
-void
-gcoOS_SetDebugLevel(
-    IN gctUINT32 Level
-    );
-
-void
-gcoOS_GetDebugLevel(
-    OUT gctUINT32_PTR DebugLevel
-    );
-
-void
-gcoOS_SetDebugZone(
-    IN gctUINT32 Zone
-    );
-
-void
-gcoOS_GetDebugZone(
-    IN gctUINT32 Zone,
-    OUT gctUINT32_PTR DebugZone
-    );
-
-void
-gcoOS_SetDebugLevelZone(
-    IN gctUINT32 Level,
-    IN gctUINT32 Zone
-    );
-
-void
-gcoOS_SetDebugZones(
-    IN gctUINT32 Zones,
-    IN gctBOOL Enable
-    );
-
-void
-gcoOS_SetDebugFile(
-    IN gctCONST_STRING FileName
-    );
-
-gctFILE
-gcoOS_ReplaceDebugFile(
-    IN gctFILE fp
-    );
-
-void
-gcoOS_SysTraceBegin(
-    IN gctCONST_STRING FuncName
-    );
-
-void
-gcoOS_SysTraceEnd(
-    IN void);
-
-/*******************************************************************************
-**
-**  gcmFATAL
-**
-**      Print a message to the debugger and execute a break point.
-**
-**  ARGUMENTS:
-**
-**      message Message.
-**      ...     Optional arguments.
-*/
-
-void
-gckOS_DebugFatal(
-    IN gctCONST_STRING Message,
-    ...
-    );
-
-void
-gcoOS_DebugFatal(
-    IN gctCONST_STRING Message,
-    ...
-    );
-
-#if gcmIS_DEBUG(gcdDEBUG_FATAL)
-#   define gcmFATAL             gcoOS_DebugFatal
-#   define gcmkFATAL            gckOS_DebugFatal
-#elif gcdHAS_ELLIPSIS
-#   define gcmFATAL(...)
-#   define gcmkFATAL(...)
-#else
-    gcmINLINE static void
-    __dummy_fatal(
-        IN gctCONST_STRING Message,
-        ...
-        )
-    {
-    }
-#   define gcmFATAL             __dummy_fatal
-#   define gcmkFATAL            __dummy_fatal
-#endif
-
-#define gcmENUM2TEXT(e)         case e: return #e
-
-/*******************************************************************************
-**
-**  gcmTRACE
-**
-**      Print a message to the debugfer if the correct level has been set.  In
-**      retail mode this macro does nothing.
-**
-**  ARGUMENTS:
-**
-**      level   Level of message.
-**      message Message.
-**      ...     Optional arguments.
-*/
-#define gcvLEVEL_NONE           -1
-#define gcvLEVEL_ERROR          0
-#define gcvLEVEL_WARNING        1
-#define gcvLEVEL_INFO           2
-#define gcvLEVEL_VERBOSE        3
-
-void
-gckOS_DebugTrace(
-    IN gctUINT32 Level,
-    IN gctCONST_STRING Message,
-    ...
-    );
-
-void
-gckOS_DebugTraceN(
-    IN gctUINT32 Level,
-    IN gctUINT ArgumentSize,
-    IN gctCONST_STRING Message,
-    ...
-    );
-
-void
-gcoOS_DebugTrace(
-    IN gctUINT32 Level,
-    IN gctCONST_STRING Message,
-    ...
-    );
-
-#if gcmIS_DEBUG(gcdDEBUG_TRACE)
-#   define gcmTRACE             gcoOS_DebugTrace
-#   define gcmkTRACE            gckOS_DebugTrace
-#   define gcmkTRACE_N          gckOS_DebugTraceN
-#elif gcdHAS_ELLIPSIS
-#   define gcmTRACE(...)
-#   define gcmkTRACE(...)
-#   define gcmkTRACE_N(...)
-#else
-    gcmINLINE static void
-    __dummy_trace(
-        IN gctUINT32 Level,
-        IN gctCONST_STRING Message,
-        ...
-        )
-    {
-    }
-
-    gcmINLINE static void
-    __dummy_trace_n(
-        IN gctUINT32 Level,
-        IN gctUINT ArgumentSize,
-        IN gctCONST_STRING Message,
-        ...
-        )
-    {
-    }
-
-#   define gcmTRACE             __dummy_trace
-#   define gcmkTRACE            __dummy_trace
-#   define gcmkTRACE_N          __dummy_trace_n
-#endif
-
-/* Zones common for kernel and user. */
-#define gcvZONE_OS              (1 << 0)
-#define gcvZONE_HARDWARE        (1 << 1)
-#define gcvZONE_HEAP            (1 << 2)
-#define gcvZONE_SIGNAL          (1 << 27)
-
-/* Kernel zones. */
-#define gcvZONE_KERNEL          (1 << 3)
-#define gcvZONE_VIDMEM          (1 << 4)
-#define gcvZONE_COMMAND         (1 << 5)
-#define gcvZONE_DRIVER          (1 << 6)
-#define gcvZONE_CMODEL          (1 << 7)
-#define gcvZONE_MMU             (1 << 8)
-#define gcvZONE_EVENT           (1 << 9)
-#define gcvZONE_DEVICE          (1 << 10)
-#define gcvZONE_DATABASE        (1 << 11)
-#define gcvZONE_INTERRUPT       (1 << 12)
-#define gcvZONE_POWER           (1 << 13)
-
-/* User zones. */
-#define gcvZONE_HAL             (1 << 3)
-#define gcvZONE_BUFFER          (1 << 4)
-#define gcvZONE_CONTEXT         (1 << 5)
-#define gcvZONE_SURFACE         (1 << 6)
-#define gcvZONE_INDEX           (1 << 7)
-#define gcvZONE_STREAM          (1 << 8)
-#define gcvZONE_TEXTURE         (1 << 9)
-#define gcvZONE_2D              (1 << 10)
-#define gcvZONE_3D              (1 << 11)
-#define gcvZONE_COMPILER        (1 << 12)
-#define gcvZONE_MEMORY          (1 << 13)
-#define gcvZONE_STATE           (1 << 14)
-#define gcvZONE_AUX             (1 << 15)
-#define gcvZONE_VERTEX          (1 << 16)
-#define gcvZONE_CL              (1 << 17)
-#define gcvZONE_COMPOSITION     (1 << 17)
-#define gcvZONE_VG              (1 << 18)
-#define gcvZONE_IMAGE           (1 << 19)
-#define gcvZONE_UTILITY         (1 << 20)
-#define gcvZONE_PARAMETERS      (1 << 21)
-#define gcvZONE_BUFOBJ          (1 << 22)
-#define gcvZONE_SHADER          (1 << 23)
-#define gcvZONE_STREAM_OUT      (1 << 24)
-
-/* API definitions. */
-#define gcvZONE_API_HAL         (1 << 28)
-#define gcvZONE_API_EGL         (2 << 28)
-#define gcvZONE_API_ES11        (3 << 28)
-#define gcvZONE_API_ES20        (4 << 28)
-#define gcvZONE_API_VG11        (5 << 28)
-#define gcvZONE_API_GL          (6 << 28)
-#define gcvZONE_API_DFB         (7 << 28)
-#define gcvZONE_API_GDI         ((gctUINT32)8 << 28)
-#define gcvZONE_API_D3D         ((gctUINT32)9 << 28)
-#define gcvZONE_API_ES30        ((gctUINT32)10 << 28)
-
-
-#define gcmZONE_GET_API(zone)   ((zone) >> 28)
-/*Set gcdZONE_MASE like 0x0 | gcvZONE_API_EGL
-will enable print EGL module debug info*/
-#define gcdZONE_MASK            0x0FFFFFFF
-
-/* Handy zones. */
-#define gcvZONE_NONE            0
-#define gcvZONE_ALL             0x0FFFFFFF
-
-/*Dump API depth set 1 for API, 2 for API and API behavior*/
-#define gcvDUMP_API_DEPTH       1
-
-/*******************************************************************************
-**
-**  gcmTRACE_ZONE
-**
-**      Print a message to the debugger if the correct level and zone has been
-**      set.  In retail mode this macro does nothing.
-**
-**  ARGUMENTS:
-**
-**      Level   Level of message.
-**      Zone    Zone of message.
-**      Message Message.
-**      ...     Optional arguments.
-*/
-
-void
-gckOS_DebugTraceZone(
-    IN gctUINT32 Level,
-    IN gctUINT32 Zone,
-    IN gctCONST_STRING Message,
-    ...
-    );
-
-void
-gckOS_DebugTraceZoneN(
-    IN gctUINT32 Level,
-    IN gctUINT32 Zone,
-    IN gctUINT ArgumentSize,
-    IN gctCONST_STRING Message,
-    ...
-    );
-
-void
-gcoOS_DebugTraceZone(
-    IN gctUINT32 Level,
-    IN gctUINT32 Zone,
-    IN gctCONST_STRING Message,
-    ...
-    );
-
-#if gcmIS_DEBUG(gcdDEBUG_TRACE)
-#   define gcmTRACE_ZONE            gcoOS_DebugTraceZone
-#   define gcmkTRACE_ZONE           gckOS_DebugTraceZone
-#   define gcmkTRACE_ZONE_N         gckOS_DebugTraceZoneN
-#elif gcdHAS_ELLIPSIS
-#   define gcmTRACE_ZONE(...)
-#   define gcmkTRACE_ZONE(...)
-#   define gcmkTRACE_ZONE_N(...)
-#else
-    gcmINLINE static void
-    __dummy_trace_zone(
-        IN gctUINT32 Level,
-        IN gctUINT32 Zone,
-        IN gctCONST_STRING Message,
-        ...
-        )
-    {
-    }
-
-    gcmINLINE static void
-    __dummy_trace_zone_n(
-        IN gctUINT32 Level,
-        IN gctUINT32 Zone,
-        IN gctUINT ArgumentSize,
-        IN gctCONST_STRING Message,
-        ...
-        )
-    {
-    }
-
-#   define gcmTRACE_ZONE            __dummy_trace_zone
-#   define gcmkTRACE_ZONE           __dummy_trace_zone
-#   define gcmkTRACE_ZONE_N         __dummy_trace_zone_n
-#endif
-
-/*******************************************************************************
-**
-**  gcmDEBUG_ONLY
-**
-**      Execute a statement or function only in DEBUG mode.
-**
-**  ARGUMENTS:
-**
-**      f       Statement or function to execute.
-*/
-#if gcmIS_DEBUG(gcdDEBUG_CODE)
-#   define gcmDEBUG_ONLY(f)         f
-#else
-#   define gcmDEBUG_ONLY(f)
-#endif
-
-/*******************************************************************************
-**
-**  gcmSTACK_PUSH
-**  gcmSTACK_POP
-**  gcmSTACK_DUMP
-**
-**      Push or pop a function with entry arguments on the trace stack.
-**
-**  ARGUMENTS:
-**
-**      Function    Name of function.
-**      Line        Line number.
-**      Text        Optional text.
-**      ...         Optional arguments for text.
-*/
-#if gcmIS_DEBUG(gcdDEBUG_STACK)
-    void gcoOS_StackPush(IN gctINT8_PTR Identity, IN gctCONST_STRING Function, IN gctINT Line, IN gctCONST_STRING Text, ...);
-    void gcoOS_StackPop(IN gctINT8_PTR Identity, IN gctCONST_STRING Function);
-    void gcoOS_StackDump(void);
-    void gcoOS_StackRemove(IN gctHANDLE Thread);
-
-#   define gcmSTACK_PUSH            gcoOS_StackPush
-#   define gcmSTACK_POP             gcoOS_StackPop
-#   define gcmSTACK_DUMP            gcoOS_StackDump
-#   define gcmSTACK_REMOVE          gcoOS_StackRemove
-#elif gcdHAS_ELLIPSIS
-#   define gcmSTACK_PUSH(...)       do { } while (0)
-#   define gcmSTACK_POP(...)        do { } while (0)
-#   define gcmSTACK_DUMP()          do { } while (0)
-#   define gcmSTACK_REMOVE(...)     do { } while (0)
-#else
-    gcmINLINE static void
-    __dummy_stack_push(
-        IN gctCONST_STRING Function,
-        IN gctINT Line,
-        IN gctCONST_STRING Text, ...
-        )
-    {
-    }
-#   define gcmSTACK_PUSH            __dummy_stack_push
-#   define gcmSTACK_POP(a,b)        do { } while (0)
-#   define gcmSTACK_DUMP()          do { } while (0)
-#   define gcmSTACK_REMOVE(a)       do { } while (0)
-#endif
-
-/******************************************************************************\
-******************************** Binary Trace **********************************
-\******************************************************************************/
-typedef struct _gcsBINARY_TRACE_MESSAGE * gcsBINARY_TRACE_MESSAGE_PTR;
-typedef struct _gcsBINARY_TRACE_MESSAGE
-{
-    gctUINT32   signature;
-    gctUINT32   pid;
-    gctUINT32   tid;
-    gctUINT32   line;
-    gctUINT32   numArguments;
-    gctUINT8    payload;
-}
-gcsBINARY_TRACE_MESSAGE;
-
-#define gcdBINARY_TRACE_MESSAGE_SIZE 240
-
-#if gcdBINARY_TRACE
-    void
-    gcoOS_BinaryTrace(
-        IN gctCONST_STRING Function,
-        IN gctINT Line,
-        IN gctCONST_STRING Text OPTIONAL,
-        ...
-        );
-
-    void
-    gckOS_BinaryTrace(
-        IN gctCONST_STRING Function,
-        IN gctINT Line,
-        IN gctCONST_STRING Text OPTIONAL,
-        ...
-        );
-
-#   define gcmBINARY_TRACE          gcoOS_BinaryTrace
-#   define gcmkBINARY_TRACE         gckOS_BinaryTrace
-#elif gcdHAS_ELLIPSIS
-#   define gcmBINARY_TRACE(Function, Line, Text, ...)
-#   define gcmkBINARY_TRACE(Function, Line, Text, ...)
-#else
-    gcmINLINE static void
-    __dummy_binary_trace(
-        IN gctCONST_STRING Function,
-        IN gctINT Line,
-        IN gctCONST_STRING Text,
-        )
-    {
-    }
-
-#   define gcmBINARY_TRACE          __dummy_binary_trace
-#   define gcmkBINARY_TRACE         __dummy_binary_trace
-#endif
-
-/******************************************************************************\
-******************************** Logging Macros ********************************
-\******************************************************************************/
-
-#define gcdHEADER_LEVEL             gcvLEVEL_VERBOSE
-
-#ifndef gcdEMPTY_HEADER_FOOTER
-#define gcdEMPTY_HEADER_FOOTER 0
-#endif
-
-#if gcdENABLE_PROFILING
-void
-gcoOS_ProfileDB(
-    IN gctCONST_STRING Function,
-    IN OUT gctBOOL_PTR Initialized
-    );
-
-#define gcmHEADER() \
-    gctINT8 __user__ = 1; \
-    static gctBOOL __profile__initialized__ = gcvFALSE; \
-    gcmSTACK_PUSH(&__user__, __FUNCTION__, __LINE__, gcvNULL, gcvNULL); \
-    gcoOS_ProfileDB(__FUNCTION__, &__profile__initialized__)
-#define gcmHEADER_ARG(...) \
-    gctINT8 __user__ = 1; \
-    static gctBOOL __profile__initialized__ = gcvFALSE; \
-    gcmSTACK_PUSH(&__user__, __FUNCTION__, __LINE__, Text, __VA_ARGS__); \
-    gcoOS_ProfileDB(__FUNCTION__, &__profile__initialized__)
-#define gcmFOOTER() \
-    gcmSTACK_POP(&__user__, __FUNCTION__); \
-    gcoOS_ProfileDB(__FUNCTION__, gcvNULL)
-#define gcmFOOTER_NO() \
-    gcmSTACK_POP(&__user__, __FUNCTION__); \
-    gcoOS_ProfileDB(__FUNCTION__, gcvNULL)
-#define gcmFOOTER_ARG(...) \
-    gcmSTACK_POP(&__user__, __FUNCTION__); \
-    gcoOS_ProfileDB(__FUNCTION__, gcvNULL)
-#define gcmFOOTER_KILL() \
-    gcmSTACK_POP(&__user__, __FUNCTION__); \
-    gcoOS_ProfileDB(gcvNULL, gcvNULL)
-
-#else /* gcdENABLE_PROFILING */
-
-#if gcdEMPTY_HEADER_FOOTER
-#   define gcmHEADER()
-#elif gcdHAS_ELLIPSIS
-#define gcmHEADER() \
-    gctINT8 __user__ = 1; \
-    gctINT8_PTR __user_ptr__ = &__user__; \
-    gcmSTACK_PUSH(__user_ptr__, __FUNCTION__, __LINE__, gcvNULL, gcvNULL); \
-    gcmBINARY_TRACE(__FUNCTION__, __LINE__, gcvNULL, gcvNULL); \
-    gcmTRACE_ZONE(gcdHEADER_LEVEL, _GC_OBJ_ZONE, \
-                  "++%s(%d)", __FUNCTION__, __LINE__)
-#else
-    gcmINLINE static void
-    __dummy_header(void)
-    {
-    }
-#   define gcmHEADER                   __dummy_header
-#endif
-
-#if gcdHAS_ELLIPSIS
-#if gcdEMPTY_HEADER_FOOTER
-#   define gcmHEADER_ARG(Text, ...)
-#else
-#   define gcmHEADER_ARG(Text, ...) \
-        gctINT8 __user__ = 1; \
-        gctINT8_PTR __user_ptr__ = &__user__; \
-        gcmSTACK_PUSH(__user_ptr__, __FUNCTION__, __LINE__, Text, __VA_ARGS__); \
-        gcmBINARY_TRACE(__FUNCTION__, __LINE__, Text, __VA_ARGS__); \
-        gcmTRACE_ZONE(gcdHEADER_LEVEL, _GC_OBJ_ZONE, \
-                      "++%s(%d): " Text, __FUNCTION__, __LINE__, __VA_ARGS__)
-#endif
-#else
-    gcmINLINE static void
-    __dummy_header_arg(
-        IN gctCONST_STRING Text,
-        ...
-        )
-    {
-    }
-#   define gcmHEADER_ARG                __dummy_header_arg
-#endif
-
-#if gcdEMPTY_HEADER_FOOTER
-#   define gcmFOOTER()
-#elif gcdHAS_ELLIPSIS
-#   define gcmFOOTER() \
-    gcmSTACK_POP(__user_ptr__, __FUNCTION__); \
-    gcmBINARY_TRACE(__FUNCTION__, __LINE__, gcvNULL, gcvNULL); \
-    gcmTRACE_ZONE(gcdHEADER_LEVEL, _GC_OBJ_ZONE, \
-                  "--%s(%d): status=%d(%s)", \
-                  __FUNCTION__, __LINE__, \
-                  status, gcoOS_DebugStatus2Name(status)); \
-    *__user_ptr__ -= 1
-#else
-    gcmINLINE static void
-    __dummy_footer(void)
-    {
-    }
-#   define gcmFOOTER                    __dummy_footer
-#endif
-
-#if gcdEMPTY_HEADER_FOOTER
-#   define gcmFOOTER_NO()
-#elif gcdHAS_ELLIPSIS
-#define gcmFOOTER_NO() \
-    gcmSTACK_POP(__user_ptr__, __FUNCTION__); \
-    gcmBINARY_TRACE(__FUNCTION__, __LINE__, gcvNULL, gcvNULL); \
-    gcmTRACE_ZONE(gcdHEADER_LEVEL, _GC_OBJ_ZONE, \
-                  "--%s(%d)", __FUNCTION__, __LINE__); \
-    *__user_ptr__ -= 1
-#else
-    gcmINLINE static void
-    __dummy_footer_no(void)
-    {
-    }
-#   define gcmFOOTER_NO                 __dummy_footer_no
-#endif
-
-#if gcdEMPTY_HEADER_FOOTER
-#   define gcmFOOTER_KILL()
-#elif gcdHAS_ELLIPSIS
-#define gcmFOOTER_KILL() \
-    gcmSTACK_POP(__user_ptr__, __FUNCTION__); \
-    gcmBINARY_TRACE(__FUNCTION__, __LINE__, gcvNULL, gcvNULL); \
-    gcmTRACE_ZONE(gcdHEADER_LEVEL, _GC_OBJ_ZONE, \
-                  "--%s(%d)", __FUNCTION__, __LINE__); \
-    *__user_ptr__ -= 1
-#else
-    gcmINLINE static void
-    __dummy_footer_kill(void)
-    {
-    }
-#   define gcmFOOTER_KILL               __dummy_footer_kill
-#endif
-
-#if gcdHAS_ELLIPSIS
-#if gcdEMPTY_HEADER_FOOTER
-#   define gcmFOOTER_ARG(Text, ...)
-#else
-#   define gcmFOOTER_ARG(Text, ...) \
-        gcmSTACK_POP(__user_ptr__, __FUNCTION__); \
-        gcmBINARY_TRACE(__FUNCTION__, __LINE__, Text, __VA_ARGS__); \
-        gcmTRACE_ZONE(gcdHEADER_LEVEL, _GC_OBJ_ZONE, \
-                      "--%s(%d): " Text, __FUNCTION__, __LINE__, __VA_ARGS__); \
-        *__user_ptr__ -= 1
-#endif
-#else
-    gcmINLINE static void
-    __dummy_footer_arg(
-        IN gctCONST_STRING Text,
-        ...
-        )
-    {
-    }
-#   define gcmFOOTER_ARG                __dummy_footer_arg
-#endif
-
-#endif /* gcdENABLE_PROFILING */
-
-#if gcdHAS_ELLIPSIS
-#define gcmkHEADER() \
-    gctINT8 __kernel__ = 1; \
-    gctINT8_PTR __kernel_ptr__ = &__kernel__; \
-    gcmkBINARY_TRACE(__FUNCTION__, __LINE__, gcvNULL, gcvNULL); \
-    gcmkTRACE_ZONE(gcdHEADER_LEVEL, _GC_OBJ_ZONE, \
-                   "++%s(%d)", __FUNCTION__, __LINE__)
-#else
-    gcmINLINE static void
-    __dummy_kheader(void)
-    {
-    }
-#   define gcmkHEADER                  __dummy_kheader
-#endif
-
-#if gcdHAS_ELLIPSIS
-#   define gcmkHEADER_ARG(Text, ...) \
-        gctINT8 __kernel__ = 1; \
-        gctINT8_PTR __kernel_ptr__ = &__kernel__; \
-        gcmkBINARY_TRACE(__FUNCTION__, __LINE__, Text, __VA_ARGS__); \
-        gcmkTRACE_ZONE(gcdHEADER_LEVEL, _GC_OBJ_ZONE, \
-                       "++%s(%d): " Text, __FUNCTION__, __LINE__, __VA_ARGS__)
-#else
-    gcmINLINE static void
-    __dummy_kheader_arg(
-        IN gctCONST_STRING Text,
-        ...
-        )
-    {
-    }
-#   define gcmkHEADER_ARG               __dummy_kheader_arg
-#endif
-
-#if gcdHAS_ELLIPSIS
-#define gcmkFOOTER() \
-    gcmkBINARY_TRACE(__FUNCTION__, __LINE__, gcvNULL, status); \
-    gcmkTRACE_ZONE(gcdHEADER_LEVEL, _GC_OBJ_ZONE, \
-                   "--%s(%d): status=%d(%s)", \
-                   __FUNCTION__, __LINE__, status, gckOS_DebugStatus2Name(status)); \
-    *__kernel_ptr__ -= 1
-#else
-    gcmINLINE static void
-    __dummy_kfooter(void)
-    {
-    }
-#   define gcmkFOOTER                   __dummy_kfooter
-#endif
-
-#if gcdHAS_ELLIPSIS
-#define gcmkFOOTER_NO() \
-    gcmkBINARY_TRACE(__FUNCTION__, __LINE__, gcvNULL, gcvNULL); \
-    gcmkTRACE_ZONE(gcdHEADER_LEVEL, _GC_OBJ_ZONE, \
-                   "--%s(%d)", __FUNCTION__, __LINE__); \
-    *__kernel_ptr__ -= 1
-#else
-    gcmINLINE static void
-    __dummy_kfooter_no(void)
-    {
-    }
-#   define gcmkFOOTER_NO                __dummy_kfooter_no
-#endif
-
-#if gcdHAS_ELLIPSIS
-#   define gcmkFOOTER_ARG(Text, ...) \
-        gcmkBINARY_TRACE(__FUNCTION__, __LINE__, Text, __VA_ARGS__); \
-        gcmkTRACE_ZONE(gcdHEADER_LEVEL, _GC_OBJ_ZONE, \
-                       "--%s(%d): " Text, \
-                       __FUNCTION__, __LINE__, __VA_ARGS__); \
-        *__kernel_ptr__ -= 1
-#else
-    gcmINLINE static void
-    __dummy_kfooter_arg(
-        IN gctCONST_STRING Text,
-        ...
-        )
-    {
-    }
-#   define gcmkFOOTER_ARG               __dummy_kfooter_arg
-#endif
-
-#define gcmOPT_VALUE(ptr)               (((ptr) == gcvNULL) ? 0 : *(ptr))
-#define gcmOPT_VALUE_INDEX(ptr, index)  (((ptr) == gcvNULL) ? 0 : ptr[index])
-#define gcmOPT_POINTER(ptr)             (((ptr) == gcvNULL) ? gcvNULL : *(ptr))
-#define gcmOPT_STRING(ptr)              (((ptr) == gcvNULL) ? "(nil)" : (ptr))
-
-void
-gckOS_Print(
-    IN gctCONST_STRING Message,
-    ...
-    );
-
-void
-gckOS_PrintN(
-    IN gctUINT ArgumentSize,
-    IN gctCONST_STRING Message,
-    ...
-    );
-
-void
-gckOS_CopyPrint(
-    IN gctCONST_STRING Message,
-    ...
-    );
-
-void
-gcoOS_Print(
-    IN gctCONST_STRING Message,
-    ...
-    );
-
-#define gcmPRINT                gcoOS_Print
-#define gcmkPRINT               gckOS_Print
-#define gcmkPRINT_N             gckOS_PrintN
-
-#if gcdPRINT_VERSION
-#   define gcmPRINT_VERSION()       do { \
-                                        _gcmPRINT_VERSION(gcm); \
-                                        gcmSTACK_DUMP(); \
-                                    } while (0)
-#   define gcmkPRINT_VERSION()      _gcmPRINT_VERSION(gcmk)
-#   define _gcmPRINT_VERSION(prefix) \
-        prefix##TRACE(gcvLEVEL_ERROR, \
-                      "Vivante HAL version %d.%d.%d build %d  %s  %s", \
-                      gcvVERSION_MAJOR, gcvVERSION_MINOR, gcvVERSION_PATCH, \
-                      gcvVERSION_BUILD, gcvVERSION_DATE, gcvVERSION_TIME )
-#else
-#   define gcmPRINT_VERSION()       do { gcmSTACK_DUMP(); } while (gcvFALSE)
-#   define gcmkPRINT_VERSION()      do { } while (gcvFALSE)
-#endif
-
-typedef enum _gceDUMP_BUFFER
-{
-    gceDUMP_BUFFER_CONTEXT,
-    gceDUMP_BUFFER_USER,
-    gceDUMP_BUFFER_KERNEL,
-    gceDUMP_BUFFER_LINK,
-    gceDUMP_BUFFER_WAITLINK,
-    gceDUMP_BUFFER_FROM_USER,
-}
-gceDUMP_BUFFER;
-
-void
-gckOS_DumpBuffer(
-    IN gckOS Os,
-    IN gctPOINTER Buffer,
-    IN gctUINT Size,
-    IN gceDUMP_BUFFER Type,
-    IN gctBOOL CopyMessage
-    );
-
-#define gcmkDUMPBUFFER          gckOS_DumpBuffer
-
-#if gcdDUMP_COMMAND
-#   define gcmkDUMPCOMMAND(Os, Buffer, Size, Type, CopyMessage) \
-        gcmkDUMPBUFFER(Os, Buffer, Size, Type, CopyMessage)
-#else
-#   define gcmkDUMPCOMMAND(Os, Buffer, Size, Type, CopyMessage)
-#endif
-
-#if gcmIS_DEBUG(gcdDEBUG_CODE)
-
-void
-gckOS_DebugFlush(
-    gctCONST_STRING CallerName,
-    gctUINT LineNumber,
-    gctUINT32 DmaAddress
-    );
-
-#   define gcmkDEBUGFLUSH(DmaAddress) \
-        gckOS_DebugFlush(__FUNCTION__, __LINE__, DmaAddress)
-#else
-#   define gcmkDEBUGFLUSH(DmaAddress)
-#endif
-
-/*******************************************************************************
-**
-**  gcmDUMP_FRAMERATE
-**
-**      Print average frame rate
-**
-*/
-#if gcdDUMP_FRAMERATE
-    gceSTATUS
-    gcfDumpFrameRate(
-        void
-    );
-#   define gcmDUMP_FRAMERATE        gcfDumpFrameRate
-#elif gcdHAS_ELLIPSIS
-#   define gcmDUMP_FRAMERATE(...)
-#else
-    gcmINLINE static void
-    __dummy_dump_frame_rate(
-        void
-        )
-    {
-    }
-#   define gcmDUMP_FRAMERATE        __dummy_dump_frame_rate
-#endif
-
-
-/*******************************************************************************
-**
-**  gcmDUMP
-**
-**      Print a dump message.
-**
-**  ARGUMENTS:
-**
-**      gctSTRING   Message.
-**
-**      ...         Optional arguments.
-*/
-#if gcdDUMP
-    gceSTATUS
-    gcfDump(
-        IN gcoOS Os,
-        IN gctCONST_STRING String,
-        ...
-        );
-#  define gcmDUMP               gcfDump
-#elif gcdHAS_ELLIPSIS
-#  define gcmDUMP(...)
-#else
-    gcmINLINE static void
-    __dummy_dump(
-        IN gcoOS Os,
-        IN gctCONST_STRING Message,
-        ...
-        )
-    {
-    }
-#  define gcmDUMP               __dummy_dump
-#endif
-
-/*******************************************************************************
-**
-**  gcmDUMP_DATA
-**
-**      Add data to the dump.
-**
-**  ARGUMENTS:
-**
-**      gctSTRING Tag
-**          Tag for dump.
-**
-**      gctPOINTER Logical
-**          Logical address of buffer.
-**
-**      gctSIZE_T Bytes
-**          Number of bytes.
-*/
-
-#if gcdDUMP || gcdDUMP_COMMAND
-    gceSTATUS
-    gcfDumpData(
-        IN gcoOS Os,
-        IN gctSTRING Tag,
-        IN gctPOINTER Logical,
-        IN gctSIZE_T Bytes
-        );
-#  define gcmDUMP_DATA          gcfDumpData
-#elif gcdHAS_ELLIPSIS
-#  define gcmDUMP_DATA(...)
-#else
-    gcmINLINE static void
-    __dummy_dump_data(
-        IN gcoOS Os,
-        IN gctSTRING Tag,
-        IN gctPOINTER Logical,
-        IN gctSIZE_T Bytes
-        )
-    {
-    }
-#  define gcmDUMP_DATA          __dummy_dump_data
-#endif
-
-/*******************************************************************************
-**
-**  gcmDUMP_BUFFER
-**
-**      Print a buffer to the dump.
-**
-**  ARGUMENTS:
-**
-**      gctSTRING Tag
-**          Tag for dump.
-**
-**      gctUINT32 Physical
-**          Physical address of buffer.
-**
-**      gctPOINTER Logical
-**          Logical address of buffer.
-**
-**      gctUINT32 Offset
-**          Offset into buffer.
-**
-**      gctSIZE_T Bytes
-**          Number of bytes.
-*/
-
-#if gcdDUMP || gcdDUMP_COMMAND
-gceSTATUS
-gcfDumpBuffer(
-    IN gcoOS Os,
-    IN gctSTRING Tag,
-    IN gctUINT32 Physical,
-    IN gctPOINTER Logical,
-    IN gctUINT32 Offset,
-    IN gctSIZE_T Bytes
-    );
-#   define gcmDUMP_BUFFER       gcfDumpBuffer
-#elif gcdHAS_ELLIPSIS
-#   define gcmDUMP_BUFFER(...)
-#else
-    gcmINLINE static void
-    __dummy_dump_buffer(
-        IN gcoOS Os,
-        IN gctSTRING Tag,
-        IN gctUINT32 Physical,
-        IN gctPOINTER Logical,
-        IN gctUINT32 Offset,
-        IN gctSIZE_T Bytes
-        )
-    {
-    }
-#   define gcmDUMP_BUFFER       __dummy_dump_buffer
-#endif
-
-/*******************************************************************************
-**
-**  gcmDUMP_API
-**
-**      Print a dump message for a high level API prefixed by the function name.
-**
-**  ARGUMENTS:
-**
-**      gctSTRING   Message.
-**
-**      ...         Optional arguments.
-*/
-gceSTATUS gcfDumpApi(IN gctCONST_STRING String, ...);
-#if gcdDUMP_API
-#   define gcmDUMP_API           gcfDumpApi
-#elif gcdHAS_ELLIPSIS
-#   define gcmDUMP_API(...)
-#else
-    gcmINLINE static void
-    __dummy_dump_api(
-        IN gctCONST_STRING Message,
-        ...
-        )
-    {
-    }
-#  define gcmDUMP_API           __dummy_dump_api
-#endif
-
-/*******************************************************************************
-**
-**  gcmDUMP_API_ARRAY
-**
-**      Print an array of data.
-**
-**  ARGUMENTS:
-**
-**      gctUINT32_PTR   Pointer to array.
-**      gctUINT32       Size.
-*/
-gceSTATUS gcfDumpArray(IN gctCONST_POINTER Data, IN gctUINT32 Size);
-#if gcdDUMP_API
-#   define gcmDUMP_API_ARRAY        gcfDumpArray
-#elif gcdHAS_ELLIPSIS
-#   define gcmDUMP_API_ARRAY(...)
-#else
-    gcmINLINE static void
-    __dummy_dump_api_array(
-        IN gctCONST_POINTER Data,
-        IN gctUINT32 Size
-        )
-    {
-    }
-#   define gcmDUMP_API_ARRAY        __dummy_dump_api_array
-#endif
-
-/*******************************************************************************
-**
-**  gcmDUMP_API_ARRAY_TOKEN
-**
-**      Print an array of data terminated by a token.
-**
-**  ARGUMENTS:
-**
-**      gctUINT32_PTR   Pointer to array.
-**      gctUINT32       Termination.
-*/
-gceSTATUS gcfDumpArrayToken(IN gctCONST_POINTER Data, IN gctUINT32 Termination);
-#if gcdDUMP_API
-#   define gcmDUMP_API_ARRAY_TOKEN  gcfDumpArrayToken
-#elif gcdHAS_ELLIPSIS
-#   define gcmDUMP_API_ARRAY_TOKEN(...)
-#else
-    gcmINLINE static void
-    __dummy_dump_api_array_token(
-        IN gctCONST_POINTER Data,
-        IN gctUINT32 Termination
-        )
-    {
-    }
-#   define gcmDUMP_API_ARRAY_TOKEN  __dummy_dump_api_array_token
-#endif
-
-/*******************************************************************************
-**
-**  gcmDUMP_API_DATA
-**
-**      Print an array of bytes.
-**
-**  ARGUMENTS:
-**
-**      gctCONST_POINTER    Pointer to array.
-**      gctSIZE_T           Size.
-*/
-gceSTATUS gcfDumpApiData(IN gctCONST_POINTER Data, IN gctSIZE_T Size);
-#if gcdDUMP_API
-#   define gcmDUMP_API_DATA         gcfDumpApiData
-#elif gcdHAS_ELLIPSIS
-#   define gcmDUMP_API_DATA(...)
-#else
-    gcmINLINE static void
-    __dummy_dump_api_data(
-        IN gctCONST_POINTER Data,
-        IN gctSIZE_T Size
-        )
-    {
-    }
-#   define gcmDUMP_API_DATA         __dummy_dump_api_data
-#endif
-
-/*******************************************************************************
-** gcmDUMP_2D_COMMAND
-**
-**      Print the 2D command buffer.
-**
-**  ARGUMENTS:
-**
-**      gctUINT32_PTR       Pointer to the command buffer.
-**      gctUINT32           Command buffer size.
-*/
-gceSTATUS gcfDump2DCommand(IN gctUINT32_PTR Command, IN gctUINT32 Size);
-#if gcdDUMP_2D
-#   define gcmDUMP_2D_COMMAND       gcfDump2DCommand
-#elif gcdHAS_ELLIPSIS
-#   define gcmDUMP_2D_COMMAND(...)
-#else
-    gcmINLINE static void
-    __dummy_dump_2d_command(
-        IN gctUINT32_PTR Command,
-        IN gctUINT32 Size
-        )
-    {
-    }
-#   define gcmDUMP_2D_COMMAND       __dummy_dump_2d_command
-#endif
-
-/*******************************************************************************
-** gcmDUMP_2D_SURFACE
-**
-**      Print the 2D surface memory.
-**
-**  ARGUMENTS:
-**
-**      gctBOOL             Src.
-**      gctUINT32           Address.
-*/
-gceSTATUS gcfDump2DSurface(IN gctBOOL Src, IN gctUINT32 Address);
-#if gcdDUMP_2D
-#   define gcmDUMP_2D_SURFACE       gcfDump2DSurface
-#elif gcdHAS_ELLIPSIS
-#   define gcmDUMP_2D_SURFACE(...)
-#else
-    gcmINLINE static void
-    __dummy_dump_2d_surface(
-        IN gctBOOL Src,
-        IN gctUINT32 Address
-        )
-    {
-    }
-#   define gcmDUMP_2D_SURFACE       __dummy_dump_2d_surface
-#endif
-
-/*******************************************************************************
-** gcmDUMP_ADD_MEMORY_INFO
-**
-**      Record the memory info.
-**
-**  ARGUMENTS:
-**
-**      gctUINT32           Address.
-**      gctSIZE_T           Size.
-*/
-gceSTATUS gcfAddMemoryInfo(IN gctUINT32 GPUAddress, IN gctPOINTER Logical, IN gctUINT32 Physical, IN gctUINT32 Size);
-#if gcdDUMP_2D
-#   define gcmDUMP_ADD_MEMORY_INFO  gcfAddMemoryInfo
-#elif gcdHAS_ELLIPSIS
-#   define gcmDUMP_ADD_MEMORY_INFO(...)
-#else
-    gcmINLINE static void
-    __dummy_dump_add_memory_info(
-        IN gctUINT32 GPUAddress,
-        IN gctPOINTER Logical,
-        IN gctUINT32 Physical,
-        IN gctUINT32 Size
-        )
-    {
-    }
-#   define gcmDUMP_ADD_MEMORY_INFO  __dummy_dump_add_memory_info
-#endif
-
-/*******************************************************************************
-** gcmDUMP_DEL_MEMORY_INFO
-**
-**      Record the memory info.
-**
-**  ARGUMENTS:
-**
-**      gctUINT32           Address.
-*/
-gceSTATUS gcfDelMemoryInfo(IN gctUINT32 Address);
-#if gcdDUMP_2D
-#   define gcmDUMP_DEL_MEMORY_INFO  gcfDelMemoryInfo
-#elif gcdHAS_ELLIPSIS
-#   define gcmDUMP_DEL_MEMORY_INFO(...)
-#else
-    gcmINLINE static void
-    __dummy_dump_del_memory_info(
-        IN gctUINT32 Address
-        )
-    {
-    }
-#   define gcmDUMP_DEL_MEMORY_INFO  __dummy_dump_del_memory_info
-#endif
-
-#if gcdDUMP_2D
-extern gctPOINTER dumpMemInfoListMutex;
-extern gctBOOL    dump2DFlag;
-#endif
-
-/*******************************************************************************
-**
-**  gcmTRACE_RELEASE
-**
-**      Print a message to the shader debugger.
-**
-**  ARGUMENTS:
-**
-**      message Message.
-**      ...     Optional arguments.
-*/
-
-#define gcmTRACE_RELEASE                gcoOS_DebugShaderTrace
-
-void
-gcoOS_DebugShaderTrace(
-    IN gctCONST_STRING Message,
-    ...
-    );
-
-void
-gcoOS_SetDebugShaderFiles(
-    IN gctCONST_STRING VSFileName,
-    IN gctCONST_STRING FSFileName
-    );
-
-void
-gcoOS_SetDebugShaderFileType(
-    IN gctUINT32 ShaderType
-    );
-
-void
-gcoOS_EnableDebugBuffer(
-    IN gctBOOL Enable
-    );
-
-/*******************************************************************************
-**
-**  gcmBREAK
-**
-**      Break into the debugger.  In retail mode this macro does nothing.
-**
-**  ARGUMENTS:
-**
-**      None.
-*/
-
-void
-gcoOS_DebugBreak(
-    void
-    );
-
-void
-gckOS_DebugBreak(
-    void
-    );
-
-#if gcmIS_DEBUG(gcdDEBUG_BREAK)
-#   define gcmBREAK             gcoOS_DebugBreak
-#   define gcmkBREAK            gckOS_DebugBreak
-#else
-#   define gcmBREAK()
-#   define gcmkBREAK()
-#endif
-
-/*******************************************************************************
-**
-**  gcmASSERT
-**
-**      Evaluate an expression and break into the debugger if the expression
-**      evaluates to false.  In retail mode this macro does nothing.
-**
-**  ARGUMENTS:
-**
-**      exp     Expression to evaluate.
-*/
-#if gcmIS_DEBUG(gcdDEBUG_ASSERT)
-#   define _gcmASSERT(prefix, exp) \
-        do \
-        { \
-            if (!(exp)) \
-            { \
-                prefix##TRACE(gcvLEVEL_ERROR, \
-                              #prefix "ASSERT at %s(%d)", \
-                              __FUNCTION__, __LINE__); \
-                prefix##TRACE(gcvLEVEL_ERROR, \
-                              "(%s)", #exp); \
-                prefix##BREAK(); \
-            } \
-        } \
-        while (gcvFALSE)
-#   define gcmASSERT(exp)           _gcmASSERT(gcm, exp)
-#   define gcmkASSERT(exp)          _gcmASSERT(gcmk, exp)
-#else
-#   define gcmASSERT(exp)
-#   define gcmkASSERT(exp)
-#endif
-
-/*******************************************************************************
-**
-**  gcmVERIFY
-**
-**      Verify if an expression returns true.  If the expression does not
-**      evaluates to true, an assertion will happen in debug mode.
-**
-**  ARGUMENTS:
-**
-**      exp     Expression to evaluate.
-*/
-#if gcmIS_DEBUG(gcdDEBUG_ASSERT)
-#   define gcmVERIFY(exp)           gcmASSERT(exp)
-#   define gcmkVERIFY(exp)          gcmkASSERT(exp)
-#else
-#   define gcmVERIFY(exp)           exp
-#   define gcmkVERIFY(exp)          exp
-#endif
-
-/*******************************************************************************
-**
-**  gcmVERIFY_OK
-**
-**      Verify a fucntion returns gcvSTATUS_OK.  If the function does not return
-**      gcvSTATUS_OK, an assertion will happen in debug mode.
-**
-**  ARGUMENTS:
-**
-**      func    Function to evaluate.
-*/
-
-void
-gcoOS_Verify(
-    IN gceSTATUS status
-    );
-
-void
-gckOS_Verify(
-    IN gceSTATUS status
-    );
-
-#if gcmIS_DEBUG(gcdDEBUG_ASSERT)
-#   define gcmVERIFY_OK(func) \
-        do \
-        { \
-            gceSTATUS verifyStatus = func; \
-            gcoOS_Verify(verifyStatus); \
-            if (verifyStatus != gcvSTATUS_OK) \
-            { \
-                gcmTRACE( \
-                    gcvLEVEL_ERROR, \
-                    "gcmVERIFY_OK(%d): function returned %d", \
-                    __LINE__, verifyStatus \
-                    ); \
-            } \
-            gcmASSERT(verifyStatus == gcvSTATUS_OK); \
-        } \
-        while (gcvFALSE)
-#   define gcmkVERIFY_OK(func) \
-        do \
-        { \
-            gceSTATUS verifyStatus = func; \
-            if (verifyStatus != gcvSTATUS_OK) \
-            { \
-                gcmkTRACE( \
-                    gcvLEVEL_ERROR, \
-                    "gcmkVERIFY_OK(%d): function returned %d", \
-                    __LINE__, verifyStatus \
-                    ); \
-            } \
-            gckOS_Verify(verifyStatus); \
-            gcmkASSERT(verifyStatus == gcvSTATUS_OK); \
-        } \
-        while (gcvFALSE)
-#else
-#   define gcmVERIFY_OK(func)       func
-#   define gcmkVERIFY_OK(func)      func
-#endif
-
-gctCONST_STRING
-gcoOS_DebugStatus2Name(
-    gceSTATUS status
-    );
-
-gctCONST_STRING
-gckOS_DebugStatus2Name(
-    gceSTATUS status
-    );
-
-/*******************************************************************************
-**
-**  gcmERR_BREAK
-**
-**      Executes a break statement on error.
-**
-**  ASSUMPTIONS:
-**
-**      'status' variable of gceSTATUS type must be defined.
-**
-**  ARGUMENTS:
-**
-**      func    Function to evaluate.
-*/
-#define _gcmERR_BREAK(prefix, func) \
-    status = func; \
-    if (gcmIS_ERROR(status)) \
-    { \
-        prefix##PRINT_VERSION(); \
-        prefix##TRACE(gcvLEVEL_ERROR, \
-            #prefix "ERR_BREAK: status=%d(%s) @ %s(%d)", \
-            status, gcoOS_DebugStatus2Name(status), __FUNCTION__, __LINE__); \
-        break; \
-    } \
-    do { } while (gcvFALSE)
-#define _gcmkERR_BREAK(prefix, func) \
-    status = func; \
-    if (gcmIS_ERROR(status)) \
-    { \
-        prefix##PRINT_VERSION(); \
-        prefix##TRACE(gcvLEVEL_ERROR, \
-            #prefix "ERR_BREAK: status=%d(%s) @ %s(%d)", \
-            status, gckOS_DebugStatus2Name(status), __FUNCTION__, __LINE__); \
-        break; \
-    } \
-    do { } while (gcvFALSE)
-#define gcmERR_BREAK(func)          _gcmERR_BREAK(gcm, func)
-#define gcmkERR_BREAK(func)         _gcmkERR_BREAK(gcmk, func)
-
-/*******************************************************************************
-**
-**  gcmERR_RETURN
-**
-**      Executes a return on error.
-**
-**  ASSUMPTIONS:
-**
-**      'status' variable of gceSTATUS type must be defined.
-**
-**  ARGUMENTS:
-**
-**      func    Function to evaluate.
-*/
-#define _gcmERR_RETURN(prefix, func) \
-    status = func; \
-    if (gcmIS_ERROR(status)) \
-    { \
-        prefix##PRINT_VERSION(); \
-        prefix##TRACE(gcvLEVEL_ERROR, \
-            #prefix "ERR_RETURN: status=%d(%s) @ %s(%d)", \
-            status, gcoOS_DebugStatus2Name(status), __FUNCTION__, __LINE__); \
-        prefix##FOOTER(); \
-        return status; \
-    } \
-    do { } while (gcvFALSE)
-#define _gcmkERR_RETURN(prefix, func) \
-    status = func; \
-    if (gcmIS_ERROR(status)) \
-    { \
-        prefix##PRINT_VERSION(); \
-        prefix##TRACE(gcvLEVEL_ERROR, \
-            #prefix "ERR_RETURN: status=%d(%s) @ %s(%d)", \
-            status, gckOS_DebugStatus2Name(status), __FUNCTION__, __LINE__); \
-        prefix##FOOTER(); \
-        return status; \
-    } \
-    do { } while (gcvFALSE)
-#define gcmERR_RETURN(func)         _gcmERR_RETURN(gcm, func)
-#define gcmkERR_RETURN(func)        _gcmkERR_RETURN(gcmk, func)
-
-
-/*******************************************************************************
-**
-**  gcmONERROR
-**
-**      Jump to the error handler in case there is an error.
-**
-**  ASSUMPTIONS:
-**
-**      'status' variable of gceSTATUS type must be defined.
-**
-**  ARGUMENTS:
-**
-**      func    Function to evaluate.
-*/
-#define _gcmONERROR(prefix, func) \
-    do \
-    { \
-        status = func; \
-        if (gcmIS_ERROR(status)) \
-        { \
-            prefix##PRINT_VERSION(); \
-            prefix##TRACE(gcvLEVEL_ERROR, \
-                #prefix "ONERROR: status=%d(%s) @ %s(%d)", \
-                status, gcoOS_DebugStatus2Name(status), __FUNCTION__, __LINE__); \
-            goto OnError; \
-        } \
-    } \
-    while (gcvFALSE)
-#define _gcmkONERROR(prefix, func) \
-    do \
-    { \
-        status = func; \
-        if (gcmIS_ERROR(status)) \
-        { \
-            prefix##PRINT_VERSION(); \
-            prefix##TRACE(gcvLEVEL_ERROR, \
-                #prefix "ONERROR: status=%d(%s) @ %s(%d)", \
-                status, gckOS_DebugStatus2Name(status), __FUNCTION__, __LINE__); \
-            goto OnError; \
-        } \
-    } \
-    while (gcvFALSE)
-#define gcmONERROR(func)            _gcmONERROR(gcm, func)
-#define gcmkONERROR(func)           _gcmkONERROR(gcmk, func)
-
-/*******************************************************************************
-**
-**  gcmkSAFECASTSIZET
-**
-**      Check wether value of a gctSIZE_T varible beyond the capability
-**      of 32bits GPU hardware.
-**
-**  ASSUMPTIONS:
-**
-**
-**
-**  ARGUMENTS:
-**
-**      x   A gctUINT32 variable
-**      y   A gctSIZE_T variable
-*/
-#define gcmkSAFECASTSIZET(x, y) \
-    do \
-    { \
-        gctUINT32 tmp = (gctUINT32)(y); \
-        if (gcmSIZEOF(gctSIZE_T) > gcmSIZEOF(gctUINT32)) \
-        { \
-            gcmkASSERT(tmp <= gcvMAXUINT32); \
-            } \
-        (x) = tmp; \
-    } \
-    while (gcvFALSE)
-
-#define gcmSAFECASTSIZET(x, y) \
-    do \
-    { \
-        gctUINT32 tmp = (gctUINT32)(y); \
-        if (gcmSIZEOF(gctSIZE_T) > gcmSIZEOF(gctUINT32)) \
-        { \
-            gcmASSERT(tmp <= gcvMAXUINT32); \
-            } \
-        (x) = tmp; \
-    } \
-    while (gcvFALSE)
-
-/*******************************************************************************
-**
-**  gcmVERIFY_LOCK
-**
-**      Verifies whether the surface is locked.
-**
-**  ARGUMENTS:
-**
-**      surfaceInfo Pointer to the surface iniformational structure.
-*/
-#define gcmVERIFY_LOCK(surfaceInfo) \
-    if (!surfaceInfo->node.valid) \
-    { \
-        gcmONERROR(gcvSTATUS_MEMORY_UNLOCKED); \
-    } \
-
-/*******************************************************************************
-**
-**  gcmVERIFY_NODE_LOCK
-**
-**      Verifies whether the surface node is locked.
-**
-**  ARGUMENTS:
-**
-**      surfaceInfo Pointer to the surface iniformational structure.
-*/
-#define gcmVERIFY_NODE_LOCK(surfaceNode) \
-    if (!(surfaceNode)->valid) \
-    { \
-        status = gcvSTATUS_MEMORY_UNLOCKED; \
-        break; \
-    } \
-    do { } while (gcvFALSE)
-
-/*******************************************************************************
-**
-**  gcmBADOBJECT_BREAK
-**
-**      Executes a break statement on bad object.
-**
-**  ARGUMENTS:
-**
-**      obj     Object to test.
-**      t       Expected type of the object.
-*/
-#define gcmBADOBJECT_BREAK(obj, t) \
-    if ((obj == gcvNULL) \
-    ||  (((gcsOBJECT *)(obj))->type != t) \
-    ) \
-    { \
-        status = gcvSTATUS_INVALID_OBJECT; \
-        break; \
-    } \
-    do { } while (gcvFALSE)
-
-/*******************************************************************************
-**
-**  gcmCHECK_STATUS
-**
-**      Executes a break statement on error.
-**
-**  ASSUMPTIONS:
-**
-**      'status' variable of gceSTATUS type must be defined.
-**
-**  ARGUMENTS:
-**
-**      func    Function to evaluate.
-*/
-#define _gcmCHECK_STATUS(prefix, func) \
-    do \
-    { \
-        last = func; \
-        if (gcmIS_ERROR(last)) \
-        { \
-            prefix##TRACE(gcvLEVEL_ERROR, \
-                #prefix "CHECK_STATUS: status=%d(%s) @ %s(%d)", \
-                last, gcoOS_DebugStatus2Name(last), __FUNCTION__, __LINE__); \
-            status = last; \
-        } \
-    } \
-    while (gcvFALSE)
-#define _gcmkCHECK_STATUS(prefix, func) \
-    do \
-    { \
-        last = func; \
-        if (gcmIS_ERROR(last)) \
-        { \
-            prefix##TRACE(gcvLEVEL_ERROR, \
-                #prefix "CHECK_STATUS: status=%d(%s) @ %s(%d)", \
-                last, gckOS_DebugStatus2Name(last), __FUNCTION__, __LINE__); \
-            status = last; \
-        } \
-    } \
-    while (gcvFALSE)
-#define gcmCHECK_STATUS(func)       _gcmCHECK_STATUS(gcm, func)
-#define gcmkCHECK_STATUS(func)      _gcmkCHECK_STATUS(gcmk, func)
-
-/*******************************************************************************
-**
-**  gcmVERIFY_ARGUMENT
-**
-**      Assert if an argument does not apply to the specified expression.  If
-**      the argument evaluates to false, gcvSTATUS_INVALID_ARGUMENT will be
-**      returned from the current function.  In retail mode this macro does
-**      nothing.
-**
-**  ARGUMENTS:
-**
-**      arg     Argument to evaluate.
-*/
-#   define _gcmVERIFY_ARGUMENT(prefix, arg) \
-       do \
-       { \
-           if (!(arg)) \
-           { \
-               prefix##TRACE(gcvLEVEL_ERROR, #prefix "VERIFY_ARGUMENT failed:"); \
-               prefix##ASSERT(arg); \
-               prefix##FOOTER_ARG("status=%d", gcvSTATUS_INVALID_ARGUMENT); \
-               return gcvSTATUS_INVALID_ARGUMENT; \
-           } \
-       } \
-       while (gcvFALSE)
-#   define gcmVERIFY_ARGUMENT(arg)     _gcmVERIFY_ARGUMENT(gcm, arg)
-#   define gcmkVERIFY_ARGUMENT(arg)    _gcmVERIFY_ARGUMENT(gcmk, arg)
-
-/*******************************************************************************
-**
-**  gcmDEBUG_VERIFY_ARGUMENT
-**
-**      Works just like gcmVERIFY_ARGUMENT, but is only valid in debug mode.
-**      Use this to verify arguments inside non-public API functions.
-*/
-#if gcdDEBUG
-#   define gcmDEBUG_VERIFY_ARGUMENT(arg)    _gcmVERIFY_ARGUMENT(gcm, arg)
-#   define gcmkDEBUG_VERIFY_ARGUMENT(arg)   _gcmkVERIFY_ARGUMENT(gcm, arg)
-#else
-#   define gcmDEBUG_VERIFY_ARGUMENT(arg)
-#   define gcmkDEBUG_VERIFY_ARGUMENT(arg)
-#endif
-
-/*******************************************************************************
-**
-**  gcmVERIFY_ARGUMENT_RETURN
-**
-**      Assert if an argument does not apply to the specified expression.  If
-**      the argument evaluates to false, gcvSTATUS_INVALID_ARGUMENT will be
-**      returned from the current function.  In retail mode this macro does
-**      nothing.
-**
-**  ARGUMENTS:
-**
-**      arg     Argument to evaluate.
-*/
-#   define _gcmVERIFY_ARGUMENT_RETURN(prefix, arg, value) \
-       do \
-       { \
-           if (!(arg)) \
-           { \
-               prefix##TRACE(gcvLEVEL_ERROR, \
-                             #prefix "gcmVERIFY_ARGUMENT_RETURN failed:"); \
-               prefix##ASSERT(arg); \
-               prefix##FOOTER_ARG("value=%d", value); \
-               return value; \
-           } \
-       } \
-       while (gcvFALSE)
-#   define gcmVERIFY_ARGUMENT_RETURN(arg, value) \
-                _gcmVERIFY_ARGUMENT_RETURN(gcm, arg, value)
-#   define gcmkVERIFY_ARGUMENT_RETURN(arg, value) \
-                _gcmVERIFY_ARGUMENT_RETURN(gcmk, arg, value)
-
-#define MAX_LOOP_COUNT 0x7FFFFFFF
-
-/******************************************************************************\
-****************************** User Debug Option ******************************
-\******************************************************************************/
-
-/* User option. */
-typedef enum _gceDEBUG_MSG
-{
-    gcvDEBUG_MSG_NONE,
-    gcvDEBUG_MSG_ERROR,
-    gcvDEBUG_MSG_WARNING
-}
-gceDEBUG_MSG;
-
-typedef struct _gcsUSER_DEBUG_OPTION
-{
-    gceDEBUG_MSG        debugMsg;
-}
-gcsUSER_DEBUG_OPTION;
-
-gcsUSER_DEBUG_OPTION *
-gcGetUserDebugOption(
-    void
-    );
-
-#if defined(ANDROID)
-struct _gcoOS_SymbolsList
-{
-#if gcdENABLE_3D
-    gcePATCH_ID patchId;
-#endif
-    const char * symList[10];
-};
-#endif
-
-#if gcdHAS_ELLIPSIS
-#define gcmUSER_DEBUG_MSG(level, ...) \
-    do \
-    { \
-        if (level <= gcGetUserDebugOption()->debugMsg) \
-        { \
-            gcoOS_Print(__VA_ARGS__); \
-        } \
-    } while (gcvFALSE)
-
-#define gcmUSER_DEBUG_ERROR_MSG(...)   gcmUSER_DEBUG_MSG(gcvDEBUG_MSG_ERROR, "Error: " __VA_ARGS__)
-#define gcmUSER_DEBUG_WARNING_MSG(...) gcmUSER_DEBUG_MSG(gcvDEBUG_MSG_WARNING, "Warring: " __VA_ARGS__)
-#else
-#define gcmUSER_DEBUG_MSG
-#define gcmUSER_DEBUG_ERROR_MSG
-#define gcmUSER_DEBUG_WARNING_MSG
-#endif
-
-/*******************************************************************************
-**
-**  A set of macros to aid state loading.
-**
-**  ARGUMENTS:
-**
-**      CommandBuffer   Pointer to a gcoCMDBUF object.
-**      StateDelta      Pointer to a gcsSTATE_DELTA state delta structure.
-**      Memory          Destination memory pointer of gctUINT32_PTR type.
-**      PartOfContext   Whether or not the state is a part of the context.
-**      FixedPoint      Whether or not the state is of the fixed point format.
-**      Count           Number of consecutive states to be loaded.
-**      Address         State address.
-**      Data            Data to be set to the state.
-*/
-
-/*----------------------------------------------------------------------------*/
-
-#if gcmIS_DEBUG(gcdDEBUG_CODE)
-
-#   define gcmSTORELOADSTATE(CommandBuffer, Memory, Address, Count) \
-        CommandBuffer->lastLoadStatePtr     = gcmPTR_TO_UINT64(Memory); \
-        CommandBuffer->lastLoadStateAddress = Address; \
-        CommandBuffer->lastLoadStateCount   = Count
-
-#   define gcmVERIFYLOADSTATE(CommandBuffer, Memory, Address) \
-        gcmASSERT( \
-            (gctUINT) (Memory  - gcmUINT64_TO_TYPE(CommandBuffer->lastLoadStatePtr, gctUINT32_PTR) - 1) \
-            == \
-            (gctUINT) (Address - CommandBuffer->lastLoadStateAddress) \
-            ); \
-        \
-        gcmASSERT(CommandBuffer->lastLoadStateCount > 0); \
-        \
-        CommandBuffer->lastLoadStateCount -= 1
-
-#   define gcmVERIFYLOADSTATEDONE(CommandBuffer) \
-        gcmASSERT(CommandBuffer->lastLoadStateCount == 0);
-
-#   define gcmDEFINELOADSTATEBASE() \
-        gctUINT32_PTR LoadStateBase;
-
-#   define gcmSETLOADSTATEBASE(CommandBuffer, OutSide) \
-        if (OutSide) \
-        {\
-            LoadStateBase = (gctUINT32_PTR)*OutSide; \
-        }\
-        else\
-        {\
-            LoadStateBase = (gctUINT_PTR)CommandBuffer->buffer;\
-        }
-
-
-#   define gcmVERIFYLOADSTATEALIGNED(CommandBuffer, Memory) \
-        gcmASSERT(((Memory - LoadStateBase) & 1) == 0);
-
-#   define gcmUNSETLOADSTATEBASE() \
-        LoadStateBase = LoadStateBase;
-
-#else
-
-#   define gcmSTORELOADSTATE(CommandBuffer, Memory, Address, Count)
-#   define gcmVERIFYLOADSTATE(CommandBuffer, Memory, Address)
-#   define gcmVERIFYLOADSTATEDONE(CommandBuffer)
-
-#   define gcmDEFINELOADSTATEBASE()
-#   define gcmSETLOADSTATEBASE(CommandBuffer, OutSide)
-#   define gcmVERIFYLOADSTATEALIGNED(CommandBuffer, Memory)
-#   define gcmUNSETLOADSTATEBASE()
-
-#endif
-
-#if gcdSECURE_USER
-
-#   define gcmDEFINESECUREUSER() \
-        gctUINT         __secure_user_offset__; \
-        gctUINT32_PTR   __secure_user_hintArray__;
-
-#   define gcmBEGINSECUREUSER() \
-        __secure_user_offset__ = reserve->lastOffset; \
-        \
-        __secure_user_hintArray__ = gcmUINT64_TO_PTR(reserve->hintArrayTail)
-
-#   define gcmENDSECUREUSER() \
-        reserve->hintArrayTail = gcmPTR_TO_UINT64(__secure_user_hintArray__)
-
-#   define gcmSKIPSECUREUSER() \
-        __secure_user_offset__ += gcmSIZEOF(gctUINT32)
-
-#   define gcmUPDATESECUREUSER() \
-        *__secure_user_hintArray__ = __secure_user_offset__; \
-        \
-        __secure_user_offset__    += gcmSIZEOF(gctUINT32); \
-        __secure_user_hintArray__ += 1
-
-#else
-
-#   define gcmDEFINESECUREUSER()
-#   define gcmBEGINSECUREUSER()
-#   define gcmENDSECUREUSER()
-#   define gcmSKIPSECUREUSER()
-#   define gcmUPDATESECUREUSER()
-
-#endif
-
-/*----------------------------------------------------------------------------*/
-
-#if gcdDUMP
-#   define gcmDUMPSTATEDATA(StateDelta, FixedPoint, Address, Data) \
-        if (FixedPoint) \
-        { \
-            gcmDUMP(gcvNULL, "#[state.x 0x%04X 0x%08X]", \
-                Address, Data \
-                ); \
-        } \
-        else \
-        { \
-            gcmDUMP(gcvNULL, "#[state 0x%04X 0x%08X]", \
-                Address, Data \
-                ); \
-        }
-#else
-#   define gcmDUMPSTATEDATA(StateDelta, FixedPoint, Address, Data)
-#endif
-
-#define gcmDEFINESTATEBUFFER(CommandBuffer, StateDelta, Memory, ReserveSize) \
-    gcmDEFINESECUREUSER() \
-    gctSIZE_T ReserveSize; \
-    gcoCMDBUF CommandBuffer; \
-    gctUINT32_PTR Memory; \
-    gcsSTATE_DELTA_PTR StateDelta
-
-#define gcmBEGINSTATEBUFFER(Hardware, CommandBuffer, StateDelta, Memory, ReserveSize) \
-{ \
-    gcmONERROR(gcoBUFFER_Reserve( \
-        Hardware->buffer, ReserveSize, gcvTRUE, gcvCOMMAND_3D, &CommandBuffer \
-        )); \
-    \
-    Memory = (gctUINT32_PTR) gcmUINT64_TO_PTR(CommandBuffer->lastReserve); \
-    \
-    StateDelta = Hardware->delta; \
-    \
-    gcmBEGINSECUREUSER(); \
-}
-
-#define gcmENDSTATEBUFFER(Hardware, CommandBuffer, Memory, ReserveSize) \
-{ \
-    gcmENDSECUREUSER(); \
-    \
-    gcmASSERT( \
-        gcmUINT64_TO_TYPE(CommandBuffer->lastReserve, gctUINT8_PTR) + ReserveSize \
-        == \
-         (gctUINT8_PTR) Memory \
-        ); \
-}
-
-/*----------------------------------------------------------------------------*/
-
-#define gcmBEGINSTATEBATCH(CommandBuffer, Memory, FixedPoint, Address, Count) \
-{ \
-    gcmASSERT(((Memory - gcmUINT64_TO_TYPE(CommandBuffer->lastReserve, gctUINT32_PTR)) & 1) == 0); \
-    gcmASSERT((gctUINT32)Count <= 1024); \
-    \
-    gcmVERIFYLOADSTATEDONE(CommandBuffer); \
-    \
-    gcmSTORELOADSTATE(CommandBuffer, Memory, Address, Count); \
-    \
-    *Memory++ \
-        = gcmSETFIELDVALUE(0, AQ_COMMAND_LOAD_STATE_COMMAND, OPCODE,  LOAD_STATE) \
-        | gcmSETFIELD     (0, AQ_COMMAND_LOAD_STATE_COMMAND, FLOAT,   FixedPoint) \
-        | gcmSETFIELD     (0, AQ_COMMAND_LOAD_STATE_COMMAND, COUNT,   Count) \
-        | gcmSETFIELD     (0, AQ_COMMAND_LOAD_STATE_COMMAND, ADDRESS, Address); \
-    \
-    gcmSKIPSECUREUSER(); \
-}
-
-#define gcmENDSTATEBATCH(CommandBuffer, Memory) \
-{ \
-    gcmVERIFYLOADSTATEDONE(CommandBuffer); \
-    \
-    gcmASSERT(((Memory - gcmUINT64_TO_TYPE(CommandBuffer->lastReserve, gctUINT32_PTR)) & 1) == 0); \
-}
-
-/*----------------------------------------------------------------------------*/
-
-#define gcmSETSTATEDATA(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                        Address, Data) \
-{ \
-    gctUINT32 __temp_data32__; \
-    \
-    gcmVERIFYLOADSTATE(CommandBuffer, Memory, Address); \
-    \
-    gcmSAFECASTSIZET(__temp_data32__, Data); \
-    \
-    *Memory++ = __temp_data32__; \
-    \
-    gcoHARDWARE_UpdateDelta( \
-        StateDelta, Address, 0, __temp_data32__ \
-        ); \
-    \
-    gcmDUMPSTATEDATA(StateDelta, FixedPoint, Address, __temp_data32__); \
-    \
-    gcmUPDATESECUREUSER(); \
-}
-
-#define gcmSETSTATEDATAWITHMASK(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                        Address, Mask, Data) \
-{ \
-    gctUINT32 __temp_data32__; \
-    \
-    gcmVERIFYLOADSTATE(CommandBuffer, Memory, Address); \
-    \
-    __temp_data32__ = Data; \
-    \
-    *Memory++ = __temp_data32__; \
-    \
-    gcoHARDWARE_UpdateDelta( \
-        StateDelta, Address, Mask, __temp_data32__ \
-        ); \
-    \
-    gcmDUMPSTATEDATA(StateDelta, FixedPoint, Address, __temp_data32__); \
-    \
-    gcmUPDATESECUREUSER(); \
-}
-
-
-#define gcmSETCTRLSTATE(StateDelta, CommandBuffer, Memory, Address, Data) \
-{ \
-    gctUINT32 __temp_data32__; \
-    \
-    gcmVERIFYLOADSTATE(CommandBuffer, Memory, Address); \
-    \
-    __temp_data32__ = Data; \
-    \
-    *Memory++ = __temp_data32__; \
-    \
-    gcmDUMPSTATEDATA(StateDelta, gcvFALSE, Address, __temp_data32__); \
-    \
-    gcmSKIPSECUREUSER(); \
-}
-
-#define gcmSETFILLER(CommandBuffer, Memory) \
-{ \
-    gcmVERIFYLOADSTATEDONE(CommandBuffer); \
-    \
-    Memory += 1; \
-    \
-    gcmSKIPSECUREUSER(); \
-}
-
-/*----------------------------------------------------------------------------*/
-
-#define gcmSETSINGLESTATE(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                          Address, Data) \
-{ \
-    gcmBEGINSTATEBATCH(CommandBuffer, Memory, FixedPoint, Address, 1); \
-    gcmSETSTATEDATA(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                    Address, Data); \
-    gcmENDSTATEBATCH(CommandBuffer, Memory); \
-}
-
-#define gcmSETSINGLESTATEWITHMASK(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                          Address, Mask, Data) \
-{ \
-    gcmBEGINSTATEBATCH(CommandBuffer, Memory, FixedPoint, Address, 1); \
-    gcmSETSTATEDATAWITHMASK(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                    Address, Mask, Data); \
-    gcmENDSTATEBATCH(CommandBuffer, Memory); \
-}
-
-
-#define gcmSETSINGLECTRLSTATE(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                              Address, Data) \
-{ \
-    gcmBEGINSTATEBATCH(CommandBuffer, Memory, FixedPoint, Address, 1); \
-    gcmSETCTRLSTATE(StateDelta, CommandBuffer, Memory, Address, Data); \
-    gcmENDSTATEBATCH(CommandBuffer, Memory); \
-}
-
-
-
-#define gcmSETSEMASTALLPIPE(StateDelta, CommandBuffer, Memory, Data) \
-{ \
-    gcmSETSINGLESTATE(StateDelta, CommandBuffer, Memory, gcvFALSE, AQSemaphoreRegAddrs, Data); \
-    \
-    *Memory++ = gcmSETFIELDVALUE(0, STALL_COMMAND, OPCODE, STALL); \
-    \
-    *Memory++ = Data; \
-    \
-    gcmDUMP(gcvNULL, "#[stall 0x%08X 0x%08X]", \
-        gcmSETFIELDVALUE(0, AQ_SEMAPHORE, SOURCE, FRONT_END), \
-        gcmSETFIELDVALUE(0, AQ_SEMAPHORE, DESTINATION, PIXEL_ENGINE)); \
-    \
-    gcmSKIPSECUREUSER(); \
-}
-
-/*******************************************************************************
-**
-**  gcmSETSTARTDECOMMAND
-**
-**      Form a START_DE command.
-**
-**  ARGUMENTS:
-**
-**      Memory          Destination memory pointer of gctUINT32_PTR type.
-**      Count           Number of the rectangles.
-*/
-
-#define gcmSETSTARTDECOMMAND(Memory, Count) \
-{ \
-    *Memory++ \
-        = gcmSETFIELDVALUE(0, AQ_COMMAND_START_DE_COMMAND, OPCODE,     START_DE) \
-        | gcmSETFIELD     (0, AQ_COMMAND_START_DE_COMMAND, COUNT,      Count) \
-        | gcmSETFIELD     (0, AQ_COMMAND_START_DE_COMMAND, DATA_COUNT, 0); \
-    \
-    *Memory++ = 0xDEADDEED; \
-}
-
-/*****************************************
-** Temp command buffer macro
-*/
-#define gcmDEFINESTATEBUFFER_NEW(CommandBuffer, StateDelta, Memory) \
-    gcmDEFINESECUREUSER() \
-    gcmDEFINELOADSTATEBASE() \
-    gcsTEMPCMDBUF CommandBuffer = gcvNULL; \
-    gctUINT32_PTR Memory; \
-    gcsSTATE_DELTA_PTR StateDelta
-
-
-#define gcmBEGINSTATEBUFFER_NEW(Hardware, CommandBuffer, StateDelta, Memory, OutSide) \
-{ \
-    if (OutSide) \
-    {\
-        Memory = (gctUINT32_PTR)*OutSide; \
-    }\
-    else \
-    {\
-        gcmONERROR(gcoBUFFER_StartTEMPCMDBUF( \
-            Hardware->buffer, &CommandBuffer \
-            ));\
-        \
-        Memory = (gctUINT32_PTR)(CommandBuffer->buffer); \
-        \
-    }\
-    StateDelta = Hardware->delta; \
-    \
-    gcmBEGINSECUREUSER(); \
-    gcmSETLOADSTATEBASE(CommandBuffer,OutSide);\
-}
-
-#define gcmENDSTATEBUFFER_NEW(Hardware, CommandBuffer, Memory, OutSide) \
-{ \
-    gcmENDSECUREUSER(); \
-    \
-    if (OutSide) \
-    {\
-        *OutSide = Memory; \
-    }\
-    else \
-    {\
-        CommandBuffer->currentByteSize = (gctUINT32)((gctUINT8_PTR)Memory -  \
-                                         (gctUINT8_PTR)CommandBuffer->buffer); \
-        \
-        gcmONERROR(gcoBUFFER_EndTEMPCMDBUF(Hardware->buffer));\
-    }\
-    gcmUNSETLOADSTATEBASE()\
-}
-
-/*----------------------------------------------------------------------------*/
-
-#define gcmBEGINSTATEBATCH_NEW(CommandBuffer, Memory, FixedPoint, Address, Count) \
-{ \
-    gcmVERIFYLOADSTATEALIGNED(CommandBuffer,Memory);\
-    gcmASSERT((gctUINT32)Count <= 1024); \
-    \
-    *Memory++ \
-        = gcmSETFIELDVALUE(0, AQ_COMMAND_LOAD_STATE_COMMAND, OPCODE,  LOAD_STATE) \
-        | gcmSETFIELD     (0, AQ_COMMAND_LOAD_STATE_COMMAND, FLOAT,   FixedPoint) \
-        | gcmSETFIELD     (0, AQ_COMMAND_LOAD_STATE_COMMAND, COUNT,   Count) \
-        | gcmSETFIELD     (0, AQ_COMMAND_LOAD_STATE_COMMAND, ADDRESS, Address); \
-    \
-    gcmSKIPSECUREUSER(); \
-}
-
-#define gcmENDSTATEBATCH_NEW(CommandBuffer, Memory) \
-    gcmVERIFYLOADSTATEALIGNED(CommandBuffer,Memory);
-
-/*----------------------------------------------------------------------------*/
-
-#define gcmSETSTATEDATA_NEW(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                        Address, Data) \
-{ \
-    gctUINT32 __temp_data32__; \
-    \
-    __temp_data32__ = Data; \
-    \
-    *Memory++ = __temp_data32__; \
-    \
-    gcoHARDWARE_UpdateDelta( \
-        StateDelta, Address, 0, __temp_data32__ \
-        ); \
-    \
-    gcmDUMPSTATEDATA(StateDelta, FixedPoint, Address, __temp_data32__); \
-    \
-    gcmUPDATESECUREUSER(); \
-}
-
-#define gcmSETSTATEDATAWITHMASK_NEW(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                                Address, Mask, Data) \
-{ \
-    gctUINT32 __temp_data32__; \
-    \
-    __temp_data32__ = Data; \
-    \
-    *Memory++ = __temp_data32__; \
-    \
-    gcoHARDWARE_UpdateDelta( \
-        StateDelta, Address, Mask, __temp_data32__ \
-        ); \
-    \
-    gcmDUMPSTATEDATA(StateDelta, FixedPoint, Address, __temp_data32__); \
-    \
-    gcmUPDATESECUREUSER(); \
-}
-
-
-#define gcmSETCTRLSTATE_NEW(StateDelta, CommandBuffer, Memory, Address, Data) \
-{ \
-    gctUINT32 __temp_data32__; \
-    \
-    __temp_data32__ = Data; \
-    \
-    *Memory++ = __temp_data32__; \
-    \
-    gcmDUMPSTATEDATA(StateDelta, gcvFALSE, Address, __temp_data32__); \
-    \
-    gcmSKIPSECUREUSER(); \
-}
-
-#define gcmSETFILLER_NEW(CommandBuffer, Memory) \
-{ \
-    Memory += 1; \
-    \
-    gcmSKIPSECUREUSER(); \
-}
-
-/*----------------------------------------------------------------------------*/
-
-#define gcmSETSINGLESTATE_NEW(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                              Address, Data) \
-{ \
-    gcmBEGINSTATEBATCH_NEW(CommandBuffer, Memory, FixedPoint, Address, 1); \
-    gcmSETSTATEDATA_NEW(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                    Address, Data); \
-    gcmENDSTATEBATCH_NEW(CommandBuffer, Memory); \
-}
-
-#define gcmSETSINGLESTATEWITHMASK_NEW(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                                      Address, Mask, Data) \
-{ \
-    gcmBEGINSTATEBATCH_NEW(CommandBuffer, Memory, FixedPoint, Address, 1); \
-    gcmSETSTATEDATAWITHMASK_NEW(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                    Address, Mask, Data); \
-    gcmENDSTATEBATCH_NEW(CommandBuffer, Memory); \
-}
-
-
-#define gcmSETSINGLECTRLSTATE_NEW(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                              Address, Data) \
-{ \
-    gcmBEGINSTATEBATCH_NEW(CommandBuffer, Memory, FixedPoint, Address, 1); \
-    gcmSETCTRLSTATE_NEW(StateDelta, CommandBuffer, Memory, Address, Data); \
-    gcmENDSTATEBATCH_NEW(CommandBuffer, Memory); \
-}
-
-
-
-#define gcmSETSEMASTALLPIPE_NEW(StateDelta, CommandBuffer, Memory, Data) \
-{ \
-    gcmSETSINGLESTATE_NEW(StateDelta, CommandBuffer, Memory, gcvFALSE, AQSemaphoreRegAddrs, Data); \
-    \
-    *Memory++ = gcmSETFIELDVALUE(0, STALL_COMMAND, OPCODE, STALL); \
-    \
-    *Memory++ = Data; \
-    \
-    gcmDUMP(gcvNULL, "#[stall 0x%08X 0x%08X]", \
-        gcmSETFIELDVALUE(0, AQ_SEMAPHORE, SOURCE, FRONT_END), \
-        gcmSETFIELDVALUE(0, AQ_SEMAPHORE, DESTINATION, PIXEL_ENGINE)); \
-    \
-    gcmSKIPSECUREUSER(); \
-}
-
-#define gcmSETSTARTDECOMMAND_NEW(CommandBuffer, Memory, Count) \
-{ \
-    *Memory++ \
-        = gcmSETFIELDVALUE(0, AQ_COMMAND_START_DE_COMMAND, OPCODE,     START_DE) \
-        | gcmSETFIELD     (0, AQ_COMMAND_START_DE_COMMAND, COUNT,      Count) \
-        | gcmSETFIELD     (0, AQ_COMMAND_START_DE_COMMAND, DATA_COUNT, 0); \
-    \
-    *Memory++ = 0xDEADDEED; \
-    \
-}
-
-#define gcmSETSTATEDATA_NEW_FAST(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                        Address, Data) \
-{ \
-    gctUINT32 __temp_data32__; \
-    \
-    __temp_data32__ = Data; \
-    \
-    *Memory++ = __temp_data32__; \
-    \
-    gcmDUMPSTATEDATA(StateDelta, FixedPoint, Address, __temp_data32__); \
-    \
-    gcmUPDATESECUREUSER(); \
-}
-
-#define gcmSETSTATEDATAWITHMASK_NEW_FAST(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                                Address, Mask, Data) \
-{ \
-    gctUINT32 __temp_data32__; \
-    \
-    __temp_data32__ = Data; \
-    \
-    *Memory++ = __temp_data32__; \
-    \
-    gcmDUMPSTATEDATA(StateDelta, FixedPoint, Address, __temp_data32__); \
-    \
-    gcmUPDATESECUREUSER(); \
-}
-
-#define gcmSETSINGLESTATE_NEW_FAST(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                              Address, Data) \
-{ \
-    gcmBEGINSTATEBATCH_NEW(CommandBuffer, Memory, FixedPoint, Address, 1); \
-    gcmSETSTATEDATA_NEW_FAST(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                    Address, Data); \
-    gcmENDSTATEBATCH_NEW(CommandBuffer, Memory); \
-}
-
-#define gcmSETSINGLESTATEWITHMASK_NEW_FAST(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                                      Address, Mask, Data) \
-{ \
-    gcmBEGINSTATEBATCH_NEW(CommandBuffer, Memory, FixedPoint, Address, 1); \
-    gcmSETSTATEDATAWITHMASK_NEW_FAST(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                    Address, Mask, Data); \
-    gcmENDSTATEBATCH_NEW(CommandBuffer, Memory); \
-}
-
-#define gcmSETSTATEDATA_FAST(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                        Address, Data) \
-{ \
-    gctUINT32 __temp_data32__; \
-    \
-    gcmVERIFYLOADSTATE(CommandBuffer, Memory, Address); \
-    \
-    gcmSAFECASTSIZET(__temp_data32__, Data); \
-    \
-    *Memory++ = __temp_data32__; \
-    \
-    gcmDUMPSTATEDATA(StateDelta, FixedPoint, Address, __temp_data32__); \
-    \
-    gcmUPDATESECUREUSER(); \
-}
-
-#define gcmSETSTATEDATAWITHMASK_FAST(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                        Address, Mask, Data) \
-{ \
-    gctUINT32 __temp_data32__; \
-    \
-    gcmVERIFYLOADSTATE(CommandBuffer, Memory, Address); \
-    \
-    __temp_data32__ = Data; \
-    \
-    *Memory++ = __temp_data32__; \
-    \
-    gcmDUMPSTATEDATA(StateDelta, FixedPoint, Address, __temp_data32__); \
-    \
-    gcmUPDATESECUREUSER(); \
-}
-
-#define gcmSETSINGLESTATE_FAST(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                          Address, Data) \
-{ \
-    gcmBEGINSTATEBATCH(CommandBuffer, Memory, FixedPoint, Address, 1); \
-    gcmSETSTATEDATA_FAST(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                    Address, Data); \
-    gcmENDSTATEBATCH(CommandBuffer, Memory); \
-}
-
-#define gcmSETSINGLESTATEWITHMASK_FAST(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                          Address, Mask, Data) \
-{ \
-    gcmBEGINSTATEBATCH(CommandBuffer, Memory, FixedPoint, Address, 1); \
-    gcmSETSTATEDATAWITHMASK_FAST(StateDelta, CommandBuffer, Memory, FixedPoint, \
-                    Address, Mask, Data); \
-    gcmENDSTATEBATCH(CommandBuffer, Memory); \
-}
-
-#define gcmDEFINESTATEBUFFER_NEW_FAST(CommandBuffer, Memory) \
-    gcmDEFINESECUREUSER() \
-    gcmDEFINELOADSTATEBASE() \
-    gcsTEMPCMDBUF CommandBuffer = gcvNULL; \
-    gctUINT32_PTR Memory;
-
-#define gcmDEFINESTATEBUFFER_FAST(CommandBuffer, Memory, ReserveSize) \
-    gcmDEFINESECUREUSER() \
-    gctSIZE_T ReserveSize; \
-    gcoCMDBUF CommandBuffer; \
-    gctUINT32_PTR Memory;
-
-#define gcmBEGINSTATEBUFFER_FAST(Hardware, CommandBuffer, Memory, ReserveSize) \
-{ \
-    gcmONERROR(gcoBUFFER_Reserve( \
-        Hardware->buffer, ReserveSize, gcvTRUE, &CommandBuffer \
-        )); \
-    \
-    Memory = (gctUINT32_PTR) gcmUINT64_TO_PTR(CommandBuffer->lastReserve); \
-    \
-    gcmBEGINSECUREUSER(); \
-}
-
-#define gcmBEGINSTATEBUFFER_NEW_FAST(Hardware, CommandBuffer, Memory, OutSide) \
-{ \
-    if (OutSide) \
-    {\
-        Memory = (gctUINT32_PTR)*OutSide; \
-    }\
-    else \
-    {\
-        gcmONERROR(gcoBUFFER_StartTEMPCMDBUF( \
-            Hardware->buffer, &CommandBuffer \
-            ));\
-        \
-        Memory = (gctUINT32_PTR)(CommandBuffer->buffer); \
-        \
-    }\
-    \
-    gcmBEGINSECUREUSER(); \
-    gcmSETLOADSTATEBASE(CommandBuffer,OutSide);\
-}
-/*******************************************************************************
-**
-**  gcmCONFIGUREUNIFORMS
-**
-**      Configure uniforms according to chip and numConstants.
-*/
-#if !gcdENABLE_UNIFIED_CONSTANT
-#define gcmCONFIGUREUNIFORMS(ChipModel, ChipRevision, NumConstants, \
-             UnifiedConst, VsConstBase, PsConstBase, VsConstMax, PsConstMax, ConstMax) \
-{ \
-    if (ChipModel == gcv2000 && ChipRevision == 0x5118) \
-    { \
-        UnifiedConst = gcvFALSE; \
-        VsConstBase  = AQVertexShaderConstRegAddrs; \
-        PsConstBase  = AQPixelShaderConstRegAddrs; \
-        VsConstMax   = 256; \
-        PsConstMax   = 64; \
-        ConstMax     = 320; \
-    } \
-    else if (NumConstants == 320) \
-    { \
-        UnifiedConst = gcvFALSE; \
-        VsConstBase  = AQVertexShaderConstRegAddrs; \
-        PsConstBase  = AQPixelShaderConstRegAddrs; \
-        VsConstMax   = 256; \
-        PsConstMax   = 64; \
-        ConstMax     = 320; \
-    } \
-    /* All GC1000 series chips can only support 64 uniforms for ps on non-unified const mode. */ \
-    else if (NumConstants > 256 && ChipModel == gcv1000) \
-    { \
-        UnifiedConst = gcvFALSE; \
-        VsConstBase  = AQVertexShaderConstRegAddrs; \
-        PsConstBase  = AQPixelShaderConstRegAddrs; \
-        VsConstMax   = 256; \
-        PsConstMax   = 64; \
-        ConstMax     = 320; \
-    } \
-    else if (NumConstants > 256) \
-    { \
-        UnifiedConst = gcvFALSE; \
-        VsConstBase  = AQVertexShaderConstRegAddrs; \
-        PsConstBase  = AQPixelShaderConstRegAddrs; \
-        VsConstMax   = 256; \
-        PsConstMax   = 256; \
-        ConstMax     = 512; \
-    } \
-    else if (NumConstants == 256) \
-    { \
-        UnifiedConst = gcvFALSE; \
-        VsConstBase  = AQVertexShaderConstRegAddrs; \
-        PsConstBase  = AQPixelShaderConstRegAddrs; \
-        VsConstMax   = 256; \
-        PsConstMax   = 256; \
-        ConstMax     = 512; \
-    } \
-    else \
-    { \
-        UnifiedConst = gcvFALSE; \
-        VsConstBase  = AQVertexShaderConstRegAddrs; \
-        PsConstBase  = AQPixelShaderConstRegAddrs; \
-        VsConstMax   = 168; \
-        PsConstMax   = 64; \
-        ConstMax     = 232; \
-    } \
-}
-#else
-#define gcmCONFIGUREUNIFORMS(ChipModel, ChipRevision, NumConstants, \
-             UnifiedConst, VsConstBase, PsConstBase, VsConstMax, PsConstMax, ConstMax) \
-{ \
-    if (NumConstants > 256) \
-    { \
-        UnifiedConst = gcvTRUE; \
-        VsConstBase  = gcregSHUniformsRegAddrs; \
-        PsConstBase  = gcregSHUniformsRegAddrs; \
-        VsConstMax   = gcmMIN(512, NumConstants - 64); \
-        PsConstMax   = gcmMIN(512, NumConstants - 64); \
-        ConstMax     = NumConstants; \
-    } \
-    else if (NumConstants == 256) \
-    { \
-        if (ChipModel == gcv2000 && ChipRevision == 0x5118) \
-        { \
-            UnifiedConst = gcvFALSE; \
-            VsConstBase  = AQVertexShaderConstRegAddrs; \
-            PsConstBase  = AQPixelShaderConstRegAddrs; \
-            VsConstMax   = 256; \
-            PsConstMax   = 64; \
-            ConstMax     = 320; \
-        } \
-        else \
-        { \
-            UnifiedConst = gcvFALSE; \
-            VsConstBase  = AQVertexShaderConstRegAddrs; \
-            PsConstBase  = AQPixelShaderConstRegAddrs; \
-            VsConstMax   = 256; \
-            PsConstMax   = 256; \
-            ConstMax     = 512; \
-        } \
-    } \
-    else \
-    { \
-        UnifiedConst = gcvFALSE; \
-        VsConstBase  = AQVertexShaderConstRegAddrs; \
-        PsConstBase  = AQPixelShaderConstRegAddrs; \
-        VsConstMax   = 168; \
-        PsConstMax   = 64; \
-        ConstMax     = 232; \
-    } \
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gc_hal_base_h_ */

+ 0 - 1131
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_driver.h

@@ -1,1131 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_driver_h_
-#define __gc_hal_driver_h_
-
-#include "gc_hal_enum.h"
-#include "gc_hal_types.h"
-
-#if gcdENABLE_VG
-#include "gc_hal_driver_vg.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/******************************************************************************\
-******************************* I/O Control Codes ******************************
-\******************************************************************************/
-
-#define gcvHAL_CLASS                    "galcore"
-#define IOCTL_GCHAL_INTERFACE           30000
-#define IOCTL_GCHAL_KERNEL_INTERFACE    30001
-#define IOCTL_GCHAL_TERMINATE           30002
-
-/******************************************************************************\
-********************************* Command Codes ********************************
-\******************************************************************************/
-
-typedef enum _gceHAL_COMMAND_CODES
-{
-    /* Generic query. */
-    gcvHAL_QUERY_VIDEO_MEMORY,
-    gcvHAL_QUERY_CHIP_IDENTITY,
-
-    /* Contiguous memory. */
-    gcvHAL_ALLOCATE_NON_PAGED_MEMORY,
-    gcvHAL_FREE_NON_PAGED_MEMORY,
-    gcvHAL_ALLOCATE_CONTIGUOUS_MEMORY,
-    gcvHAL_FREE_CONTIGUOUS_MEMORY,
-
-    /* Video memory allocation. */
-    gcvHAL_ALLOCATE_VIDEO_MEMORY,           /* Enforced alignment. */
-    gcvHAL_ALLOCATE_LINEAR_VIDEO_MEMORY,    /* No alignment. */
-    gcvHAL_RELEASE_VIDEO_MEMORY,
-
-    /* Physical-to-logical mapping. */
-    gcvHAL_MAP_MEMORY,
-    gcvHAL_UNMAP_MEMORY,
-
-    /* Logical-to-physical mapping. */
-    gcvHAL_MAP_USER_MEMORY,
-    gcvHAL_UNMAP_USER_MEMORY,
-
-    /* Surface lock/unlock. */
-    gcvHAL_LOCK_VIDEO_MEMORY,
-    gcvHAL_UNLOCK_VIDEO_MEMORY,
-
-    /* Event queue. */
-    gcvHAL_EVENT_COMMIT,
-
-    gcvHAL_USER_SIGNAL,
-    gcvHAL_SIGNAL,
-    gcvHAL_WRITE_DATA,
-
-    gcvHAL_COMMIT,
-    gcvHAL_STALL,
-
-    gcvHAL_READ_REGISTER,
-    gcvHAL_WRITE_REGISTER,
-
-    gcvHAL_GET_PROFILE_SETTING,
-    gcvHAL_SET_PROFILE_SETTING,
-
-    gcvHAL_READ_ALL_PROFILE_REGISTERS,
-    gcvHAL_PROFILE_REGISTERS_2D,
-#if VIVANTE_PROFILER_PERDRAW
-    gcvHAL_READ_PROFILER_REGISTER_SETTING,
-#endif
-
-    /* Power management. */
-    gcvHAL_SET_POWER_MANAGEMENT_STATE,
-    gcvHAL_QUERY_POWER_MANAGEMENT_STATE,
-
-    gcvHAL_GET_BASE_ADDRESS,
-
-    gcvHAL_SET_IDLE, /* reserved */
-
-    /* Queries. */
-    gcvHAL_QUERY_KERNEL_SETTINGS,
-
-    /* Reset. */
-    gcvHAL_RESET,
-
-    /* Map physical address into handle. */
-    gcvHAL_MAP_PHYSICAL,
-
-    /* Debugger stuff. */
-    gcvHAL_DEBUG,
-
-    /* Cache stuff. */
-    gcvHAL_CACHE,
-
-    /* TimeStamp */
-    gcvHAL_TIMESTAMP,
-
-    /* Database. */
-    gcvHAL_DATABASE,
-
-    /* Version. */
-    gcvHAL_VERSION,
-
-    /* Chip info */
-    gcvHAL_CHIP_INFO,
-
-    /* Process attaching/detaching. */
-    gcvHAL_ATTACH,
-    gcvHAL_DETACH,
-
-    /* Composition. */
-    gcvHAL_COMPOSE,
-
-    /* Set timeOut value */
-    gcvHAL_SET_TIMEOUT,
-
-    /* Frame database. */
-    gcvHAL_GET_FRAME_INFO,
-
-    gcvHAL_QUERY_COMMAND_BUFFER,
-
-    gcvHAL_COMMIT_DONE,
-
-    /* GPU and event dump */
-    gcvHAL_DUMP_GPU_STATE,
-    gcvHAL_DUMP_EVENT,
-
-    /* Virtual command buffer. */
-    gcvHAL_ALLOCATE_VIRTUAL_COMMAND_BUFFER,
-    gcvHAL_FREE_VIRTUAL_COMMAND_BUFFER,
-
-    /* FSCALE_VAL. */
-    gcvHAL_SET_FSCALE_VALUE,
-    gcvHAL_GET_FSCALE_VALUE,
-
-    gcvHAL_NAME_VIDEO_MEMORY,
-    gcvHAL_IMPORT_VIDEO_MEMORY,
-
-    /* Reset time stamp. */
-    gcvHAL_QUERY_RESET_TIME_STAMP,
-
-    /* Multi-GPU read/write. */
-    gcvHAL_READ_REGISTER_EX,
-    gcvHAL_WRITE_REGISTER_EX,
-
-    /* Sync point operations. */
-    gcvHAL_SYNC_POINT,
-
-    /* Create native fence and return its fd. */
-    gcvHAL_CREATE_NATIVE_FENCE,
-
-    /* Destory MMU. */
-    gcvHAL_DESTROY_MMU,
-
-    /* Shared buffer. */
-    gcvHAL_SHBUF,
-
-    /* Config power management. */
-    gcvHAL_CONFIG_POWER_MANAGEMENT,
-
-    /* Connect a video node to an OS native fd. */
-    gcvHAL_GET_VIDEO_MEMORY_FD,
-}
-gceHAL_COMMAND_CODES;
-
-/******************************************************************************\
-****************************** Interface Structure *****************************
-\******************************************************************************/
-
-#define gcdMAX_PROFILE_FILE_NAME    128
-
-/* Kernel settings. */
-typedef struct _gcsKERNEL_SETTINGS
-{
-    /* Used RealTime signal between kernel and user. */
-    gctINT signal;
-}
-gcsKERNEL_SETTINGS;
-
-
-/* gcvHAL_QUERY_CHIP_IDENTITY */
-typedef struct _gcsHAL_QUERY_CHIP_IDENTITY * gcsHAL_QUERY_CHIP_IDENTITY_PTR;
-typedef struct _gcsHAL_QUERY_CHIP_IDENTITY
-{
-
-    /* Chip model. */
-    gceCHIPMODEL                chipModel;
-
-    /* Revision value.*/
-    gctUINT32                   chipRevision;
-
-    /* Supported feature fields. */
-    gctUINT32                   chipFeatures;
-
-    /* Supported minor feature fields. */
-    gctUINT32                   chipMinorFeatures;
-
-    /* Supported minor feature 1 fields. */
-    gctUINT32                   chipMinorFeatures1;
-
-    /* Supported minor feature 2 fields. */
-    gctUINT32                   chipMinorFeatures2;
-
-    /* Supported minor feature 3 fields. */
-    gctUINT32                   chipMinorFeatures3;
-
-    /* Supported minor feature 4 fields. */
-    gctUINT32                   chipMinorFeatures4;
-
-    /* Supported minor feature 5 fields. */
-    gctUINT32                   chipMinorFeatures5;
-
-    /* Number of streams supported. */
-    gctUINT32                   streamCount;
-
-    /* Total number of temporary registers per thread. */
-    gctUINT32                   registerMax;
-
-    /* Maximum number of threads. */
-    gctUINT32                   threadCount;
-
-    /* Number of shader cores. */
-    gctUINT32                   shaderCoreCount;
-
-    /* Size of the vertex cache. */
-    gctUINT32                   vertexCacheSize;
-
-    /* Number of entries in the vertex output buffer. */
-    gctUINT32                   vertexOutputBufferSize;
-
-    /* Number of pixel pipes. */
-    gctUINT32                   pixelPipes;
-
-    /* Number of instructions. */
-    gctUINT32                   instructionCount;
-
-    /* Number of constants. */
-    gctUINT32                   numConstants;
-
-    /* Buffer size */
-    gctUINT32                   bufferSize;
-
-    /* Number of varyings */
-    gctUINT32                   varyingsCount;
-
-    /* Supertile layout style in hardware */
-    gctUINT32                   superTileMode;
-
-#if gcdMULTI_GPU
-    /* Number of 3D GPUs */
-    gctUINT32                   gpuCoreCount;
-#endif
-
-    /* Special control bits for 2D chip. */
-    gctUINT32                   chip2DControl;
-
-    /* Product ID */
-    gctUINT32                   productID;
-
-    /* Special ECO bits */
-    gceECO_FLAG                 ecoFlags;
-}
-gcsHAL_QUERY_CHIP_IDENTITY;
-
-/* gcvHAL_COMPOSE. */
-typedef struct _gcsHAL_COMPOSE * gcsHAL_COMPOSE_PTR;
-typedef struct _gcsHAL_COMPOSE
-{
-    /* Composition state buffer. */
-    gctUINT64                   physical;
-    gctUINT64                   logical;
-    gctUINT                     offset;
-    gctUINT                     size;
-
-    /* Composition end signal. */
-    gctUINT64                   process;
-    gctUINT64                   signal;
-
-    /* User signals. */
-    gctUINT64                   userProcess;
-    gctUINT64                   userSignal1;
-    gctUINT64                   userSignal2;
-
-#if defined(__QNXNTO__)
-    /* Client pulse side-channel connection ID. */
-    gctINT32                    coid;
-
-    /* Set by server. */
-    gctINT32                    rcvid;
-#endif
-}
-gcsHAL_COMPOSE;
-
-
-typedef struct _gcsHAL_INTERFACE
-{
-    /* Command code. */
-    gceHAL_COMMAND_CODES        command;
-
-    /* Hardware type. */
-    gceHARDWARE_TYPE            hardwareType;
-
-    /* Status value. */
-    gceSTATUS                   status;
-
-    /* Handle to this interface channel. */
-    gctUINT64                   handle;
-
-    /* Pid of the client. */
-    gctUINT32                   pid;
-
-    /* Union of command structures. */
-    union _u
-    {
-        /* gcvHAL_GET_BASE_ADDRESS */
-        struct _gcsHAL_GET_BASE_ADDRESS
-        {
-            /* Physical memory address of internal memory. */
-            OUT gctUINT32               baseAddress;
-        }
-        GetBaseAddress;
-
-        /* gcvHAL_QUERY_VIDEO_MEMORY */
-        struct _gcsHAL_QUERY_VIDEO_MEMORY
-        {
-            /* Physical memory address of internal memory. Just a name. */
-            OUT gctUINT32               internalPhysical;
-
-            /* Size in bytes of internal memory. */
-            OUT gctUINT64               internalSize;
-
-            /* Physical memory address of external memory. Just a name. */
-            OUT gctUINT32               externalPhysical;
-
-            /* Size in bytes of external memory.*/
-            OUT gctUINT64               externalSize;
-
-            /* Physical memory address of contiguous memory. Just a name. */
-            OUT gctUINT32               contiguousPhysical;
-
-            /* Size in bytes of contiguous memory.*/
-            OUT gctUINT64               contiguousSize;
-        }
-        QueryVideoMemory;
-
-        /* gcvHAL_QUERY_CHIP_IDENTITY */
-        gcsHAL_QUERY_CHIP_IDENTITY      QueryChipIdentity;
-
-        /* gcvHAL_MAP_MEMORY */
-        struct _gcsHAL_MAP_MEMORY
-        {
-            /* Physical memory address to map. Just a name on Linux/Qnx. */
-            IN gctUINT32                physical;
-
-            /* Number of bytes in physical memory to map. */
-            IN gctUINT64                bytes;
-
-            /* Address of mapped memory. */
-            OUT gctUINT64               logical;
-        }
-        MapMemory;
-
-        /* gcvHAL_UNMAP_MEMORY */
-        struct _gcsHAL_UNMAP_MEMORY
-        {
-            /* Physical memory address to unmap. Just a name on Linux/Qnx. */
-            IN gctUINT32                physical;
-
-            /* Number of bytes in physical memory to unmap. */
-            IN gctUINT64                bytes;
-
-            /* Address of mapped memory to unmap. */
-            IN gctUINT64                logical;
-        }
-        UnmapMemory;
-
-        /* gcvHAL_ALLOCATE_LINEAR_VIDEO_MEMORY */
-        struct _gcsHAL_ALLOCATE_LINEAR_VIDEO_MEMORY
-        {
-            /* Number of bytes to allocate. */
-            IN OUT gctUINT              bytes;
-
-            /* Buffer alignment. */
-            IN gctUINT                  alignment;
-
-            /* Type of allocation. */
-            IN gceSURF_TYPE             type;
-
-            /* Flag of allocation. */
-            IN gctUINT32                flag;
-
-            /* Memory pool to allocate from. */
-            IN OUT gcePOOL              pool;
-
-            /* Allocated video memory. */
-            OUT gctUINT32               node;
-        }
-        AllocateLinearVideoMemory;
-
-        /* gcvHAL_ALLOCATE_VIDEO_MEMORY */
-        struct _gcsHAL_ALLOCATE_VIDEO_MEMORY
-        {
-            /* Width of rectangle to allocate. */
-            IN OUT gctUINT              width;
-
-            /* Height of rectangle to allocate. */
-            IN OUT gctUINT              height;
-
-            /* Depth of rectangle to allocate. */
-            IN gctUINT                  depth;
-
-            /* Format rectangle to allocate in gceSURF_FORMAT. */
-            IN gceSURF_FORMAT           format;
-
-            /* Type of allocation. */
-            IN gceSURF_TYPE             type;
-
-            /* Memory pool to allocate from. */
-            IN OUT gcePOOL              pool;
-
-            /* Allocated video memory. */
-            OUT gctUINT32               node;
-        }
-        AllocateVideoMemory;
-
-        /* gcvHAL_RELEASE_VIDEO_MEMORY */
-        struct _gcsHAL_RELEASE_VIDEO_MEMORY
-        {
-            /* Allocated video memory. */
-            IN gctUINT32                node;
-
-#ifdef __QNXNTO__
-/* TODO: This is part of the unlock - why is it here? */
-            /* Mapped logical address to unmap in user space. */
-            OUT gctUINT64               memory;
-
-            /* Number of bytes to allocated. */
-            OUT gctUINT64               bytes;
-#endif
-        }
-        ReleaseVideoMemory;
-
-        /* gcvHAL_LOCK_VIDEO_MEMORY */
-        struct _gcsHAL_LOCK_VIDEO_MEMORY
-        {
-            /* Allocated video memory. */
-            IN gctUINT32                node;
-
-            /* Cache configuration. */
-            /* Only gcvPOOL_CONTIGUOUS and gcvPOOL_VIRUTAL
-            ** can be configured */
-            IN gctBOOL                  cacheable;
-
-            /* Hardware specific address. */
-            OUT gctUINT32               address;
-
-            /* Mapped logical address. */
-            OUT gctUINT64               memory;
-
-            /* Customer priviate handle*/
-            OUT gctUINT32               gid;
-
-            /* Bus address of a contiguous video node. */
-            OUT gctUINT64               physicalAddress;
-        }
-        LockVideoMemory;
-
-        /* gcvHAL_UNLOCK_VIDEO_MEMORY */
-        struct _gcsHAL_UNLOCK_VIDEO_MEMORY
-        {
-            /* Allocated video memory. */
-            IN gctUINT64                node;
-
-            /* Type of surface. */
-            IN gceSURF_TYPE             type;
-
-            /* Flag to unlock surface asynchroneously. */
-            IN OUT gctBOOL              asynchroneous;
-        }
-        UnlockVideoMemory;
-
-        /* gcvHAL_ALLOCATE_NON_PAGED_MEMORY */
-        struct _gcsHAL_ALLOCATE_NON_PAGED_MEMORY
-        {
-            /* Number of bytes to allocate. */
-            IN OUT gctUINT64        bytes;
-
-            /* Physical address of allocation. Just a name. */
-            OUT gctUINT32           physical;
-
-            /* Logical address of allocation. */
-            OUT gctUINT64           logical;
-        }
-        AllocateNonPagedMemory;
-
-        /* gcvHAL_FREE_NON_PAGED_MEMORY */
-        struct _gcsHAL_FREE_NON_PAGED_MEMORY
-        {
-            /* Number of bytes allocated. */
-            IN gctUINT64            bytes;
-
-            /* Physical address of allocation. Just a name. */
-            IN gctUINT32            physical;
-
-            /* Logical address of allocation. */
-            IN gctUINT64            logical;
-        }
-        FreeNonPagedMemory;
-
-        /* gcvHAL_ALLOCATE_NON_PAGED_MEMORY */
-        struct _gcsHAL_ALLOCATE_VIRTUAL_COMMAND_BUFFER
-        {
-            /* Number of bytes to allocate. */
-            IN OUT gctUINT64        bytes;
-
-            /* Physical address of allocation. Just a name. */
-            OUT gctUINT32           physical;
-
-            /* Logical address of allocation. */
-            OUT gctUINT64           logical;
-        }
-        AllocateVirtualCommandBuffer;
-
-        /* gcvHAL_FREE_NON_PAGED_MEMORY */
-        struct _gcsHAL_FREE_VIRTUAL_COMMAND_BUFFER
-        {
-            /* Number of bytes allocated. */
-            IN gctUINT64            bytes;
-
-            /* Physical address of allocation. Just a name. */
-            IN gctUINT32            physical;
-
-            /* Logical address of allocation. */
-            IN gctUINT64            logical;
-        }
-        FreeVirtualCommandBuffer;
-
-        /* gcvHAL_EVENT_COMMIT. */
-        struct _gcsHAL_EVENT_COMMIT
-        {
-            /* Event queue in gcsQUEUE. */
-            IN gctUINT64            queue;
-
-#if gcdMULTI_GPU
-            IN gceCORE_3D_MASK     chipEnable;
-
-            IN gceMULTI_GPU_MODE    gpuMode;
-#endif
-        }
-        Event;
-
-        /* gcvHAL_COMMIT */
-        struct _gcsHAL_COMMIT
-        {
-            /* Context buffer object gckCONTEXT. */
-            IN gctUINT64            context;
-
-            /* Command buffer gcoCMDBUF. */
-            IN gctUINT64            commandBuffer;
-
-            /* State delta buffer in gcsSTATE_DELTA. */
-            gctUINT64               delta;
-
-            /* Event queue in gcsQUEUE. */
-            IN gctUINT64            queue;
-
-#if gcdMULTI_GPU
-            IN gceCORE_3D_MASK      chipEnable;
-
-            IN gceMULTI_GPU_MODE    gpuMode;
-#endif
-        }
-        Commit;
-
-        /* gcvHAL_MAP_USER_MEMORY */
-        struct _gcsHAL_MAP_USER_MEMORY
-        {
-            /* Base address of user memory to map. */
-            IN gctUINT64                memory;
-
-            /* Physical address of user memory to map. */
-            IN gctUINT32                physical;
-
-            /* Size of user memory in bytes to map. */
-            IN gctUINT64                size;
-
-            /* Info record required by gcvHAL_UNMAP_USER_MEMORY. Just a name. */
-            OUT gctUINT32               info;
-
-            /* Physical address of mapped memory. */
-            OUT gctUINT32               address;
-        }
-        MapUserMemory;
-
-        /* gcvHAL_UNMAP_USER_MEMORY */
-        struct _gcsHAL_UNMAP_USER_MEMORY
-        {
-            /* Base address of user memory to unmap. */
-            IN gctUINT64                memory;
-
-            /* Size of user memory in bytes to unmap. */
-            IN gctUINT64                size;
-
-            /* Info record returned by gcvHAL_MAP_USER_MEMORY. Just a name. */
-            IN gctUINT32                info;
-
-            /* Physical address of mapped memory as returned by
-               gcvHAL_MAP_USER_MEMORY. */
-            IN gctUINT32                address;
-        }
-        UnmapUserMemory;
-#if !USE_NEW_LINUX_SIGNAL
-        /* gcsHAL_USER_SIGNAL  */
-        struct _gcsHAL_USER_SIGNAL
-        {
-            /* Command. */
-            gceUSER_SIGNAL_COMMAND_CODES command;
-
-            /* Signal ID. */
-            IN OUT gctINT               id;
-
-            /* Reset mode. */
-            IN gctBOOL                  manualReset;
-
-            /* Wait timedout. */
-            IN gctUINT32                wait;
-
-            /* State. */
-            IN gctBOOL                  state;
-        }
-        UserSignal;
-#endif
-
-        /* gcvHAL_SIGNAL. */
-        struct _gcsHAL_SIGNAL
-        {
-            /* Signal handle to signal gctSIGNAL. */
-            IN gctUINT64                signal;
-
-            /* Reserved gctSIGNAL. */
-            IN gctUINT64                auxSignal;
-
-            /* Process owning the signal gctHANDLE. */
-            IN gctUINT64                process;
-
-#if defined(__QNXNTO__)
-            /* Client pulse side-channel connection ID. Set by client in gcoOS_CreateSignal. */
-            IN gctINT32                 coid;
-
-            /* Set by server. */
-            IN gctINT32                 rcvid;
-#endif
-            /* Event generated from where of pipeline */
-            IN gceKERNEL_WHERE          fromWhere;
-        }
-        Signal;
-
-        /* gcvHAL_WRITE_DATA. */
-        struct _gcsHAL_WRITE_DATA
-        {
-            /* Address to write data to. */
-            IN gctUINT32                address;
-
-            /* Data to write. */
-            IN gctUINT32                data;
-        }
-        WriteData;
-
-        /* gcvHAL_ALLOCATE_CONTIGUOUS_MEMORY */
-        struct _gcsHAL_ALLOCATE_CONTIGUOUS_MEMORY
-        {
-            /* Number of bytes to allocate. */
-            IN OUT gctUINT64            bytes;
-
-            /* Hardware address of allocation. */
-            OUT gctUINT32               address;
-
-            /* Physical address of allocation. Just a name. */
-            OUT gctUINT32               physical;
-
-            /* Logical address of allocation. */
-            OUT gctUINT64               logical;
-        }
-        AllocateContiguousMemory;
-
-        /* gcvHAL_FREE_CONTIGUOUS_MEMORY */
-        struct _gcsHAL_FREE_CONTIGUOUS_MEMORY
-        {
-            /* Number of bytes allocated. */
-            IN gctUINT64                bytes;
-
-            /* Physical address of allocation. Just a name. */
-            IN gctUINT32                physical;
-
-            /* Logical address of allocation. */
-            IN gctUINT64                logical;
-        }
-        FreeContiguousMemory;
-
-        /* gcvHAL_READ_REGISTER */
-        struct _gcsHAL_READ_REGISTER
-        {
-            /* Logical address of memory to write data to. */
-            IN gctUINT32            address;
-
-            /* Data read. */
-            OUT gctUINT32           data;
-        }
-        ReadRegisterData;
-
-        /* gcvHAL_WRITE_REGISTER */
-        struct _gcsHAL_WRITE_REGISTER
-        {
-            /* Logical address of memory to write data to. */
-            IN gctUINT32            address;
-
-            /* Data read. */
-            IN gctUINT32            data;
-        }
-        WriteRegisterData;
-
-#if gcdMULTI_GPU
-        /* gcvHAL_READ_REGISTER_EX */
-        struct _gcsHAL_READ_REGISTER_EX
-        {
-            /* Logical address of memory to write data to. */
-            IN gctUINT32            address;
-
-            IN gctUINT32            coreSelect;
-
-            /* Data read. */
-            OUT gctUINT32           data[gcdMULTI_GPU];
-        }
-        ReadRegisterDataEx;
-
-        /* gcvHAL_WRITE_REGISTER_EX */
-        struct _gcsHAL_WRITE_REGISTER_EX
-        {
-            /* Logical address of memory to write data to. */
-            IN gctUINT32            address;
-
-            IN gctUINT32            coreSelect;
-
-            /* Data read. */
-            IN gctUINT32            data[gcdMULTI_GPU];
-        }
-        WriteRegisterDataEx;
-#endif
-
-#if VIVANTE_PROFILER
-        /* gcvHAL_GET_PROFILE_SETTING */
-        struct _gcsHAL_GET_PROFILE_SETTING
-        {
-            /* Enable profiling */
-            OUT gctBOOL             enable;
-        }
-        GetProfileSetting;
-
-        /* gcvHAL_SET_PROFILE_SETTING */
-        struct _gcsHAL_SET_PROFILE_SETTING
-        {
-            /* Enable profiling */
-            IN gctBOOL              enable;
-        }
-        SetProfileSetting;
-
-#if VIVANTE_PROFILER_PERDRAW
-        /* gcvHAL_READ_PROFILER_REGISTER_SETTING */
-        struct _gcsHAL_READ_PROFILER_REGISTER_SETTING
-         {
-            /*Should Clear Register*/
-            IN gctBOOL               bclear;
-         }
-        SetProfilerRegisterClear;
-#endif
-
-        /* gcvHAL_READ_ALL_PROFILE_REGISTERS */
-        struct _gcsHAL_READ_ALL_PROFILE_REGISTERS
-        {
-#if VIVANTE_PROFILER_CONTEXT
-            /* Context buffer object gckCONTEXT. Just a name. */
-            IN gctUINT32                context;
-#endif
-
-            /* Data read. */
-            OUT gcsPROFILER_COUNTERS    counters;
-        }
-        RegisterProfileData;
-
-        /* gcvHAL_PROFILE_REGISTERS_2D */
-        struct _gcsHAL_PROFILE_REGISTERS_2D
-        {
-            /* Data read in gcs2D_PROFILE. */
-            OUT gctUINT64       hwProfile2D;
-        }
-        RegisterProfileData2D;
-#endif
-
-        /* Power management. */
-        /* gcvHAL_SET_POWER_MANAGEMENT_STATE */
-        struct _gcsHAL_SET_POWER_MANAGEMENT
-        {
-            /* Data read. */
-            IN gceCHIPPOWERSTATE        state;
-        }
-        SetPowerManagement;
-
-        /* gcvHAL_QUERY_POWER_MANAGEMENT_STATE */
-        struct _gcsHAL_QUERY_POWER_MANAGEMENT
-        {
-            /* Data read. */
-            OUT gceCHIPPOWERSTATE       state;
-
-            /* Idle query. */
-            OUT gctBOOL                 isIdle;
-        }
-        QueryPowerManagement;
-
-        /* gcvHAL_QUERY_KERNEL_SETTINGS */
-        struct _gcsHAL_QUERY_KERNEL_SETTINGS
-        {
-            /* Settings.*/
-            OUT gcsKERNEL_SETTINGS      settings;
-        }
-        QueryKernelSettings;
-
-        /* gcvHAL_MAP_PHYSICAL */
-        struct _gcsHAL_MAP_PHYSICAL
-        {
-            /* gcvTRUE to map, gcvFALSE to unmap. */
-            IN gctBOOL                  map;
-
-            /* Physical address. */
-            IN OUT gctUINT64            physical;
-        }
-        MapPhysical;
-
-        /* gcvHAL_DEBUG */
-        struct _gcsHAL_DEBUG
-        {
-            /* If gcvTRUE, set the debug information. */
-            IN gctBOOL                  set;
-            IN gctUINT32                level;
-            IN gctUINT32                zones;
-            IN gctBOOL                  enable;
-
-            IN gceDEBUG_MESSAGE_TYPE    type;
-            IN gctUINT32                messageSize;
-
-            /* Message to print if not empty. */
-            IN gctCHAR                  message[80];
-        }
-        Debug;
-
-        /* gcvHAL_CACHE */
-        struct _gcsHAL_CACHE
-        {
-            IN gceCACHEOPERATION        operation;
-            IN gctUINT64                process;
-            IN gctUINT64                logical;
-            IN gctUINT64                bytes;
-            IN gctUINT32                node;
-        }
-        Cache;
-
-        /* gcvHAL_TIMESTAMP */
-        struct _gcsHAL_TIMESTAMP
-        {
-            /* Timer select. */
-            IN gctUINT32                timer;
-
-            /* Timer request type (0-stop, 1-start, 2-send delta). */
-            IN gctUINT32                request;
-
-            /* Result of delta time in microseconds. */
-            OUT gctINT32                timeDelta;
-        }
-        TimeStamp;
-
-        /* gcvHAL_DATABASE */
-        struct _gcsHAL_DATABASE
-        {
-            /* Set to gcvTRUE if you want to query a particular process ID.
-            ** Set to gcvFALSE to query the last detached process. */
-            IN gctBOOL                  validProcessID;
-
-            /* Process ID to query. */
-            IN gctUINT32                processID;
-
-            /* Information. */
-            OUT gcuDATABASE_INFO        vidMem;
-            OUT gcuDATABASE_INFO        nonPaged;
-            OUT gcuDATABASE_INFO        contiguous;
-            OUT gcuDATABASE_INFO        gpuIdle;
-
-            /* Detail information about video memory. */
-            OUT gcuDATABASE_INFO        vidMemPool[3];
-        }
-        Database;
-
-        /* gcvHAL_VERSION */
-        struct _gcsHAL_VERSION
-        {
-            /* Major version: N.n.n. */
-            OUT gctINT32                major;
-
-            /* Minor version: n.N.n. */
-            OUT gctINT32                minor;
-
-            /* Patch version: n.n.N. */
-            OUT gctINT32                patch;
-
-            /* Build version. */
-            OUT gctUINT32               build;
-        }
-        Version;
-
-        /* gcvHAL_CHIP_INFO */
-        struct _gcsHAL_CHIP_INFO
-        {
-            /* Chip count. */
-            OUT gctINT32                count;
-
-            /* Chip types. */
-            OUT gceHARDWARE_TYPE        types[gcdCHIP_COUNT];
-        }
-        ChipInfo;
-
-        /* gcvHAL_ATTACH */
-        struct _gcsHAL_ATTACH
-        {
-            /* Handle of context buffer object. */
-            OUT gctUINT32               context;
-
-            /* Number of states in the buffer. */
-            OUT gctUINT64               stateCount;
-
-            /* Map context buffer to user or not. */
-            IN gctBOOL                  map;
-
-            /* Physical of context buffer. */
-            OUT gctUINT32               physicals[2];
-
-            /* Physical of context buffer. */
-            OUT gctUINT64               logicals[2];
-
-            /* Bytes of context buffer. */
-            OUT gctUINT32               bytes;
-        }
-        Attach;
-
-        /* gcvHAL_DETACH */
-        struct _gcsHAL_DETACH
-        {
-            /* Context buffer object gckCONTEXT. Just a name. */
-            IN gctUINT32                context;
-        }
-        Detach;
-
-        /* gcvHAL_COMPOSE. */
-        gcsHAL_COMPOSE            Compose;
-
-        /* gcvHAL_GET_FRAME_INFO. */
-        struct _gcsHAL_GET_FRAME_INFO
-        {
-            /* gcsHAL_FRAME_INFO* */
-            OUT gctUINT64     frameInfo;
-        }
-        GetFrameInfo;
-
-        /* gcvHAL_SET_TIME_OUT. */
-        struct _gcsHAL_SET_TIMEOUT
-        {
-            gctUINT32                   timeOut;
-        }
-        SetTimeOut;
-
-#if gcdENABLE_VG
-        /* gcvHAL_COMMIT */
-        struct _gcsHAL_VGCOMMIT
-        {
-            /* Context buffer. gcsVGCONTEXT_PTR */
-            IN gctUINT64                context;
-
-            /* Command queue. gcsVGCMDQUEUE_PTR */
-            IN gctUINT64                queue;
-
-            /* Number of entries in the queue. */
-            IN gctUINT                  entryCount;
-
-            /* Task table. gcsTASK_MASTER_TABLE_PTR */
-            IN gctUINT64                taskTable;
-        }
-        VGCommit;
-
-        /* gcvHAL_QUERY_COMMAND_BUFFER */
-        struct _gcsHAL_QUERY_COMMAND_BUFFER
-        {
-            /* Command buffer attributes. */
-            OUT gcsCOMMAND_BUFFER_INFO    information;
-        }
-        QueryCommandBuffer;
-
-#endif
-
-        struct _gcsHAL_SET_FSCALE_VALUE
-        {
-            IN gctUINT              value;
-        }
-        SetFscaleValue;
-
-        struct _gcsHAL_GET_FSCALE_VALUE
-        {
-            OUT gctUINT             value;
-            OUT gctUINT             minValue;
-            OUT gctUINT             maxValue;
-        }
-        GetFscaleValue;
-
-        struct _gcsHAL_NAME_VIDEO_MEMORY
-        {
-            IN gctUINT32            handle;
-            OUT gctUINT32           name;
-        }
-        NameVideoMemory;
-
-        struct _gcsHAL_IMPORT_VIDEO_MEMORY
-        {
-            IN gctUINT32            name;
-            OUT gctUINT32           handle;
-        }
-        ImportVideoMemory;
-
-        struct _gcsHAL_QUERY_RESET_TIME_STAMP
-        {
-            OUT gctUINT64           timeStamp;
-        }
-        QueryResetTimeStamp;
-
-        struct _gcsHAL_SYNC_POINT
-        {
-            /* Command. */
-            gceSYNC_POINT_COMMAND_CODES command;
-
-            /* Sync point. */
-            IN OUT gctUINT64            syncPoint;
-
-            /* From where. */
-            IN gceKERNEL_WHERE          fromWhere;
-
-            /* Signaled state. */
-            OUT gctBOOL                 state;
-        }
-        SyncPoint;
-
-        struct _gcsHAL_CREATE_NATIVE_FENCE
-        {
-            /* Signal id to dup. */
-            IN gctUINT64                syncPoint;
-
-            /* Native fence file descriptor. */
-            OUT gctINT                  fenceFD;
-
-        }
-        CreateNativeFence;
-
-        struct _gcsHAL_DESTROY_MMU
-        {
-            /* Mmu object. */
-            IN gctUINT64                mmu;
-        }
-        DestroyMmu;
-
-        struct _gcsHAL_SHBUF
-        {
-            gceSHBUF_COMMAND_CODES      command;
-
-            /* Shared buffer. */
-            IN OUT gctUINT64            id;
-
-            /* User data to be shared. */
-            IN gctUINT64                data;
-
-            /* Data size. */
-            IN OUT gctUINT32            bytes;
-        }
-        ShBuf;
-
-        struct _gcsHAL_CONFIG_POWER_MANAGEMENT
-        {
-            IN gctBOOL                  enable;
-        }
-        ConfigPowerManagement;
-
-        struct _gcsHAL_GET_VIDEO_MEMORY_FD
-        {
-            IN gctUINT32            handle;
-            OUT gctINT              fd;
-        }
-        GetVideoMemoryFd;
-    }
-    u;
-}
-gcsHAL_INTERFACE;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gc_hal_driver_h_ */

+ 0 - 262
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_driver_vg.h

@@ -1,262 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_driver_vg_h_
-#define __gc_hal_driver_vg_h_
-
-
-
-#include "gc_hal_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/******************************************************************************\
-******************************* I/O Control Codes ******************************
-\******************************************************************************/
-
-#define gcvHAL_CLASS            "galcore"
-#define IOCTL_GCHAL_INTERFACE   30000
-
-/******************************************************************************\
-********************************* Command Codes ********************************
-\******************************************************************************/
-
-/******************************************************************************\
-********************* Command buffer information structure. ********************
-\******************************************************************************/
-
-typedef struct _gcsCOMMAND_BUFFER_INFO * gcsCOMMAND_BUFFER_INFO_PTR;
-typedef struct _gcsCOMMAND_BUFFER_INFO
-{
-    /* FE command buffer interrupt ID. */
-    gctINT32                    feBufferInt;
-
-    /* TS overflow interrupt ID. */
-    gctINT32                    tsOverflowInt;
-
-    /* Alignment and mask for the buffer address. */
-    gctUINT                     addressMask;
-    gctUINT32                    addressAlignment;
-
-    /* Alignment for each command. */
-    gctUINT32                   commandAlignment;
-
-    /* Number of bytes required by the STATE command. */
-    gctUINT32                   stateCommandSize;
-
-    /* Number of bytes required by the RESTART command. */
-    gctUINT32                   restartCommandSize;
-
-    /* Number of bytes required by the FETCH command. */
-    gctUINT32                   fetchCommandSize;
-
-    /* Number of bytes required by the CALL command. */
-    gctUINT32                   callCommandSize;
-
-    /* Number of bytes required by the RETURN command. */
-    gctUINT32                   returnCommandSize;
-
-    /* Number of bytes required by the EVENT command. */
-    gctUINT32                   eventCommandSize;
-
-    /* Number of bytes required by the END command. */
-    gctUINT32                   endCommandSize;
-
-    /* Number of bytes reserved at the tail of a static command buffer. */
-    gctUINT32                   staticTailSize;
-
-    /* Number of bytes reserved at the tail of a dynamic command buffer. */
-    gctUINT32                   dynamicTailSize;
-}
-gcsCOMMAND_BUFFER_INFO;
-
-/******************************************************************************\
-******************************** Task Structures *******************************
-\******************************************************************************/
-
-typedef enum _gceTASK
-{
-    gcvTASK_LINK,
-    gcvTASK_CLUSTER,
-    gcvTASK_INCREMENT,
-    gcvTASK_DECREMENT,
-    gcvTASK_SIGNAL,
-    gcvTASK_LOCKDOWN,
-    gcvTASK_UNLOCK_VIDEO_MEMORY,
-    gcvTASK_FREE_VIDEO_MEMORY,
-    gcvTASK_FREE_CONTIGUOUS_MEMORY,
-    gcvTASK_UNMAP_USER_MEMORY
-}
-gceTASK;
-
-typedef struct _gcsTASK_HEADER * gcsTASK_HEADER_PTR;
-typedef struct _gcsTASK_HEADER
-{
-    /* Task ID. */
-    IN gceTASK                  id;
-}
-gcsTASK_HEADER;
-
-typedef struct _gcsTASK_LINK * gcsTASK_LINK_PTR;
-typedef struct _gcsTASK_LINK
-{
-    /* Task ID (gcvTASK_LINK). */
-    IN gceTASK                  id;
-
-    /* Pointer to the next task container. */
-    IN gctPOINTER               cotainer;
-
-    /* Pointer to the next task from the next task container. */
-    IN gcsTASK_HEADER_PTR       task;
-}
-gcsTASK_LINK;
-
-typedef struct _gcsTASK_CLUSTER * gcsTASK_CLUSTER_PTR;
-typedef struct _gcsTASK_CLUSTER
-{
-    /* Task ID (gcvTASK_CLUSTER). */
-    IN gceTASK                  id;
-
-    /* Number of tasks in the cluster. */
-    IN gctUINT                  taskCount;
-}
-gcsTASK_CLUSTER;
-
-typedef struct _gcsTASK_INCREMENT * gcsTASK_INCREMENT_PTR;
-typedef struct _gcsTASK_INCREMENT
-{
-    /* Task ID (gcvTASK_INCREMENT). */
-    IN gceTASK                  id;
-
-    /* Address of the variable to increment. */
-    IN gctUINT32                address;
-}
-gcsTASK_INCREMENT;
-
-typedef struct _gcsTASK_DECREMENT * gcsTASK_DECREMENT_PTR;
-typedef struct _gcsTASK_DECREMENT
-{
-    /* Task ID (gcvTASK_DECREMENT). */
-    IN gceTASK                  id;
-
-    /* Address of the variable to decrement. */
-    IN gctUINT32                address;
-}
-gcsTASK_DECREMENT;
-
-typedef struct _gcsTASK_SIGNAL * gcsTASK_SIGNAL_PTR;
-typedef struct _gcsTASK_SIGNAL
-{
-    /* Task ID (gcvTASK_SIGNAL). */
-    IN gceTASK                  id;
-
-    /* Process owning the signal. */
-    IN gctHANDLE                process;
-
-    /* Signal handle to signal. */
-    IN gctSIGNAL                signal;
-
-#if defined(__QNXNTO__)
-    IN gctINT32                 coid;
-    IN gctINT32                 rcvid;
-#endif
-}
-gcsTASK_SIGNAL;
-
-typedef struct _gcsTASK_LOCKDOWN * gcsTASK_LOCKDOWN_PTR;
-typedef struct _gcsTASK_LOCKDOWN
-{
-    /* Task ID (gcvTASK_LOCKDOWN). */
-    IN gceTASK                  id;
-
-    /* Address of the user space counter. */
-    IN gctUINT32                userCounter;
-
-    /* Address of the kernel space counter. */
-    IN gctUINT32                kernelCounter;
-
-    /* Process owning the signal. */
-    IN gctHANDLE                process;
-
-    /* Signal handle to signal. */
-    IN gctSIGNAL                signal;
-}
-gcsTASK_LOCKDOWN;
-
-typedef struct _gcsTASK_UNLOCK_VIDEO_MEMORY * gcsTASK_UNLOCK_VIDEO_MEMORY_PTR;
-typedef struct _gcsTASK_UNLOCK_VIDEO_MEMORY
-{
-    /* Task ID (gcvTASK_UNLOCK_VIDEO_MEMORY). */
-    IN gceTASK                  id;
-
-    /* Allocated video memory. */
-    IN gctUINT64                node;
-}
-gcsTASK_UNLOCK_VIDEO_MEMORY;
-
-typedef struct _gcsTASK_FREE_VIDEO_MEMORY * gcsTASK_FREE_VIDEO_MEMORY_PTR;
-typedef struct _gcsTASK_FREE_VIDEO_MEMORY
-{
-    /* Task ID (gcvTASK_FREE_VIDEO_MEMORY). */
-    IN gceTASK                  id;
-
-    /* Allocated video memory. */
-    IN gctUINT32                node;
-}
-gcsTASK_FREE_VIDEO_MEMORY;
-
-typedef struct _gcsTASK_FREE_CONTIGUOUS_MEMORY * gcsTASK_FREE_CONTIGUOUS_MEMORY_PTR;
-typedef struct _gcsTASK_FREE_CONTIGUOUS_MEMORY
-{
-    /* Task ID (gcvTASK_FREE_CONTIGUOUS_MEMORY). */
-    IN gceTASK                  id;
-
-    /* Number of bytes allocated. */
-    IN gctSIZE_T                bytes;
-
-    /* Physical address of allocation. */
-    IN gctPHYS_ADDR             physical;
-
-    /* Logical address of allocation. */
-    IN gctPOINTER               logical;
-}
-gcsTASK_FREE_CONTIGUOUS_MEMORY;
-
-typedef struct _gcsTASK_UNMAP_USER_MEMORY * gcsTASK_UNMAP_USER_MEMORY_PTR;
-typedef struct _gcsTASK_UNMAP_USER_MEMORY
-{
-    /* Task ID (gcvTASK_UNMAP_USER_MEMORY). */
-    IN gceTASK                  id;
-
-    /* Base address of user memory to unmap. */
-    IN gctPOINTER               memory;
-
-    /* Size of user memory in bytes to unmap. */
-    IN gctSIZE_T                size;
-
-    /* Info record returned by gcvHAL_MAP_USER_MEMORY. */
-    IN gctPOINTER               info;
-
-    /* Physical address of mapped memory as returned by
-       gcvHAL_MAP_USER_MEMORY. */
-    IN gctUINT32                address;
-}
-gcsTASK_UNMAP_USER_MEMORY;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gc_hal_driver_h_ */

+ 0 - 81
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_dump.h

@@ -1,81 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_dump_h_
-#define __gc_hal_dump_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-**    FILE LAYOUT:
-**
-**        gcsDUMP_FILE structure
-**
-**        gcsDUMP_DATA frame
-**            gcsDUMP_DATA or gcDUMP_DATA_SIZE records rendingring the frame
-**            gctUINT8 data[length]
-*/
-
-#define gcvDUMP_FILE_SIGNATURE        gcmCC('g','c','D','B')
-
-typedef struct _gcsDUMP_FILE
-{
-    gctUINT32           signature;    /* File signature */
-    gctSIZE_T             length;        /* Length of file */
-    gctUINT32             frames;        /* Number of frames in file */
-}
-gcsDUMP_FILE;
-
-typedef enum _gceDUMP_TAG
-{
-    gcvTAG_SURFACE                  = gcmCC('s','u','r','f'),
-    gcvTAG_FRAME                    = gcmCC('f','r','m',' '),
-    gcvTAG_COMMAND                  = gcmCC('c','m','d',' '),
-    gcvTAG_INDEX                    = gcmCC('i','n','d','x'),
-    gcvTAG_STREAM                   = gcmCC('s','t','r','m'),
-    gcvTAG_TEXTURE                  = gcmCC('t','e','x','t'),
-    gcvTAG_RENDER_TARGET            = gcmCC('r','n','d','r'),
-    gcvTAG_DEPTH                    = gcmCC('z','b','u','f'),
-    gcvTAG_RESOLVE                  = gcmCC('r','s','l','v'),
-    gcvTAG_DELETE                   = gcmCC('d','e','l',' '),
-    gcvTAG_BUFOBJ                   = gcmCC('b','u','f','o'),
-}
-gceDUMP_TAG;
-
-typedef struct _gcsDUMP_SURFACE
-{
-    gceDUMP_TAG            type;        /* Type of record. */
-    gctUINT32             address;    /* Address of the surface. */
-    gctINT16              width;        /* Width of surface. */
-    gctINT16               height;        /* Height of surface. */
-    gceSURF_FORMAT        format;        /* Surface pixel format. */
-    gctSIZE_T            length;        /* Number of bytes inside the surface. */
-}
-gcsDUMP_SURFACE;
-
-typedef struct _gcsDUMP_DATA
-{
-    gceDUMP_TAG             type;        /* Type of record. */
-    gctSIZE_T             length;        /* Number of bytes of data. */
-    gctUINT32             address;    /* Address for the data. */
-}
-gcsDUMP_DATA;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gc_hal_dump_h_ */
-

+ 0 - 623
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_eglplatform.h

@@ -1,623 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_eglplatform_h_
-#define __gc_hal_eglplatform_h_
-
-/* Include VDK types. */
-#include "gc_hal_types.h"
-#include "gc_hal_base.h"
-#include "gc_hal_eglplatform_type.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
-/* Win32 and Windows CE platforms. */
-#include <windows.h>
-typedef HDC             HALNativeDisplayType;
-typedef HWND            HALNativeWindowType;
-typedef HBITMAP         HALNativePixmapType;
-
-typedef struct __BITFIELDINFO{
-    BITMAPINFO    bmi;
-    RGBQUAD       bmiColors[2];
-} BITFIELDINFO;
-
-#elif defined(LINUX) && defined(EGL_API_DFB) && !defined(__APPLE__)
-#include <directfb.h>
-typedef struct _DFBDisplay * HALNativeDisplayType;
-typedef struct _DFBWindow *  HALNativeWindowType;
-typedef struct _DFBPixmap *  HALNativePixmapType;
-
-#elif defined(LINUX) && defined(EGL_API_FB) && !defined(__APPLE__)
-
-#if defined(EGL_API_WL)
-
-#if defined(__GNUC__)
-#   define inline            __inline__  /* GNU keyword. */
-#endif
-
-/* Wayland platform. */
-#include <wayland-egl.h>
-
-#define WL_EGL_NUM_BACKBUFFERS 3
-
-typedef struct _gcsWL_VIV_BUFFER
-{
-   struct wl_resource *wl_buffer;
-   gcoSURF surface;
-   gctINT32 width, height;
-} gcsWL_VIV_BUFFER;
-
-typedef struct _gcsWL_EGL_DISPLAY
-{
-   struct wl_display* wl_display;
-   struct wl_viv* wl_viv;
-   struct wl_registry *registry;
-   struct wl_event_queue    *wl_queue;
-   gctINT swapInterval;
-} gcsWL_EGL_DISPLAY;
-
-typedef struct _gcsWL_EGL_BUFFER_INFO
-{
-   gctINT32 width;
-   gctINT32 height;
-   gctINT32 stride;
-   gceSURF_FORMAT format;
-   gcuVIDMEM_NODE_PTR node;
-   gcePOOL pool;
-   gctUINT bytes;
-   gcoSURF surface;
-   gcoSURF attached_surface;
-   gctINT32 invalidate;
-   gctBOOL locked;
-} gcsWL_EGL_BUFFER_INFO;
-
-typedef struct _gcsWL_EGL_BUFFER
-{
-   struct wl_buffer* wl_buffer;
-   gcsWL_EGL_BUFFER_INFO info;
-} gcsWL_EGL_BUFFER;
-
-typedef struct _gcsWL_EGL_WINDOW_INFO
-{
-   gctINT32 dx;
-   gctINT32 dy;
-   gctUINT width;
-   gctUINT height;
-   gctINT32 attached_width;
-   gctINT32 attached_height;
-   gceSURF_FORMAT format;
-   gctUINT bpp;
-} gcsWL_EGL_WINDOW_INFO;
-
-struct wl_egl_window
-{
-   gcsWL_EGL_DISPLAY* display;
-   gcsWL_EGL_BUFFER backbuffers[WL_EGL_NUM_BACKBUFFERS];
-   gcsWL_EGL_WINDOW_INFO info;
-   gctUINT current;
-   struct wl_surface* surface;
-   struct wl_callback* frame_callback;
-};
-
-typedef void*   HALNativeDisplayType;
-typedef void*   HALNativeWindowType;
-typedef void*   HALNativePixmapType;
-#else
-/* Linux platform for FBDEV. */
-typedef struct _FBDisplay * HALNativeDisplayType;
-typedef struct _FBWindow *  HALNativeWindowType;
-typedef struct _FBPixmap *  HALNativePixmapType;
-#endif
-#elif defined(__ANDROID__) || defined(ANDROID)
-
-struct egl_native_pixmap_t;
-
-#if ANDROID_SDK_VERSION >= 9
-    #include <android/native_window.h>
-
-    typedef struct ANativeWindow*           HALNativeWindowType;
-    typedef struct egl_native_pixmap_t*     HALNativePixmapType;
-    typedef void*                           HALNativeDisplayType;
-#else
-    struct android_native_window_t;
-    typedef struct android_native_window_t*    HALNativeWindowType;
-    typedef struct egl_native_pixmap_t *        HALNativePixmapType;
-    typedef void*                               HALNativeDisplayType;
-#endif
-
-#elif defined(LINUX) || defined(__APPLE__)
-/* X11 platform. */
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
-typedef Display *   HALNativeDisplayType;
-typedef Window      HALNativeWindowType;
-
-#ifdef CUSTOM_PIXMAP
-typedef void *      HALNativePixmapType;
-#else
-typedef Pixmap      HALNativePixmapType;
-#endif /* CUSTOM_PIXMAP */
-
-/* Rename some badly named X defines. */
-#ifdef Status
-#   define XStatus      int
-#   undef Status
-#endif
-#ifdef Always
-#   define XAlways      2
-#   undef Always
-#endif
-#ifdef CurrentTime
-#   undef CurrentTime
-#   define XCurrentTime 0
-#endif
-
-#elif defined(__QNXNTO__)
-#include <screen/screen.h>
-
-/* VOID */
-typedef int              HALNativeDisplayType;
-typedef screen_window_t  HALNativeWindowType;
-typedef screen_pixmap_t  HALNativePixmapType;
-
-#else
-
-#error "Platform not recognized"
-
-/* VOID */
-typedef void *  HALNativeDisplayType;
-typedef void *  HALNativeWindowType;
-typedef void *  HALNativePixmapType;
-
-#endif
-
-/* define DUMMY according to the system */
-#if defined(EGL_API_WL)
-#   define WL_DUMMY (31415926)
-#   define EGL_DUMMY WL_DUMMY
-#elif defined(__ANDROID__) || defined(ANDROID)
-#   define ANDROID_DUMMY (31415926)
-#   define EGL_DUMMY ANDROID_DUMMY
-#else
-#   define EGL_DUMMY (31415926)
-#endif
-
-/*******************************************************************************
-** Display. ********************************************************************
-*/
-
-gceSTATUS
-gcoOS_GetDisplay(
-    OUT HALNativeDisplayType * Display,
-    IN gctPOINTER Context
-    );
-
-gceSTATUS
-gcoOS_GetDisplayByIndex(
-    IN gctINT DisplayIndex,
-    OUT HALNativeDisplayType * Display,
-    IN gctPOINTER Context
-    );
-
-gceSTATUS
-gcoOS_GetDisplayInfo(
-    IN HALNativeDisplayType Display,
-    OUT gctINT * Width,
-    OUT gctINT * Height,
-    OUT gctSIZE_T * Physical,
-    OUT gctINT * Stride,
-    OUT gctINT * BitsPerPixel
-    );
-
-
-
-gceSTATUS
-gcoOS_GetDisplayInfoEx(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window,
-    IN gctUINT DisplayInfoSize,
-    OUT halDISPLAY_INFO * DisplayInfo
-    );
-
-gceSTATUS
-gcoOS_GetDisplayVirtual(
-    IN HALNativeDisplayType Display,
-    OUT gctINT * Width,
-    OUT gctINT * Height
-    );
-
-gceSTATUS
-gcoOS_GetDisplayBackbuffer(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window,
-    OUT gctPOINTER  *  context,
-    OUT gcoSURF     *  surface,
-    OUT gctUINT * Offset,
-    OUT gctINT * X,
-    OUT gctINT * Y
-    );
-
-gceSTATUS
-gcoOS_SetDisplayVirtual(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window,
-    IN gctUINT Offset,
-    IN gctINT X,
-    IN gctINT Y
-    );
-
-gceSTATUS
-gcoOS_SetDisplayVirtualEx(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window,
-    IN gctPOINTER Context,
-    IN gcoSURF Surface,
-    IN gctUINT Offset,
-    IN gctINT X,
-    IN gctINT Y
-    );
-
-gceSTATUS
-gcoOS_SetSwapInterval(
-    IN HALNativeDisplayType Display,
-    IN gctINT Interval
-);
-
-gceSTATUS
-gcoOS_SetSwapIntervalEx(
-    IN HALNativeDisplayType Display,
-    IN gctINT Interval,
-    IN gctPOINTER localDisplay);
-
-gceSTATUS
-gcoOS_GetSwapInterval(
-    IN HALNativeDisplayType Display,
-    IN gctINT_PTR Min,
-    IN gctINT_PTR Max
-);
-
-gceSTATUS
-gcoOS_DisplayBufferRegions(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window,
-    IN gctINT NumRects,
-    IN gctINT_PTR Rects
-    );
-
-gceSTATUS
-gcoOS_DestroyDisplay(
-    IN HALNativeDisplayType Display
-    );
-
-gceSTATUS
-gcoOS_InitLocalDisplayInfo(
-    IN HALNativeDisplayType Display,
-    IN OUT gctPOINTER * localDisplay
-    );
-
-gceSTATUS
-gcoOS_DeinitLocalDisplayInfo(
-    IN HALNativeDisplayType Display,
-    IN OUT gctPOINTER * localDisplay
-    );
-
-gceSTATUS
-gcoOS_GetDisplayInfoEx2(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window,
-    IN gctPOINTER  localDisplay,
-    IN gctUINT DisplayInfoSize,
-    OUT halDISPLAY_INFO * DisplayInfo
-    );
-
-gceSTATUS
-gcoOS_GetDisplayBackbufferEx(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window,
-    IN gctPOINTER  localDisplay,
-    OUT gctPOINTER  *  context,
-    OUT gcoSURF     *  surface,
-    OUT gctUINT * Offset,
-    OUT gctINT * X,
-    OUT gctINT * Y
-    );
-
-gceSTATUS
-gcoOS_IsValidDisplay(
-    IN HALNativeDisplayType Display
-    );
-
-gceSTATUS
-gcoOS_GetNativeVisualId(
-    IN HALNativeDisplayType Display,
-    OUT gctINT* nativeVisualId
-    );
-
-gctBOOL
-gcoOS_SynchronousFlip(
-    IN HALNativeDisplayType Display
-    );
-
-/*******************************************************************************
-** Windows. ********************************************************************
-*/
-
-gceSTATUS
-gcoOS_CreateWindow(
-    IN HALNativeDisplayType Display,
-    IN gctINT X,
-    IN gctINT Y,
-    IN gctINT Width,
-    IN gctINT Height,
-    OUT HALNativeWindowType * Window
-    );
-
-gceSTATUS
-gcoOS_GetWindowInfo(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window,
-    OUT gctINT * X,
-    OUT gctINT * Y,
-    OUT gctINT * Width,
-    OUT gctINT * Height,
-    OUT gctINT * BitsPerPixel,
-    OUT gctUINT * Offset
-    );
-
-gceSTATUS
-gcoOS_DestroyWindow(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window
-    );
-
-gceSTATUS
-gcoOS_DrawImage(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window,
-    IN gctINT Left,
-    IN gctINT Top,
-    IN gctINT Right,
-    IN gctINT Bottom,
-    IN gctINT Width,
-    IN gctINT Height,
-    IN gctINT BitsPerPixel,
-    IN gctPOINTER Bits
-    );
-
-gceSTATUS
-gcoOS_GetImage(
-    IN HALNativeWindowType Window,
-    IN gctINT Left,
-    IN gctINT Top,
-    IN gctINT Right,
-    IN gctINT Bottom,
-    OUT gctINT * BitsPerPixel,
-    OUT gctPOINTER * Bits
-    );
-
-gceSTATUS
-gcoOS_GetWindowInfoEx(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window,
-    OUT gctINT * X,
-    OUT gctINT * Y,
-    OUT gctINT * Width,
-    OUT gctINT * Height,
-    OUT gctINT * BitsPerPixel,
-    OUT gctUINT * Offset,
-    OUT gceSURF_FORMAT * Format
-    );
-
-gceSTATUS
-gcoOS_DrawImageEx(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window,
-    IN gctINT Left,
-    IN gctINT Top,
-    IN gctINT Right,
-    IN gctINT Bottom,
-    IN gctINT Width,
-    IN gctINT Height,
-    IN gctINT BitsPerPixel,
-    IN gctPOINTER Bits,
-    IN gceSURF_FORMAT  Format
-    );
-
-/*******************************************************************************
-** Pixmaps. ********************************************************************
-*/
-
-gceSTATUS
-gcoOS_CreatePixmap(
-    IN HALNativeDisplayType Display,
-    IN gctINT Width,
-    IN gctINT Height,
-    IN gctINT BitsPerPixel,
-    OUT HALNativePixmapType * Pixmap
-    );
-
-gceSTATUS
-gcoOS_GetPixmapInfo(
-    IN HALNativeDisplayType Display,
-    IN HALNativePixmapType Pixmap,
-    OUT gctINT * Width,
-    OUT gctINT * Height,
-    OUT gctINT * BitsPerPixel,
-    OUT gctINT * Stride,
-    OUT gctPOINTER * Bits
-    );
-
-gceSTATUS
-gcoOS_DrawPixmap(
-    IN HALNativeDisplayType Display,
-    IN HALNativePixmapType Pixmap,
-    IN gctINT Left,
-    IN gctINT Top,
-    IN gctINT Right,
-    IN gctINT Bottom,
-    IN gctINT Width,
-    IN gctINT Height,
-    IN gctINT BitsPerPixel,
-    IN gctPOINTER Bits
-    );
-
-gceSTATUS
-gcoOS_DestroyPixmap(
-    IN HALNativeDisplayType Display,
-    IN HALNativePixmapType Pixmap
-    );
-
-gceSTATUS
-gcoOS_GetPixmapInfoEx(
-    IN HALNativeDisplayType Display,
-    IN HALNativePixmapType Pixmap,
-    OUT gctINT * Width,
-    OUT gctINT * Height,
-    OUT gctINT * BitsPerPixel,
-    OUT gctINT * Stride,
-    OUT gctPOINTER * Bits,
-    OUT gceSURF_FORMAT * Format
-    );
-
-gceSTATUS
-gcoOS_CopyPixmapBits(
-    IN HALNativeDisplayType Display,
-    IN HALNativePixmapType Pixmap,
-    IN gctUINT DstWidth,
-    IN gctUINT DstHeight,
-    IN gctINT DstStride,
-    IN gceSURF_FORMAT DstFormat,
-    OUT gctPOINTER DstBits
-    );
-
-/*******************************************************************************
-** OS relative. ****************************************************************
-*/
-gceSTATUS
-gcoOS_LoadEGLLibrary(
-    OUT gctHANDLE * Handle
-    );
-
-gceSTATUS
-gcoOS_FreeEGLLibrary(
-    IN gctHANDLE Handle
-    );
-
-gceSTATUS
-gcoOS_ShowWindow(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window
-    );
-
-gceSTATUS
-gcoOS_HideWindow(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window
-    );
-
-gceSTATUS
-gcoOS_SetWindowTitle(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window,
-    IN gctCONST_STRING Title
-    );
-
-gceSTATUS
-gcoOS_CapturePointer(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window
-    );
-
-gceSTATUS
-gcoOS_GetEvent(
-    IN HALNativeDisplayType Display,
-    IN HALNativeWindowType Window,
-    OUT halEvent * Event
-    );
-
-gceSTATUS
-gcoOS_CreateClientBuffer(
-    IN gctINT Width,
-    IN gctINT Height,
-    IN gctINT Format,
-    IN gctINT Type,
-    OUT gctPOINTER * ClientBuffer
-    );
-
-gceSTATUS
-gcoOS_GetClientBufferInfo(
-    IN gctPOINTER ClientBuffer,
-    OUT gctINT * Width,
-    OUT gctINT * Height,
-    OUT gctINT * Stride,
-    OUT gctPOINTER * Bits
-    );
-
-gceSTATUS
-gcoOS_DestroyClientBuffer(
-    IN gctPOINTER ClientBuffer
-    );
-
-gceSTATUS
-gcoOS_DestroyContext(
-    IN gctPOINTER Display,
-    IN gctPOINTER Context
-    );
-
-gceSTATUS
-gcoOS_CreateContext(
-    IN gctPOINTER LocalDisplay,
-    IN gctPOINTER Context
-    );
-
-gceSTATUS
-gcoOS_MakeCurrent(
-    IN gctPOINTER LocalDisplay,
-    IN HALNativeWindowType DrawDrawable,
-    IN HALNativeWindowType ReadDrawable,
-    IN gctPOINTER Context,
-    IN gcoSURF ResolveTarget
-    );
-
-gceSTATUS
-gcoOS_CreateDrawable(
-    IN gctPOINTER LocalDisplay,
-    IN HALNativeWindowType Drawable
-    );
-
-gceSTATUS
-gcoOS_DestroyDrawable(
-    IN gctPOINTER LocalDisplay,
-    IN HALNativeWindowType Drawable
-    );
-gceSTATUS
-gcoOS_SwapBuffers(
-    IN gctPOINTER LocalDisplay,
-    IN HALNativeWindowType Drawable,
-    IN gcoSURF RenderTarget,
-    IN gcoSURF ResolveTarget,
-    IN gctPOINTER ResolveBits,
-    OUT gctUINT *Width,
-    OUT gctUINT *Height
-    );
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gc_hal_eglplatform_h_ */
-

+ 0 - 293
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_eglplatform_type.h

@@ -1,293 +0,0 @@
-/****************************************************************************
-*
-*    Copyright 2012 - 2014 Vivante Corporation, Sunnyvale, California.
-*    All Rights Reserved.
-*
-*    Permission is hereby granted, free of charge, to any person obtaining
-*    a copy of this software and associated documentation files (the
-*    'Software'), to deal in the Software without restriction, including
-*    without limitation the rights to use, copy, modify, merge, publish,
-*    distribute, sub license, and/or sell copies of the Software, and to
-*    permit persons to whom the Software is furnished to do so, subject
-*    to the following conditions:
-*
-*    The above copyright notice and this permission notice (including the
-*    next paragraph) shall be included in all copies or substantial
-*    portions of the Software.
-*
-*    THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-*    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-*    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-*    IN NO EVENT SHALL VIVANTE AND/OR ITS SUPPLIERS BE LIABLE FOR ANY
-*    CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-*    TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-*    SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_eglplatform_type_h_
-#define __gc_hal_eglplatform_type_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*******************************************************************************
-** Events. *********************************************************************
-*/
-
-typedef enum _halEventType
-{
-    /* Keyboard event. */
-    HAL_KEYBOARD,
-
-    /* Mouse move event. */
-    HAL_POINTER,
-
-    /* Mouse button event. */
-    HAL_BUTTON,
-
-    /* Application close event. */
-    HAL_CLOSE,
-
-    /* Application window has been updated. */
-    HAL_WINDOW_UPDATE
-}
-halEventType;
-
-/* Scancodes for keyboard. */
-typedef enum _halKeys
-{
-    HAL_UNKNOWN = -1,
-
-    HAL_BACKSPACE = 0x08,
-    HAL_TAB,
-    HAL_ENTER = 0x0D,
-    HAL_ESCAPE = 0x1B,
-
-    HAL_SPACE = 0x20,
-    HAL_SINGLEQUOTE = 0x27,
-    HAL_PAD_ASTERISK = 0x2A,
-    HAL_COMMA = 0x2C,
-    HAL_HYPHEN,
-    HAL_PERIOD,
-    HAL_SLASH,
-    HAL_0,
-    HAL_1,
-    HAL_2,
-    HAL_3,
-    HAL_4,
-    HAL_5,
-    HAL_6,
-    HAL_7,
-    HAL_8,
-    HAL_9,
-    HAL_SEMICOLON = 0x3B,
-    HAL_EQUAL = 0x3D,
-    HAL_A = 0x41,
-    HAL_B,
-    HAL_C,
-    HAL_D,
-    HAL_E,
-    HAL_F,
-    HAL_G,
-    HAL_H,
-    HAL_I,
-    HAL_J,
-    HAL_K,
-    HAL_L,
-    HAL_M,
-    HAL_N,
-    HAL_O,
-    HAL_P,
-    HAL_Q,
-    HAL_R,
-    HAL_S,
-    HAL_T,
-    HAL_U,
-    HAL_V,
-    HAL_W,
-    HAL_X,
-    HAL_Y,
-    HAL_Z,
-    HAL_LBRACKET,
-    HAL_BACKSLASH,
-    HAL_RBRACKET,
-    HAL_BACKQUOTE = 0x60,
-
-    HAL_F1 = 0x80,
-    HAL_F2,
-    HAL_F3,
-    HAL_F4,
-    HAL_F5,
-    HAL_F6,
-    HAL_F7,
-    HAL_F8,
-    HAL_F9,
-    HAL_F10,
-    HAL_F11,
-    HAL_F12,
-
-    HAL_LCTRL,
-    HAL_RCTRL,
-    HAL_LSHIFT,
-    HAL_RSHIFT,
-    HAL_LALT,
-    HAL_RALT,
-    HAL_CAPSLOCK,
-    HAL_NUMLOCK,
-    HAL_SCROLLLOCK,
-    HAL_PAD_0,
-    HAL_PAD_1,
-    HAL_PAD_2,
-    HAL_PAD_3,
-    HAL_PAD_4,
-    HAL_PAD_5,
-    HAL_PAD_6,
-    HAL_PAD_7,
-    HAL_PAD_8,
-    HAL_PAD_9,
-    HAL_PAD_HYPHEN,
-    HAL_PAD_PLUS,
-    HAL_PAD_SLASH,
-    HAL_PAD_PERIOD,
-    HAL_PAD_ENTER,
-    HAL_SYSRQ,
-    HAL_PRNTSCRN,
-    HAL_BREAK,
-    HAL_UP,
-    HAL_LEFT,
-    HAL_RIGHT,
-    HAL_DOWN,
-    HAL_HOME,
-    HAL_END,
-    HAL_PGUP,
-    HAL_PGDN,
-    HAL_INSERT,
-    HAL_DELETE,
-    HAL_LWINDOW,
-    HAL_RWINDOW,
-    HAL_MENU,
-    HAL_POWER,
-    HAL_SLEEP,
-    HAL_WAKE
-}
-halKeys;
-
-/* Structure that defined keyboard mapping. */
-typedef struct _halKeyMap
-{
-    /* Normal key. */
-    halKeys normal;
-
-    /* Extended key. */
-    halKeys extended;
-}
-halKeyMap;
-
-/* Event structure. */
-typedef struct _halEvent
-{
-    /* Event type. */
-    halEventType type;
-
-    /* Event data union. */
-    union _halEventData
-    {
-        /* Event data for keyboard. */
-        struct _halKeyboard
-        {
-            /* Scancode. */
-            halKeys scancode;
-
-            /* ASCII characte of the key pressed. */
-            char    key;
-
-            /* Flag whether the key was pressed (1) or released (0). */
-            char    pressed;
-        }
-        keyboard;
-
-        /* Event data for pointer. */
-        struct _halPointer
-        {
-            /* Current pointer coordinate. */
-            int     x;
-            int     y;
-        }
-        pointer;
-
-        /* Event data for mouse buttons. */
-        struct _halButton
-        {
-            /* Left button state. */
-            int     left;
-
-            /* Middle button state. */
-            int     middle;
-
-            /* Right button state. */
-            int     right;
-
-            /* Current pointer coordinate. */
-            int     x;
-            int     y;
-        }
-        button;
-    }
-    data;
-}
-halEvent;
-
-/* VFK_DISPLAY_INFO structure defining information returned by
-   vdkGetDisplayInfoEx. */
-typedef struct _halDISPLAY_INFO
-{
-    /* The size of the display in pixels. */
-    int                         width;
-    int                         height;
-
-    /* The stride of the dispay. -1 is returned if the stride is not known
-    ** for the specified display.*/
-    int                         stride;
-
-    /* The color depth of the display in bits per pixel. */
-    int                         bitsPerPixel;
-
-    /* The logical pointer to the display memory buffer. NULL is returned
-    ** if the pointer is not known for the specified display. */
-    void *                      logical;
-
-    /* The physical address of the display memory buffer. ~0 is returned
-    ** if the address is not known for the specified display. */
-    unsigned long               physical;
-
-    int                wrapFB;   /* true if compositor, false otherwise. */
-
-#ifndef __QNXNTO__
-    /* 355_FB_MULTI_BUFFER */
-    int                      multiBuffer;
-    int                      backBufferY;
-#endif
-
-    /* The color info of the display. */
-    unsigned int                alphaLength;
-    unsigned int                alphaOffset;
-    unsigned int                redLength;
-    unsigned int                redOffset;
-    unsigned int                greenLength;
-    unsigned int                greenOffset;
-    unsigned int                blueLength;
-    unsigned int                blueOffset;
-
-    /* Display flip support. */
-    int                         flip;
-}
-halDISPLAY_INFO;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gc_hal_eglplatform_type_h_ */

+ 0 - 1207
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_engine_vg.h

@@ -1,1207 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_engine_vg_h_
-#define __gc_hal_engine_vg_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "gc_hal_types.h"
-
-/******************************************************************************\
-******************************** VG Enumerations *******************************
-\******************************************************************************/
-
-/**
-**  @ingroup gcoVG
-**
-**  @brief  Tiling mode for painting and imagig.
-**
-**  This enumeration defines the tiling modes supported by the HAL.  This is
-**  in fact a one-to-one mapping of the OpenVG 1.1 tile modes.
-*/
-typedef enum _gceTILE_MODE
-{
-    gcvTILE_FILL,
-    gcvTILE_PAD,
-    gcvTILE_REPEAT,
-    gcvTILE_REFLECT
-}
-gceTILE_MODE;
-
-/******************************************************************************/
-/** @ingroup gcoVG
-**
-**  @brief  The different paint modes.
-**
-**  This enumeration lists the available paint modes.
-*/
-typedef enum _gcePAINT_TYPE
-{
-    /** Solid color. */
-    gcvPAINT_MODE_SOLID,
-
-    /** Linear gradient. */
-    gcvPAINT_MODE_LINEAR,
-
-    /** Radial gradient. */
-    gcvPAINT_MODE_RADIAL,
-
-    /** Pattern. */
-    gcvPAINT_MODE_PATTERN,
-
-    /** Mode count. */
-    gcvPAINT_MODE_COUNT
-}
-gcePAINT_TYPE;
-
-/**
-** @ingroup gcoVG
-**
-**  @brief Types of path data supported by HAL.
-**
-**  This enumeration defines the types of path data supported by the HAL.
-**  This is in fact a one-to-one mapping of the OpenVG 1.1 path types.
-*/
-typedef enum _gcePATHTYPE
-{
-    gcePATHTYPE_UNKNOWN = -1,
-    gcePATHTYPE_INT8,
-    gcePATHTYPE_INT16,
-    gcePATHTYPE_INT32,
-    gcePATHTYPE_FLOAT
-}
-gcePATHTYPE;
-
-/**
-** @ingroup gcoVG
-**
-**  @brief Supported path segment commands.
-**
-**  This enumeration defines the path segment commands supported by the HAL.
-*/
-typedef enum _gceVGCMD
-{
-    gcvVGCMD_END,                        /*  0: GCCMD_TS_OPCODE_END           */
-    gcvVGCMD_CLOSE,                      /*  1: GCCMD_TS_OPCODE_CLOSE         */
-    gcvVGCMD_MOVE,                       /*  2: GCCMD_TS_OPCODE_MOVE          */
-    gcvVGCMD_MOVE_REL,                   /*  3: GCCMD_TS_OPCODE_MOVE_REL      */
-    gcvVGCMD_LINE,                       /*  4: GCCMD_TS_OPCODE_LINE          */
-    gcvVGCMD_LINE_REL,                   /*  5: GCCMD_TS_OPCODE_LINE_REL      */
-    gcvVGCMD_QUAD,                       /*  6: GCCMD_TS_OPCODE_QUADRATIC     */
-    gcvVGCMD_QUAD_REL,                   /*  7: GCCMD_TS_OPCODE_QUADRATIC_REL */
-    gcvVGCMD_CUBIC,                      /*  8: GCCMD_TS_OPCODE_CUBIC         */
-    gcvVGCMD_CUBIC_REL,                  /*  9: GCCMD_TS_OPCODE_CUBIC_REL     */
-    gcvVGCMD_BREAK,                      /* 10: GCCMD_TS_OPCODE_BREAK         */
-    gcvVGCMD_HLINE,                      /* 11: ******* R E S E R V E D *******/
-    gcvVGCMD_HLINE_REL,                  /* 12: ******* R E S E R V E D *******/
-    gcvVGCMD_VLINE,                      /* 13: ******* R E S E R V E D *******/
-    gcvVGCMD_VLINE_REL,                  /* 14: ******* R E S E R V E D *******/
-    gcvVGCMD_SQUAD,                      /* 15: ******* R E S E R V E D *******/
-    gcvVGCMD_SQUAD_REL,                  /* 16: ******* R E S E R V E D *******/
-    gcvVGCMD_SCUBIC,                     /* 17: ******* R E S E R V E D *******/
-    gcvVGCMD_SCUBIC_REL,                 /* 18: ******* R E S E R V E D *******/
-    gcvVGCMD_SCCWARC,                    /* 19: ******* R E S E R V E D *******/
-    gcvVGCMD_SCCWARC_REL,                /* 20: ******* R E S E R V E D *******/
-    gcvVGCMD_SCWARC,                     /* 21: ******* R E S E R V E D *******/
-    gcvVGCMD_SCWARC_REL,                 /* 22: ******* R E S E R V E D *******/
-    gcvVGCMD_LCCWARC,                    /* 23: ******* R E S E R V E D *******/
-    gcvVGCMD_LCCWARC_REL,                /* 24: ******* R E S E R V E D *******/
-    gcvVGCMD_LCWARC,                     /* 25: ******* R E S E R V E D *******/
-    gcvVGCMD_LCWARC_REL,                 /* 26: ******* R E S E R V E D *******/
-
-    /* The width of the command recognized by the hardware on bits. */
-    gcvVGCMD_WIDTH = 5,
-
-    /* Hardware command mask. */
-    gcvVGCMD_MASK = (1 << gcvVGCMD_WIDTH) - 1,
-
-    /* Command modifiers. */
-    gcvVGCMD_H_MOD   = 1 << gcvVGCMD_WIDTH,  /* =  32 */
-    gcvVGCMD_V_MOD   = 2 << gcvVGCMD_WIDTH,  /* =  64 */
-    gcvVGCMD_S_MOD   = 3 << gcvVGCMD_WIDTH,  /* =  96 */
-    gcvVGCMD_ARC_MOD = 4 << gcvVGCMD_WIDTH,  /* = 128 */
-
-    /* Emulated LINE commands. */
-    gcvVGCMD_HLINE_EMUL     = gcvVGCMD_H_MOD | gcvVGCMD_LINE,        /* =  36 */
-    gcvVGCMD_HLINE_EMUL_REL = gcvVGCMD_H_MOD | gcvVGCMD_LINE_REL,    /* =  37 */
-    gcvVGCMD_VLINE_EMUL     = gcvVGCMD_V_MOD | gcvVGCMD_LINE,        /* =  68 */
-    gcvVGCMD_VLINE_EMUL_REL = gcvVGCMD_V_MOD | gcvVGCMD_LINE_REL,    /* =  69 */
-
-    /* Emulated SMOOTH commands. */
-    gcvVGCMD_SQUAD_EMUL      = gcvVGCMD_S_MOD | gcvVGCMD_QUAD,       /* = 102 */
-    gcvVGCMD_SQUAD_EMUL_REL  = gcvVGCMD_S_MOD | gcvVGCMD_QUAD_REL,   /* = 103 */
-    gcvVGCMD_SCUBIC_EMUL     = gcvVGCMD_S_MOD | gcvVGCMD_CUBIC,      /* = 104 */
-    gcvVGCMD_SCUBIC_EMUL_REL = gcvVGCMD_S_MOD | gcvVGCMD_CUBIC_REL,  /* = 105 */
-
-    /* Emulation ARC commands. */
-    gcvVGCMD_ARC_LINE     = gcvVGCMD_ARC_MOD | gcvVGCMD_LINE,        /* = 132 */
-    gcvVGCMD_ARC_LINE_REL = gcvVGCMD_ARC_MOD | gcvVGCMD_LINE_REL,    /* = 133 */
-    gcvVGCMD_ARC_QUAD     = gcvVGCMD_ARC_MOD | gcvVGCMD_QUAD,        /* = 134 */
-    gcvVGCMD_ARC_QUAD_REL = gcvVGCMD_ARC_MOD | gcvVGCMD_QUAD_REL     /* = 135 */
-}
-gceVGCMD;
-typedef enum _gceVGCMD * gceVGCMD_PTR;
-
-/**
-**  @ingroup gcoVG
-**
-**  @brief  Blending modes supported by the HAL.
-**
-**  This enumeration defines the blending modes supported by the HAL.  This is
-**  in fact a one-to-one mapping of the OpenVG 1.1 blending modes.
-*/
-typedef enum _gceVG_BLEND
-{
-    gcvVG_BLEND_SRC,
-    gcvVG_BLEND_SRC_OVER,
-    gcvVG_BLEND_DST_OVER,
-    gcvVG_BLEND_SRC_IN,
-    gcvVG_BLEND_DST_IN,
-    gcvVG_BLEND_MULTIPLY,
-    gcvVG_BLEND_SCREEN,
-    gcvVG_BLEND_DARKEN,
-    gcvVG_BLEND_LIGHTEN,
-    gcvVG_BLEND_ADDITIVE,
-    gcvVG_BLEND_SUBTRACT,
-    gcvVG_BLEND_FILTER
-}
-gceVG_BLEND;
-
-/**
-**  @ingroup gcoVG
-**
-**  @brief  Image modes supported by the HAL.
-**
-**  This enumeration defines the image modes supported by the HAL.  This is
-**  in fact a one-to-one mapping of the OpenVG 1.1 image modes with the addition
-**  of NO IMAGE.
-*/
-typedef enum _gceVG_IMAGE
-{
-    gcvVG_IMAGE_NONE,
-    gcvVG_IMAGE_NORMAL,
-    gcvVG_IMAGE_MULTIPLY,
-    gcvVG_IMAGE_STENCIL,
-    gcvVG_IMAGE_FILTER
-}
-gceVG_IMAGE;
-
-/**
-**  @ingroup gcoVG
-**
-**  @brief  Filter mode patterns and imaging.
-**
-**  This enumeration defines the filter modes supported by the HAL.
-*/
-typedef enum _gceIMAGE_FILTER
-{
-    gcvFILTER_POINT,
-    gcvFILTER_LINEAR,
-    gcvFILTER_BI_LINEAR
-}
-gceIMAGE_FILTER;
-
-/**
-**  @ingroup gcoVG
-**
-**  @brief  Primitive modes supported by the HAL.
-**
-**  This enumeration defines the primitive modes supported by the HAL.
-*/
-typedef enum _gceVG_PRIMITIVE
-{
-    gcvVG_SCANLINE,
-    gcvVG_RECTANGLE,
-    gcvVG_TESSELLATED,
-    gcvVG_TESSELLATED_TILED
-}
-gceVG_PRIMITIVE;
-
-/**
-**  @ingroup gcoVG
-**
-**  @brief  Rendering quality modes supported by the HAL.
-**
-**  This enumeration defines the rendering quality modes supported by the HAL.
-*/
-typedef enum _gceRENDER_QUALITY
-{
-    gcvVG_NONANTIALIASED,
-    gcvVG_2X2_MSAA,
-    gcvVG_2X4_MSAA,
-    gcvVG_4X4_MSAA
-}
-gceRENDER_QUALITY;
-
-/**
-**  @ingroup gcoVG
-**
-**  @brief  Fill rules supported by the HAL.
-**
-**  This enumeration defines the fill rules supported by the HAL.
-*/
-typedef enum _gceFILL_RULE
-{
-    gcvVG_EVEN_ODD,
-    gcvVG_NON_ZERO
-}
-gceFILL_RULE;
-
-/**
-**  @ingroup gcoVG
-**
-**  @brief  Cap styles supported by the HAL.
-**
-**  This enumeration defines the cap styles supported by the HAL.
-*/
-typedef enum _gceCAP_STYLE
-{
-    gcvCAP_BUTT,
-    gcvCAP_ROUND,
-    gcvCAP_SQUARE
-}
-gceCAP_STYLE;
-
-/**
-**  @ingroup gcoVG
-**
-**  @brief  Join styles supported by the HAL.
-**
-**  This enumeration defines the join styles supported by the HAL.
-*/
-typedef enum _gceJOIN_STYLE
-{
-    gcvJOIN_MITER,
-    gcvJOIN_ROUND,
-    gcvJOIN_BEVEL
-}
-gceJOIN_STYLE;
-
-/**
-**  @ingroup gcoVG
-**
-**  @brief  Channel mask values.
-**
-**  This enumeration defines the values for channel mask used in image
-**  filtering.
-*/
-
-/* Base values for channel mask definitions. */
-#define gcvCHANNEL_X    (0)
-#define gcvCHANNEL_R    (1 << 0)
-#define gcvCHANNEL_G    (1 << 1)
-#define gcvCHANNEL_B    (1 << 2)
-#define gcvCHANNEL_A    (1 << 3)
-
-typedef enum _gceCHANNEL
-{
-    gcvCHANNEL_XXXX = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X),
-    gcvCHANNEL_XXXA = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_A),
-    gcvCHANNEL_XXBX = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_X),
-    gcvCHANNEL_XXBA = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_A),
-
-    gcvCHANNEL_XGXX = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_X),
-    gcvCHANNEL_XGXA = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_A),
-    gcvCHANNEL_XGBX = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_X),
-    gcvCHANNEL_XGBA = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_A),
-
-    gcvCHANNEL_RXXX = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X),
-    gcvCHANNEL_RXXA = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_A),
-    gcvCHANNEL_RXBX = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_X),
-    gcvCHANNEL_RXBA = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_A),
-
-    gcvCHANNEL_RGXX = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_X),
-    gcvCHANNEL_RGXA = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_A),
-    gcvCHANNEL_RGBX = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_X),
-    gcvCHANNEL_RGBA = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_A),
-}
-gceCHANNEL;
-
-/******************************************************************************\
-******************************** VG Structures *******************************
-\******************************************************************************/
-
-/**
-**  @ingroup    gcoVG
-**
-**  @brief      Definition of the color ramp used by the gradient paints.
-**
-**  The gcsCOLOR_RAMP structure defines the layout of one single color inside
-**  a color ramp which is used by gradient paints.
-*/
-typedef struct _gcsCOLOR_RAMP
-{
-    /** Value for the color stop. */
-    gctFLOAT        stop;
-
-    /** Red color channel value for the color stop. */
-    gctFLOAT        red;
-
-    /** Green color channel value for the color stop. */
-    gctFLOAT        green;
-
-    /** Blue color channel value for the color stop. */
-    gctFLOAT        blue;
-
-    /** Alpha color channel value for the color stop. */
-    gctFLOAT        alpha;
-}
-gcsCOLOR_RAMP, * gcsCOLOR_RAMP_PTR;
-
-/**
-**  @ingroup    gcoVG
-**
-**  @brief      Definition of the color ramp used by the gradient paints in fixed form.
-**
-**  The gcsCOLOR_RAMP structure defines the layout of one single color inside
-**  a color ramp which is used by gradient paints.
-*/
-typedef struct _gcsFIXED_COLOR_RAMP
-{
-    /** Value for the color stop. */
-    gctFIXED_POINT      stop;
-
-    /** Red color channel value for the color stop. */
-    gctFIXED_POINT      red;
-
-    /** Green color channel value for the color stop. */
-    gctFIXED_POINT      green;
-
-    /** Blue color channel value for the color stop. */
-    gctFIXED_POINT      blue;
-
-    /** Alpha color channel value for the color stop. */
-    gctFIXED_POINT      alpha;
-}
-gcsFIXED_COLOR_RAMP, * gcsFIXED_COLOR_RAMP_PTR;
-
-
-/**
-**  @ingroup gcoVG
-**
-**  @brief  Rectangle structure used by the gcoVG object.
-**
-**  This structure defines the layout of a rectangle.  Make sure width and
-**  height are larger than 0.
-*/
-typedef struct _gcsVG_RECT * gcsVG_RECT_PTR;
-typedef struct _gcsVG_RECT
-{
-    /** Left location of the rectangle. */
-    gctINT      x;
-
-    /** Top location of the rectangle. */
-    gctINT      y;
-
-    /** Width of the rectangle. */
-    gctINT      width;
-
-    /** Height of the rectangle. */
-    gctINT      height;
-}
-gcsVG_RECT;
-
-/**
-**  @ingroup    gcoVG
-**
-**  @brief      Path command buffer attribute structure.
-**
-**  The gcsPATH_BUFFER_INFO structure contains the specifics about
-**  the layout of the path data command buffer.
-*/
-typedef struct _gcsPATH_BUFFER_INFO * gcsPATH_BUFFER_INFO_PTR;
-typedef struct _gcsPATH_BUFFER_INFO
-{
-    gctUINT     reservedForHead;
-    gctUINT     reservedForTail;
-}
-gcsPATH_BUFFER_INFO;
-
-/**
-**  @ingroup    gcoVG
-**
-**  @brief      Definition of the path data container structure.
-**
-**  The gcsPATH structure defines the layout of the path data container.
-*/
-typedef struct _gcsPATH_DATA * gcsPATH_DATA_PTR;
-typedef struct _gcsPATH_DATA
-{
-    /* Data container in command buffer format. */
-    gcsCMDBUFFER    data;
-
-    /* Path data type. */
-    gcePATHTYPE     dataType;
-}
-gcsPATH_DATA;
-
-
-/******************************************************************************\
-********************************* gcoHAL Object ********************************
-\******************************************************************************/
-
-/* Query path data storage attributes. */
-gceSTATUS
-gcoHAL_QueryPathStorage(
-    IN gcoHAL Hal,
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    OUT gcsPATH_BUFFER_INFO_PTR Information
-    );
-
-/* Associate a completion signal with the command buffer. */
-gceSTATUS
-gcoHAL_AssociateCompletion(
-    IN gcoHAL Hal,
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcsPATH_DATA_PTR PathData
-    );
-
-/* Release the current command buffer completion signal. */
-gceSTATUS
-gcoHAL_DeassociateCompletion(
-    IN gcoHAL Hal,
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcsPATH_DATA_PTR PathData
-    );
-
-/* Verify whether the command buffer is still in use. */
-gceSTATUS
-gcoHAL_CheckCompletion(
-    IN gcoHAL Hal,
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcsPATH_DATA_PTR PathData
-    );
-
-/* Wait until the command buffer is no longer in use. */
-gceSTATUS
-gcoHAL_WaitCompletion(
-    IN gcoHAL Hal,
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcsPATH_DATA_PTR PathData
-    );
-
-/* Flush the pixel cache. */
-gceSTATUS
-gcoHAL_Flush(
-    IN gcoHAL Hal
-#if GC355_PROFILER
-    ,
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth
-#endif
-    );
-
-/* Split a harwdare address into pool and offset. */
-gceSTATUS
-gcoHAL_SplitAddress(
-    IN gcoHAL Hal,
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctUINT32 Address,
-    OUT gcePOOL * Pool,
-    OUT gctUINT32 * Offset
-    );
-
-/* Combine pool and offset into a harwdare address. */
-gceSTATUS
-gcoHAL_CombineAddress(
-    IN gcoHAL Hal,
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcePOOL Pool,
-    IN gctUINT32 Offset,
-    OUT gctUINT32 * Address
-    );
-
-/* Schedule to free linear video memory allocated. */
-gceSTATUS
-gcoHAL_ScheduleVideoMemory(
-    IN gcoHAL Hal,
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctUINT32 Node
-    );
-
-/* Free linear video memory allocated with gcoHAL_AllocateLinearVideoMemory. */
-gceSTATUS
-gcoHAL_FreeVideoMemory(
-    IN gcoHAL Hal,
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctUINT32 Node
-    );
-
-/* Query command buffer attributes. */
-gceSTATUS
-gcoHAL_QueryCommandBuffer(
-    IN gcoHAL Hal,
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    OUT gcsCOMMAND_BUFFER_INFO_PTR Information
-    );
-/* Allocate and lock linear video memory. */
-gceSTATUS
-gcoHAL_AllocateLinearVideoMemory(
-    IN gcoHAL Hal,
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctUINT Size,
-    IN gctUINT Alignment,
-    IN gcePOOL Pool,
-    OUT gctUINT32 * Node,
-    OUT gctUINT32 * Address,
-    OUT gctPOINTER * Memory
-    );
-
-/* Align the specified size accordingly to the hardware requirements. */
-gceSTATUS
-gcoHAL_GetAlignedSurfaceSize(
-    IN gcoHAL Hal,
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gceSURF_TYPE Type,
-    IN OUT gctUINT32_PTR Width,
-    IN OUT gctUINT32_PTR Height
-    );
-
-gceSTATUS
-gcoHAL_ReserveTask(
-    IN gcoHAL Hal,
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gceBLOCK Block,
-    IN gctUINT TaskCount,
-    IN gctUINT32 Bytes,
-    OUT gctPOINTER * Memory
-    );
-/******************************************************************************\
-********************************** gcoVG Object ********************************
-\******************************************************************************/
-
-/** @defgroup gcoVG gcoVG
-**
-**  The gcoVG object abstracts the VG hardware pipe.
-*/
-#if GC355_PROFILER
-void
-gcoVG_ProfilerEnableDisable(
-    IN gcoVG Vg,
-    IN gctUINT enableGetAPITimes,
-    IN gctFILE apiTimeFile
-    );
-
-void
-gcoVG_ProfilerTreeDepth(
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth
-    );
-
-void
-gcoVG_ProfilerSetStates(
-    IN gcoVG Vg,
-    IN gctUINT treeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth
-    );
-#endif
-
-gctBOOL
-gcoVG_IsMaskSupported(
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gceSURF_FORMAT Format
-    );
-
-gctBOOL
-gcoVG_IsTargetSupported(
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gceSURF_FORMAT Format
-    );
-
-gctBOOL
-gcoVG_IsImageSupported(
-#if GC355_PROFILER
-    IN gcoVG Vg,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gceSURF_FORMAT Format
-    );
-
-gctUINT8 gcoVG_PackColorComponent(
-#if GC355_PROFILER
-    gcoVG Vg,
-    gctUINT TreeDepth,
-    gctUINT saveLayerTreeDepth,
-    gctUINT varTreeDepth,
-#endif
-    gctFLOAT Value
-    );
-
-gceSTATUS
-gcoVG_Construct(
-    IN gcoHAL Hal,
-    OUT gcoVG * Vg
-    );
-
-gceSTATUS
-gcoVG_Destroy(
-    IN gcoVG Vg
-#if GC355_PROFILER
-    ,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth
-#endif
-    );
-
-gceSTATUS
-gcoVG_SetTarget(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcoSURF Target
-    );
-
-gceSTATUS
-gcoVG_UnsetTarget(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcoSURF Surface
-    );
-
-gceSTATUS
-gcoVG_SetUserToSurface(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctFLOAT UserToSurface[9]
-    );
-
-gceSTATUS
-gcoVG_SetSurfaceToImage(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctFLOAT SurfaceToImage[9]
-    );
-
-gceSTATUS
-gcoVG_EnableMask(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctBOOL Enable
-    );
-
-gceSTATUS
-gcoVG_SetMask(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcoSURF Mask
-    );
-
-gceSTATUS
-gcoVG_UnsetMask(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcoSURF Surface
-    );
-
-gceSTATUS
-gcoVG_FlushMask(
-    IN gcoVG Vg
-#if GC355_PROFILER
-    ,
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth
-#endif
-    );
-
-gceSTATUS
-gcoVG_EnableScissor(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctBOOL Enable
-    );
-
-gceSTATUS
-gcoVG_SetScissor(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctSIZE_T RectangleCount,
-    IN gcsVG_RECT_PTR Rectangles
-    );
-
-gceSTATUS
-gcoVG_EnableColorTransform(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctBOOL Enable
-    );
-
-gceSTATUS
-gcoVG_SetColorTransform(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctFLOAT ColorTransform[8]
-    );
-
-gceSTATUS
-gcoVG_SetTileFillColor(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctFLOAT Red,
-    IN gctFLOAT Green,
-    IN gctFLOAT Blue,
-    IN gctFLOAT Alpha
-    );
-
-gceSTATUS
-gcoVG_SetSolidPaint(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctUINT8 Red,
-    IN gctUINT8 Green,
-    IN gctUINT8 Blue,
-    IN gctUINT8 Alpha
-    );
-
-gceSTATUS
-gcoVG_SetLinearPaint(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctFLOAT Constant,
-    IN gctFLOAT StepX,
-    IN gctFLOAT StepY
-    );
-
-gceSTATUS
-gcoVG_SetRadialPaint(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctFLOAT LinConstant,
-    IN gctFLOAT LinStepX,
-    IN gctFLOAT LinStepY,
-    IN gctFLOAT RadConstant,
-    IN gctFLOAT RadStepX,
-    IN gctFLOAT RadStepY,
-    IN gctFLOAT RadStepXX,
-    IN gctFLOAT RadStepYY,
-    IN gctFLOAT RadStepXY
-    );
-
-gceSTATUS
-gcoVG_SetPatternPaint(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctFLOAT UConstant,
-    IN gctFLOAT UStepX,
-    IN gctFLOAT UStepY,
-    IN gctFLOAT VConstant,
-    IN gctFLOAT VStepX,
-    IN gctFLOAT VStepY,
-    IN gctBOOL Linear
-    );
-
-gceSTATUS
-gcoVG_SetColorRamp(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcoSURF ColorRamp,
-    IN gceTILE_MODE ColorRampSpreadMode
-    );
-
-gceSTATUS
-gcoVG_SetPattern(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctINT32 width,
-    IN gctINT32 height,
-    IN gcoSURF Pattern,
-    IN gceTILE_MODE TileMode,
-    IN gceIMAGE_FILTER Filter
-    );
-
-gceSTATUS
-gcoVG_SetImageMode(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gceVG_IMAGE Mode
-    );
-
-gceSTATUS
-gcoVG_SetBlendMode(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gceVG_BLEND Mode
-    );
-
-gceSTATUS
-gcoVG_SetRenderingQuality(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gceRENDER_QUALITY Quality
-    );
-
-gceSTATUS
-gcoVG_SetFillRule(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gceFILL_RULE FillRule
-    );
-
-gceSTATUS
-gcoVG_FinalizePath(
-    IN gcoVG Vg,
-    IN gcsPATH_DATA_PTR PathData
-    );
-
-gceSTATUS
-gcoVG_Clear(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctINT X,
-    IN gctINT Y,
-    IN gctINT Width,
-    IN gctINT Height
-    );
-
-gceSTATUS
-gcoVG_DrawPath(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcsPATH_DATA_PTR PathData,
-    IN gctFLOAT Scale,
-    IN gctFLOAT Bias,
-#if gcdMOVG
-    IN gctUINT32 Width,
-    IN gctUINT32 Height,
-    IN gctFLOAT *Bounds,
-#endif
-    IN gctBOOL SoftwareTesselation
-    );
-
-gceSTATUS
-gcoVG_DrawImage(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcoSURF Source,
-    IN gcsPOINT_PTR SourceOrigin,
-    IN gcsPOINT_PTR TargetOrigin,
-    IN gcsSIZE_PTR SourceSize,
-    IN gctINT SourceX,
-    IN gctINT SourceY,
-    IN gctINT TargetX,
-    IN gctINT TargetY,
-    IN gctINT Width,
-    IN gctINT Height,
-    IN gctBOOL Mask,
-    IN gctBOOL isDrawImage
-    );
-
-gceSTATUS
-gcoVG_TesselateImage(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcoSURF Image,
-    IN gcsVG_RECT_PTR Rectangle,
-    IN gceIMAGE_FILTER Filter,
-    IN gctBOOL Mask,
-#if gcdMOVG
-    IN gctBOOL SoftwareTesselation,
-    IN gceVG_BLEND BlendMode
-#else
-    IN gctBOOL SoftwareTesselation
-#endif
-    );
-
-gceSTATUS
-gcoVG_Blit(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcoSURF Source,
-    IN gcoSURF Target,
-    IN gcsVG_RECT_PTR SrcRect,
-    IN gcsVG_RECT_PTR TrgRect,
-    IN gceIMAGE_FILTER Filter,
-    IN gceVG_BLEND Mode
-    );
-
-gceSTATUS
-gcoVG_ColorMatrix(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcoSURF Source,
-    IN gcoSURF Target,
-    IN const gctFLOAT * Matrix,
-    IN gceCHANNEL ColorChannels,
-    IN gctBOOL FilterLinear,
-    IN gctBOOL FilterPremultiplied,
-    IN gcsPOINT_PTR SourceOrigin,
-    IN gcsPOINT_PTR TargetOrigin,
-    IN gctINT Width,
-    IN gctINT Height
-    );
-
-gceSTATUS
-gcoVG_SeparableConvolve(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcoSURF Source,
-    IN gcoSURF Target,
-    IN gctINT KernelWidth,
-    IN gctINT KernelHeight,
-    IN gctINT ShiftX,
-    IN gctINT ShiftY,
-    IN const gctINT16 * KernelX,
-    IN const gctINT16 * KernelY,
-    IN gctFLOAT Scale,
-    IN gctFLOAT Bias,
-    IN gceTILE_MODE TilingMode,
-    IN gctFLOAT_PTR FillColor,
-    IN gceCHANNEL ColorChannels,
-    IN gctBOOL FilterLinear,
-    IN gctBOOL FilterPremultiplied,
-    IN gcsPOINT_PTR SourceOrigin,
-    IN gcsPOINT_PTR TargetOrigin,
-    IN gcsSIZE_PTR SourceSize,
-    IN gctINT Width,
-    IN gctINT Height
-    );
-
-gceSTATUS
-gcoVG_GaussianBlur(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gcoSURF Source,
-    IN gcoSURF Target,
-    IN gctFLOAT StdDeviationX,
-    IN gctFLOAT StdDeviationY,
-    IN gceTILE_MODE TilingMode,
-    IN gctFLOAT_PTR FillColor,
-    IN gceCHANNEL ColorChannels,
-    IN gctBOOL FilterLinear,
-    IN gctBOOL FilterPremultiplied,
-    IN gcsPOINT_PTR SourceOrigin,
-    IN gcsPOINT_PTR TargetOrigin,
-    IN gcsSIZE_PTR SourceSize,
-    IN gctINT Width,
-    IN gctINT Height
-    );
-
-gceSTATUS
-gcoVG_EnableDither(
-    IN gcoVG Vg,
-#if GC355_PROFILER
-    IN gctUINT TreeDepth,
-    IN gctUINT saveLayerTreeDepth,
-    IN gctUINT varTreeDepth,
-#endif
-    IN gctBOOL Enable
-    );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  /* __gc_hal_vg_h_ */

+ 0 - 1622
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_enum.h

@@ -1,1622 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_enum_h_
-#define __gc_hal_enum_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Chip models. */
-typedef enum _gceCHIPMODEL
-{
-    gcv200  = 0x0200,
-    gcv300  = 0x0300,
-    gcv320  = 0x0320,
-    gcv328  = 0x0328,
-    gcv350  = 0x0350,
-    gcv355  = 0x0355,
-    gcv400  = 0x0400,
-    gcv410  = 0x0410,
-    gcv420  = 0x0420,
-    gcv428  = 0x0428,
-    gcv450  = 0x0450,
-    gcv500  = 0x0500,
-    gcv520  = 0x0520,
-    gcv530  = 0x0530,
-    gcv600  = 0x0600,
-    gcv700  = 0x0700,
-    gcv800  = 0x0800,
-    gcv860  = 0x0860,
-    gcv880  = 0x0880,
-    gcv1000 = 0x1000,
-    gcv1500 = 0x1500,
-    gcv2000 = 0x2000,
-    gcv2100 = 0x2100,
-    gcv2200 = 0x2200,
-    gcv2500 = 0x2500,
-    gcv3000 = 0x3000,
-    gcv4000 = 0x4000,
-    gcv5000 = 0x5000,
-    gcv5200 = 0x5200,
-    gcv6400 = 0x6400,
-}
-gceCHIPMODEL;
-
-/* Chip features. */
-typedef enum _gceFEATURE
-{
-    gcvFEATURE_PIPE_2D = 0,
-    gcvFEATURE_PIPE_3D,
-    gcvFEATURE_PIPE_VG,
-    gcvFEATURE_DC,
-    gcvFEATURE_HIGH_DYNAMIC_RANGE,
-    gcvFEATURE_MODULE_CG,
-    gcvFEATURE_MIN_AREA,
-    gcvFEATURE_BUFFER_INTERLEAVING,
-    gcvFEATURE_BYTE_WRITE_2D,
-    gcvFEATURE_ENDIANNESS_CONFIG,
-    gcvFEATURE_DUAL_RETURN_BUS,
-    gcvFEATURE_DEBUG_MODE,
-    gcvFEATURE_YUY2_RENDER_TARGET,
-    gcvFEATURE_FRAGMENT_PROCESSOR,
-    gcvFEATURE_2DPE20,
-    gcvFEATURE_FAST_CLEAR,
-    gcvFEATURE_YUV420_TILER,
-    gcvFEATURE_YUY2_AVERAGING,
-    gcvFEATURE_FLIP_Y,
-    gcvFEATURE_EARLY_Z,
-    gcvFEATURE_COMPRESSION,
-    gcvFEATURE_MSAA,
-    gcvFEATURE_SPECIAL_ANTI_ALIASING,
-    gcvFEATURE_SPECIAL_MSAA_LOD,
-    gcvFEATURE_422_TEXTURE_COMPRESSION,
-    gcvFEATURE_DXT_TEXTURE_COMPRESSION,
-    gcvFEATURE_ETC1_TEXTURE_COMPRESSION,
-    gcvFEATURE_CORRECT_TEXTURE_CONVERTER,
-    gcvFEATURE_TEXTURE_8K,
-    gcvFEATURE_SCALER,
-    gcvFEATURE_YUV420_SCALER,
-    gcvFEATURE_SHADER_HAS_W,
-    gcvFEATURE_SHADER_HAS_SIGN,
-    gcvFEATURE_SHADER_HAS_FLOOR,
-    gcvFEATURE_SHADER_HAS_CEIL,
-    gcvFEATURE_SHADER_HAS_SQRT,
-    gcvFEATURE_SHADER_HAS_TRIG,
-    gcvFEATURE_VAA,
-    gcvFEATURE_HZ,
-    gcvFEATURE_CORRECT_STENCIL,
-    gcvFEATURE_VG20,
-    gcvFEATURE_VG_FILTER,
-    gcvFEATURE_VG21,
-    gcvFEATURE_VG_DOUBLE_BUFFER,
-    gcvFEATURE_MC20,
-    gcvFEATURE_SUPER_TILED,
-    gcvFEATURE_FAST_CLEAR_FLUSH,
-    gcvFEATURE_2D_FILTERBLIT_PLUS_ALPHABLEND,
-    gcvFEATURE_2D_DITHER,
-    gcvFEATURE_2D_A8_TARGET,
-    gcvFEATURE_2D_A8_NO_ALPHA,
-    gcvFEATURE_2D_FILTERBLIT_FULLROTATION,
-    gcvFEATURE_2D_BITBLIT_FULLROTATION,
-    gcvFEATURE_WIDE_LINE,
-    gcvFEATURE_FC_FLUSH_STALL,
-    gcvFEATURE_FULL_DIRECTFB,
-    gcvFEATURE_HALF_FLOAT_PIPE,
-    gcvFEATURE_LINE_LOOP,
-    gcvFEATURE_2D_YUV_BLIT,
-    gcvFEATURE_2D_TILING,
-    gcvFEATURE_NON_POWER_OF_TWO,
-    gcvFEATURE_3D_TEXTURE,
-    gcvFEATURE_TEXTURE_ARRAY,
-    gcvFEATURE_TILE_FILLER,
-    gcvFEATURE_LOGIC_OP,
-    gcvFEATURE_COMPOSITION,
-    gcvFEATURE_MIXED_STREAMS,
-    gcvFEATURE_2D_MULTI_SOURCE_BLT,
-    gcvFEATURE_END_EVENT,
-    gcvFEATURE_VERTEX_10_10_10_2,
-    gcvFEATURE_TEXTURE_10_10_10_2,
-    gcvFEATURE_TEXTURE_ANISOTROPIC_FILTERING,
-    gcvFEATURE_TEXTURE_FLOAT_HALF_FLOAT,
-    gcvFEATURE_2D_ROTATION_STALL_FIX,
-    gcvFEATURE_2D_MULTI_SOURCE_BLT_EX,
-    gcvFEATURE_BUG_FIXES10,
-    gcvFEATURE_2D_MINOR_TILING,
-    /* Supertiled compressed textures are supported. */
-    gcvFEATURE_TEX_COMPRRESSION_SUPERTILED,
-    gcvFEATURE_FAST_MSAA,
-    gcvFEATURE_BUG_FIXED_INDEXED_TRIANGLE_STRIP,
-    gcvFEATURE_INDEX_FETCH_FIX,
-    gcvFEATURE_TEXTURE_TILE_STATUS_READ,
-    gcvFEATURE_DEPTH_BIAS_FIX,
-    gcvFEATURE_RECT_PRIMITIVE,
-    gcvFEATURE_BUG_FIXES11,
-    gcvFEATURE_SUPERTILED_TEXTURE,
-    gcvFEATURE_2D_NO_COLORBRUSH_INDEX8,
-    gcvFEATURE_RS_YUV_TARGET,
-    gcvFEATURE_2D_FC_SOURCE,
-    gcvFEATURE_2D_CC_NOAA_SOURCE,
-    gcvFEATURE_PE_DITHER_FIX,
-    gcvFEATURE_2D_YUV_SEPARATE_STRIDE,
-    gcvFEATURE_FRUSTUM_CLIP_FIX,
-    gcvFEATURE_TEXTURE_SWIZZLE,
-    gcvFEATURE_PRIMITIVE_RESTART,
-    gcvFEATURE_TEXTURE_LINEAR,
-    gcvFEATURE_TEXTURE_YUV_ASSEMBLER,
-    gcvFEATURE_LINEAR_RENDER_TARGET,
-    gcvFEATURE_SHADER_HAS_ATOMIC,
-    gcvFEATURE_SHADER_HAS_INSTRUCTION_CACHE,
-    gcvFEATURE_SHADER_ENHANCEMENTS2,
-    gcvFEATURE_BUG_FIXES7,
-    gcvFEATURE_SHADER_HAS_RTNE,
-    gcvFEATURE_SHADER_HAS_EXTRA_INSTRUCTIONS2,
-    gcvFEATURE_SHADER_ENHANCEMENTS3,
-    gcvFEATURE_DYNAMIC_FREQUENCY_SCALING,
-    gcvFEATURE_SINGLE_BUFFER,
-    gcvFEATURE_OCCLUSION_QUERY,
-    gcvFEATURE_2D_GAMMA,
-    gcvFEATURE_2D_COLOR_SPACE_CONVERSION,
-    gcvFEATURE_2D_SUPER_TILE_VERSION,
-    gcvFEATURE_HALTI0,
-    gcvFEATURE_HALTI1,
-    gcvFEATURE_HALTI2,
-    gcvFEATURE_2D_MIRROR_EXTENSION,
-    gcvFEATURE_TEXTURE_ASTC,
-    gcvFEATURE_2D_SUPER_TILE_V1,
-    gcvFEATURE_2D_SUPER_TILE_V2,
-    gcvFEATURE_2D_SUPER_TILE_V3,
-    gcvFEATURE_2D_MULTI_SOURCE_BLT_EX2,
-    gcvFEATURE_NEW_RA,
-    gcvFEATURE_BUG_FIXED_IMPLICIT_PRIMITIVE_RESTART,
-    gcvFEATURE_PE_MULTI_RT_BLEND_ENABLE_CONTROL,
-    gcvFEATURE_SMALL_MSAA, /* An upgraded version of Fast MSAA */
-    gcvFEATURE_VERTEX_INST_ID_AS_ATTRIBUTE,
-    gcvFEATURE_DUAL_16,
-    gcvFEATURE_BRANCH_ON_IMMEDIATE_REG,
-    gcvFEATURE_2D_COMPRESSION,
-    gcvFEATURE_TPC_COMPRESSION,
-    gcvFEATURE_2D_OPF_YUV_OUTPUT,
-    gcvFEATURE_2D_FILTERBLIT_A8_ALPHA,
-    gcvFEATURE_2D_MULTI_SRC_BLT_TO_UNIFIED_DST_RECT,
-    gcvFEATURE_V2_COMPRESSION_Z16_FIX,
-
-    gcvFEATURE_VERTEX_INST_ID_AS_INTEGER,
-    gcvFEATURE_2D_YUV_MODE,
-    gcvFEATURE_ACE,
-    gcvFEATURE_COLOR_COMPRESSION,
-
-    gcvFEATURE_32BPP_COMPONENT_TEXTURE_CHANNEL_SWIZZLE,
-    gcvFEATURE_64BPP_HW_CLEAR_SUPPORT,
-    gcvFEATURE_TX_LERP_PRECISION_FIX,
-    gcvFEATURE_COMPRESSION_V2,
-    gcvFEATURE_MMU,
-    gcvFEATURE_COMPRESSION_V3,
-    gcvFEATURE_TX_DECOMPRESSOR,
-    gcvFEATURE_MRT_TILE_STATUS_BUFFER,
-    gcvFEATURE_COMPRESSION_V1,
-    gcvFEATURE_V1_COMPRESSION_Z16_DECOMPRESS_FIX,
-    gcvFEATURE_RTT,
-    gcvFEATURE_GENERICS,
-    gcvFEATURE_2D_ONE_PASS_FILTER,
-    gcvFEATURE_2D_ONE_PASS_FILTER_TAP,
-    gcvFEATURE_2D_POST_FLIP,
-    gcvFEATURE_2D_PIXEL_ALIGNMENT,
-    gcvFEATURE_CORRECT_AUTO_DISABLE_COUNT,
-    gcvFEATURE_CORRECT_AUTO_DISABLE_COUNT_WIDTH,
-
-    gcvFEATURE_HALTI3,
-    gcvFEATURE_EEZ,
-    gcvFEATURE_INTEGER_SIGNEXT_FIX,
-    gcvFEATURE_INTEGER_PIPE_FIX,
-    gcvFEATURE_PSOUTPUT_MAPPING,
-    gcvFEATURE_8K_RT_FIX,
-    gcvFEATURE_TX_TILE_STATUS_MAPPING,
-    gcvFEATURE_SRGB_RT_SUPPORT,
-    gcvFEATURE_UNIFORM_APERTURE,
-    gcvFEATURE_TEXTURE_16K,
-    gcvFEATURE_PA_FARZCLIPPING_FIX,
-    gcvFEATURE_PE_DITHER_COLORMASK_FIX,
-    gcvFEATURE_ZSCALE_FIX,
-
-    gcvFEATURE_MULTI_PIXELPIPES,
-    gcvFEATURE_PIPE_CL,
-
-    gcvFEATURE_BUG_FIXES18,
-
-    gcvFEATURE_UNIFIED_SAMPLERS,
-    gcvFEATURE_CL_PS_WALKER,
-    gcvFEATURE_NEW_HZ,
-
-    gcvFEATURE_TX_FRAC_PRECISION_6BIT,
-    gcvFEATURE_SH_INSTRUCTION_PREFETCH,
-    gcvFEATURE_PROBE,
-
-    gcvFEATURE_BUG_FIXES8,
-    gcvFEATURE_2D_ALL_QUAD,
-
-    gcvFEATURE_SINGLE_PIPE_HALTI1,
-
-    gcvFEATURE_BLOCK_SIZE_16x16,
-
-    gcvFEATURE_NO_USER_CSC,
-    gcvFEATURE_ANDROID_ONLY,
-    gcvFEATURE_HAS_PRODUCTID,
-
-    gcvFEATURE_V2_MSAA_COMP_FIX,
-
-    gcvFEATURE_S8_ONLY_RENDERING,
-
-    gcvFEATURE_SEPARATE_SRC_DST,
-
-    gcvFEATURE_FE_START_VERTEX_SUPPORT,
-    gcvFEATURE_RS_DEPTHSTENCIL_NATIVE_SUPPORT,
-
-    gcvFEATURE_HALTI4,
-    gcvFEATURE_MSAA_FRAGMENT_OPERATION,
-    gcvFEATURE_ZERO_ATTRIB_SUPPORT,
-
-    /* Insert features above this comment only. */
-    gcvFEATURE_COUNT                /* Not a feature. */
-}
-gceFEATURE;
-
-/* Chip SWWA. */
-typedef enum _gceSWWA
-{
-    gcvSWWA_601 = 0,
-    gcvSWWA_706,
-    gcvSWWA_1163,
-    gcvSWWA_1165,
-    /* Insert SWWA above this comment only. */
-    gcvSWWA_COUNT                   /* Not a SWWA. */
-}
-gceSWWA;
-
-
-/* Option Set*/
-typedef enum _gceOPITON
-{
-    /* HW setting we take PREFER */
-    gcvOPTION_PREFER_MULTIPIPE_RS = 0,
-    gcvOPTION_PREFER_ZCONVERT_BYPASS =1,
-
-
-    gcvOPTION_HW_NULL = 50,
-    gcvOPTION_PRINT_OPTION = 51,
-
-    gcvOPTION_FBO_PREFER_MEM = 80,
-
-    /* Insert option above this comment only */
-    gcvOPTION_COUNT                     /* Not a OPTION*/
-}
-gceOPTION;
-
-typedef enum _gceFRAMEINFO
-{
-    gcvFRAMEINFO_FRAME_NUM       = 0,
-    gcvFRAMEINFO_DRAW_NUM        = 1,
-    gcvFRAMEINFO_DRAW_DUAL16_NUM = 2,
-    gcvFRAMEINFO_DRAW_FL32_NUM   = 3,
-
-
-    gcvFRAMEINFO_COUNT,
-}
-gceFRAMEINFO;
-
-typedef enum _gceFRAMEINFO_OP
-{
-    gcvFRAMEINFO_OP_INC       = 0,
-    gcvFRAMEINFO_OP_DEC       = 1,
-    gcvFRAMEINFO_OP_ZERO      = 2,
-    gcvFRAMEINFO_OP_GET       = 3,
-
-    gcvFRAMEINFO_OP_COUNT,
-}
-gceFRAMEINFO_OP;
-
-
-/* Chip Power Status. */
-typedef enum _gceCHIPPOWERSTATE
-{
-    gcvPOWER_ON = 0,
-    gcvPOWER_OFF,
-    gcvPOWER_IDLE,
-    gcvPOWER_SUSPEND,
-    gcvPOWER_SUSPEND_ATPOWERON,
-    gcvPOWER_OFF_ATPOWERON,
-    gcvPOWER_IDLE_BROADCAST,
-    gcvPOWER_SUSPEND_BROADCAST,
-    gcvPOWER_OFF_BROADCAST,
-    gcvPOWER_OFF_RECOVERY,
-    gcvPOWER_OFF_TIMEOUT,
-    gcvPOWER_ON_AUTO
-}
-gceCHIPPOWERSTATE;
-
-/* CPU cache operations */
-typedef enum _gceCACHEOPERATION
-{
-    gcvCACHE_CLEAN      = 0x01,
-    gcvCACHE_INVALIDATE = 0x02,
-    gcvCACHE_FLUSH      = gcvCACHE_CLEAN  | gcvCACHE_INVALIDATE,
-    gcvCACHE_MEMORY_BARRIER = 0x04
-}
-gceCACHEOPERATION;
-
-/* Surface types. */
-typedef enum _gceSURF_TYPE
-{
-    gcvSURF_TYPE_UNKNOWN = 0,
-    gcvSURF_INDEX,
-    gcvSURF_VERTEX,
-    gcvSURF_TEXTURE,
-    gcvSURF_RENDER_TARGET,
-    gcvSURF_DEPTH,
-    gcvSURF_BITMAP,
-    gcvSURF_TILE_STATUS,
-    gcvSURF_IMAGE,
-    gcvSURF_MASK,
-    gcvSURF_SCISSOR,
-    gcvSURF_HIERARCHICAL_DEPTH,
-    gcvSURF_NUM_TYPES, /* Make sure this is the last one! */
-
-    /* Combinations. */
-    gcvSURF_NO_TILE_STATUS = 0x100,
-    gcvSURF_NO_VIDMEM      = 0x200, /* Used to allocate surfaces with no underlying vidmem node.
-                                       In Android, vidmem node is allocated by another process. */
-    gcvSURF_CACHEABLE      = 0x400, /* Used to allocate a cacheable surface */
-
-    gcvSURF_FLIP           = 0x800, /* The Resolve Target the will been flip resolve from RT */
-
-    gcvSURF_TILE_STATUS_DIRTY  = 0x1000, /* Init tile status to all dirty */
-
-    gcvSURF_LINEAR             = 0x2000,
-
-    gcvSURF_CREATE_AS_TEXTURE  = 0x4000,  /* create it as a texture */
-
-    gcvSURF_PROTECTED_CONTENT  = 0x8000,  /* create it as content protected */
-
-    /* Create it as no compression, valid on when it has tile status. */
-    gcvSURF_NO_COMPRESSION     = 0x40000,
-
-    gcvSURF_CONTIGUOUS         = 0x20000,      /*create it as contiguous */
-
-    gcvSURF_TEXTURE_LINEAR               = gcvSURF_TEXTURE
-                                         | gcvSURF_LINEAR,
-
-    gcvSURF_RENDER_TARGET_LINEAR         = gcvSURF_RENDER_TARGET
-                                         | gcvSURF_LINEAR,
-
-    gcvSURF_RENDER_TARGET_NO_TILE_STATUS = gcvSURF_RENDER_TARGET
-                                         | gcvSURF_NO_TILE_STATUS,
-
-    gcvSURF_RENDER_TARGET_TS_DIRTY = gcvSURF_RENDER_TARGET
-                                         | gcvSURF_TILE_STATUS_DIRTY,
-
-    gcvSURF_DEPTH_NO_TILE_STATUS         = gcvSURF_DEPTH
-                                         | gcvSURF_NO_TILE_STATUS,
-
-    gcvSURF_DEPTH_TS_DIRTY               = gcvSURF_DEPTH
-                                         | gcvSURF_TILE_STATUS_DIRTY,
-
-    /* Supported surface types with no vidmem node. */
-    gcvSURF_BITMAP_NO_VIDMEM             = gcvSURF_BITMAP
-                                         | gcvSURF_NO_VIDMEM,
-
-    gcvSURF_TEXTURE_NO_VIDMEM            = gcvSURF_TEXTURE
-                                         | gcvSURF_NO_VIDMEM,
-
-    /* Cacheable surface types with no vidmem node. */
-    gcvSURF_CACHEABLE_BITMAP_NO_VIDMEM   = gcvSURF_BITMAP_NO_VIDMEM
-                                         | gcvSURF_CACHEABLE,
-
-    gcvSURF_CACHEABLE_BITMAP             = gcvSURF_BITMAP
-                                         | gcvSURF_CACHEABLE,
-
-    gcvSURF_FLIP_BITMAP                  = gcvSURF_BITMAP
-                                         | gcvSURF_FLIP,
-}
-gceSURF_TYPE;
-
-typedef enum _gceSURF_USAGE
-{
-    gcvSURF_USAGE_UNKNOWN,
-    gcvSURF_USAGE_RESOLVE_AFTER_CPU,
-    gcvSURF_USAGE_RESOLVE_AFTER_3D
-}
-gceSURF_USAGE;
-
-typedef enum _gceSURF_COLOR_SPACE
-{
-    gcvSURF_COLOR_SPACE_UNKNOWN,
-    gcvSURF_COLOR_SPACE_LINEAR,
-    gcvSURF_COLOR_SPACE_NONLINEAR,
-}
-gceSURF_COLOR_SPACE;
-
-typedef enum _gceSURF_COLOR_TYPE
-{
-    gcvSURF_COLOR_UNKNOWN = 0,
-    gcvSURF_COLOR_LINEAR        = 0x01,
-    gcvSURF_COLOR_ALPHA_PRE     = 0x02,
-}
-gceSURF_COLOR_TYPE;
-
-/* Rotation. */
-typedef enum _gceSURF_ROTATION
-{
-    gcvSURF_0_DEGREE = 0,
-    gcvSURF_90_DEGREE,
-    gcvSURF_180_DEGREE,
-    gcvSURF_270_DEGREE,
-    gcvSURF_FLIP_X,
-    gcvSURF_FLIP_Y,
-
-    gcvSURF_POST_FLIP_X = 0x40000000,
-    gcvSURF_POST_FLIP_Y = 0x80000000,
-}
-gceSURF_ROTATION;
-
-/* Surface flag */
-typedef enum _gceSURF_FLAG
-{
-    /* None flag */
-    gcvSURF_FLAG_NONE                = 0x0,
-    /* content is preserved after swap */
-    gcvSURF_FLAG_CONTENT_PRESERVED   = 0x1,
-    /* content is updated after swap*/
-    gcvSURF_FLAG_CONTENT_UPDATED     = 0x2,
-    /* content is y inverted */
-    gcvSURF_FLAG_CONTENT_YINVERTED   = 0x4,
-    /* content is protected */
-    gcvSURF_FLAG_CONTENT_PROTECTED   = 0x8,
-    /* surface is contiguous. */
-    gcvSURF_FLAG_CONTIGUOUS          = (1 << 4),
-}
-gceSURF_FLAG;
-
-typedef enum _gceMIPMAP_IMAGE_FORMAT
-{
-    gcvUNKNOWN_MIPMAP_IMAGE_FORMAT  = -2
-}
-gceMIPMAP_IMAGE_FORMAT;
-
-/* Surface formats. */
-typedef enum _gceSURF_FORMAT
-{
-    /* Unknown format. */
-    gcvSURF_UNKNOWN             = 0,
-
-    /* Palettized formats. */
-    gcvSURF_INDEX1              = 100,
-    gcvSURF_INDEX4,
-    gcvSURF_INDEX8,
-
-    /* RGB formats. */
-    gcvSURF_A2R2G2B2            = 200,
-    gcvSURF_R3G3B2,
-    gcvSURF_A8R3G3B2,
-    gcvSURF_X4R4G4B4,
-    gcvSURF_A4R4G4B4,
-    gcvSURF_R4G4B4A4,
-    gcvSURF_X1R5G5B5,
-    gcvSURF_A1R5G5B5,
-    gcvSURF_R5G5B5A1,
-    gcvSURF_R5G6B5,
-    gcvSURF_R8G8B8,
-    gcvSURF_X8R8G8B8,
-    gcvSURF_A8R8G8B8,
-    gcvSURF_R8G8B8A8,
-    gcvSURF_G8R8G8B8,
-    gcvSURF_R8G8B8G8,
-    gcvSURF_X2R10G10B10,
-    gcvSURF_A2R10G10B10,
-    gcvSURF_X12R12G12B12,
-    gcvSURF_A12R12G12B12,
-    gcvSURF_X16R16G16B16,
-    gcvSURF_A16R16G16B16,
-    gcvSURF_A32R32G32B32,
-    gcvSURF_R8G8B8X8,
-    gcvSURF_R5G5B5X1,
-    gcvSURF_R4G4B4X4,
-    gcvSURF_X16R16G16B16_2_A8R8G8B8,
-    gcvSURF_A16R16G16B16_2_A8R8G8B8,
-    gcvSURF_A32R32G32B32_2_G32R32F,
-    gcvSURF_A32R32G32B32_4_A8R8G8B8,
-
-    /* BGR formats. */
-    gcvSURF_A4B4G4R4            = 300,
-    gcvSURF_A1B5G5R5,
-    gcvSURF_B5G6R5,
-    gcvSURF_B8G8R8,
-    gcvSURF_B16G16R16,
-    gcvSURF_X8B8G8R8,
-    gcvSURF_A8B8G8R8,
-    gcvSURF_A2B10G10R10,
-    gcvSURF_X16B16G16R16,
-    gcvSURF_A16B16G16R16,
-    gcvSURF_B32G32R32,
-    gcvSURF_X32B32G32R32,
-    gcvSURF_A32B32G32R32,
-    gcvSURF_B4G4R4A4,
-    gcvSURF_B5G5R5A1,
-    gcvSURF_B8G8R8X8,
-    gcvSURF_B8G8R8A8,
-    gcvSURF_X4B4G4R4,
-    gcvSURF_X1B5G5R5,
-    gcvSURF_B4G4R4X4,
-    gcvSURF_B5G5R5X1,
-    gcvSURF_X2B10G10R10,
-    gcvSURF_B8G8R8_SNORM,
-    gcvSURF_X8B8G8R8_SNORM,
-    gcvSURF_A8B8G8R8_SNORM,
-    gcvSURF_A8B12G12R12_2_A8R8G8B8,
-
-    /* Compressed formats. */
-    gcvSURF_DXT1                = 400,
-    gcvSURF_DXT2,
-    gcvSURF_DXT3,
-    gcvSURF_DXT4,
-    gcvSURF_DXT5,
-    gcvSURF_CXV8U8,
-    gcvSURF_ETC1,
-    gcvSURF_R11_EAC,
-    gcvSURF_SIGNED_R11_EAC,
-    gcvSURF_RG11_EAC,
-    gcvSURF_SIGNED_RG11_EAC,
-    gcvSURF_RGB8_ETC2,
-    gcvSURF_SRGB8_ETC2,
-    gcvSURF_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
-    gcvSURF_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
-    gcvSURF_RGBA8_ETC2_EAC,
-    gcvSURF_SRGB8_ALPHA8_ETC2_EAC,
-
-    /* YUV formats. */
-    gcvSURF_YUY2                = 500,
-    gcvSURF_UYVY,
-    gcvSURF_YV12,
-    gcvSURF_I420,
-    gcvSURF_NV12,
-    gcvSURF_NV21,
-    gcvSURF_NV16,
-    gcvSURF_NV61,
-    gcvSURF_YVYU,
-    gcvSURF_VYUY,
-
-    /* Depth formats. */
-    gcvSURF_D16                 = 600,
-    gcvSURF_D24S8,
-    gcvSURF_D32,
-    gcvSURF_D24X8,
-    gcvSURF_D32F,
-    gcvSURF_S8D32F,
-    gcvSURF_S8D32F_1_G32R32F,
-    gcvSURF_S8D32F_2_A8R8G8B8,
-    gcvSURF_D24S8_1_A8R8G8B8,
-    gcvSURF_S8,
-
-    /* Alpha formats. */
-    gcvSURF_A4                  = 700,
-    gcvSURF_A8,
-    gcvSURF_A12,
-    gcvSURF_A16,
-    gcvSURF_A32,
-    gcvSURF_A1,
-
-    /* Luminance formats. */
-    gcvSURF_L4                  = 800,
-    gcvSURF_L8,
-    gcvSURF_L12,
-    gcvSURF_L16,
-    gcvSURF_L32,
-    gcvSURF_L1,
-
-    /* Alpha/Luminance formats. */
-    gcvSURF_A4L4                = 900,
-    gcvSURF_A2L6,
-    gcvSURF_A8L8,
-    gcvSURF_A4L12,
-    gcvSURF_A12L12,
-    gcvSURF_A16L16,
-
-    /* Bump formats. */
-    gcvSURF_L6V5U5              = 1000,
-    gcvSURF_V8U8,
-    gcvSURF_X8L8V8U8,
-    gcvSURF_Q8W8V8U8,
-    gcvSURF_A2W10V10U10,
-    gcvSURF_V16U16,
-    gcvSURF_Q16W16V16U16,
-
-    /* R/RG/RA formats. */
-    gcvSURF_R8                  = 1100,
-    gcvSURF_X8R8,
-    gcvSURF_G8R8,
-    gcvSURF_X8G8R8,
-    gcvSURF_A8R8,
-    gcvSURF_R16,
-    gcvSURF_X16R16,
-    gcvSURF_G16R16,
-    gcvSURF_X16G16R16,
-    gcvSURF_A16R16,
-    gcvSURF_R32,
-    gcvSURF_X32R32,
-    gcvSURF_G32R32,
-    gcvSURF_X32G32R32,
-    gcvSURF_A32R32,
-    gcvSURF_RG16,
-    gcvSURF_R8_SNORM,
-    gcvSURF_G8R8_SNORM,
-
-    gcvSURF_R8_1_X8R8G8B8,
-    gcvSURF_G8R8_1_X8R8G8B8,
-
-    /* Floating point formats. */
-    gcvSURF_R16F                = 1200,
-    gcvSURF_X16R16F,
-    gcvSURF_G16R16F,
-    gcvSURF_X16G16R16F,
-    gcvSURF_B16G16R16F,
-    gcvSURF_X16B16G16R16F,
-    gcvSURF_A16B16G16R16F,
-    gcvSURF_R32F,
-    gcvSURF_X32R32F,
-    gcvSURF_G32R32F,
-    gcvSURF_X32G32R32F,
-    gcvSURF_B32G32R32F,
-    gcvSURF_X32B32G32R32F,
-    gcvSURF_A32B32G32R32F,
-    gcvSURF_A16F,
-    gcvSURF_L16F,
-    gcvSURF_A16L16F,
-    gcvSURF_A16R16F,
-    gcvSURF_A32F,
-    gcvSURF_L32F,
-    gcvSURF_A32L32F,
-    gcvSURF_A32R32F,
-    gcvSURF_E5B9G9R9,
-    gcvSURF_B10G11R11F,
-
-    gcvSURF_X16B16G16R16F_2_A8R8G8B8,
-    gcvSURF_A16B16G16R16F_2_A8R8G8B8,
-    gcvSURF_G32R32F_2_A8R8G8B8,
-    gcvSURF_X32B32G32R32F_2_G32R32F,
-    gcvSURF_A32B32G32R32F_2_G32R32F,
-    gcvSURF_X32B32G32R32F_4_A8R8G8B8,
-    gcvSURF_A32B32G32R32F_4_A8R8G8B8,
-
-    gcvSURF_R16F_1_A4R4G4B4,
-    gcvSURF_G16R16F_1_A8R8G8B8,
-    gcvSURF_B16G16R16F_2_A8R8G8B8,
-
-    gcvSURF_R32F_1_A8R8G8B8,
-    gcvSURF_B32G32R32F_3_A8R8G8B8,
-
-    gcvSURF_B10G11R11F_1_A8R8G8B8,
-
-
-    /* sRGB format. */
-    gcvSURF_SBGR8               = 1400,
-    gcvSURF_A8_SBGR8,
-    gcvSURF_X8_SBGR8,
-
-    /* Integer formats. */
-    gcvSURF_R8I                 = 1500,
-    gcvSURF_R8UI,
-    gcvSURF_R16I,
-    gcvSURF_R16UI,
-    gcvSURF_R32I,
-    gcvSURF_R32UI,
-    gcvSURF_X8R8I,
-    gcvSURF_G8R8I,
-    gcvSURF_X8R8UI,
-    gcvSURF_G8R8UI,
-    gcvSURF_X16R16I,
-    gcvSURF_G16R16I,
-    gcvSURF_X16R16UI,
-    gcvSURF_G16R16UI,
-    gcvSURF_X32R32I,
-    gcvSURF_G32R32I,
-    gcvSURF_X32R32UI,
-    gcvSURF_G32R32UI,
-    gcvSURF_X8G8R8I,
-    gcvSURF_B8G8R8I,
-    gcvSURF_X8G8R8UI,
-    gcvSURF_B8G8R8UI,
-    gcvSURF_X16G16R16I,
-    gcvSURF_B16G16R16I,
-    gcvSURF_X16G16R16UI,
-    gcvSURF_B16G16R16UI,
-    gcvSURF_X32G32R32I,
-    gcvSURF_B32G32R32I,
-    gcvSURF_X32G32R32UI,
-    gcvSURF_B32G32R32UI,
-    gcvSURF_X8B8G8R8I,
-    gcvSURF_A8B8G8R8I,
-    gcvSURF_X8B8G8R8UI,
-    gcvSURF_A8B8G8R8UI,
-    gcvSURF_X16B16G16R16I,
-    gcvSURF_A16B16G16R16I,
-    gcvSURF_X16B16G16R16UI,
-    gcvSURF_A16B16G16R16UI,
-    gcvSURF_X32B32G32R32I,
-    gcvSURF_A32B32G32R32I,
-    gcvSURF_X32B32G32R32UI,
-    gcvSURF_A32B32G32R32UI,
-    gcvSURF_A2B10G10R10UI,
-    gcvSURF_G32R32I_2_A8R8G8B8,
-    gcvSURF_G32R32UI_2_A8R8G8B8,
-    gcvSURF_X16B16G16R16I_2_A8R8G8B8,
-    gcvSURF_A16B16G16R16I_2_A8R8G8B8,
-    gcvSURF_X16B16G16R16UI_2_A8R8G8B8,
-    gcvSURF_A16B16G16R16UI_2_A8R8G8B8,
-    gcvSURF_X32B32G32R32I_2_G32R32I,
-    gcvSURF_A32B32G32R32I_2_G32R32I,
-    gcvSURF_X32B32G32R32I_3_A8R8G8B8,
-    gcvSURF_A32B32G32R32I_4_A8R8G8B8,
-    gcvSURF_X32B32G32R32UI_2_G32R32UI,
-    gcvSURF_A32B32G32R32UI_2_G32R32UI,
-    gcvSURF_X32B32G32R32UI_3_A8R8G8B8,
-    gcvSURF_A32B32G32R32UI_4_A8R8G8B8,
-    gcvSURF_A2B10G10R10UI_1_A8R8G8B8,
-    gcvSURF_A8B8G8R8I_1_A8R8G8B8,
-    gcvSURF_A8B8G8R8UI_1_A8R8G8B8,
-    gcvSURF_R8I_1_A4R4G4B4,
-    gcvSURF_R8UI_1_A4R4G4B4,
-    gcvSURF_R16I_1_A4R4G4B4,
-    gcvSURF_R16UI_1_A4R4G4B4,
-    gcvSURF_R32I_1_A8R8G8B8,
-    gcvSURF_R32UI_1_A8R8G8B8,
-    gcvSURF_X8R8I_1_A4R4G4B4,
-    gcvSURF_X8R8UI_1_A4R4G4B4,
-    gcvSURF_G8R8I_1_A4R4G4B4,
-    gcvSURF_G8R8UI_1_A4R4G4B4,
-    gcvSURF_X16R16I_1_A4R4G4B4,
-    gcvSURF_X16R16UI_1_A4R4G4B4,
-    gcvSURF_G16R16I_1_A8R8G8B8,
-    gcvSURF_G16R16UI_1_A8R8G8B8,
-    gcvSURF_X32R32I_1_A8R8G8B8,
-    gcvSURF_X32R32UI_1_A8R8G8B8,
-    gcvSURF_X8G8R8I_1_A4R4G4B4,
-    gcvSURF_X8G8R8UI_1_A4R4G4B4,
-    gcvSURF_B8G8R8I_1_A8R8G8B8,
-    gcvSURF_B8G8R8UI_1_A8R8G8B8,
-    gcvSURF_B16G16R16I_2_A8R8G8B8,
-    gcvSURF_B16G16R16UI_2_A8R8G8B8,
-    gcvSURF_B32G32R32I_3_A8R8G8B8,
-    gcvSURF_B32G32R32UI_3_A8R8G8B8,
-
-    /* ASTC formats. */
-    gcvSURF_ASTC4x4             = 1600,
-    gcvSURF_ASTC5x4,
-    gcvSURF_ASTC5x5,
-    gcvSURF_ASTC6x5,
-    gcvSURF_ASTC6x6,
-    gcvSURF_ASTC8x5,
-    gcvSURF_ASTC8x6,
-    gcvSURF_ASTC8x8,
-    gcvSURF_ASTC10x5,
-    gcvSURF_ASTC10x6,
-    gcvSURF_ASTC10x8,
-    gcvSURF_ASTC10x10,
-    gcvSURF_ASTC12x10,
-    gcvSURF_ASTC12x12,
-    gcvSURF_ASTC4x4_SRGB,
-    gcvSURF_ASTC5x4_SRGB,
-    gcvSURF_ASTC5x5_SRGB,
-    gcvSURF_ASTC6x5_SRGB,
-    gcvSURF_ASTC6x6_SRGB,
-    gcvSURF_ASTC8x5_SRGB,
-    gcvSURF_ASTC8x6_SRGB,
-    gcvSURF_ASTC8x8_SRGB,
-    gcvSURF_ASTC10x5_SRGB,
-    gcvSURF_ASTC10x6_SRGB,
-    gcvSURF_ASTC10x8_SRGB,
-    gcvSURF_ASTC10x10_SRGB,
-    gcvSURF_ASTC12x10_SRGB,
-    gcvSURF_ASTC12x12_SRGB,
-
-    gcvSURF_FORMAT_COUNT
-}
-gceSURF_FORMAT;
-
-/* Format modifiers. */
-typedef enum _gceSURF_FORMAT_MODE
-{
-    gcvSURF_FORMAT_OCL = 0x80000000
-}
-gceSURF_FORMAT_MODE;
-
-/* Pixel swizzle modes. */
-typedef enum _gceSURF_SWIZZLE
-{
-    gcvSURF_NOSWIZZLE = 0,
-    gcvSURF_ARGB,
-    gcvSURF_ABGR,
-    gcvSURF_RGBA,
-    gcvSURF_BGRA
-}
-gceSURF_SWIZZLE;
-
-/* Transparency modes. */
-typedef enum _gceSURF_TRANSPARENCY
-{
-    /* Valid only for PE 1.0 */
-    gcvSURF_OPAQUE = 0,
-    gcvSURF_SOURCE_MATCH,
-    gcvSURF_SOURCE_MASK,
-    gcvSURF_PATTERN_MASK,
-}
-gceSURF_TRANSPARENCY;
-
-/* Surface Alignment. */
-typedef enum _gceSURF_ALIGNMENT
-{
-    gcvSURF_FOUR = 0,
-    gcvSURF_SIXTEEN,
-    gcvSURF_SUPER_TILED,
-    gcvSURF_SPLIT_TILED,
-    gcvSURF_SPLIT_SUPER_TILED
-}
-gceSURF_ALIGNMENT;
-
-/* Surface Addressing. */
-typedef enum _gceSURF_ADDRESSING
-{
-    gcvSURF_NO_STRIDE_TILED = 0,
-    gcvSURF_NO_STRIDE_LINEAR,
-    gcvSURF_STRIDE_TILED,
-    gcvSURF_STRIDE_LINEAR
-}
-gceSURF_ADDRESSING;
-
-/* Transparency modes. */
-typedef enum _gce2D_TRANSPARENCY
-{
-    /* Valid only for PE 2.0 */
-    gcv2D_OPAQUE = 0,
-    gcv2D_KEYED,
-    gcv2D_MASKED
-}
-gce2D_TRANSPARENCY;
-
-/* Mono packing modes. */
-typedef enum _gceSURF_MONOPACK
-{
-    gcvSURF_PACKED8 = 0,
-    gcvSURF_PACKED16,
-    gcvSURF_PACKED32,
-    gcvSURF_UNPACKED,
-}
-gceSURF_MONOPACK;
-
-/* Blending modes. */
-typedef enum _gceSURF_BLEND_MODE
-{
-    /* Porter-Duff blending modes.                   */
-    /*                         Fsrc      Fdst        */
-    gcvBLEND_CLEAR = 0,     /* 0         0           */
-    gcvBLEND_SRC,           /* 1         0           */
-    gcvBLEND_DST,           /* 0         1           */
-    gcvBLEND_SRC_OVER_DST,  /* 1         1 - Asrc    */
-    gcvBLEND_DST_OVER_SRC,  /* 1 - Adst  1           */
-    gcvBLEND_SRC_IN_DST,    /* Adst      0           */
-    gcvBLEND_DST_IN_SRC,    /* 0         Asrc        */
-    gcvBLEND_SRC_OUT_DST,   /* 1 - Adst  0           */
-    gcvBLEND_DST_OUT_SRC,   /* 0         1 - Asrc    */
-    gcvBLEND_SRC_ATOP_DST,  /* Adst      1 - Asrc    */
-    gcvBLEND_DST_ATOP_SRC,  /* 1 - Adst  Asrc        */
-    gcvBLEND_SRC_XOR_DST,   /* 1 - Adst  1 - Asrc    */
-
-    /* Special blending modes.                       */
-    gcvBLEND_SET,           /* DST = 1               */
-    gcvBLEND_SUB            /* DST = DST * (1 - SRC) */
-}
-gceSURF_BLEND_MODE;
-
-/* Per-pixel alpha modes. */
-typedef enum _gceSURF_PIXEL_ALPHA_MODE
-{
-    gcvSURF_PIXEL_ALPHA_STRAIGHT = 0,
-    gcvSURF_PIXEL_ALPHA_INVERSED
-}
-gceSURF_PIXEL_ALPHA_MODE;
-
-/* Global alpha modes. */
-typedef enum _gceSURF_GLOBAL_ALPHA_MODE
-{
-    gcvSURF_GLOBAL_ALPHA_OFF = 0,
-    gcvSURF_GLOBAL_ALPHA_ON,
-    gcvSURF_GLOBAL_ALPHA_SCALE
-}
-gceSURF_GLOBAL_ALPHA_MODE;
-
-/* Color component modes for alpha blending. */
-typedef enum _gceSURF_PIXEL_COLOR_MODE
-{
-    gcvSURF_COLOR_STRAIGHT = 0,
-    gcvSURF_COLOR_MULTIPLY
-}
-gceSURF_PIXEL_COLOR_MODE;
-
-/* Color component modes for alpha blending. */
-typedef enum _gce2D_PIXEL_COLOR_MULTIPLY_MODE
-{
-    gcv2D_COLOR_MULTIPLY_DISABLE = 0,
-    gcv2D_COLOR_MULTIPLY_ENABLE
-}
-gce2D_PIXEL_COLOR_MULTIPLY_MODE;
-
-/* Color component modes for alpha blending. */
-typedef enum _gce2D_GLOBAL_COLOR_MULTIPLY_MODE
-{
-    gcv2D_GLOBAL_COLOR_MULTIPLY_DISABLE = 0,
-    gcv2D_GLOBAL_COLOR_MULTIPLY_ALPHA,
-    gcv2D_GLOBAL_COLOR_MULTIPLY_COLOR
-}
-gce2D_GLOBAL_COLOR_MULTIPLY_MODE;
-
-/* Alpha blending factor modes. */
-typedef enum _gceSURF_BLEND_FACTOR_MODE
-{
-    gcvSURF_BLEND_ZERO = 0,
-    gcvSURF_BLEND_ONE,
-    gcvSURF_BLEND_STRAIGHT,
-    gcvSURF_BLEND_INVERSED,
-    gcvSURF_BLEND_COLOR,
-    gcvSURF_BLEND_COLOR_INVERSED,
-    gcvSURF_BLEND_SRC_ALPHA_SATURATED,
-    gcvSURF_BLEND_STRAIGHT_NO_CROSS,
-    gcvSURF_BLEND_INVERSED_NO_CROSS,
-    gcvSURF_BLEND_COLOR_NO_CROSS,
-    gcvSURF_BLEND_COLOR_INVERSED_NO_CROSS,
-    gcvSURF_BLEND_SRC_ALPHA_SATURATED_CROSS
-}
-gceSURF_BLEND_FACTOR_MODE;
-
-/* Alpha blending porter duff rules. */
-typedef enum _gce2D_PORTER_DUFF_RULE
-{
-    gcvPD_CLEAR = 0,
-    gcvPD_SRC,
-    gcvPD_SRC_OVER,
-    gcvPD_DST_OVER,
-    gcvPD_SRC_IN,
-    gcvPD_DST_IN,
-    gcvPD_SRC_OUT,
-    gcvPD_DST_OUT,
-    gcvPD_SRC_ATOP,
-    gcvPD_DST_ATOP,
-    gcvPD_ADD,
-    gcvPD_XOR,
-    gcvPD_DST
-}
-gce2D_PORTER_DUFF_RULE;
-
-/* Alpha blending factor modes. */
-typedef enum _gce2D_YUV_COLOR_MODE
-{
-    gcv2D_YUV_601= 0,
-    gcv2D_YUV_709,
-    gcv2D_YUV_USER_DEFINED,
-    gcv2D_YUV_USER_DEFINED_CLAMP,
-
-    /* Default setting is for src. gcv2D_YUV_DST
-        can be ORed to set dst.
-    */
-    gcv2D_YUV_DST = 0x80000000,
-}
-gce2D_YUV_COLOR_MODE;
-
-typedef enum _gce2D_COMMAND
-{
-    gcv2D_CLEAR = 0,
-    gcv2D_LINE,
-    gcv2D_BLT,
-    gcv2D_STRETCH,
-    gcv2D_HOR_FILTER,
-    gcv2D_VER_FILTER,
-    gcv2D_MULTI_SOURCE_BLT,
-    gcv2D_FILTER_BLT,
-}
-gce2D_COMMAND;
-
-typedef enum _gce2D_TILE_STATUS_CONFIG
-{
-    gcv2D_TSC_DISABLE       = 0,
-    gcv2D_TSC_ENABLE        = 0x00000001,
-    gcv2D_TSC_COMPRESSED    = 0x00000002,
-    gcv2D_TSC_DOWN_SAMPLER  = 0x00000004,
-    gcv2D_TSC_2D_COMPRESSED = 0x00000008,
-    gcv2D_TSC_TPC_COMPRESSED = 0x00000010,
-}
-gce2D_TILE_STATUS_CONFIG;
-
-typedef enum _gce2D_QUERY
-{
-    gcv2D_QUERY_RGB_ADDRESS_MIN_ALIGN       = 0,
-    gcv2D_QUERY_RGB_STRIDE_MIN_ALIGN,
-    gcv2D_QUERY_YUV_ADDRESS_MIN_ALIGN,
-    gcv2D_QUERY_YUV_STRIDE_MIN_ALIGN,
-}
-gce2D_QUERY;
-
-typedef enum _gce2D_SUPER_TILE_VERSION
-{
-    gcv2D_SUPER_TILE_VERSION_V1       = 1,
-    gcv2D_SUPER_TILE_VERSION_V2       = 2,
-    gcv2D_SUPER_TILE_VERSION_V3       = 3,
-}
-gce2D_SUPER_TILE_VERSION;
-
-typedef enum _gce2D_STATE
-{
-    gcv2D_STATE_SPECIAL_FILTER_MIRROR_MODE       = 1,
-    gcv2D_STATE_SUPER_TILE_VERSION,
-    gcv2D_STATE_EN_GAMMA,
-    gcv2D_STATE_DE_GAMMA,
-    gcv2D_STATE_MULTI_SRC_BLIT_UNIFIED_DST_RECT,
-    gcv2D_STATE_PROFILE_ENABLE,
-    gcv2D_STATE_XRGB_ENABLE,
-
-    gcv2D_STATE_ARRAY_EN_GAMMA                   = 0x10001,
-    gcv2D_STATE_ARRAY_DE_GAMMA,
-    gcv2D_STATE_ARRAY_CSC_YUV_TO_RGB,
-    gcv2D_STATE_ARRAY_CSC_RGB_TO_YUV,
-}
-gce2D_STATE;
-
-typedef enum _gce2D_STATE_PROFILE
-{
-    gcv2D_STATE_PROFILE_NONE    = 0x0,
-    gcv2D_STATE_PROFILE_COMMAND = 0x1,
-    gcv2D_STATE_PROFILE_SURFACE = 0x2,
-    gcv2D_STATE_PROFILE_ALL     = 0xFFFF,
-}
-gce2D_STATE_PROFILE;
-
-/* Texture object types */
-typedef enum _gceTEXTURE_TYPE
-{
-    gcvTEXTURE_UNKNOWN = 0,
-    gcvTEXTURE_1D,
-    gcvTEXTURE_2D,
-    gcvTEXTURE_3D,
-    gcvTEXTURE_CUBEMAP,
-    gcvTEXTURE_1D_ARRAY,
-    gcvTEXTURE_2D_ARRAY,
-    gcvTEXTURE_EXTERNAL
-}
-gceTEXTURE_TYPE;
-
-#if gcdENABLE_3D
-/* Texture functions. */
-typedef enum _gceTEXTURE_FUNCTION
-{
-    gcvTEXTURE_DUMMY = 0,
-    gcvTEXTURE_REPLACE = 0,
-    gcvTEXTURE_MODULATE,
-    gcvTEXTURE_ADD,
-    gcvTEXTURE_ADD_SIGNED,
-    gcvTEXTURE_INTERPOLATE,
-    gcvTEXTURE_SUBTRACT,
-    gcvTEXTURE_DOT3
-}
-gceTEXTURE_FUNCTION;
-
-/* Texture sources. */
-typedef enum _gceTEXTURE_SOURCE
-{
-    gcvCOLOR_FROM_TEXTURE = 0,
-    gcvCOLOR_FROM_CONSTANT_COLOR,
-    gcvCOLOR_FROM_PRIMARY_COLOR,
-    gcvCOLOR_FROM_PREVIOUS_COLOR
-}
-gceTEXTURE_SOURCE;
-
-/* Texture source channels. */
-typedef enum _gceTEXTURE_CHANNEL
-{
-    gcvFROM_COLOR = 0,
-    gcvFROM_ONE_MINUS_COLOR,
-    gcvFROM_ALPHA,
-    gcvFROM_ONE_MINUS_ALPHA
-}
-gceTEXTURE_CHANNEL;
-#endif /* gcdENABLE_3D */
-
-/* Filter types. */
-typedef enum _gceFILTER_TYPE
-{
-    gcvFILTER_SYNC = 0,
-    gcvFILTER_BLUR,
-    gcvFILTER_USER
-}
-gceFILTER_TYPE;
-
-/* Filter pass types. */
-typedef enum _gceFILTER_PASS_TYPE
-{
-    gcvFILTER_HOR_PASS = 0,
-    gcvFILTER_VER_PASS
-}
-gceFILTER_PASS_TYPE;
-
-/* Endian hints. */
-typedef enum _gceENDIAN_HINT
-{
-    gcvENDIAN_NO_SWAP = 0,
-    gcvENDIAN_SWAP_WORD,
-    gcvENDIAN_SWAP_DWORD
-}
-gceENDIAN_HINT;
-
-/* Tiling modes. */
-typedef enum _gceTILING
-{
-    gcvINVALIDTILED = 0x0,        /* Invalid tiling */
-    /* Tiling basic modes enum'ed in power of 2. */
-    gcvLINEAR      = 0x1,         /* No    tiling. */
-    gcvTILED       = 0x2,         /* 4x4   tiling. */
-    gcvSUPERTILED  = 0x4,         /* 64x64 tiling. */
-    gcvMINORTILED  = 0x8,         /* 2x2   tiling. */
-
-    /* Tiling special layouts. */
-    gcvTILING_SPLIT_BUFFER = 0x100,
-
-    /* Tiling combination layouts. */
-    gcvMULTI_TILED      = gcvTILED
-                        | gcvTILING_SPLIT_BUFFER,
-
-    gcvMULTI_SUPERTILED = gcvSUPERTILED
-                        | gcvTILING_SPLIT_BUFFER,
-}
-gceTILING;
-
-/* 2D pattern type. */
-typedef enum _gce2D_PATTERN
-{
-    gcv2D_PATTERN_SOLID = 0,
-    gcv2D_PATTERN_MONO,
-    gcv2D_PATTERN_COLOR,
-    gcv2D_PATTERN_INVALID
-}
-gce2D_PATTERN;
-
-/* 2D source type. */
-typedef enum _gce2D_SOURCE
-{
-    gcv2D_SOURCE_MASKED = 0,
-    gcv2D_SOURCE_MONO,
-    gcv2D_SOURCE_COLOR,
-    gcv2D_SOURCE_INVALID
-}
-gce2D_SOURCE;
-
-/* Pipes. */
-typedef enum _gcePIPE_SELECT
-{
-    gcvPIPE_INVALID = ~0,
-    gcvPIPE_3D      =  0,
-    gcvPIPE_2D
-}
-gcePIPE_SELECT;
-
-/* Hardware type. */
-typedef enum _gceHARDWARE_TYPE
-{
-    gcvHARDWARE_INVALID = 0x00,
-    gcvHARDWARE_3D      = 0x01,
-    gcvHARDWARE_2D      = 0x02,
-    gcvHARDWARE_VG      = 0x04,
-#if gcdMULTI_GPU_AFFINITY
-    gcvHARDWARE_OCL     = 0x05,
-#endif
-    gcvHARDWARE_3D2D    = gcvHARDWARE_3D | gcvHARDWARE_2D
-}
-gceHARDWARE_TYPE;
-
-#define gcdCHIP_COUNT               3
-
-typedef enum _gceMMU_MODE
-{
-    gcvMMU_MODE_1K,
-    gcvMMU_MODE_4K,
-} gceMMU_MODE;
-
-/* User signal command codes. */
-typedef enum _gceUSER_SIGNAL_COMMAND_CODES
-{
-    gcvUSER_SIGNAL_CREATE,
-    gcvUSER_SIGNAL_DESTROY,
-    gcvUSER_SIGNAL_SIGNAL,
-    gcvUSER_SIGNAL_WAIT,
-    gcvUSER_SIGNAL_MAP,
-    gcvUSER_SIGNAL_UNMAP,
-}
-gceUSER_SIGNAL_COMMAND_CODES;
-
-/* Sync point command codes. */
-typedef enum _gceSYNC_POINT_COMMAND_CODES
-{
-    gcvSYNC_POINT_CREATE,
-    gcvSYNC_POINT_DESTROY,
-    gcvSYNC_POINT_SIGNAL,
-}
-gceSYNC_POINT_COMMAND_CODES;
-
-/* Shared buffer command codes. */
-typedef enum _gceSHBUF_COMMAND_CODES
-{
-    gcvSHBUF_CREATE,
-    gcvSHBUF_DESTROY,
-    gcvSHBUF_MAP,
-    gcvSHBUF_WRITE,
-    gcvSHBUF_READ,
-}
-gceSHBUF_COMMAND_CODES;
-
-/* Event locations. */
-typedef enum _gceKERNEL_WHERE
-{
-    gcvKERNEL_COMMAND,
-    gcvKERNEL_VERTEX,
-    gcvKERNEL_TRIANGLE,
-    gcvKERNEL_TEXTURE,
-    gcvKERNEL_PIXEL,
-}
-gceKERNEL_WHERE;
-
-#if gcdENABLE_VG
-/* Hardware blocks. */
-typedef enum _gceBLOCK
-{
-    gcvBLOCK_COMMAND,
-    gcvBLOCK_TESSELLATOR,
-    gcvBLOCK_TESSELLATOR2,
-    gcvBLOCK_TESSELLATOR3,
-    gcvBLOCK_RASTER,
-    gcvBLOCK_VG,
-    gcvBLOCK_VG2,
-    gcvBLOCK_VG3,
-    gcvBLOCK_PIXEL,
-
-    /* Number of defined blocks. */
-    gcvBLOCK_COUNT
-}
-gceBLOCK;
-#endif
-
-/* gcdDUMP message type. */
-typedef enum _gceDEBUG_MESSAGE_TYPE
-{
-    gcvMESSAGE_TEXT,
-    gcvMESSAGE_DUMP
-}
-gceDEBUG_MESSAGE_TYPE;
-
-/* Shading format. */
-typedef enum _gceSHADING
-{
-    gcvSHADING_SMOOTH,
-    gcvSHADING_FLAT_D3D,
-    gcvSHADING_FLAT_OPENGL,
-}
-gceSHADING;
-
-/* Culling modes. */
-typedef enum _gceCULL
-{
-    gcvCULL_NONE,
-    gcvCULL_CCW,
-    gcvCULL_CW,
-}
-gceCULL;
-
-/* Fill modes. */
-typedef enum _gceFILL
-{
-    gcvFILL_POINT,
-    gcvFILL_WIRE_FRAME,
-    gcvFILL_SOLID,
-}
-gceFILL;
-
-/* Compare modes. */
-typedef enum _gceCOMPARE
-{
-    gcvCOMPARE_INVALID = 0,
-    gcvCOMPARE_NEVER,
-    gcvCOMPARE_NOT_EQUAL,
-    gcvCOMPARE_LESS,
-    gcvCOMPARE_LESS_OR_EQUAL,
-    gcvCOMPARE_EQUAL,
-    gcvCOMPARE_GREATER,
-    gcvCOMPARE_GREATER_OR_EQUAL,
-    gcvCOMPARE_ALWAYS,
-}
-gceCOMPARE;
-
-/* Stencil modes. */
-typedef enum _gceSTENCIL_MODE
-{
-    gcvSTENCIL_NONE,
-    gcvSTENCIL_SINGLE_SIDED,
-    gcvSTENCIL_DOUBLE_SIDED,
-}
-gceSTENCIL_MODE;
-
-/* Stencil operations. */
-typedef enum _gceSTENCIL_OPERATION
-{
-    gcvSTENCIL_KEEP,
-    gcvSTENCIL_REPLACE,
-    gcvSTENCIL_ZERO,
-    gcvSTENCIL_INVERT,
-    gcvSTENCIL_INCREMENT,
-    gcvSTENCIL_DECREMENT,
-    gcvSTENCIL_INCREMENT_SATURATE,
-    gcvSTENCIL_DECREMENT_SATURATE,
-    gcvSTENCIL_OPERATION_INVALID = -1
-}
-gceSTENCIL_OPERATION;
-
-/* Stencil selection. */
-typedef enum _gceSTENCIL_WHERE
-{
-    gcvSTENCIL_FRONT,
-    gcvSTENCIL_BACK,
-}
-gceSTENCIL_WHERE;
-
-/* Texture addressing selection. */
-typedef enum _gceTEXTURE_WHICH
-{
-    gcvTEXTURE_S,
-    gcvTEXTURE_T,
-    gcvTEXTURE_R,
-}
-gceTEXTURE_WHICH;
-
-/* Texture addressing modes. */
-typedef enum _gceTEXTURE_ADDRESSING
-{
-    gcvTEXTURE_INVALID    = 0,
-    gcvTEXTURE_CLAMP,
-    gcvTEXTURE_WRAP,
-    gcvTEXTURE_MIRROR,
-    gcvTEXTURE_BORDER,
-    gcvTEXTURE_MIRROR_ONCE,
-}
-gceTEXTURE_ADDRESSING;
-
-/* Texture filters. */
-typedef enum _gceTEXTURE_FILTER
-{
-    gcvTEXTURE_NONE,
-    gcvTEXTURE_POINT,
-    gcvTEXTURE_LINEAR,
-    gcvTEXTURE_ANISOTROPIC,
-}
-gceTEXTURE_FILTER;
-
-typedef enum _gceTEXTURE_COMPONENT
-{
-    gcvTEXTURE_COMPONENT_R,
-    gcvTEXTURE_COMPONENT_G,
-    gcvTEXTURE_COMPONENT_B,
-    gcvTEXTURE_COMPONENT_A,
-
-    gcvTEXTURE_COMPONENT_NUM,
-} gceTEXTURE_COMPONENT;
-
-/* Texture swizzle modes. */
-typedef enum _gceTEXTURE_SWIZZLE
-{
-    gcvTEXTURE_SWIZZLE_R = 0,
-    gcvTEXTURE_SWIZZLE_G,
-    gcvTEXTURE_SWIZZLE_B,
-    gcvTEXTURE_SWIZZLE_A,
-    gcvTEXTURE_SWIZZLE_0,
-    gcvTEXTURE_SWIZZLE_1,
-
-    gcvTEXTURE_SWIZZLE_INVALID,
-} gceTEXTURE_SWIZZLE;
-
-typedef enum _gceTEXTURE_COMPARE_MODE
-{
-    gcvTEXTURE_COMPARE_MODE_INVALID  = 0,
-    gcvTEXTURE_COMPARE_MODE_NONE,
-    gcvTEXTURE_COMPARE_MODE_REF,
-} gceTEXTURE_COMPARE_MODE;
-
-/* Pixel output swizzle modes. */
-typedef enum _gcePIXEL_SWIZZLE
-{
-    gcvPIXEL_SWIZZLE_R = gcvTEXTURE_SWIZZLE_R,
-    gcvPIXEL_SWIZZLE_G = gcvTEXTURE_SWIZZLE_G,
-    gcvPIXEL_SWIZZLE_B = gcvTEXTURE_SWIZZLE_B,
-    gcvPIXEL_SWIZZLE_A = gcvTEXTURE_SWIZZLE_A,
-
-    gcvPIXEL_SWIZZLE_INVALID,
-} gcePIXEL_SWIZZLE;
-
-/* Primitive types. */
-typedef enum _gcePRIMITIVE
-{
-    gcvPRIMITIVE_POINT_LIST,
-    gcvPRIMITIVE_LINE_LIST,
-    gcvPRIMITIVE_LINE_STRIP,
-    gcvPRIMITIVE_LINE_LOOP,
-    gcvPRIMITIVE_TRIANGLE_LIST,
-    gcvPRIMITIVE_TRIANGLE_STRIP,
-    gcvPRIMITIVE_TRIANGLE_FAN,
-    gcvPRIMITIVE_RECTANGLE,
-}
-gcePRIMITIVE;
-
-/* Index types. */
-typedef enum _gceINDEX_TYPE
-{
-    gcvINDEX_8,
-    gcvINDEX_16,
-    gcvINDEX_32,
-}
-gceINDEX_TYPE;
-
-/* Multi GPU rendering modes. */
-typedef enum _gceMULTI_GPU_RENDERING_MODE
-{
-    gcvMULTI_GPU_RENDERING_MODE_OFF,
-    gcvMULTI_GPU_RENDERING_MODE_SPLIT_WIDTH,
-    gcvMULTI_GPU_RENDERING_MODE_SPLIT_HEIGHT,
-    gcvMULTI_GPU_RENDERING_MODE_INTERLEAVED_64x64,
-    gcvMULTI_GPU_RENDERING_MODE_INTERLEAVED_128x64,
-    gcvMULTI_GPU_RENDERING_MODE_INTERLEAVED_128x128
-}
-gceMULTI_GPU_RENDERING_MODE;
-
-typedef enum _gceCORE_3D_MASK
-{
-    gcvCORE_3D_0_MASK   = (1 << 0),
-    gcvCORE_3D_1_MASK   = (1 << 1),
-
-    gcvCORE_3D_ALL_MASK = (0xFFFF)
-}
-gceCORE_3D_MASK;
-
-typedef enum _gceCORE_3D_ID
-{
-    gcvCORE_3D_0_ID       = 0,
-    gcvCORE_3D_1_ID       = 1,
-
-    gcvCORE_3D_ID_INVALID = ~0UL
-}
-gceCORE_3D_ID;
-
-typedef enum _gceMULTI_GPU_MODE
-{
-    gcvMULTI_GPU_MODE_COMBINED    = 0,
-    gcvMULTI_GPU_MODE_INDEPENDENT = 1
-}
-gceMULTI_GPU_MODE;
-
-typedef enum _gceMACHINECODE
-{
-    gcvMACHINECODE_ANTUTU0 = 0x0,
-
-    gcvMACHINECODE_GLB27_RELEASE_0,
-
-    gcvMACHINECODE_GLB25_RELEASE_0,
-    gcvMACHINECODE_GLB25_RELEASE_1,
-    gcvMACHINECODE_GLB25_RELEASE_2,
-
-    /* keep it as the last enum */
-    gcvMACHINECODE_COUNT
-}
-gceMACHINECODE;
-
-typedef enum _gceUNIFORMCVT
-{
-    gcvUNIFORMCVT_NONE = 0,
-    gcvUNIFORMCVT_TO_BOOL,
-    gcvUNIFORMCVT_TO_FLOAT,
-} gceUNIFORMCVT;
-
-typedef enum _gceHAL_ARG_VERSION
-{
-    gcvHAL_ARG_VERSION_V1 = 0x0,
-}
-gceHAL_ARG_VERSION;
-
-
-typedef enum _gceCMDBUF_TYPE
-{
-    /* Contiguous command buffer. */
-    gcvCMDBUF_CONTIGUOUS,
-    /* Virtual command buffer. */
-    gcvCMDBUF_VIRTUAL,
-    /* Command buffer allocated from reserved memory. */
-    gcvCMDBUF_RESERVED,
-}
-gceCMDBUF_SOURCE;
-
-typedef enum _gceECO_FALG
-{
-    gcvECO_FLAG_MSAA_COHERENCEY = 1 << 0,
-}
-gceECO_FLAG;
-
-/*
-* Bit of a requirment is 1 means requirement is a must, 0 means requirement can
-* be ignored.
-*/
-#define gcvALLOC_FLAG_CONTIGUOUS_BIT        0
-#define gcvALLOC_FLAG_CACHEABLE_BIT         1
-#define gcvALLOC_FLAG_SECURITY_BIT          2
-#define gcvALLOC_FLAG_NON_CONTIGUOUS_BIT    3
-#define gcvALLOC_FLAG_MEMLIMIT_BIT    4
-
-/* No special needs. */
-#define gcvALLOC_FLAG_NONE              (0)
-/* Physical contiguous. */
-#define gcvALLOC_FLAG_CONTIGUOUS        (1 << gcvALLOC_FLAG_CONTIGUOUS_BIT)
-/* Can be remapped as cacheable. */
-#define gcvALLOC_FLAG_CACHEABLE         (1 << gcvALLOC_FLAG_CACHEABLE_BIT)
-/* Secure buffer. */
-#define gcvALLOC_FLAG_SECURITY          (1 << gcvALLOC_FLAG_SECURITY_BIT)
-/* Physical non contiguous. */
-#define gcvALLOC_FLAG_NON_CONTIGUOUS    (1 << gcvALLOC_FLAG_NON_CONTIGUOUS_BIT)
-#define gcvALLOC_FLAG_MEMLIMIT    (1 << gcvALLOC_FLAG_MEMLIMIT_BIT)
-
-/* GL_VIV internal usage */
-#ifndef GL_MAP_BUFFER_OBJ_VIV
-#define GL_MAP_BUFFER_OBJ_VIV       0x10000
-#endif
-
-/* Command buffer usage. */
-#define gcvCOMMAND_2D   (1 << 0)
-#define gcvCOMMAND_3D   (1 << 1)
-
-/******************************************************************************\
-****************************** Object Declarations *****************************
-\******************************************************************************/
-
-typedef struct _gckCONTEXT          * gckCONTEXT;
-typedef struct _gcoCMDBUF           * gcoCMDBUF;
-
-typedef struct _gcsSTATE_DELTA      * gcsSTATE_DELTA_PTR;
-typedef struct _gcsQUEUE            * gcsQUEUE_PTR;
-typedef struct _gcoQUEUE            * gcoQUEUE;
-typedef struct _gcsHAL_INTERFACE    * gcsHAL_INTERFACE_PTR;
-typedef struct _gcs2D_PROFILE       * gcs2D_PROFILE_PTR;
-
-#if gcdENABLE_VG
-typedef struct _gcoVGHARDWARE *            gcoVGHARDWARE;
-typedef struct _gcoVGBUFFER *           gcoVGBUFFER;
-typedef struct _gckVGHARDWARE *         gckVGHARDWARE;
-typedef struct _gcsVGCONTEXT *            gcsVGCONTEXT_PTR;
-typedef struct _gcsVGCONTEXT_MAP *        gcsVGCONTEXT_MAP_PTR;
-typedef struct _gcsVGCMDQUEUE *            gcsVGCMDQUEUE_PTR;
-typedef struct _gcsTASK_MASTER_TABLE *    gcsTASK_MASTER_TABLE_PTR;
-typedef struct _gckVGKERNEL *            gckVGKERNEL;
-typedef void *                            gctTHREAD;
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gc_hal_enum_h_ */

+ 0 - 1275
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_options.h

@@ -1,1275 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_options_h_
-#define __gc_hal_options_h_
-
-/*
-    gcdSECURITY
-
-*/
-#ifndef gcdSECURITY
-#   define gcdSECURITY                          0
-#endif
-
-/*
-    gcdPRINT_VERSION
-
-        Print HAL version.
-*/
-#ifndef gcdPRINT_VERSION
-#   define gcdPRINT_VERSION                     0
-#endif
-
-/*
-    USE_NEW_LINUX_SIGNAL
-
-        This define enables the Linux kernel signaling between kernel and user.
-*/
-#ifndef USE_NEW_LINUX_SIGNAL
-#   define USE_NEW_LINUX_SIGNAL                 0
-#endif
-
-/*
-    VIVANTE_PROFILER
-
-        This define enables the profiler.
-*/
-#ifndef VIVANTE_PROFILER
-#   define VIVANTE_PROFILER                     1
-#endif
-
-/*
-    VIVANTE_PROFILER_CONTEXT
-
-        This define enables the profiler according each context.
-*/
-#ifndef VIVANTE_PROFILER_CONTEXT
-#   define VIVANTE_PROFILER_CONTEXT             1
-#endif
-
-#ifndef VIVANTE_PROFILER_PERDRAW
-#   define VIVANTE_PROFILER_PERDRAW             0
-#endif
-
-#ifndef VIVANTE_PROFILER_NEW
-#   define VIVANTE_PROFILER_NEW                 0
-#endif
-
-#ifndef VIVANTE_PROFILER_PM
-#   define VIVANTE_PROFILER_PM                  1
-#endif
-/*
-    gcdUSE_VG
-
-        Enable VG HAL layer (only for GC350).
-*/
-#ifndef gcdUSE_VG
-#   define gcdUSE_VG                            0
-#endif
-
-/*
-    USE_SW_FB
-
-        Set to 1 if the frame buffer memory cannot be accessed by the GPU.
-*/
-#ifndef USE_SW_FB
-#   define USE_SW_FB                            0
-#endif
-
-/*
-    PROFILE_HAL_COUNTERS
-
-        This define enables HAL counter profiling support.  HW and SHADER
-        counter profiling depends on this.
-*/
-#ifndef PROFILE_HAL_COUNTERS
-#   define PROFILE_HAL_COUNTERS                 1
-#endif
-
-/*
-    PROFILE_HW_COUNTERS
-
-        This define enables HW counter profiling support.
-*/
-#ifndef PROFILE_HW_COUNTERS
-#   define PROFILE_HW_COUNTERS                  1
-#endif
-
-/*
-    PROFILE_SHADER_COUNTERS
-
-        This define enables SHADER counter profiling support.
-*/
-#ifndef PROFILE_SHADER_COUNTERS
-#   define PROFILE_SHADER_COUNTERS              1
-#endif
-
-/*
-    COMMAND_PROCESSOR_VERSION
-
-        The version of the command buffer and task manager.
-*/
-#define COMMAND_PROCESSOR_VERSION               1
-
-/*
-    gcdDUMP_KEY
-
-        Set this to a string that appears in 'cat /proc/<pid>/cmdline'. E.g. 'camera'.
-        HAL will create dumps for the processes matching this key.
-*/
-#ifndef gcdDUMP_KEY
-#   define gcdDUMP_KEY                          "process"
-#endif
-
-/*
-    gcdDUMP_PATH
-
-        The dump file location. Some processes cannot write to the sdcard.
-        Try apps' data dir, e.g. /data/data/com.android.launcher
-*/
-#ifndef gcdDUMP_PATH
-#if defined(ANDROID)
-#   define gcdDUMP_PATH                         "/mnt/sdcard/"
-#else
-#   define gcdDUMP_PATH                         "./"
-#endif
-#endif
-
-/*
-    gcdDUMP
-
-        When set to 1, a dump of all states and memory uploads, as well as other
-        hardware related execution will be printed to the debug console.  This
-        data can be used for playing back applications.
-*/
-#ifndef gcdDUMP
-#   define gcdDUMP                              0
-#endif
-
-/*
-    gcdDUMP_API
-
-        When set to 1, a high level dump of the EGL and GL/VG APs's are
-        captured.
-*/
-#ifndef gcdDUMP_API
-#   define gcdDUMP_API                          0
-#endif
-
-
-
-/*
-    gcdDEBUG_OPTION
-        When set to 1, the debug options are enabled. We must set other MACRO to enable
-        sub case.
-*/
-#ifndef gcdDEBUG_OPTION
-#   define gcdDEBUG_OPTION                      0
-
-#if gcdDEBUG_OPTION
-/*
-    gcdDEBUG_OPTION_KEY
-        The process name of debug application.
-*/
-#ifndef gcdDEBUG_OPTION_KEY
-#          define gcdDEBUG_OPTION_KEY                           "process"
-#       endif
-/*
-    gcdDEBUG_OPTION_NO_GL_DRAWS
-        When set to 1, all glDrawArrays and glDrawElements will be skip.
-*/
-#ifndef gcdDEBUG_OPTION_NO_GL_DRAWS
-#           define gcdDEBUG_OPTION_NO_GL_DRAWS                  0
-#       endif
-/*
-    gcdDEBUG_OPTION_NO_DRAW_PRIMITIVES
-        When set to 1, all DrawPrimitives will be skip.
-*/
-#ifndef gcdDEBUG_OPTION_NO_DRAW_PRIMITIVES
-#           define gcdDEBUG_OPTION_NO_DRAW_PRIMITIVES           0
-#       endif
-/*
-    gcdDEBUG_OPTION_SKIP_SWAP
-        When set to 1, just one out of gcdDEBUG_OPTION_SKIP_FRAMES(such as 1/10) eglSwapBuffers will be resolve,
-        others skip.
-*/
-#ifndef gcdDEBUG_OPTION_SKIP_SWAP
-#           define gcdDEBUG_OPTION_SKIP_SWAP                    0
-#           define gcdDEBUG_OPTION_SKIP_FRAMES                  10
-#       endif
-/*
-    gcdDEBUG_OPTION_FORCE_16BIT_RENDER_TARGET
-        When set to 1, the format of render target will force to RGB565.
-*/
-#ifndef gcdDEBUG_OPTION_FORCE_16BIT_RENDER_TARGET
-#           define gcdDEBUG_OPTION_FORCE_16BIT_RENDER_TARGET    0
-#       endif
-/*
-    gcdDEBUG_OPTION_NONE_TEXTURE
-        When set to 1, the type of texture will be set to AQ_TEXTURE_SAMPLE_MODE_TYPE_NONE.
-*/
-#ifndef gcdDEBUG_OPTION_NONE_TEXTURE
-#           define gcdDEBUG_OPTION_NONE_TEXTURE                 0
-#       endif
-/*
-    gcdDEBUG_OPTION_NONE_DEPTH
-        When set to 1, the depth format of surface will be set to gcvSURF_UNKNOWN.
-*/
-#ifndef gcdDEBUG_OPTION_NONE_DEPTH
-#           define gcdDEBUG_OPTION_NONE_DEPTH                   0
-#       endif
-
-#   endif
-#endif
-
-/*
-    gcdDUMP_SWAP_PER_DRAW
-
-        When set to 1, dump swap command for every single draw to make simulation comparison happy.
-        Only valid for ES3 driver for now.
-*/
-#ifndef gcdDUMP_SWAP_PER_DRAW
-#   define gcdDUMP_SWAP_PER_DRAW                0
-#endif
-
-/*
-    gcdDUMP_FRAMERATE
-        When set to a value other than zero, averaqe frame rate will be dumped.
-        The value set is the starting frame that the average will be calculated.
-        This is needed because sometimes first few frames are too slow to be included
-        in the average. Frame count starts from 1.
-*/
-#ifndef gcdDUMP_FRAMERATE
-#   define gcdDUMP_FRAMERATE                    0
-#endif
-
-/*
-    gcdENABLE_FSCALE_VAL_ADJUST
-        When non-zero, FSCALE_VAL when gcvPOWER_ON can be adjusted externally.
- */
-#ifndef gcdENABLE_FSCALE_VAL_ADJUST
-#   define gcdENABLE_FSCALE_VAL_ADJUST          1
-#endif
-
-/*
-    gcdDUMP_IN_KERNEL
-
-        When set to 1, all dumps will happen in the kernel.  This is handy if
-        you want the kernel to dump its command buffers as well and the data
-        needs to be in sync.
-*/
-#ifndef gcdDUMP_IN_KERNEL
-#   define gcdDUMP_IN_KERNEL                    0
-#endif
-
-/*
-    gcdDUMP_COMMAND
-
-        When set to non-zero, the command queue will dump all incoming command
-        and context buffers as well as all other modifications to the command
-        queue.
-*/
-#ifndef gcdDUMP_COMMAND
-#   define gcdDUMP_COMMAND                      0
-#endif
-
-/*
-    gcdDUMP_2D
-
-        When set to non-zero, it will dump the 2D command and surface.
-*/
-#ifndef gcdDUMP_2D
-#   define gcdDUMP_2D                           0
-#endif
-
-/*
-    gcdDUMP_FRAME_TGA
-
-    When set to a value other than 0, a dump of the frame specified by the value,
-    will be done into frame.tga. Frame count starts from 1.
- */
-#ifndef gcdDUMP_FRAME_TGA
-#   define gcdDUMP_FRAME_TGA                    0
-#endif
-/*
-    gcdNULL_DRIVER
-
-    Set to 1 for infinite speed hardware.
-    Set to 2 for bypassing the HAL.
-    Set to 3 for bypassing the drivers.
-*/
-#ifndef gcdNULL_DRIVER
-#   define gcdNULL_DRIVER  0
-#endif
-
-/*
-    gcdENABLE_TIMEOUT_DETECTION
-
-        Enable timeout detection.
-*/
-#ifndef gcdENABLE_TIMEOUT_DETECTION
-#   define gcdENABLE_TIMEOUT_DETECTION          0
-#endif
-
-/*
-    gcdCMD_BUFFER_SIZE
-
-        Number of bytes in a command buffer.
-*/
-#ifndef gcdCMD_BUFFER_SIZE
-#   define gcdCMD_BUFFER_SIZE                   (128 << 10)
-#endif
-
-/*
-    gcdCMD_BUFFERS
-
-        Number of command buffers to use per client.
-*/
-#ifndef gcdCMD_BUFFERS
-#   define gcdCMD_BUFFERS                       2
-#endif
-
-/*
-    gcdMAX_CMD_BUFFERS
-
-        Maximum number of command buffers to use per client.
-*/
-#ifndef gcdMAX_CMD_BUFFERS
-#   define gcdMAX_CMD_BUFFERS                   8
-#endif
-
-/*
-    gcdCOMMAND_QUEUES
-
-        Number of command queues in the kernel.
-*/
-#ifndef gcdCOMMAND_QUEUES
-#   define gcdCOMMAND_QUEUES                    2
-#endif
-
-/*
-    gcdPOWER_CONTROL_DELAY
-
-        The delay in milliseconds required to wait until the GPU has woke up
-        from a suspend or power-down state.  This is system dependent because
-        the bus clock also needs to stabalize.
-*/
-#ifndef gcdPOWER_CONTROL_DELAY
-#   define gcdPOWER_CONTROL_DELAY               0
-#endif
-
-/*
-    gcdMIRROR_PAGETABLE
-
-        Enable it when GPUs with old MMU and new MMU exist at same SoC. It makes
-        each GPU use same virtual address to access same physical memory.
-*/
-#ifndef gcdMIRROR_PAGETABLE
-#   define gcdMIRROR_PAGETABLE                  0
-#endif
-
-/*
-    gcdMMU_SIZE
-
-        Size of the MMU page table in bytes.  Each 4 bytes can hold 4kB worth of
-        virtual data.
-*/
-#ifndef gcdMMU_SIZE
-#if gcdMIRROR_PAGETABLE
-#   define gcdMMU_SIZE                          0x200000
-#else
-#   define gcdMMU_SIZE                          (256 << 10)
-#endif
-#endif
-
-/*
-    gcdSECURE_USER
-
-        Use logical addresses instead of physical addresses in user land.  In
-        this case a hint table is created for both command buffers and context
-        buffers, and that hint table will be used to patch up those buffers in
-        the kernel when they are ready to submit.
-*/
-#ifndef gcdSECURE_USER
-#   define gcdSECURE_USER                       0
-#endif
-
-/*
-    gcdSECURE_CACHE_SLOTS
-
-        Number of slots in the logical to DMA address cache table.  Each time a
-        logical address needs to be translated into a DMA address for the GPU,
-        this cache will be walked.  The replacement scheme is LRU.
-*/
-#ifndef gcdSECURE_CACHE_SLOTS
-#   define gcdSECURE_CACHE_SLOTS                1024
-#endif
-
-/*
-    gcdSECURE_CACHE_METHOD
-
-        Replacement scheme used for Secure Cache.  The following options are
-        available:
-
-            gcdSECURE_CACHE_LRU
-                A standard LRU cache.
-
-            gcdSECURE_CACHE_LINEAR
-                A linear walker with the idea that an application will always
-                render the scene in a similar way, so the next entry in the
-                cache should be a hit most of the time.
-
-            gcdSECURE_CACHE_HASH
-                A 256-entry hash table.
-
-            gcdSECURE_CACHE_TABLE
-                A simple cache but with potential of a lot of cache replacement.
-*/
-#ifndef gcdSECURE_CACHE_METHOD
-#   define gcdSECURE_CACHE_METHOD               gcdSECURE_CACHE_HASH
-#endif
-
-/*
-    gcdREGISTER_ACCESS_FROM_USER
-
-        Set to 1 to allow IOCTL calls to get through from user land.  This
-        should only be in debug or development drops.
-*/
-#ifndef gcdREGISTER_ACCESS_FROM_USER
-#   define gcdREGISTER_ACCESS_FROM_USER         1
-#endif
-
-/*
-    gcdHEAP_SIZE
-
-        Set the allocation size for the internal heaps.  Each time a heap is
-        full, a new heap will be allocated with this minmimum amount of bytes.
-        The bigger this size, the fewer heaps there are to allocate, the better
-        the performance.  However, heaps won't be freed until they are
-        completely free, so there might be some more memory waste if the size is
-        too big.
-*/
-#ifndef gcdHEAP_SIZE
-#   define gcdHEAP_SIZE                         (64 << 10)
-#endif
-
-/*
-    gcdPOWER_SUSPEND_WHEN_IDLE
-
-        Set to 1 to make GPU enter gcvPOWER_SUSPEND when idle detected,
-        otherwise GPU will enter gcvPOWER_IDLE.
-*/
-#ifndef gcdPOWER_SUSPEND_WHEN_IDLE
-#   define gcdPOWER_SUSPEND_WHEN_IDLE          1
-#endif
-
-#ifndef gcdFPGA_BUILD
-#   define gcdFPGA_BUILD                       0
-#endif
-
-/*
-    gcdGPU_TIMEOUT
-
-        This define specified the number of milliseconds the system will wait
-        before it broadcasts the GPU is stuck.  In other words, it will define
-        the timeout of any operation that needs to wait for the GPU.
-
-        If the value is 0, no timeout will be checked for.
-*/
-#ifndef gcdGPU_TIMEOUT
-#if gcdFPGA_BUILD
-#       define gcdGPU_TIMEOUT                   0
-#       define gcdGPU_2D_TIMEOUT                0
-#   else
-#       define gcdGPU_TIMEOUT                   20000
-#       define gcdGPU_2D_TIMEOUT                4000
-#   endif
-#endif
-
-/*
-    gcdGPU_ADVANCETIMER
-
-        it is advance timer.
-*/
-#ifndef gcdGPU_ADVANCETIMER
-#   define gcdGPU_ADVANCETIMER                  250
-#endif
-
-/*
-    gcdSTATIC_LINK
-
-        This define disalbes static linking;
-*/
-#ifndef gcdSTATIC_LINK
-#   define gcdSTATIC_LINK                       0
-#endif
-
-/*
-    gcdUSE_NEW_HEAP
-
-        Setting this define to 1 enables new heap.
-*/
-#ifndef gcdUSE_NEW_HEAP
-#   define gcdUSE_NEW_HEAP                      0
-#endif
-
-/*
-    gcdCMD_NO_2D_CONTEXT
-
-        This define enables no-context 2D command buffer.
-*/
-#ifndef gcdCMD_NO_2D_CONTEXT
-#   define gcdCMD_NO_2D_CONTEXT                 1
-#endif
-
-/*
-    gcdENABLE_BUFFER_ALIGNMENT
-
-    When enabled, video memory is allocated  with atleast 16KB aligment
-    between multiple sub-buffers.
-*/
-#ifndef gcdENABLE_BUFFER_ALIGNMENT
-#   define gcdENABLE_BUFFER_ALIGNMENT             1
-#endif
-
-/*
-    gcdENABLE_BANK_ALIGNMENT
-
-    When enabled, video memory is allocated bank aligned. The vendor can modify
-    _GetSurfaceBankAlignment() and _GetBankOffsetBytes() to define how
-    different types of allocations are bank and channel aligned.
-    When disabled (default), no bank alignment is done.
-*/
-#ifndef gcdENABLE_BANK_ALIGNMENT
-#   define gcdENABLE_BANK_ALIGNMENT             0
-#endif
-
-/*
-    gcdBANK_BIT_START
-
-    Specifies the start bit of the bank (inclusive).
-*/
-#ifndef gcdBANK_BIT_START
-#   define gcdBANK_BIT_START                    12
-#endif
-
-/*
-    gcdBANK_BIT_END
-
-    Specifies the end bit of the bank (inclusive).
-*/
-#ifndef gcdBANK_BIT_END
-#   define gcdBANK_BIT_END                      14
-#endif
-
-/*
-    gcdBANK_CHANNEL_BIT
-
-    When set, video memory when allocated bank aligned is allocated such that
-    render and depth buffer addresses alternate on the channel bit specified.
-    This option has an effect only when gcdENABLE_BANK_ALIGNMENT is enabled.
-    When disabled (default), no alteration is done.
-*/
-#ifndef gcdBANK_CHANNEL_BIT
-#   define gcdBANK_CHANNEL_BIT                  7
-#endif
-
-/*
-    gcdDYNAMIC_SPEED
-
-        When non-zero, it informs the kernel driver to use the speed throttling
-        broadcasting functions to inform the system the GPU should be spet up or
-        slowed down. It will send a broadcast for slowdown each "interval"
-        specified by this define in milliseconds
-        (gckOS_BroadcastCalibrateSpeed).
-*/
-#ifndef gcdDYNAMIC_SPEED
-#    define gcdDYNAMIC_SPEED                    2000
-#endif
-
-/*
-    gcdDYNAMIC_EVENT_THRESHOLD
-
-        When non-zero, it specifies the maximum number of available events at
-        which the kernel driver will issue a broadcast to speed up the GPU
-        (gckOS_BroadcastHurry).
-*/
-#ifndef gcdDYNAMIC_EVENT_THRESHOLD
-#    define gcdDYNAMIC_EVENT_THRESHOLD          5
-#endif
-
-/*
-    gcdENABLE_PROFILING
-
-        Enable profiling macros.
-*/
-#ifndef gcdENABLE_PROFILING
-#   define gcdENABLE_PROFILING                  0
-#endif
-
-/*
-    gcdENABLE_128B_MERGE
-
-        Enable 128B merge for the BUS control.
-*/
-#ifndef gcdENABLE_128B_MERGE
-#   define gcdENABLE_128B_MERGE                 0
-#endif
-
-/*
-    gcdFRAME_DB
-
-        When non-zero, it specified the number of frames inside the frame
-        database. The frame DB will collect per-frame timestamps and hardware
-        counters.
-*/
-#ifndef gcdFRAME_DB
-#   define gcdFRAME_DB                          0
-#   define gcdFRAME_DB_RESET                    0
-#   define gcdFRAME_DB_NAME                     "/var/log/frameDB.log"
-#endif
-
-/*
-    gcdDISABLE_CORES_2D3D
-            disable the 2D3D cores for 2D openVG
-*/
-#ifndef gcdDISABLE_CORES_2D3D
-#   define gcdDISABLE_CORES_2D3D                0
-#endif
-
-/*
-   gcdPAGED_MEMORY_CACHEABLE
-
-        When non-zero, paged memory will be cacheable.
-
-        Normally, driver will detemines whether a video memory
-        is cacheable or not. When cacheable is not neccessary,
-        it will be writecombine.
-
-        This option is only for those SOC which can't enable
-        writecombine without enabling cacheable.
-*/
-#ifndef gcdPAGED_MEMORY_CACHEABLE
-#   define gcdPAGED_MEMORY_CACHEABLE            0
-#endif
-
-/*
-   gcdNONPAGED_MEMORY_CACHEABLE
-
-        When non-zero, non paged memory will be cacheable.
-*/
-#ifndef gcdNONPAGED_MEMORY_CACHEABLE
-#   define gcdNONPAGED_MEMORY_CACHEABLE         0
-#endif
-
-/*
-   gcdNONPAGED_MEMORY_BUFFERABLE
-
-        When non-zero, non paged memory will be bufferable.
-        gcdNONPAGED_MEMORY_BUFFERABLE and gcdNONPAGED_MEMORY_CACHEABLE
-        can't be set 1 at same time
-*/
-#ifndef gcdNONPAGED_MEMORY_BUFFERABLE
-#   define gcdNONPAGED_MEMORY_BUFFERABLE        1
-#endif
-
-/*
-    gcdENABLE_INFINITE_SPEED_HW
-            enable the Infinte HW , this is for 2D openVG
-*/
-#ifndef gcdENABLE_INFINITE_SPEED_HW
-#   define gcdENABLE_INFINITE_SPEED_HW          0
-#endif
-
-/*
-    gcdMULTI_GPU
-
-    Enable/disable multi-GPU support.
-    0      : Disable multi-GPU support
-    1      : Enable one of the 3D cores
-    [2..X] : Number of 3D GPU Cores
-*/
-#ifndef gcdMULTI_GPU
-#   define gcdMULTI_GPU                         0
-#endif
-
-/*
-    gcdMULTI_GPU_AFFINITY
-
-    Enable/disable the binding of a context to one GPU
-*/
-#ifndef gcdMULTI_GPU_AFFINITY
-#   define gcdMULTI_GPU_AFFINITY                0
-#endif
-
-/*
-    gcdPOWEROFF_TIMEOUT
-
-        When non-zero, GPU will power off automatically from
-        idle state, and gcdPOWEROFF_TIMEOUT is also the default
-        timeout in milliseconds.
- */
-#ifndef gcdPOWEROFF_TIMEOUT
-#   define gcdPOWEROFF_TIMEOUT                  300
-#endif
-
-/*
-    QNX_SINGLE_THREADED_DEBUGGING
-*/
-#ifndef QNX_SINGLE_THREADED_DEBUGGING
-#   define QNX_SINGLE_THREADED_DEBUGGING        0
-#endif
-
-/*
-    gcdRENDER_THREADS
-
-        Number of render threads. Make it zero, and there will be no render
-        threads.
-*/
-#ifndef gcdRENDER_THREADS
-#   define gcdRENDER_THREADS                    0
-#endif
-
-/*
-    gcdSMP
-
-        This define enables SMP support.
-
-        Currently, it only works on Linux/Android,
-        Kbuild will config it according to whether
-        CONFIG_SMP is set.
-
-*/
-#ifndef gcdSMP
-#ifdef __APPLE__
-#   define gcdSMP                               1
-#else
-#   define gcdSMP                               0
-#endif
-#endif
-
-/*
-    gcdSHARED_RESOLVE_BUFFER_ENABLED
-
-        Use shared resolve buffer for all app buffers.
-*/
-#ifndef gcdSHARED_RESOLVE_BUFFER_ENABLED
-#   define gcdSHARED_RESOLVE_BUFFER_ENABLED     0
-#endif
-
-/*
-     gcdUSE_TRIANGLE_STRIP_PATCH
- */
-#ifndef gcdUSE_TRIANGLE_STRIP_PATCH
-#   define gcdUSE_TRIANGLE_STRIP_PATCH          1
-#endif
-
-/*
-    gcdENABLE_OUTER_CACHE_PATCH
-
-        Enable the outer cache patch.
-*/
-#ifndef gcdENABLE_OUTER_CACHE_PATCH
-#   define gcdENABLE_OUTER_CACHE_PATCH          0
-#endif
-
-/*
-    gcdPROCESS_ADDRESS_SPACE
-
-        When non-zero, every process which attaches to galcore has its own GPU
-        address space, size of which is gcdPROCESS_ADDRESS_SPACE_SIZE.
-*/
-#ifndef gcdPROCESS_ADDRESS_SPACE
-#   define gcdPROCESS_ADDRESS_SPACE             0
-#   define gcdPROCESS_ADDRESS_SPACE_SIZE        0x80000000
-#endif
-
-/*
-    gcdSHARED_PAGETABLE
-
-        When non-zero, multiple GPUs in one chip with same MMU use
-        one shared pagetable. So that when accessing same surface,
-        they can use same GPU virtual address.
-*/
-#ifndef gcdSHARED_PAGETABLE
-#   define gcdSHARED_PAGETABLE                  !gcdPROCESS_ADDRESS_SPACE
-#endif
-
-#ifndef gcdUSE_PVR
-#   define gcdUSE_PVR                           1
-#endif
-
-/*
-    gcdSMALL_BLOCK_SIZE
-
-        When non-zero, a part of VIDMEM will be reserved for requests
-        whose requesting size is less than gcdSMALL_BLOCK_SIZE.
-
-        For Linux, it's the size of a page. If this requeset fallbacks
-        to gcvPOOL_CONTIGUOUS or gcvPOOL_VIRTUAL, memory will be wasted
-        because they allocate a page at least.
-*/
-#ifndef gcdSMALL_BLOCK_SIZE
-#   define gcdSMALL_BLOCK_SIZE                  4096
-#   define gcdRATIO_FOR_SMALL_MEMORY            32
-#endif
-
-/*
-    gcdCONTIGUOUS_SIZE_LIMIT
-        When non-zero, size of video node from gcvPOOL_CONTIGUOUS is
-        limited by gcdCONTIGUOUS_SIZE_LIMIT.
-*/
-#ifndef gcdCONTIGUOUS_SIZE_LIMIT
-#   define gcdCONTIGUOUS_SIZE_LIMIT             0
-#endif
-
-/*
-    gcdLINK_QUEUE_SIZE
-
-        When non-zero, driver maintains a queue to record information of
-        latest lined context buffer and command buffer. Data in this queue
-        is be used to debug.
-*/
-#ifndef gcdLINK_QUEUE_SIZE
-#   define gcdLINK_QUEUE_SIZE                   5
-#endif
-
-/*  gcdALPHA_KILL_IN_SHADER
-
-        Enable alpha kill inside the shader. This will be set automatically by the
-        HAL if certain states match a criteria.
-*/
-#ifndef gcdALPHA_KILL_IN_SHADER
-#   define gcdALPHA_KILL_IN_SHADER              1
-#endif
-
-
-
-/*
-    gcdDVFS
-
-        When non-zero, software will make use of dynamic voltage and
-        frequency feature.
- */
-#ifndef gcdDVFS
-#   define gcdDVFS                              0
-#   define gcdDVFS_ANAYLSE_WINDOW               4
-#   define gcdDVFS_POLLING_TIME                 (gcdDVFS_ANAYLSE_WINDOW * 4)
-#endif
-
-#ifndef gcdSYNC
-#   define gcdSYNC                              1
-#endif
-
-#ifndef gcdSHADER_SRC_BY_MACHINECODE
-#   define gcdSHADER_SRC_BY_MACHINECODE         1
-#endif
-
-#ifndef gcdGLB27_SHADER_REPLACE_OPTIMIZATION
-#    define gcdGLB27_SHADER_REPLACE_OPTIMIZATION 1
-#endif
-
-/*
-    gcdSTREAM_OUT_BUFFER
-
-        Enable suppport for the secondary stream out buffer.
-*/
-#ifndef gcdSTREAM_OUT_BUFFER
-#   define gcdSTREAM_OUT_BUFFER                 0
-#   define gcdSTREAM_OUT_NAIVE_SYNC             0
-#endif
-
-/*
-    gcdUSE_HARDWARE_CONFIGURATION_TABLES
-
-        Enable the use of hardware configuration tables,
-        instead of query hardware and determine the features.
-*/
-#ifndef gcdUSE_HARDWARE_CONFIGURATION_TABLES
-#   define gcdUSE_HARDWARE_CONFIGURATION_TABLES 0
-#endif
-
-/*
-    gcdSUPPORT_SWAP_RECTANGLE
-
-        Support swap with a specific rectangle.
-
-        Set the rectangle with eglSetSwapRectangleVIV api.
-        Android only.
-*/
-#ifndef gcdSUPPORT_SWAP_RECTANGLE
-#   define gcdSUPPORT_SWAP_RECTANGLE            0
-#endif
-
-/*
-    gcdGPU_LINEAR_BUFFER_ENABLED
-
-        Use linear buffer for GPU apps so HWC can do 2D composition.
-        Android only.
-*/
-#ifndef gcdGPU_LINEAR_BUFFER_ENABLED
-#   define gcdGPU_LINEAR_BUFFER_ENABLED         1
-#endif
-
-/*
-    gcdENABLE_RENDER_INTO_WINDOW
-
-        Enable Render-Into-Window (ie, No-Resolve) feature on android.
-        NOTE that even if enabled, it still depends on hardware feature and
-        android application behavior. When hardware feature or application
-        behavior can not support render into window mode, it will fail back
-        to normal mode.
-        When Render-Into-Window is finally used, window back buffer of android
-        applications will be allocated matching render target tiling format.
-        Otherwise buffer tiling is decided by the above option
-        'gcdGPU_LINEAR_BUFFER_ENABLED'.
-        Android only for now.
-*/
-#ifndef gcdENABLE_RENDER_INTO_WINDOW
-#   define gcdENABLE_RENDER_INTO_WINDOW         1
-#endif
-
-/*
-    gcdENABLE_RENDER_INTO_WINDOW_WITH_FC
-
-        Enable Direct-rendering (ie, No-Resolve) with tile status.
-        This is expremental and in development stage.
-        This will dynamically check if color compression is available.
-*/
-#ifndef gcdENABLE_RENDER_INTO_WINDOW_WITH_FC
-#   define gcdENABLE_RENDER_INTO_WINDOW_WITH_FC 1
-#endif
-
-/*
-    gcdENABLE_BLIT_BUFFER_PRESERVE
-
-        Render-Into-Window (ie, No-Resolve) does not include preserved swap
-        behavior.  This feature can enable buffer preserve in No-Resolve mode.
-        When enabled, previous buffer (may be part of ) will be resolve-blitted
-        to current buffer.
-*/
-#ifndef gcdENABLE_BLIT_BUFFER_PRESERVE
-#   define gcdENABLE_BLIT_BUFFER_PRESERVE       1
-#endif
-
-/*
-    gcdANDROID_NATIVE_FENCE_SYNC
-
-        Enable android native fence sync. It is introduced since jellybean-4.2.
-        Depends on linux kernel option: CONFIG_SYNC.
-
-        0: Disabled
-        1: Build framework for native fence sync feature, and EGL extension
-        2: Enable async swap buffers for client
-           * Native fence sync for client 'queueBuffer' in EGL, which is
-             'acquireFenceFd' for layer in compositor side.
-        3. Enable async hwcomposer composition.
-           * 'releaseFenceFd' for layer in compositor side, which is native
-             fence sync when client 'dequeueBuffer'
-           * Native fence sync for compositor 'queueBuffer' in EGL, which is
-             'acquireFenceFd' for framebuffer target for DC
- */
-#ifndef gcdANDROID_NATIVE_FENCE_SYNC
-#   define gcdANDROID_NATIVE_FENCE_SYNC         0
-#endif
-
-/*
-    gcdANDROID_IMPLICIT_NATIVE_BUFFER_SYNC
-
-        Enable implicit android native buffer sync.
-
-        For non-HW_RENDER buffer, CPU (or other hardware) and GPU can access
-        the buffer at the same time. This is to add implicit synchronization
-        between CPU (or the hardware) and GPU.
-
-        Eventually, please do not use implicit native buffer sync, but use
-        "fence sync" or "android native fence sync" instead in libgui, which
-        can be enabled in frameworks/native/libs/gui/Android.mk. This kind
-        of synchronization should be done by app but not driver itself.
-
-        Please disable this option when either "fence sync" or
-        "android native fence sync" is enabled.
- */
-#ifndef gcdANDROID_IMPLICIT_NATIVE_BUFFER_SYNC
-#   define gcdANDROID_IMPLICIT_NATIVE_BUFFER_SYNC   1
-#endif
-
-/*
- * Implicit native buffer sync is not needed when ANDROID_native_fence_sync
- * is available.
- */
-#if gcdANDROID_NATIVE_FENCE_SYNC
-#   undef  gcdANDROID_IMPLICIT_NATIVE_BUFFER_SYNC
-#   define gcdANDROID_IMPLICIT_NATIVE_BUFFER_SYNC   0
-#endif
-
-/*
-    gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST
-
-        Enable source surface address adjust when composition on android.
-        Android only.
-*/
-#ifndef gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST
-#   define  gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST      1
-#endif
-
-/*
-    gcdUSE_WCLIP_PATCH
-
-        Enable wclipping patch.
-*/
-#ifndef gcdUSE_WCLIP_PATCH
-#   define gcdUSE_WCLIP_PATCH                   1
-#endif
-
-#ifndef gcdUSE_NPOT_PATCH
-#   define gcdUSE_NPOT_PATCH                    1
-#endif
-
-/*
-    gcd3DBLIT
-
-        TODO: Should be replaced by feature bit if available.
-*/
-#ifndef gcd3DBLIT
-#   define gcd3DBLIT                            0
-#endif
-
-/*
-    gcdINTERNAL_COMMENT
-
-        Wrap internal comment, content wrapped by it and the macor itself
-        will be removed in release driver.
-*/
-#ifndef gcdINTERNAL_COMMENT
-#   define gcdINTERNAL_COMMENT                  1
-#endif
-
-/*
-    gcdRTT_DISABLE_FC
-
-        Disable RTT FC support. For test only.
-*/
-#ifndef gcdRTT_DISABLE_FC
-#   define gcdRTT_DISABLE_FC                    0
-#endif
-
-/*
-    gcdFORCE_MIPMAP
-
-        Force generate mipmap for texture.
-*/
-#ifndef gcdFORCE_MIPMAP
-#   define gcdFORCE_MIPMAP                      0
-#endif
-
-/*
-    gcdFORCE_BILINEAR
-
-        Force bilinear for mipfilter.
-*/
-#ifndef gcdFORCE_BILINEAR
-#   define gcdFORCE_BILINEAR                    1
-#endif
-
-/*
-    gcdBINARY_TRACE
-
-        When non-zero, binary trace will be generated.
-
-        When gcdBINARY_TRACE_FILE_SIZE is non-zero, binary trace buffer will
-        be written to a file which size is limited to
-        gcdBINARY_TRACE_FILE_SIZE.
-*/
-#ifndef gcdBINARY_TRACE
-#   define gcdBINARY_TRACE                       0
-#   define gcdBINARY_TRACE_FILE_SIZE             0
-#endif
-
-#ifndef gcdMOVG
-#   define gcdMOVG                              0
-#if gcdMOVG
-#       define GC355_PROFILER                   1
-#   endif
-#       define gcdENABLE_TS_DOUBLE_BUFFER       1
-#else
-#if gcdMOVG
-#       define GC355_PROFILER                   1
-#       define gcdENABLE_TS_DOUBLE_BUFFER       0
-#else
-#       define gcdENABLE_TS_DOUBLE_BUFFER       1
-#endif
-#endif
-
-/*  gcdINTERRUPT_STATISTIC
- *
- *  Monitor the event send to GPU and interrupt issued by GPU.
- */
-
-#ifndef gcdINTERRUPT_STATISTIC
-#if defined(LINUX)
-#   define gcdINTERRUPT_STATISTIC               1
-#else
-#   define gcdINTERRUPT_STATISTIC               0
-#endif
-#endif
-
-/*
-    gcdYINVERTED_RENDERING
-        When it's not zero, we will rendering display buffer
-        with top-bottom direction. All other offscreen rendering
-        will be bottom-top, which follow OpenGL ES spec.
-*/
-#ifndef gcdYINVERTED_RENDERING
-#   define gcdYINVERTED_RENDERING 1
-#endif
-
-#if gcdYINVERTED_RENDERING
-/* disable unaligned linear composition adjust in Y-inverted rendering mode. */
-#   undef  gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST
-#   define gcdANDROID_UNALIGNED_LINEAR_COMPOSITION_ADJUST 0
-#endif
-
-/*
-    gcdFENCE_WAIT_LOOP_COUNT
-        Wait fence, loop count.
-*/
-#ifndef gcdFENCE_WAIT_LOOP_COUNT
-#   define gcdFENCE_WAIT_LOOP_COUNT 10000
-#endif
-
-/*
-    gcdHAL_3D_DRAWBLIT
-        When it's not zero, we will enable HAL 3D drawblit
-        to replace client 3dblit.
-*/
-#ifndef gcdHAL_3D_DRAWBLIT
-#   define gcdHAL_3D_DRAWBLIT 1
-#endif
-
-/*
-    gcdPARTIAL_FAST_CLEAR
-        When it's not zero, partial fast clear is enabled.
-        Depends on gcdHAL_3D_DRAWBLIT, if gcdHAL_3D_DRAWBLIT is not enabled,
-        only available when scissor box is completely aligned.
-        Expremental, under test.
-*/
-#ifndef gcdPARTIAL_FAST_CLEAR
-#   define gcdPARTIAL_FAST_CLEAR                1
-#endif
-
-/*
-    gcdREMOVE_SURF_ORIENTATION
-        When it's not zero, we will remove surface orientation function.
-        It wil become to a parameter of resolve function.
-*/
-#ifndef gcdREMOVE_SURF_ORIENTATION
-#   define gcdREMOVE_SURF_ORIENTATION 0
-#endif
-
-/*
-    gcdPATTERN_FAST_PATH
-         For pattern match
-*/
-#ifndef gcdPATTERN_FAST_PATH
-#   define gcdPATTERN_FAST_PATH       1
-#endif
-
-/*
-    gcdUSE_INPUT_DEVICE
-         disable input devices usage under fb mode to support fb+vdk multi-process
-*/
-#ifndef gcdUSE_INPUT_DEVICE
-#   define gcdUSE_INPUT_DEVICE        1
-#endif
-
-
-/*
-    gcdFRAMEINFO_STATISTIC
-        When enable, collect frame information.
-*/
-#ifndef gcdFRAMEINFO_STATISTIC
-
-#if (defined(DBG) && DBG) || defined(DEBUG) || defined(_DEBUG) || gcdDUMP
-#   define gcdFRAMEINFO_STATISTIC      1
-#else
-#   define gcdFRAMEINFO_STATISTIC      0
-#endif
-
-#endif
-
-/*
-    gcdPACKED_OUTPUT_ADDRESS
-        When it's not zero, ps output is already packed after linked
-*/
-#ifndef gcdPACKED_OUTPUT_ADDRESS
-#   define gcdPACKED_OUTPUT_ADDRESS             1
-#endif
-
-/*
-    gcdENABLE_THIRD_PARTY_OPERATION
-        Enable third party operation like tpc or not.
-*/
-#ifndef gcdENABLE_THIRD_PARTY_OPERATION
-#   define gcdENABLE_THIRD_PARTY_OPERATION      1
-#endif
-
-
-/*
-    Core configurations. By default enable all cores.
-*/
-#ifndef gcdENABLE_3D
-#   define gcdENABLE_3D                         0
-#endif
-
-#ifndef gcdENABLE_2D
-#   define gcdENABLE_2D                         1
-#endif
-
-#ifndef gcdENABLE_VG
-#   define gcdENABLE_VG                         0
-#endif
-
-#ifndef gcdGC355_MEM_PRINT
-#   define gcdGC355_MEM_PRINT                      0
-#else
-#if (!((gcdENABLE_3D == 0) && (gcdENABLE_2D == 0) && (gcdENABLE_VG == 1)))
-#      undef gcdGC355_MEM_PRINT
-#      define gcdGC355_MEM_PRINT                   0
-#   endif
-#endif
-
-#ifndef gcdENABLE_UNIFIED_CONSTANT
-#   define gcdENABLE_UNIFIED_CONSTANT           1
-#endif
-
-/*
-    gcdRECORD_COMMAND
-*/
-#ifndef gcdRECORD_COMMAND
-#   define gcdRECORD_COMMAND                    0
-#endif
-
-/*
-    gcdALLOC_CMD_FROM_RESERVE
-
-    Provide a way by which location of command buffer can be
-    specified. This is a DEBUG option to limit command buffer
-    to some memory range.
-*/
-#ifndef gcdALLOC_CMD_FROM_RESERVE
-#   define gcdALLOC_CMD_FROM_RESERVE            0
-#endif
-
-#endif /* __gc_hal_options_h_ */

+ 0 - 577
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_profiler.h

@@ -1,577 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_profiler_h_
-#define __gc_hal_profiler_h_
-
-#if VIVANTE_PROFILER_NEW
-#include "gc_hal_engine.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define GLVERTEX_OBJECT 10
-#define GLVERTEX_OBJECT_BYTES 11
-
-#define GLINDEX_OBJECT 20
-#define GLINDEX_OBJECT_BYTES 21
-
-#define GLTEXTURE_OBJECT 30
-#define GLTEXTURE_OBJECT_BYTES 31
-
-#define GLBUFOBJ_OBJECT 40
-#define GLBUFOBJ_OBJECT_BYTES 41
-
-#if VIVANTE_PROFILER
-#define gcmPROFILE_GC(Enum, Value)  gcoPROFILER_Count(gcvNULL, Enum, Value)
-#else
-#define gcmPROFILE_GC(Enum, Value)  do { } while (gcvFALSE)
-#endif
-
-#ifndef gcdNEW_PROFILER_FILE
-#define gcdNEW_PROFILER_FILE    1
-#endif
-
-#define    ES11_CALLS              151
-#define    ES11_DRAWCALLS          (ES11_CALLS             + 1)
-#define    ES11_STATECHANGECALLS   (ES11_DRAWCALLS         + 1)
-#define    ES11_POINTCOUNT         (ES11_STATECHANGECALLS  + 1)
-#define    ES11_LINECOUNT          (ES11_POINTCOUNT        + 1)
-#define    ES11_TRIANGLECOUNT      (ES11_LINECOUNT         + 1)
-
-#define    ES30_CALLS              159
-#define    ES30_DRAWCALLS          (ES30_CALLS             + 1)
-#define    ES30_STATECHANGECALLS   (ES30_DRAWCALLS         + 1)
-#define    ES30_POINTCOUNT         (ES30_STATECHANGECALLS  + 1)
-#define    ES30_LINECOUNT          (ES30_POINTCOUNT        + 1)
-#define    ES30_TRIANGLECOUNT      (ES30_LINECOUNT         + 1)
-
-#define    VG11_CALLS              88
-#define    VG11_DRAWCALLS          (VG11_CALLS              + 1)
-#define    VG11_STATECHANGECALLS   (VG11_DRAWCALLS          + 1)
-#define    VG11_FILLCOUNT          (VG11_STATECHANGECALLS   + 1)
-#define    VG11_STROKECOUNT        (VG11_FILLCOUNT          + 1)
-/* End of Driver API ID Definitions. */
-
-/* HAL & MISC IDs. */
-#define HAL_VERTBUFNEWBYTEALLOC    1
-#define HAL_VERTBUFTOTALBYTEALLOC  (HAL_VERTBUFNEWBYTEALLOC     + 1)
-#define HAL_VERTBUFNEWOBJALLOC     (HAL_VERTBUFTOTALBYTEALLOC   + 1)
-#define HAL_VERTBUFTOTALOBJALLOC   (HAL_VERTBUFNEWOBJALLOC      + 1)
-#define HAL_INDBUFNEWBYTEALLOC     (HAL_VERTBUFTOTALOBJALLOC    + 1)
-#define HAL_INDBUFTOTALBYTEALLOC   (HAL_INDBUFNEWBYTEALLOC      + 1)
-#define HAL_INDBUFNEWOBJALLOC      (HAL_INDBUFTOTALBYTEALLOC    + 1)
-#define HAL_INDBUFTOTALOBJALLOC    (HAL_INDBUFNEWOBJALLOC       + 1)
-#define HAL_TEXBUFNEWBYTEALLOC     (HAL_INDBUFTOTALOBJALLOC     + 1)
-#define HAL_TEXBUFTOTALBYTEALLOC   (HAL_TEXBUFNEWBYTEALLOC      + 1)
-#define HAL_TEXBUFNEWOBJALLOC      (HAL_TEXBUFTOTALBYTEALLOC    + 1)
-#define HAL_TEXBUFTOTALOBJALLOC    (HAL_TEXBUFNEWOBJALLOC       + 1)
-
-#define GPU_CYCLES           1
-#define GPU_READ64BYTE       (GPU_CYCLES         + 1)
-#define GPU_WRITE64BYTE      (GPU_READ64BYTE     + 1)
-#define GPU_TOTALCYCLES      (GPU_WRITE64BYTE    + 1)
-#define GPU_IDLECYCLES       (GPU_TOTALCYCLES    + 1)
-
-#define VS_INSTCOUNT          1
-#define VS_BRANCHINSTCOUNT    (VS_INSTCOUNT          + 1)
-#define VS_TEXLDINSTCOUNT     (VS_BRANCHINSTCOUNT    + 1)
-#define VS_RENDEREDVERTCOUNT  (VS_TEXLDINSTCOUNT     + 1)
-#define VS_SOURCE             (VS_RENDEREDVERTCOUNT  + 1)
-
-#define PS_INSTCOUNT          1
-#define PS_BRANCHINSTCOUNT    (PS_INSTCOUNT          + 1)
-#define PS_TEXLDINSTCOUNT     (PS_BRANCHINSTCOUNT    + 1)
-#define PS_RENDEREDPIXCOUNT   (PS_TEXLDINSTCOUNT     + 1)
-#define PS_SOURCE             (PS_RENDEREDPIXCOUNT   + 1)
-
-#define PA_INVERTCOUNT        1
-#define PA_INPRIMCOUNT        (PA_INVERTCOUNT      + 1)
-#define PA_OUTPRIMCOUNT       (PA_INPRIMCOUNT      + 1)
-#define PA_DEPTHCLIPCOUNT     (PA_OUTPRIMCOUNT     + 1)
-#define PA_TRIVIALREJCOUNT    (PA_DEPTHCLIPCOUNT   + 1)
-#define PA_CULLCOUNT          (PA_TRIVIALREJCOUNT  + 1)
-
-#define SE_TRIANGLECOUNT      1
-#define SE_LINECOUNT          (SE_TRIANGLECOUNT    + 1)
-
-#define RA_VALIDPIXCOUNT      1
-#define RA_TOTALQUADCOUNT     (RA_VALIDPIXCOUNT      + 1)
-#define RA_VALIDQUADCOUNTEZ   (RA_TOTALQUADCOUNT     + 1)
-#define RA_TOTALPRIMCOUNT     (RA_VALIDQUADCOUNTEZ   + 1)
-#define RA_PIPECACHEMISSCOUNT (RA_TOTALPRIMCOUNT     + 1)
-#define RA_PREFCACHEMISSCOUNT (RA_PIPECACHEMISSCOUNT + 1)
-#define RA_EEZCULLCOUNT       (RA_PREFCACHEMISSCOUNT + 1)
-
-#define TX_TOTBILINEARREQ     1
-#define TX_TOTTRILINEARREQ    (TX_TOTBILINEARREQ      + 1)
-#define TX_TOTDISCARDTEXREQ   (TX_TOTTRILINEARREQ     + 1)
-#define TX_TOTTEXREQ          (TX_TOTDISCARDTEXREQ    + 1)
-#define TX_MEMREADCOUNT       (TX_TOTTEXREQ           + 1)
-#define TX_MEMREADIN8BCOUNT   (TX_MEMREADCOUNT        + 1)
-#define TX_CACHEMISSCOUNT     (TX_MEMREADIN8BCOUNT    + 1)
-#define TX_CACHEHITTEXELCOUNT (TX_CACHEMISSCOUNT      + 1)
-#define TX_CACHEMISSTEXELCOUNT (TX_CACHEHITTEXELCOUNT + 1)
-
-#define PE_KILLEDBYCOLOR      1
-#define PE_KILLEDBYDEPTH      (PE_KILLEDBYCOLOR    + 1)
-#define PE_DRAWNBYCOLOR       (PE_KILLEDBYDEPTH    + 1)
-#define PE_DRAWNBYDEPTH       (PE_DRAWNBYCOLOR     + 1)
-
-#define MC_READREQ8BPIPE      1
-#define MC_READREQ8BIP        (MC_READREQ8BPIPE    + 1)
-#define MC_WRITEREQ8BPIPE     (MC_READREQ8BIP      + 1)
-
-#define AXI_READREQSTALLED    1
-#define AXI_WRITEREQSTALLED   (AXI_READREQSTALLED  + 1)
-#define AXI_WRITEDATASTALLED  (AXI_WRITEREQSTALLED + 1)
-
-#define PVS_INSTRCOUNT        1
-#define PVS_ALUINSTRCOUNT     (PVS_INSTRCOUNT      + 1)
-#define PVS_TEXINSTRCOUNT     (PVS_ALUINSTRCOUNT   + 1)
-#define PVS_ATTRIBCOUNT       (PVS_TEXINSTRCOUNT   + 1)
-#define PVS_UNIFORMCOUNT      (PVS_ATTRIBCOUNT     + 1)
-#define PVS_FUNCTIONCOUNT     (PVS_UNIFORMCOUNT    + 1)
-#define PVS_SOURCE            (PVS_FUNCTIONCOUNT   + 1)
-
-#define PPS_INSTRCOUNT       1
-#define PPS_ALUINSTRCOUNT    (PPS_INSTRCOUNT       + 1)
-#define PPS_TEXINSTRCOUNT    (PPS_ALUINSTRCOUNT    + 1)
-#define PPS_ATTRIBCOUNT      (PPS_TEXINSTRCOUNT    + 1)
-#define PPS_UNIFORMCOUNT     (PPS_ATTRIBCOUNT      + 1)
-#define PPS_FUNCTIONCOUNT    (PPS_UNIFORMCOUNT     + 1)
-#define PPS_SOURCE           (PPS_FUNCTIONCOUNT    + 1)
-/* End of MISC Counter IDs. */
-
-#ifdef gcdNEW_PROFILER_FILE
-
-/* Category Constants. */
-#define VPHEADER        0x010000
-#define VPG_INFO        0x020000
-#define VPG_TIME        0x030000
-#define VPG_MEM         0x040000
-#define VPG_ES11        0x050000
-#define VPG_ES30        0x060000
-#define VPG_VG11        0x070000
-#define VPG_HAL         0x080000
-#define VPG_HW          0x090000
-#define VPG_GPU         0x0a0000
-#define VPG_VS          0x0b0000
-#define VPG_PS          0x0c0000
-#define VPG_PA          0x0d0000
-#define VPG_SETUP       0x0e0000
-#define VPG_RA          0x0f0000
-#define VPG_TX          0x100000
-#define VPG_PE          0x110000
-#define VPG_MC          0x120000
-#define VPG_AXI         0x130000
-#define VPG_PROG        0x140000
-#define VPG_PVS         0x150000
-#define VPG_PPS         0x160000
-#define VPG_ES11_TIME   0x170000
-#define VPG_ES30_TIME   0x180000
-#define VPG_FRAME       0x190000
-#define VPG_ES11_DRAW   0x200000
-#define VPG_ES30_DRAW   0x210000
-#define VPG_VG11_TIME   0x220000
-#define VPG_END         0xff0000
-
-/* Info. */
-#define VPC_INFOCOMPANY         (VPG_INFO + 1)
-#define VPC_INFOVERSION         (VPC_INFOCOMPANY + 1)
-#define VPC_INFORENDERER        (VPC_INFOVERSION + 1)
-#define VPC_INFOREVISION        (VPC_INFORENDERER + 1)
-#define VPC_INFODRIVER          (VPC_INFOREVISION + 1)
-#define VPC_INFODRIVERMODE      (VPC_INFODRIVER + 1)
-#define VPC_INFOSCREENSIZE      (VPC_INFODRIVERMODE + 1)
-
-/* Counter Constants. */
-#define VPC_ELAPSETIME          (VPG_TIME + 1)
-#define VPC_CPUTIME             (VPC_ELAPSETIME + 1)
-
-#define VPC_MEMMAXRES           (VPG_MEM + 1)
-#define VPC_MEMSHARED           (VPC_MEMMAXRES + 1)
-#define VPC_MEMUNSHAREDDATA     (VPC_MEMSHARED + 1)
-#define VPC_MEMUNSHAREDSTACK    (VPC_MEMUNSHAREDDATA + 1)
-
-/* OpenGL ES11 Statics Counter IDs. */
-#define    VPC_ES11CALLS            (VPG_ES11 +    ES11_CALLS)
-#define    VPC_ES11DRAWCALLS        (VPG_ES11 +    ES11_DRAWCALLS)
-#define    VPC_ES11STATECHANGECALLS (VPG_ES11 +    ES11_STATECHANGECALLS)
-#define    VPC_ES11POINTCOUNT       (VPG_ES11 +    ES11_POINTCOUNT)
-#define    VPC_ES11LINECOUNT        (VPG_ES11 +    ES11_LINECOUNT)
-#define    VPC_ES11TRIANGLECOUNT    (VPG_ES11 +    ES11_TRIANGLECOUNT)
-
-/* OpenGL ES30 Statistics Counter IDs. */
-#define    VPC_ES30CALLS            (VPG_ES30 +    ES30_CALLS)
-#define    VPC_ES30DRAWCALLS        (VPG_ES30 +    ES30_DRAWCALLS)
-#define    VPC_ES30STATECHANGECALLS (VPG_ES30 +    ES30_STATECHANGECALLS)
-#define    VPC_ES30POINTCOUNT       (VPG_ES30 +    ES30_POINTCOUNT)
-#define    VPC_ES30LINECOUNT        (VPG_ES30 +    ES30_LINECOUNT)
-#define    VPC_ES30TRIANGLECOUNT    (VPG_ES30 +    ES30_TRIANGLECOUNT)
-
-/* OpenVG Statistics Counter IDs. */
-#define    VPC_VG11CALLS            (VPG_VG11 +    VG11_CALLS)
-#define    VPC_VG11DRAWCALLS        (VPG_VG11 +    VG11_DRAWCALLS)
-#define    VPC_VG11STATECHANGECALLS (VPG_VG11 +    VG11_STATECHANGECALLS)
-#define    VPC_VG11FILLCOUNT        (VPG_VG11 +    VG11_FILLCOUNT)
-#define    VPC_VG11STROKECOUNT      (VPG_VG11 +    VG11_STROKECOUNT)
-
-/* HAL Counters. */
-#define VPC_HALVERTBUFNEWBYTEALLOC      (VPG_HAL + HAL_VERTBUFNEWBYTEALLOC)
-#define VPC_HALVERTBUFTOTALBYTEALLOC    (VPG_HAL + HAL_VERTBUFTOTALBYTEALLOC)
-#define VPC_HALVERTBUFNEWOBJALLOC       (VPG_HAL + HAL_VERTBUFNEWOBJALLOC)
-#define VPC_HALVERTBUFTOTALOBJALLOC     (VPG_HAL + HAL_VERTBUFTOTALOBJALLOC)
-#define VPC_HALINDBUFNEWBYTEALLOC       (VPG_HAL + HAL_INDBUFNEWBYTEALLOC)
-#define VPC_HALINDBUFTOTALBYTEALLOC     (VPG_HAL + HAL_INDBUFTOTALBYTEALLOC)
-#define VPC_HALINDBUFNEWOBJALLOC        (VPG_HAL + HAL_INDBUFNEWOBJALLOC)
-#define VPC_HALINDBUFTOTALOBJALLOC      (VPG_HAL + HAL_INDBUFTOTALOBJALLOC)
-#define VPC_HALTEXBUFNEWBYTEALLOC       (VPG_HAL + HAL_TEXBUFNEWBYTEALLOC)
-#define VPC_HALTEXBUFTOTALBYTEALLOC     (VPG_HAL + HAL_TEXBUFTOTALBYTEALLOC)
-#define VPC_HALTEXBUFNEWOBJALLOC        (VPG_HAL + HAL_TEXBUFNEWOBJALLOC)
-#define VPC_HALTEXBUFTOTALOBJALLOC      (VPG_HAL + HAL_TEXBUFTOTALOBJALLOC)
-
-/* HW: GPU Counters. */
-#define VPC_GPUCYCLES                   (VPG_GPU + GPU_CYCLES)
-#define VPC_GPUREAD64BYTE               (VPG_GPU + GPU_READ64BYTE)
-#define VPC_GPUWRITE64BYTE              (VPG_GPU + GPU_WRITE64BYTE)
-#define VPC_GPUTOTALCYCLES              (VPG_GPU + GPU_TOTALCYCLES)
-#define VPC_GPUIDLECYCLES               (VPG_GPU + GPU_IDLECYCLES)
-
-/* HW: Shader Counters. */
-#define VPC_VSINSTCOUNT                 (VPG_VS + VS_INSTCOUNT)
-#define VPC_VSBRANCHINSTCOUNT           (VPG_VS + VS_BRANCHINSTCOUNT)
-#define VPC_VSTEXLDINSTCOUNT            (VPG_VS + VS_TEXLDINSTCOUNT)
-#define VPC_VSRENDEREDVERTCOUNT         (VPG_VS + VS_RENDEREDVERTCOUNT)
-/* HW: PS Count. */
-#define VPC_PSINSTCOUNT                 (VPG_PS + PS_INSTCOUNT)
-#define VPC_PSBRANCHINSTCOUNT           (VPG_PS + PS_BRANCHINSTCOUNT)
-#define VPC_PSTEXLDINSTCOUNT            (VPG_PS + PS_TEXLDINSTCOUNT)
-#define VPC_PSRENDEREDPIXCOUNT          (VPG_PS + PS_RENDEREDPIXCOUNT)
-
-
-/* HW: PA Counters. */
-#define VPC_PAINVERTCOUNT               (VPG_PA + PA_INVERTCOUNT)
-#define VPC_PAINPRIMCOUNT               (VPG_PA + PA_INPRIMCOUNT)
-#define VPC_PAOUTPRIMCOUNT              (VPG_PA + PA_OUTPRIMCOUNT)
-#define VPC_PADEPTHCLIPCOUNT            (VPG_PA + PA_DEPTHCLIPCOUNT)
-#define VPC_PATRIVIALREJCOUNT           (VPG_PA + PA_TRIVIALREJCOUNT)
-#define VPC_PACULLCOUNT                 (VPG_PA + PA_CULLCOUNT)
-
-/* HW: Setup Counters. */
-#define VPC_SETRIANGLECOUNT             (VPG_SETUP + SE_TRIANGLECOUNT)
-#define VPC_SELINECOUNT                 (VPG_SETUP + SE_LINECOUNT)
-
-/* HW: RA Counters. */
-#define VPC_RAVALIDPIXCOUNT             (VPG_RA + RA_VALIDPIXCOUNT)
-#define VPC_RATOTALQUADCOUNT            (VPG_RA + RA_TOTALQUADCOUNT)
-#define VPC_RAVALIDQUADCOUNTEZ          (VPG_RA + RA_VALIDQUADCOUNTEZ)
-#define VPC_RATOTALPRIMCOUNT            (VPG_RA + RA_TOTALPRIMCOUNT)
-#define VPC_RAPIPECACHEMISSCOUNT        (VPG_RA + RA_PIPECACHEMISSCOUNT)
-#define VPC_RAPREFCACHEMISSCOUNT        (VPG_RA + RA_PREFCACHEMISSCOUNT)
-#define VPC_RAEEZCULLCOUNT              (VPG_RA + RA_EEZCULLCOUNT)
-
-/* HW: TEX Counters. */
-#define VPC_TXTOTBILINEARREQ            (VPG_TX + TX_TOTBILINEARREQ)
-#define VPC_TXTOTTRILINEARREQ           (VPG_TX + TX_TOTTRILINEARREQ)
-#define VPC_TXTOTDISCARDTEXREQ          (VPG_TX + TX_TOTDISCARDTEXREQ)
-#define VPC_TXTOTTEXREQ                 (VPG_TX + TX_TOTTEXREQ)
-#define VPC_TXMEMREADCOUNT              (VPG_TX + TX_MEMREADCOUNT)
-#define VPC_TXMEMREADIN8BCOUNT          (VPG_TX + TX_MEMREADIN8BCOUNT)
-#define VPC_TXCACHEMISSCOUNT            (VPG_TX + TX_CACHEMISSCOUNT)
-#define VPC_TXCACHEHITTEXELCOUNT        (VPG_TX + TX_CACHEHITTEXELCOUNT)
-#define VPC_TXCACHEMISSTEXELCOUNT       (VPG_TX + TX_CACHEMISSTEXELCOUNT)
-
-/* HW: PE Counters. */
-#define VPC_PEKILLEDBYCOLOR             (VPG_PE + PE_KILLEDBYCOLOR)
-#define VPC_PEKILLEDBYDEPTH             (VPG_PE + PE_KILLEDBYDEPTH)
-#define VPC_PEDRAWNBYCOLOR              (VPG_PE + PE_DRAWNBYCOLOR)
-#define VPC_PEDRAWNBYDEPTH              (VPG_PE + PE_DRAWNBYDEPTH)
-
-/* HW: MC Counters. */
-#define VPC_MCREADREQ8BPIPE             (VPG_MC + MC_READREQ8BPIPE)
-#define VPC_MCREADREQ8BIP               (VPG_MC + MC_READREQ8BIP)
-#define VPC_MCWRITEREQ8BPIPE            (VPG_MC + MC_WRITEREQ8BPIPE)
-
-/* HW: AXI Counters. */
-#define VPC_AXIREADREQSTALLED           (VPG_AXI + AXI_READREQSTALLED)
-#define VPC_AXIWRITEREQSTALLED          (VPG_AXI + AXI_WRITEREQSTALLED)
-#define VPC_AXIWRITEDATASTALLED         (VPG_AXI + AXI_WRITEDATASTALLED)
-
-/* PROGRAM: Shader program counters. */
-#define VPC_PVSINSTRCOUNT           (VPG_PVS + PVS_INSTRCOUNT)
-#define VPC_PVSALUINSTRCOUNT        (VPG_PVS + PVS_ALUINSTRCOUNT)
-#define VPC_PVSTEXINSTRCOUNT        (VPG_PVS + PVS_TEXINSTRCOUNT)
-#define VPC_PVSATTRIBCOUNT          (VPG_PVS + PVS_ATTRIBCOUNT)
-#define VPC_PVSUNIFORMCOUNT         (VPG_PVS + PVS_UNIFORMCOUNT)
-#define VPC_PVSFUNCTIONCOUNT        (VPG_PVS + PVS_FUNCTIONCOUNT)
-#define VPC_PVSSOURCE               (VPG_PVS + PVS_SOURCE)
-
-#define VPC_PPSINSTRCOUNT           (VPG_PPS + PPS_INSTRCOUNT)
-#define VPC_PPSALUINSTRCOUNT        (VPG_PPS + PPS_ALUINSTRCOUNT)
-#define VPC_PPSTEXINSTRCOUNT        (VPG_PPS + PPS_TEXINSTRCOUNT)
-#define VPC_PPSATTRIBCOUNT          (VPG_PPS + PPS_ATTRIBCOUNT)
-#define VPC_PPSUNIFORMCOUNT         (VPG_PPS + PPS_UNIFORMCOUNT)
-#define VPC_PPSFUNCTIONCOUNT        (VPG_PPS + PPS_FUNCTIONCOUNT)
-#define VPC_PPSSOURCE               (VPG_PPS + PPS_SOURCE)
-
-#define VPC_PROGRAMHANDLE           (VPG_PROG + 1)
-
-#define VPC_ES30_DRAW_NO            (VPG_ES30_DRAW + 1)
-#define VPC_ES11_DRAW_NO            (VPG_ES11_DRAW + 1)
-#endif
-
-
-/* HW profile information. */
-typedef struct _gcsPROFILER_COUNTERS
-{
-    /* HW static counters. */
-    gctUINT32       gpuClock;
-    gctUINT32       axiClock;
-    gctUINT32       shaderClock;
-
-    /* HW vairable counters. */
-    gctUINT32       gpuClockStart;
-    gctUINT32       gpuClockEnd;
-
-    /* HW vairable counters. */
-    gctUINT32       gpuCyclesCounter;
-    gctUINT32       gpuTotalCyclesCounter;
-    gctUINT32       gpuIdleCyclesCounter;
-    gctUINT32       gpuTotalRead64BytesPerFrame;
-    gctUINT32       gpuTotalWrite64BytesPerFrame;
-
-    /* PE */
-    gctUINT32       pe_pixel_count_killed_by_color_pipe;
-    gctUINT32       pe_pixel_count_killed_by_depth_pipe;
-    gctUINT32       pe_pixel_count_drawn_by_color_pipe;
-    gctUINT32       pe_pixel_count_drawn_by_depth_pipe;
-
-    /* SH */
-    gctUINT32       ps_inst_counter;
-    gctUINT32       rendered_pixel_counter;
-    gctUINT32       vs_inst_counter;
-    gctUINT32       rendered_vertice_counter;
-    gctUINT32       vtx_branch_inst_counter;
-    gctUINT32       vtx_texld_inst_counter;
-    gctUINT32       pxl_branch_inst_counter;
-    gctUINT32       pxl_texld_inst_counter;
-
-    /* PA */
-    gctUINT32       pa_input_vtx_counter;
-    gctUINT32       pa_input_prim_counter;
-    gctUINT32       pa_output_prim_counter;
-    gctUINT32       pa_depth_clipped_counter;
-    gctUINT32       pa_trivial_rejected_counter;
-    gctUINT32       pa_culled_counter;
-
-    /* SE */
-    gctUINT32       se_culled_triangle_count;
-    gctUINT32       se_culled_lines_count;
-
-    /* RA */
-    gctUINT32       ra_valid_pixel_count;
-    gctUINT32       ra_total_quad_count;
-    gctUINT32       ra_valid_quad_count_after_early_z;
-    gctUINT32       ra_total_primitive_count;
-    gctUINT32       ra_pipe_cache_miss_counter;
-    gctUINT32       ra_prefetch_cache_miss_counter;
-    gctUINT32       ra_eez_culled_counter;
-
-    /* TX */
-    gctUINT32       tx_total_bilinear_requests;
-    gctUINT32       tx_total_trilinear_requests;
-    gctUINT32       tx_total_discarded_texture_requests;
-    gctUINT32       tx_total_texture_requests;
-    gctUINT32       tx_mem_read_count;
-    gctUINT32       tx_mem_read_in_8B_count;
-    gctUINT32       tx_cache_miss_count;
-    gctUINT32       tx_cache_hit_texel_count;
-    gctUINT32       tx_cache_miss_texel_count;
-
-    /* MC */
-    gctUINT32       mc_total_read_req_8B_from_pipeline;
-    gctUINT32       mc_total_read_req_8B_from_IP;
-    gctUINT32       mc_total_write_req_8B_from_pipeline;
-
-    /* HI */
-    gctUINT32       hi_axi_cycles_read_request_stalled;
-    gctUINT32       hi_axi_cycles_write_request_stalled;
-    gctUINT32       hi_axi_cycles_write_data_stalled;
-}
-gcsPROFILER_COUNTERS;
-
-#if VIVANTE_PROFILER_NEW
-#define NumOfDrawBuf 64
-#endif
-
-/* HAL profile information. */
-typedef struct _gcsPROFILER
-{
-    gctUINT32       enable;
-    gctBOOL         enableHal;
-    gctBOOL         enableHW;
-    gctBOOL         enableSH;
-    gctBOOL         isSyncMode;
-    gctBOOL         disableOutputCounter;
-
-    gctBOOL         useSocket;
-    gctINT          sockFd;
-
-    gctFILE         file;
-
-    /* Aggregate Information */
-
-    /* Clock Info */
-    gctUINT64       frameStart;
-    gctUINT64       frameEnd;
-
-    /* Current frame information */
-    gctUINT32       frameNumber;
-    gctUINT64       frameStartTimeusec;
-    gctUINT64       frameEndTimeusec;
-    gctUINT64       frameStartCPUTimeusec;
-    gctUINT64       frameEndCPUTimeusec;
-
-#if PROFILE_HAL_COUNTERS
-    gctUINT32       vertexBufferTotalBytesAlloc;
-    gctUINT32       vertexBufferNewBytesAlloc;
-    int             vertexBufferTotalObjectsAlloc;
-    int             vertexBufferNewObjectsAlloc;
-
-    gctUINT32       indexBufferTotalBytesAlloc;
-    gctUINT32       indexBufferNewBytesAlloc;
-    int             indexBufferTotalObjectsAlloc;
-    int             indexBufferNewObjectsAlloc;
-
-    gctUINT32       textureBufferTotalBytesAlloc;
-    gctUINT32       textureBufferNewBytesAlloc;
-    int             textureBufferTotalObjectsAlloc;
-    int             textureBufferNewObjectsAlloc;
-
-    gctUINT32       numCommits;
-    gctUINT32       drawPointCount;
-    gctUINT32       drawLineCount;
-    gctUINT32       drawTriangleCount;
-    gctUINT32       drawVertexCount;
-    gctUINT32       redundantStateChangeCalls;
-#endif
-
-    gctUINT32       prevVSInstCount;
-    gctUINT32       prevVSBranchInstCount;
-    gctUINT32       prevVSTexInstCount;
-    gctUINT32       prevVSVertexCount;
-    gctUINT32       prevPSInstCount;
-    gctUINT32       prevPSBranchInstCount;
-    gctUINT32       prevPSTexInstCount;
-    gctUINT32       prevPSPixelCount;
-
-#if VIVANTE_PROFILER_NEW
-    gcoBUFOBJ       newCounterBuf[NumOfDrawBuf];
-    gctUINT32       curBufId;
-#endif
-
-}
-gcsPROFILER;
-
-/* Memory profile information. */
-struct _gcsMemProfile
-{
-    /* Memory Usage */
-    gctUINT32       videoMemUsed;
-    gctUINT32       systemMemUsed;
-    gctUINT32       commitBufferSize;
-    gctUINT32       contextBufferCopyBytes;
-};
-
-/* Shader profile information. */
-struct _gcsSHADER_PROFILER
-{
-    gctUINT32       shaderLength;
-    gctUINT32       shaderALUCycles;
-    gctUINT32       shaderTexLoadCycles;
-    gctUINT32       shaderTempRegCount;
-    gctUINT32       shaderSamplerRegCount;
-    gctUINT32       shaderInputRegCount;
-    gctUINT32       shaderOutputRegCount;
-};
-
-/* Initialize the gcsProfiler. */
-gceSTATUS
-gcoPROFILER_Initialize(
-    IN gcoHAL Hal,
-    IN gctBOOL Enable
-    );
-
-/* Destroy the gcProfiler. */
-gceSTATUS
-gcoPROFILER_Destroy(
-    IN gcoHAL Hal
-    );
-
-/* Write data to profiler. */
-gceSTATUS
-gcoPROFILER_Write(
-    IN gcoHAL Hal,
-    IN gctSIZE_T ByteCount,
-    IN gctCONST_POINTER Data
-    );
-
-/* Flush data out. */
-gceSTATUS
-gcoPROFILER_Flush(
-    IN gcoHAL Hal
-    );
-
-/* Call to signal end of frame. */
-gceSTATUS
-gcoPROFILER_EndFrame(
-    IN gcoHAL Hal
-    );
-
-/* Call to signal end of draw. */
-gceSTATUS
-gcoPROFILER_EndDraw(
-    IN gcoHAL Hal,
-    IN gctBOOL FirstDraw
-    );
-
-/* Increase profile counter Enum by Value. */
-gceSTATUS
-gcoPROFILER_Count(
-    IN gcoHAL Hal,
-    IN gctUINT32 Enum,
-    IN gctINT Value
-    );
-
-/* Profile input vertex shader. */
-gceSTATUS
-gcoPROFILER_ShaderVS(
-    IN gcoHAL Hal,
-    IN gctPOINTER Vs
-    );
-
-/* Profile input fragment shader. */
-gceSTATUS
-gcoPROFILER_ShaderFS(
-    IN gcoHAL Hal,
-    IN gctPOINTER Fs
-    );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gc_hal_profiler_h_ */

+ 0 - 1030
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_raster.h

@@ -1,1030 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_raster_h_
-#define __gc_hal_raster_h_
-
-#include "gc_hal_enum.h"
-#include "gc_hal_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/******************************************************************************\
-****************************** Object Declarations *****************************
-\******************************************************************************/
-
-typedef struct _gcoBRUSH *                gcoBRUSH;
-typedef struct _gcoBRUSH_CACHE *          gcoBRUSH_CACHE;
-
-/******************************************************************************\
-******************************** gcoBRUSH Object *******************************
-\******************************************************************************/
-
-/* Create a new solid color gcoBRUSH object. */
-gceSTATUS
-gcoBRUSH_ConstructSingleColor(
-    IN gcoHAL Hal,
-    IN gctUINT32 ColorConvert,
-    IN gctUINT32 Color,
-    IN gctUINT64 Mask,
-    gcoBRUSH * Brush
-    );
-
-/* Create a new monochrome gcoBRUSH object. */
-gceSTATUS
-gcoBRUSH_ConstructMonochrome(
-    IN gcoHAL Hal,
-    IN gctUINT32 OriginX,
-    IN gctUINT32 OriginY,
-    IN gctUINT32 ColorConvert,
-    IN gctUINT32 FgColor,
-    IN gctUINT32 BgColor,
-    IN gctUINT64 Bits,
-    IN gctUINT64 Mask,
-    gcoBRUSH * Brush
-    );
-
-/* Create a color gcoBRUSH object. */
-gceSTATUS
-gcoBRUSH_ConstructColor(
-    IN gcoHAL Hal,
-    IN gctUINT32 OriginX,
-    IN gctUINT32 OriginY,
-    IN gctPOINTER Address,
-    IN gceSURF_FORMAT Format,
-    IN gctUINT64 Mask,
-    gcoBRUSH * Brush
-    );
-
-/* Destroy an gcoBRUSH object. */
-gceSTATUS
-gcoBRUSH_Destroy(
-    IN gcoBRUSH Brush
-    );
-
-/******************************************************************************\
-******************************** gcoSURF Object *******************************
-\******************************************************************************/
-
-/* Set cipping rectangle. */
-gceSTATUS
-gcoSURF_SetClipping(
-    IN gcoSURF Surface
-    );
-
-/* Clear one or more rectangular areas. */
-gceSTATUS
-gcoSURF_Clear2D(
-    IN gcoSURF DestSurface,
-    IN gctUINT32 RectCount,
-    IN gcsRECT_PTR DestRect,
-    IN gctUINT32 LoColor,
-    IN gctUINT32 HiColor
-    );
-
-/* Draw one or more Bresenham lines. */
-gceSTATUS
-gcoSURF_Line(
-    IN gcoSURF Surface,
-    IN gctUINT32 LineCount,
-    IN gcsRECT_PTR Position,
-    IN gcoBRUSH Brush,
-    IN gctUINT8 FgRop,
-    IN gctUINT8 BgRop
-    );
-
-/* Generic rectangular blit. */
-gceSTATUS
-gcoSURF_Blit(
-    IN OPTIONAL gcoSURF SrcSurface,
-    IN gcoSURF DestSurface,
-    IN gctUINT32 RectCount,
-    IN OPTIONAL gcsRECT_PTR SrcRect,
-    IN gcsRECT_PTR DestRect,
-    IN OPTIONAL gcoBRUSH Brush,
-    IN gctUINT8 FgRop,
-    IN gctUINT8 BgRop,
-    IN OPTIONAL gceSURF_TRANSPARENCY Transparency,
-    IN OPTIONAL gctUINT32 TransparencyColor,
-    IN OPTIONAL gctPOINTER Mask,
-    IN OPTIONAL gceSURF_MONOPACK MaskPack
-    );
-
-/* Monochrome blit. */
-gceSTATUS
-gcoSURF_MonoBlit(
-    IN gcoSURF DestSurface,
-    IN gctPOINTER Source,
-    IN gceSURF_MONOPACK SourcePack,
-    IN gcsPOINT_PTR SourceSize,
-    IN gcsPOINT_PTR SourceOrigin,
-    IN gcsRECT_PTR DestRect,
-    IN OPTIONAL gcoBRUSH Brush,
-    IN gctUINT8 FgRop,
-    IN gctUINT8 BgRop,
-    IN gctBOOL ColorConvert,
-    IN gctUINT8 MonoTransparency,
-    IN gceSURF_TRANSPARENCY Transparency,
-    IN gctUINT32 FgColor,
-    IN gctUINT32 BgColor
-    );
-
-/* Filter blit. */
-gceSTATUS
-gcoSURF_FilterBlit(
-    IN gcoSURF SrcSurface,
-    IN gcoSURF DestSurface,
-    IN gcsRECT_PTR SrcRect,
-    IN gcsRECT_PTR DestRect,
-    IN gcsRECT_PTR DestSubRect
-    );
-
-/* Enable alpha blending engine in the hardware and disengage the ROP engine. */
-gceSTATUS
-gcoSURF_EnableAlphaBlend(
-    IN gcoSURF Surface,
-    IN gctUINT8 SrcGlobalAlphaValue,
-    IN gctUINT8 DstGlobalAlphaValue,
-    IN gceSURF_PIXEL_ALPHA_MODE SrcAlphaMode,
-    IN gceSURF_PIXEL_ALPHA_MODE DstAlphaMode,
-    IN gceSURF_GLOBAL_ALPHA_MODE SrcGlobalAlphaMode,
-    IN gceSURF_GLOBAL_ALPHA_MODE DstGlobalAlphaMode,
-    IN gceSURF_BLEND_FACTOR_MODE SrcFactorMode,
-    IN gceSURF_BLEND_FACTOR_MODE DstFactorMode,
-    IN gceSURF_PIXEL_COLOR_MODE SrcColorMode,
-    IN gceSURF_PIXEL_COLOR_MODE DstColorMode
-    );
-
-/* Disable alpha blending engine in the hardware and engage the ROP engine. */
-gceSTATUS
-gcoSURF_DisableAlphaBlend(
-    IN gcoSURF Surface
-    );
-
-/* Copy a rectangular area with format conversion. */
-gceSTATUS
-gcoSURF_CopyPixels(
-    IN gcoSURF Source,
-    IN gcoSURF Target,
-    IN gctINT SourceX,
-    IN gctINT SourceY,
-    IN gctINT TargetX,
-    IN gctINT TargetY,
-    IN gctINT Width,
-    IN gctINT Height
-    );
-
-/* Read surface pixel. */
-gceSTATUS
-gcoSURF_ReadPixel(
-    IN gcoSURF Surface,
-    IN gctPOINTER Memory,
-    IN gctINT X,
-    IN gctINT Y,
-    IN gceSURF_FORMAT Format,
-    OUT gctPOINTER PixelValue
-    );
-
-/* Write surface pixel. */
-gceSTATUS
-gcoSURF_WritePixel(
-    IN gcoSURF Surface,
-    IN gctPOINTER Memory,
-    IN gctINT X,
-    IN gctINT Y,
-    IN gceSURF_FORMAT Format,
-    IN gctPOINTER PixelValue
-    );
-
-gceSTATUS
-gcoSURF_SetDither(
-    IN gcoSURF Surface,
-    IN gctBOOL Dither
-    );
-
-gceSTATUS
-gcoSURF_Set2DSource(
-    gcoSURF Surface,
-    gceSURF_ROTATION Rotation
-    );
-
-gceSTATUS
-gcoSURF_Set2DTarget(
-    gcoSURF Surface,
-    gceSURF_ROTATION Rotation
-    );
-
-/******************************************************************************\
-********************************** gco2D Object *********************************
-\******************************************************************************/
-
-/* Construct a new gco2D object. */
-gceSTATUS
-gco2D_Construct(
-    IN gcoHAL Hal,
-    OUT gco2D * Hardware
-    );
-
-/* Destroy an gco2D object. */
-gceSTATUS
-gco2D_Destroy(
-    IN gco2D Hardware
-    );
-
-/* Sets the maximum number of brushes in the brush cache. */
-gceSTATUS
-gco2D_SetBrushLimit(
-    IN gco2D Hardware,
-    IN gctUINT MaxCount
-    );
-
-/* Flush the brush. */
-gceSTATUS
-gco2D_FlushBrush(
-    IN gco2D Engine,
-    IN gcoBRUSH Brush,
-    IN gceSURF_FORMAT Format
-    );
-
-/* Program the specified solid color brush. */
-gceSTATUS
-gco2D_LoadSolidBrush(
-    IN gco2D Engine,
-    IN gceSURF_FORMAT Format,
-    IN gctUINT32 ColorConvert,
-    IN gctUINT32 Color,
-    IN gctUINT64 Mask
-    );
-
-gceSTATUS
-gco2D_LoadMonochromeBrush(
-    IN gco2D Engine,
-    IN gctUINT32 OriginX,
-    IN gctUINT32 OriginY,
-    IN gctUINT32 ColorConvert,
-    IN gctUINT32 FgColor,
-    IN gctUINT32 BgColor,
-    IN gctUINT64 Bits,
-    IN gctUINT64 Mask
-    );
-
-gceSTATUS
-gco2D_LoadColorBrush(
-    IN gco2D Engine,
-    IN gctUINT32 OriginX,
-    IN gctUINT32 OriginY,
-    IN gctUINT32 Address,
-    IN gceSURF_FORMAT Format,
-    IN gctUINT64 Mask
-    );
-
-/* Configure monochrome source. */
-gceSTATUS
-gco2D_SetMonochromeSource(
-    IN gco2D Engine,
-    IN gctBOOL ColorConvert,
-    IN gctUINT8 MonoTransparency,
-    IN gceSURF_MONOPACK DataPack,
-    IN gctBOOL CoordRelative,
-    IN gceSURF_TRANSPARENCY Transparency,
-    IN gctUINT32 FgColor,
-    IN gctUINT32 BgColor
-    );
-
-/* Configure color source. */
-gceSTATUS
-gco2D_SetColorSource(
-    IN gco2D Engine,
-    IN gctUINT32 Address,
-    IN gctUINT32 Stride,
-    IN gceSURF_FORMAT Format,
-    IN gceSURF_ROTATION Rotation,
-    IN gctUINT32 SurfaceWidth,
-    IN gctBOOL CoordRelative,
-    IN gceSURF_TRANSPARENCY Transparency,
-    IN gctUINT32 TransparencyColor
-    );
-
-/* Configure color source extension for full rotation. */
-gceSTATUS
-gco2D_SetColorSourceEx(
-    IN gco2D Engine,
-    IN gctUINT32 Address,
-    IN gctUINT32 Stride,
-    IN gceSURF_FORMAT Format,
-    IN gceSURF_ROTATION Rotation,
-    IN gctUINT32 SurfaceWidth,
-    IN gctUINT32 SurfaceHeight,
-    IN gctBOOL CoordRelative,
-    IN gceSURF_TRANSPARENCY Transparency,
-    IN gctUINT32 TransparencyColor
-    );
-
-/* Configure color source. */
-gceSTATUS
-gco2D_SetColorSourceAdvanced(
-    IN gco2D Engine,
-    IN gctUINT32 Address,
-    IN gctUINT32 Stride,
-    IN gceSURF_FORMAT Format,
-    IN gceSURF_ROTATION Rotation,
-    IN gctUINT32 SurfaceWidth,
-    IN gctUINT32 SurfaceHeight,
-    IN gctBOOL CoordRelative
-    );
-
-gceSTATUS
-gco2D_SetColorSourceN(
-    IN gco2D Engine,
-    IN gctUINT32 Address,
-    IN gctUINT32 Stride,
-    IN gceSURF_FORMAT Format,
-    IN gceSURF_ROTATION Rotation,
-    IN gctUINT32 SurfaceWidth,
-    IN gctUINT32 SurfaceHeight,
-    IN gctUINT32 SurfaceNumber
-    );
-
-/* Configure masked color source. */
-gceSTATUS
-gco2D_SetMaskedSource(
-    IN gco2D Engine,
-    IN gctUINT32 Address,
-    IN gctUINT32 Stride,
-    IN gceSURF_FORMAT Format,
-    IN gctBOOL CoordRelative,
-    IN gceSURF_MONOPACK MaskPack
-    );
-
-/* Configure masked color source extension for full rotation. */
-gceSTATUS
-gco2D_SetMaskedSourceEx(
-    IN gco2D Engine,
-    IN gctUINT32 Address,
-    IN gctUINT32 Stride,
-    IN gceSURF_FORMAT Format,
-    IN gctBOOL CoordRelative,
-    IN gceSURF_MONOPACK MaskPack,
-    IN gceSURF_ROTATION Rotation,
-    IN gctUINT32 SurfaceWidth,
-    IN gctUINT32 SurfaceHeight
-    );
-
-/* Setup the source rectangle. */
-gceSTATUS
-gco2D_SetSource(
-    IN gco2D Engine,
-    IN gcsRECT_PTR SrcRect
-    );
-
-/* Set clipping rectangle. */
-gceSTATUS
-gco2D_SetClipping(
-    IN gco2D Engine,
-    IN gcsRECT_PTR Rect
-    );
-
-/* Configure destination. */
-gceSTATUS
-gco2D_SetTarget(
-    IN gco2D Engine,
-    IN gctUINT32 Address,
-    IN gctUINT32 Stride,
-    IN gceSURF_ROTATION Rotation,
-    IN gctUINT32 SurfaceWidth
-    );
-
-/* Configure destination extension for full rotation. */
-gceSTATUS
-gco2D_SetTargetEx(
-    IN gco2D Engine,
-    IN gctUINT32 Address,
-    IN gctUINT32 Stride,
-    IN gceSURF_ROTATION Rotation,
-    IN gctUINT32 SurfaceWidth,
-    IN gctUINT32 SurfaceHeight
-    );
-
-/* Calculate and program the stretch factors. */
-gceSTATUS
-gco2D_CalcStretchFactor(
-    IN gco2D Engine,
-    IN gctINT32 SrcSize,
-    IN gctINT32 DestSize,
-    OUT gctUINT32_PTR Factor
-    );
-
-gceSTATUS
-gco2D_SetStretchFactors(
-    IN gco2D Engine,
-    IN gctUINT32 HorFactor,
-    IN gctUINT32 VerFactor
-    );
-
-/* Calculate and program the stretch factors based on the rectangles. */
-gceSTATUS
-gco2D_SetStretchRectFactors(
-    IN gco2D Engine,
-    IN gcsRECT_PTR SrcRect,
-    IN gcsRECT_PTR DestRect
-    );
-
-/* Create a new solid color gcoBRUSH object. */
-gceSTATUS
-gco2D_ConstructSingleColorBrush(
-    IN gco2D Engine,
-    IN gctUINT32 ColorConvert,
-    IN gctUINT32 Color,
-    IN gctUINT64 Mask,
-    gcoBRUSH * Brush
-    );
-
-/* Create a new monochrome gcoBRUSH object. */
-gceSTATUS
-gco2D_ConstructMonochromeBrush(
-    IN gco2D Engine,
-    IN gctUINT32 OriginX,
-    IN gctUINT32 OriginY,
-    IN gctUINT32 ColorConvert,
-    IN gctUINT32 FgColor,
-    IN gctUINT32 BgColor,
-    IN gctUINT64 Bits,
-    IN gctUINT64 Mask,
-    gcoBRUSH * Brush
-    );
-
-/* Create a color gcoBRUSH object. */
-gceSTATUS
-gco2D_ConstructColorBrush(
-    IN gco2D Engine,
-    IN gctUINT32 OriginX,
-    IN gctUINT32 OriginY,
-    IN gctPOINTER Address,
-    IN gceSURF_FORMAT Format,
-    IN gctUINT64 Mask,
-    gcoBRUSH * Brush
-    );
-
-/* Clear one or more rectangular areas. */
-gceSTATUS
-gco2D_Clear(
-    IN gco2D Engine,
-    IN gctUINT32 RectCount,
-    IN gcsRECT_PTR Rect,
-    IN gctUINT32 Color32,
-    IN gctUINT8 FgRop,
-    IN gctUINT8 BgRop,
-    IN gceSURF_FORMAT DestFormat
-    );
-
-/* Draw one or more Bresenham lines. */
-gceSTATUS
-gco2D_Line(
-    IN gco2D Engine,
-    IN gctUINT32 LineCount,
-    IN gcsRECT_PTR Position,
-    IN gcoBRUSH Brush,
-    IN gctUINT8 FgRop,
-    IN gctUINT8 BgRop,
-    IN gceSURF_FORMAT DestFormat
-    );
-
-/* Draw one or more Bresenham lines based on the 32-bit color. */
-gceSTATUS
-gco2D_ColorLine(
-    IN gco2D Engine,
-    IN gctUINT32 LineCount,
-    IN gcsRECT_PTR Position,
-    IN gctUINT32 Color32,
-    IN gctUINT8 FgRop,
-    IN gctUINT8 BgRop,
-    IN gceSURF_FORMAT DestFormat
-    );
-
-/* Generic blit. */
-gceSTATUS
-gco2D_Blit(
-    IN gco2D Engine,
-    IN gctUINT32 RectCount,
-    IN gcsRECT_PTR Rect,
-    IN gctUINT8 FgRop,
-    IN gctUINT8 BgRop,
-    IN gceSURF_FORMAT DestFormat
-    );
-
-gceSTATUS
-gco2D_Blend(
-    IN gco2D Engine,
-    IN gctUINT32 SrcCount,
-    IN gctUINT32 RectCount,
-    IN gcsRECT_PTR Rect,
-    IN gctUINT8 FgRop,
-    IN gctUINT8 BgRop,
-    IN gceSURF_FORMAT DestFormat
-    );
-
-/* Batch blit. */
-gceSTATUS
-gco2D_BatchBlit(
-    IN gco2D Engine,
-    IN gctUINT32 RectCount,
-    IN gcsRECT_PTR SrcRect,
-    IN gcsRECT_PTR DestRect,
-    IN gctUINT8 FgRop,
-    IN gctUINT8 BgRop,
-    IN gceSURF_FORMAT DestFormat
-    );
-
-/* Stretch blit. */
-gceSTATUS
-gco2D_StretchBlit(
-    IN gco2D Engine,
-    IN gctUINT32 RectCount,
-    IN gcsRECT_PTR Rect,
-    IN gctUINT8 FgRop,
-    IN gctUINT8 BgRop,
-    IN gceSURF_FORMAT DestFormat
-    );
-
-/* Monochrome blit. */
-gceSTATUS
-gco2D_MonoBlit(
-    IN gco2D Engine,
-    IN gctPOINTER StreamBits,
-    IN gcsPOINT_PTR StreamSize,
-    IN gcsRECT_PTR StreamRect,
-    IN gceSURF_MONOPACK SrcStreamPack,
-    IN gceSURF_MONOPACK DestStreamPack,
-    IN gcsRECT_PTR DestRect,
-    IN gctUINT32 FgRop,
-    IN gctUINT32 BgRop,
-    IN gceSURF_FORMAT DestFormat
-    );
-
-gceSTATUS
-gco2D_MonoBlitEx(
-    IN gco2D        Engine,
-    IN gctPOINTER   StreamBits,
-    IN gctINT32     StreamStride,
-    IN gctINT32     StreamWidth,
-    IN gctINT32     StreamHeight,
-    IN gctINT32     StreamX,
-    IN gctINT32     StreamY,
-    IN gctUINT32    FgColor,
-    IN gctUINT32    BgColor,
-    IN gcsRECT_PTR  SrcRect,
-    IN gcsRECT_PTR  DstRect,
-    IN gctUINT8     FgRop,
-    IN gctUINT8     BgRop
-    );
-
-/* Set kernel size. */
-gceSTATUS
-gco2D_SetKernelSize(
-    IN gco2D Engine,
-    IN gctUINT8 HorKernelSize,
-    IN gctUINT8 VerKernelSize
-    );
-
-/* Set filter type. */
-gceSTATUS
-gco2D_SetFilterType(
-    IN gco2D Engine,
-    IN gceFILTER_TYPE FilterType
-    );
-
-/* Set the filter kernel by user. */
-gceSTATUS
-gco2D_SetUserFilterKernel(
-    IN gco2D Engine,
-    IN gceFILTER_PASS_TYPE PassType,
-    IN gctUINT16_PTR KernelArray
-    );
-
-/* Select the pass(es) to be done for user defined filter. */
-gceSTATUS
-gco2D_EnableUserFilterPasses(
-    IN gco2D Engine,
-    IN gctBOOL HorPass,
-    IN gctBOOL VerPass
-    );
-
-/* Frees the temporary buffer allocated by filter blit operation. */
-gceSTATUS
-gco2D_FreeFilterBuffer(
-    IN gco2D Engine
-    );
-
-/* Filter blit. */
-gceSTATUS
-gco2D_FilterBlit(
-    IN gco2D Engine,
-    IN gctUINT32 SrcAddress,
-    IN gctUINT SrcStride,
-    IN gctUINT32 SrcUAddress,
-    IN gctUINT SrcUStride,
-    IN gctUINT32 SrcVAddress,
-    IN gctUINT SrcVStride,
-    IN gceSURF_FORMAT SrcFormat,
-    IN gceSURF_ROTATION SrcRotation,
-    IN gctUINT32 SrcSurfaceWidth,
-    IN gcsRECT_PTR SrcRect,
-    IN gctUINT32 DestAddress,
-    IN gctUINT DestStride,
-    IN gceSURF_FORMAT DestFormat,
-    IN gceSURF_ROTATION DestRotation,
-    IN gctUINT32 DestSurfaceWidth,
-    IN gcsRECT_PTR DestRect,
-    IN gcsRECT_PTR DestSubRect
-    );
-
-/* Filter blit extension for full rotation. */
-gceSTATUS
-gco2D_FilterBlitEx(
-    IN gco2D Engine,
-    IN gctUINT32 SrcAddress,
-    IN gctUINT SrcStride,
-    IN gctUINT32 SrcUAddress,
-    IN gctUINT SrcUStride,
-    IN gctUINT32 SrcVAddress,
-    IN gctUINT SrcVStride,
-    IN gceSURF_FORMAT SrcFormat,
-    IN gceSURF_ROTATION SrcRotation,
-    IN gctUINT32 SrcSurfaceWidth,
-    IN gctUINT32 SrcSurfaceHeight,
-    IN gcsRECT_PTR SrcRect,
-    IN gctUINT32 DestAddress,
-    IN gctUINT DestStride,
-    IN gceSURF_FORMAT DestFormat,
-    IN gceSURF_ROTATION DestRotation,
-    IN gctUINT32 DestSurfaceWidth,
-    IN gctUINT32 DestSurfaceHeight,
-    IN gcsRECT_PTR DestRect,
-    IN gcsRECT_PTR DestSubRect
-    );
-
-gceSTATUS
-gco2D_FilterBlitEx2(
-    IN gco2D                Engine,
-    IN gctUINT32_PTR        SrcAddresses,
-    IN gctUINT32            SrcAddressNum,
-    IN gctUINT32_PTR        SrcStrides,
-    IN gctUINT32            SrcStrideNum,
-    IN gceTILING            SrcTiling,
-    IN gceSURF_FORMAT       SrcFormat,
-    IN gceSURF_ROTATION     SrcRotation,
-    IN gctUINT32            SrcSurfaceWidth,
-    IN gctUINT32            SrcSurfaceHeight,
-    IN gcsRECT_PTR          SrcRect,
-    IN gctUINT32_PTR        DestAddresses,
-    IN gctUINT32            DestAddressNum,
-    IN gctUINT32_PTR        DestStrides,
-    IN gctUINT32            DestStrideNum,
-    IN gceTILING            DestTiling,
-    IN gceSURF_FORMAT       DestFormat,
-    IN gceSURF_ROTATION     DestRotation,
-    IN gctUINT32            DestSurfaceWidth,
-    IN gctUINT32            DestSurfaceHeight,
-    IN gcsRECT_PTR          DestRect,
-    IN gcsRECT_PTR          DestSubRect
-    );
-
-/* Enable alpha blending engine in the hardware and disengage the ROP engine. */
-gceSTATUS
-gco2D_EnableAlphaBlend(
-    IN gco2D Engine,
-    IN gctUINT8 SrcGlobalAlphaValue,
-    IN gctUINT8 DstGlobalAlphaValue,
-    IN gceSURF_PIXEL_ALPHA_MODE SrcAlphaMode,
-    IN gceSURF_PIXEL_ALPHA_MODE DstAlphaMode,
-    IN gceSURF_GLOBAL_ALPHA_MODE SrcGlobalAlphaMode,
-    IN gceSURF_GLOBAL_ALPHA_MODE DstGlobalAlphaMode,
-    IN gceSURF_BLEND_FACTOR_MODE SrcFactorMode,
-    IN gceSURF_BLEND_FACTOR_MODE DstFactorMode,
-    IN gceSURF_PIXEL_COLOR_MODE SrcColorMode,
-    IN gceSURF_PIXEL_COLOR_MODE DstColorMode
-    );
-
-/* Enable alpha blending engine in the hardware. */
-gceSTATUS
-gco2D_EnableAlphaBlendAdvanced(
-    IN gco2D Engine,
-    IN gceSURF_PIXEL_ALPHA_MODE SrcAlphaMode,
-    IN gceSURF_PIXEL_ALPHA_MODE DstAlphaMode,
-    IN gceSURF_GLOBAL_ALPHA_MODE SrcGlobalAlphaMode,
-    IN gceSURF_GLOBAL_ALPHA_MODE DstGlobalAlphaMode,
-    IN gceSURF_BLEND_FACTOR_MODE SrcFactorMode,
-    IN gceSURF_BLEND_FACTOR_MODE DstFactorMode
-    );
-
-/* Enable alpha blending engine with Porter Duff rule. */
-gceSTATUS
-gco2D_SetPorterDuffBlending(
-    IN gco2D Engine,
-    IN gce2D_PORTER_DUFF_RULE Rule
-    );
-
-/* Disable alpha blending engine in the hardware and engage the ROP engine. */
-gceSTATUS
-gco2D_DisableAlphaBlend(
-    IN gco2D Engine
-    );
-
-/* Retrieve the maximum number of 32-bit data chunks for a single DE command. */
-gctUINT32
-gco2D_GetMaximumDataCount(
-    void
-    );
-
-/* Retrieve the maximum number of rectangles, that can be passed in a single DE command. */
-gctUINT32
-gco2D_GetMaximumRectCount(
-    void
-    );
-
-/* Returns the pixel alignment of the surface. */
-gceSTATUS
-gco2D_GetPixelAlignment(
-    gceSURF_FORMAT Format,
-    gcsPOINT_PTR Alignment
-    );
-
-/* Retrieve monochrome stream pack size. */
-gceSTATUS
-gco2D_GetPackSize(
-    IN gceSURF_MONOPACK StreamPack,
-    OUT gctUINT32 * PackWidth,
-    OUT gctUINT32 * PackHeight
-    );
-
-/* Flush the 2D pipeline. */
-gceSTATUS
-gco2D_Flush(
-    IN gco2D Engine
-    );
-
-/* Load 256-entry color table for INDEX8 source surfaces. */
-gceSTATUS
-gco2D_LoadPalette(
-    IN gco2D Engine,
-    IN gctUINT FirstIndex,
-    IN gctUINT IndexCount,
-    IN gctPOINTER ColorTable,
-    IN gctBOOL ColorConvert
-    );
-
-/* Enable/disable 2D BitBlt mirrorring. */
-gceSTATUS
-gco2D_SetBitBlitMirror(
-    IN gco2D Engine,
-    IN gctBOOL HorizontalMirror,
-    IN gctBOOL VerticalMirror
-    );
-
-/*
- * Set the transparency for source, destination and pattern.
- * It also enable or disable the DFB color key mode.
- */
-gceSTATUS
-gco2D_SetTransparencyAdvancedEx(
-    IN gco2D Engine,
-    IN gce2D_TRANSPARENCY SrcTransparency,
-    IN gce2D_TRANSPARENCY DstTransparency,
-    IN gce2D_TRANSPARENCY PatTransparency,
-    IN gctBOOL EnableDFBColorKeyMode
-    );
-
-/* Set the transparency for source, destination and pattern. */
-gceSTATUS
-gco2D_SetTransparencyAdvanced(
-    IN gco2D Engine,
-    IN gce2D_TRANSPARENCY SrcTransparency,
-    IN gce2D_TRANSPARENCY DstTransparency,
-    IN gce2D_TRANSPARENCY PatTransparency
-    );
-
-/* Set the source color key. */
-gceSTATUS
-gco2D_SetSourceColorKeyAdvanced(
-    IN gco2D Engine,
-    IN gctUINT32 ColorKey
-    );
-
-/* Set the source color key range. */
-gceSTATUS
-gco2D_SetSourceColorKeyRangeAdvanced(
-    IN gco2D Engine,
-    IN gctUINT32 ColorKeyLow,
-    IN gctUINT32 ColorKeyHigh
-    );
-
-/* Set the target color key. */
-gceSTATUS
-gco2D_SetTargetColorKeyAdvanced(
-    IN gco2D Engine,
-    IN gctUINT32 ColorKey
-    );
-
-/* Set the target color key range. */
-gceSTATUS
-gco2D_SetTargetColorKeyRangeAdvanced(
-    IN gco2D Engine,
-    IN gctUINT32 ColorKeyLow,
-    IN gctUINT32 ColorKeyHigh
-    );
-
-/* Set the YUV color space mode. */
-gceSTATUS
-gco2D_SetYUVColorMode(
-    IN gco2D Engine,
-    IN gce2D_YUV_COLOR_MODE Mode
-    );
-
-/* Setup the source global color value in ARGB8 format. */
-gceSTATUS gco2D_SetSourceGlobalColorAdvanced(
-    IN gco2D Engine,
-    IN gctUINT32 Color32
-    );
-
-/* Setup the target global color value in ARGB8 format. */
-gceSTATUS gco2D_SetTargetGlobalColorAdvanced(
-    IN gco2D Engine,
-    IN gctUINT32 Color32
-    );
-
-/* Setup the source and target pixel multiply modes. */
-gceSTATUS
-gco2D_SetPixelMultiplyModeAdvanced(
-    IN gco2D Engine,
-    IN gce2D_PIXEL_COLOR_MULTIPLY_MODE SrcPremultiplySrcAlpha,
-    IN gce2D_PIXEL_COLOR_MULTIPLY_MODE DstPremultiplyDstAlpha,
-    IN gce2D_GLOBAL_COLOR_MULTIPLY_MODE SrcPremultiplyGlobalMode,
-    IN gce2D_PIXEL_COLOR_MULTIPLY_MODE DstDemultiplyDstAlpha
-    );
-
-/* Set the GPU clock cycles after which the idle engine will keep auto-flushing. */
-gceSTATUS
-gco2D_SetAutoFlushCycles(
-    IN gco2D Engine,
-    IN gctUINT32 Cycles
-    );
-
-#if VIVANTE_PROFILER
-/* Read the profile registers available in the 2D engine and sets them in the profile.
-   The function will also reset the pixelsRendered counter every time.
-*/
-gceSTATUS
-gco2D_ProfileEngine(
-    IN gco2D Engine,
-    OPTIONAL gcs2D_PROFILE_PTR Profile
-    );
-#endif
-
-/* Enable or disable 2D dithering. */
-gceSTATUS
-gco2D_EnableDither(
-    IN gco2D Engine,
-    IN gctBOOL Enable
-    );
-
-gceSTATUS
-gco2D_SetGenericSource(
-    IN gco2D               Engine,
-    IN gctUINT32_PTR       Addresses,
-    IN gctUINT32           AddressNum,
-    IN gctUINT32_PTR       Strides,
-    IN gctUINT32           StrideNum,
-    IN gceTILING           Tiling,
-    IN gceSURF_FORMAT      Format,
-    IN gceSURF_ROTATION    Rotation,
-    IN gctUINT32           SurfaceWidth,
-    IN gctUINT32           SurfaceHeight
-);
-
-gceSTATUS
-gco2D_SetGenericTarget(
-    IN gco2D               Engine,
-    IN gctUINT32_PTR       Addresses,
-    IN gctUINT32           AddressNum,
-    IN gctUINT32_PTR       Strides,
-    IN gctUINT32           StrideNum,
-    IN gceTILING           Tiling,
-    IN gceSURF_FORMAT      Format,
-    IN gceSURF_ROTATION    Rotation,
-    IN gctUINT32           SurfaceWidth,
-    IN gctUINT32           SurfaceHeight
-);
-
-gceSTATUS
-gco2D_SetCurrentSourceIndex(
-    IN gco2D        Engine,
-    IN gctUINT32    SrcIndex
-    );
-
-gceSTATUS
-gco2D_MultiSourceBlit(
-    IN gco2D Engine,
-    IN gctUINT32 SourceMask,
-    IN gcsRECT_PTR DestRect,
-    IN gctUINT32 RectCount
-    );
-
-gceSTATUS
-gco2D_SetROP(
-    IN gco2D Engine,
-    IN gctUINT8 FgRop,
-    IN gctUINT8 BgRop
-    );
-
-gceSTATUS
-gco2D_SetGdiStretchMode(
-    IN gco2D Engine,
-    IN gctBOOL Enable
-    );
-
-gceSTATUS
-gco2D_SetSourceTileStatus(
-    IN gco2D Engine,
-    IN gce2D_TILE_STATUS_CONFIG TSControl,
-    IN gceSURF_FORMAT CompressedFormat,
-    IN gctUINT32 ClearValue,
-    IN gctUINT32 GpuAddress
-    );
-
-gceSTATUS
-gco2D_SetTargetTileStatus(
-    IN gco2D Engine,
-    IN gce2D_TILE_STATUS_CONFIG TileStatusConfig,
-    IN gceSURF_FORMAT CompressedFormat,
-    IN gctUINT32 ClearValue,
-    IN gctUINT32 GpuAddress
-    );
-
-gceSTATUS
-gco2D_QueryU32(
-    IN gco2D Engine,
-    IN gce2D_QUERY Item,
-    OUT gctUINT32_PTR Value
-    );
-
-gceSTATUS
-gco2D_SetStateU32(
-    IN gco2D Engine,
-    IN gce2D_STATE State,
-    IN gctUINT32 Value
-    );
-
-gceSTATUS
-gco2D_SetStateArrayI32(
-    IN gco2D Engine,
-    IN gce2D_STATE State,
-    IN gctINT32_PTR Array,
-    IN gctINT32 ArraySize
-    );
-
-gceSTATUS
-gco2D_SetStateArrayU32(
-    IN gco2D Engine,
-    IN gce2D_STATE State,
-    IN gctUINT32_PTR Array,
-    IN gctINT32 ArraySize
-    );
-
-gceSTATUS
-gco2D_SetTargetRect(
-    IN gco2D Engine,
-    IN gcsRECT_PTR Rect
-    );
-
-gceSTATUS
-gco2D_Set2DEngine(
-    IN gco2D Engine
-    );
-
-gceSTATUS
-gco2D_UnSet2DEngine(
-    IN gco2D Engine
-    );
-
-gceSTATUS
-gco2D_Get2DEngine(
-    OUT gco2D * Engine
-    );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gc_hal_raster_h_ */

+ 0 - 235
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_rename.h

@@ -1,235 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_rename_h_
-#define __gc_hal_rename_h_
-
-
-#if defined(_HAL2D_APPENDIX)
-
-#define _HAL2D_RENAME_2(api, appendix)  api ## appendix
-#define _HAL2D_RENAME_1(api, appendix)  _HAL2D_RENAME_2(api, appendix)
-#define gcmHAL2D(api)                   _HAL2D_RENAME_1(api, _HAL2D_APPENDIX)
-
-
-#define gckOS_Construct                 gcmHAL2D(gckOS_Construct)
-#define gckOS_Destroy                   gcmHAL2D(gckOS_Destroy)
-#define gckOS_QueryVideoMemory          gcmHAL2D(gckOS_QueryVideoMemory)
-#define gckOS_Allocate                  gcmHAL2D(gckOS_Allocate)
-#define gckOS_Free                      gcmHAL2D(gckOS_Free)
-#define gckOS_AllocateMemory            gcmHAL2D(gckOS_AllocateMemory)
-#define gckOS_FreeMemory                gcmHAL2D(gckOS_FreeMemory)
-#define gckOS_AllocatePagedMemory       gcmHAL2D(gckOS_AllocatePagedMemory)
-#define gckOS_AllocatePagedMemoryEx     gcmHAL2D(gckOS_AllocatePagedMemoryEx)
-#define gckOS_LockPages                 gcmHAL2D(gckOS_LockPages)
-#define gckOS_MapPages                  gcmHAL2D(gckOS_MapPages)
-#define gckOS_UnlockPages               gcmHAL2D(gckOS_UnlockPages)
-#define gckOS_FreePagedMemory           gcmHAL2D(gckOS_FreePagedMemory)
-#define gckOS_AllocateNonPagedMemory    gcmHAL2D(gckOS_AllocateNonPagedMemory)
-#define gckOS_FreeNonPagedMemory        gcmHAL2D(gckOS_FreeNonPagedMemory)
-#define gckOS_AllocateContiguous        gcmHAL2D(gckOS_AllocateContiguous)
-#define gckOS_FreeContiguous            gcmHAL2D(gckOS_FreeContiguous)
-#define gckOS_GetPageSize               gcmHAL2D(gckOS_GetPageSize)
-#define gckOS_GetPhysicalAddress        gcmHAL2D(gckOS_GetPhysicalAddress)
-#define gckOS_UserLogicalToPhysical     gcmHAL2D(gckOS_UserLogicalToPhysical)
-#define gckOS_GetPhysicalAddressProcess gcmHAL2D(gckOS_GetPhysicalAddressProcess)
-#define gckOS_MapPhysical               gcmHAL2D(gckOS_MapPhysical)
-#define gckOS_UnmapPhysical             gcmHAL2D(gckOS_UnmapPhysical)
-#define gckOS_ReadRegister              gcmHAL2D(gckOS_ReadRegister)
-#define gckOS_WriteRegister             gcmHAL2D(gckOS_WriteRegister)
-#define gckOS_WriteMemory               gcmHAL2D(gckOS_WriteMemory)
-#define gckOS_MapMemory                 gcmHAL2D(gckOS_MapMemory)
-#define gckOS_UnmapMemory               gcmHAL2D(gckOS_UnmapMemory)
-#define gckOS_UnmapMemoryEx             gcmHAL2D(gckOS_UnmapMemoryEx)
-#define gckOS_CreateMutex               gcmHAL2D(gckOS_CreateMutex)
-#define gckOS_DeleteMutex               gcmHAL2D(gckOS_DeleteMutex)
-#define gckOS_AcquireMutex              gcmHAL2D(gckOS_AcquireMutex)
-#define gckOS_ReleaseMutex              gcmHAL2D(gckOS_ReleaseMutex)
-#define gckOS_AtomicExchange            gcmHAL2D(gckOS_AtomicExchange)
-#define gckOS_AtomicExchangePtr         gcmHAL2D(gckOS_AtomicExchangePtr)
-#define gckOS_AtomConstruct             gcmHAL2D(gckOS_AtomConstruct)
-#define gckOS_AtomDestroy               gcmHAL2D(gckOS_AtomDestroy)
-#define gckOS_AtomGet                   gcmHAL2D(gckOS_AtomGet)
-#define gckOS_AtomIncrement             gcmHAL2D(gckOS_AtomIncrement)
-#define gckOS_AtomDecrement             gcmHAL2D(gckOS_AtomDecrement)
-#define gckOS_Delay                     gcmHAL2D(gckOS_Delay)
-#define gckOS_GetTime                   gcmHAL2D(gckOS_GetTime)
-#define gckOS_MemoryBarrier             gcmHAL2D(gckOS_MemoryBarrier)
-#define gckOS_MapUserPointer            gcmHAL2D(gckOS_MapUserPointer)
-#define gckOS_UnmapUserPointer          gcmHAL2D(gckOS_UnmapUserPointer)
-#define gckOS_QueryNeedCopy             gcmHAL2D(gckOS_QueryNeedCopy)
-#define gckOS_CopyFromUserData          gcmHAL2D(gckOS_CopyFromUserData)
-#define gckOS_CopyToUserData            gcmHAL2D(gckOS_CopyToUserData)
-#define gckOS_SuspendInterrupt          gcmHAL2D(gckOS_SuspendInterrupt)
-#define gckOS_ResumeInterrupt           gcmHAL2D(gckOS_ResumeInterrupt)
-#define gckOS_GetBaseAddress            gcmHAL2D(gckOS_GetBaseAddress)
-#define gckOS_MemCopy                   gcmHAL2D(gckOS_MemCopy)
-#define gckOS_ZeroMemory                gcmHAL2D(gckOS_ZeroMemory)
-#define gckOS_DeviceControl             gcmHAL2D(gckOS_DeviceControl)
-#define gckOS_GetProcessID              gcmHAL2D(gckOS_GetProcessID)
-#define gckOS_GetThreadID               gcmHAL2D(gckOS_GetThreadID)
-#define gckOS_CreateSignal              gcmHAL2D(gckOS_CreateSignal)
-#define gckOS_DestroySignal             gcmHAL2D(gckOS_DestroySignal)
-#define gckOS_Signal                    gcmHAL2D(gckOS_Signal)
-#define gckOS_WaitSignal                gcmHAL2D(gckOS_WaitSignal)
-#define gckOS_MapSignal                 gcmHAL2D(gckOS_MapSignal)
-#define gckOS_MapUserMemory             gcmHAL2D(gckOS_MapUserMemory)
-#define gckOS_UnmapUserMemory           gcmHAL2D(gckOS_UnmapUserMemory)
-#define gckOS_CreateUserSignal          gcmHAL2D(gckOS_CreateUserSignal)
-#define gckOS_DestroyUserSignal         gcmHAL2D(gckOS_DestroyUserSignal)
-#define gckOS_WaitUserSignal            gcmHAL2D(gckOS_WaitUserSignal)
-#define gckOS_SignalUserSignal          gcmHAL2D(gckOS_SignalUserSignal)
-#define gckOS_UserSignal                gcmHAL2D(gckOS_UserSignal)
-#define gckOS_UserSignal                gcmHAL2D(gckOS_UserSignal)
-#define gckOS_CacheClean                gcmHAL2D(gckOS_CacheClean)
-#define gckOS_CacheFlush                gcmHAL2D(gckOS_CacheFlush)
-#define gckOS_SetDebugLevel             gcmHAL2D(gckOS_SetDebugLevel)
-#define gckOS_SetDebugZone              gcmHAL2D(gckOS_SetDebugZone)
-#define gckOS_SetDebugLevelZone         gcmHAL2D(gckOS_SetDebugLevelZone)
-#define gckOS_SetDebugZones             gcmHAL2D(gckOS_SetDebugZones)
-#define gckOS_SetDebugFile              gcmHAL2D(gckOS_SetDebugFile)
-#define gckOS_Broadcast                 gcmHAL2D(gckOS_Broadcast)
-#define gckOS_SetGPUPower               gcmHAL2D(gckOS_SetGPUPower)
-#define gckOS_CreateSemaphore           gcmHAL2D(gckOS_CreateSemaphore)
-#define gckOS_DestroySemaphore          gcmHAL2D(gckOS_DestroySemaphore)
-#define gckOS_AcquireSemaphore          gcmHAL2D(gckOS_AcquireSemaphore)
-#define gckOS_ReleaseSemaphore          gcmHAL2D(gckOS_ReleaseSemaphore)
-#define gckHEAP_Construct               gcmHAL2D(gckHEAP_Construct)
-#define gckHEAP_Destroy                 gcmHAL2D(gckHEAP_Destroy)
-#define gckHEAP_Allocate                gcmHAL2D(gckHEAP_Allocate)
-#define gckHEAP_Free                    gcmHAL2D(gckHEAP_Free)
-#define gckHEAP_ProfileStart            gcmHAL2D(gckHEAP_ProfileStart)
-#define gckHEAP_ProfileEnd              gcmHAL2D(gckHEAP_ProfileEnd)
-#define gckHEAP_Test                    gcmHAL2D(gckHEAP_Test)
-#define gckVIDMEM_Construct             gcmHAL2D(gckVIDMEM_Construct)
-#define gckVIDMEM_Destroy               gcmHAL2D(gckVIDMEM_Destroy)
-#define gckVIDMEM_Allocate              gcmHAL2D(gckVIDMEM_Allocate)
-#define gckVIDMEM_AllocateLinear        gcmHAL2D(gckVIDMEM_AllocateLinear)
-#define gckVIDMEM_Free                  gcmHAL2D(gckVIDMEM_Free)
-#define gckVIDMEM_Lock                  gcmHAL2D(gckVIDMEM_Lock)
-#define gckVIDMEM_Unlock                gcmHAL2D(gckVIDMEM_Unlock)
-#define gckVIDMEM_ConstructVirtual      gcmHAL2D(gckVIDMEM_ConstructVirtual)
-#define gckVIDMEM_DestroyVirtual        gcmHAL2D(gckVIDMEM_DestroyVirtual)
-#define gckKERNEL_Construct             gcmHAL2D(gckKERNEL_Construct)
-#define gckKERNEL_Destroy               gcmHAL2D(gckKERNEL_Destroy)
-#define gckKERNEL_Dispatch              gcmHAL2D(gckKERNEL_Dispatch)
-#define gckKERNEL_QueryVideoMemory      gcmHAL2D(gckKERNEL_QueryVideoMemory)
-#define gckKERNEL_GetVideoMemoryPool    gcmHAL2D(gckKERNEL_GetVideoMemoryPool)
-#define gckKERNEL_MapVideoMemory        gcmHAL2D(gckKERNEL_MapVideoMemory)
-#define gckKERNEL_UnmapVideoMemory      gcmHAL2D(gckKERNEL_UnmapVideoMemory)
-#define gckKERNEL_MapMemory             gcmHAL2D(gckKERNEL_MapMemory)
-#define gckKERNEL_UnmapMemory           gcmHAL2D(gckKERNEL_UnmapMemory)
-#define gckKERNEL_Notify                gcmHAL2D(gckKERNEL_Notify)
-#define gckKERNEL_QuerySettings         gcmHAL2D(gckKERNEL_QuerySettings)
-#define gckKERNEL_Recovery              gcmHAL2D(gckKERNEL_Recovery)
-#define gckKERNEL_OpenUserData          gcmHAL2D(gckKERNEL_OpenUserData)
-#define gckKERNEL_CloseUserData         gcmHAL2D(gckKERNEL_CloseUserData)
-#define gckHARDWARE_Construct           gcmHAL2D(gckHARDWARE_Construct)
-#define gckHARDWARE_Destroy             gcmHAL2D(gckHARDWARE_Destroy)
-#define gckHARDWARE_QuerySystemMemory   gcmHAL2D(gckHARDWARE_QuerySystemMemory)
-#define gckHARDWARE_BuildVirtualAddress     gcmHAL2D(gckHARDWARE_BuildVirtualAddress)
-#define gckHARDWARE_QueryCommandBuffer      gcmHAL2D(gckHARDWARE_QueryCommandBuffer)
-#define gckHARDWARE_WaitLink            gcmHAL2D(gckHARDWARE_WaitLink)
-#define gckHARDWARE_Execute             gcmHAL2D(gckHARDWARE_Execute)
-#define gckHARDWARE_End                 gcmHAL2D(gckHARDWARE_End)
-#define gckHARDWARE_Nop                 gcmHAL2D(gckHARDWARE_Nop)
-#define gckHARDWARE_PipeSelect          gcmHAL2D(gckHARDWARE_PipeSelect)
-#define gckHARDWARE_Link                gcmHAL2D(gckHARDWARE_Link)
-#define gckHARDWARE_Event               gcmHAL2D(gckHARDWARE_Event)
-#define gckHARDWARE_QueryMemory         gcmHAL2D(gckHARDWARE_QueryMemory)
-#define gckHARDWARE_QueryChipIdentity   gcmHAL2D(gckHARDWARE_QueryChipIdentity)
-#define gckHARDWARE_QueryChipSpecs      gcmHAL2D(gckHARDWARE_QueryChipSpecs)
-#define gckHARDWARE_QueryShaderCaps     gcmHAL2D(gckHARDWARE_QueryShaderCaps)
-#define gckHARDWARE_ConvertFormat       gcmHAL2D(gckHARDWARE_ConvertFormat)
-#define gckHARDWARE_SplitMemory         gcmHAL2D(gckHARDWARE_SplitMemory)
-#define gckHARDWARE_AlignToTile         gcmHAL2D(gckHARDWARE_AlignToTile)
-#define gckHARDWARE_UpdateQueueTail     gcmHAL2D(gckHARDWARE_UpdateQueueTail)
-#define gckHARDWARE_ConvertLogical      gcmHAL2D(gckHARDWARE_ConvertLogical)
-#define gckHARDWARE_Interrupt           gcmHAL2D(gckHARDWARE_Interrupt)
-#define gckHARDWARE_SetMMU              gcmHAL2D(gckHARDWARE_SetMMU)
-#define gckHARDWARE_FlushMMU            gcmHAL2D(gckHARDWARE_FlushMMU)
-#define gckHARDWARE_GetIdle             gcmHAL2D(gckHARDWARE_GetIdle)
-#define gckHARDWARE_Flush               gcmHAL2D(gckHARDWARE_Flush)
-#define gckHARDWARE_SetFastClear        gcmHAL2D(gckHARDWARE_SetFastClear)
-#define gckHARDWARE_ReadInterrupt       gcmHAL2D(gckHARDWARE_ReadInterrupt)
-#define gckHARDWARE_SetPowerManagementState         gcmHAL2D(gckHARDWARE_SetPowerManagementState)
-#define gckHARDWARE_QueryPowerManagementState       gcmHAL2D(gckHARDWARE_QueryPowerManagementState)
-#define gckHARDWARE_ProfileEngine2D     gcmHAL2D(gckHARDWARE_ProfileEngine2D)
-#define gckHARDWARE_InitializeHardware  gcmHAL2D(gckHARDWARE_InitializeHardware)
-#define gckHARDWARE_Reset               gcmHAL2D(gckHARDWARE_Reset)
-#define gckINTERRUPT_Construct          gcmHAL2D(gckINTERRUPT_Construct)
-#define gckINTERRUPT_Destroy            gcmHAL2D(gckINTERRUPT_Destroy)
-#define gckINTERRUPT_SetHandler         gcmHAL2D(gckINTERRUPT_SetHandler)
-#define gckINTERRUPT_Notify             gcmHAL2D(gckINTERRUPT_Notify)
-#define gckEVENT_Construct              gcmHAL2D(gckEVENT_Construct)
-#define gckEVENT_Destroy                gcmHAL2D(gckEVENT_Destroy)
-#define gckEVENT_AddList                gcmHAL2D(gckEVENT_AddList)
-#define gckEVENT_FreeNonPagedMemory     gcmHAL2D(gckEVENT_FreeNonPagedMemory)
-#define gckEVENT_FreeContiguousMemory   gcmHAL2D(gckEVENT_FreeContiguousMemory)
-#define gckEVENT_FreeVideoMemory        gcmHAL2D(gckEVENT_FreeVideoMemory)
-#define gckEVENT_Signal                 gcmHAL2D(gckEVENT_Signal)
-#define gckEVENT_Unlock                 gcmHAL2D(gckEVENT_Unlock)
-#define gckEVENT_Submit                 gcmHAL2D(gckEVENT_Submit)
-#define gckEVENT_Commit                 gcmHAL2D(gckEVENT_Commit)
-#define gckEVENT_Notify                 gcmHAL2D(gckEVENT_Notify)
-#define gckEVENT_Interrupt              gcmHAL2D(gckEVENT_Interrupt)
-#define gckCOMMAND_Construct            gcmHAL2D(gckCOMMAND_Construct)
-#define gckCOMMAND_Destroy              gcmHAL2D(gckCOMMAND_Destroy)
-#define gckCOMMAND_EnterCommit          gcmHAL2D(gckCOMMAND_EnterCommit)
-#define gckCOMMAND_ExitCommit           gcmHAL2D(gckCOMMAND_ExitCommit)
-#define gckCOMMAND_Start                gcmHAL2D(gckCOMMAND_Start)
-#define gckCOMMAND_Stop                 gcmHAL2D(gckCOMMAND_Stop)
-#define gckCOMMAND_Commit               gcmHAL2D(gckCOMMAND_Commit)
-#define gckCOMMAND_Reserve              gcmHAL2D(gckCOMMAND_Reserve)
-#define gckCOMMAND_Execute              gcmHAL2D(gckCOMMAND_Execute)
-#define gckCOMMAND_Stall                gcmHAL2D(gckCOMMAND_Stall)
-#define gckCOMMAND_Attach               gcmHAL2D(gckCOMMAND_Attach)
-#define gckCOMMAND_Detach               gcmHAL2D(gckCOMMAND_Detach)
-#define gckMMU_Construct                gcmHAL2D(gckMMU_Construct)
-#define gckMMU_Destroy                  gcmHAL2D(gckMMU_Destroy)
-#define gckMMU_AllocatePages            gcmHAL2D(gckMMU_AllocatePages)
-#define gckMMU_FreePages                gcmHAL2D(gckMMU_FreePages)
-#define gckMMU_Test                     gcmHAL2D(gckMMU_Test)
-#define gckHARDWARE_QueryProfileRegisters     gcmHAL2D(gckHARDWARE_QueryProfileRegisters)
-
-
-#define FindMdlMap                      gcmHAL2D(FindMdlMap)
-#define OnProcessExit                   gcmHAL2D(OnProcessExit)
-
-#define gckGALDEVICE_Destroy            gcmHAL2D(gckGALDEVICE_Destroy)
-#define gckOS_Print                     gcmHAL2D(gckOS_Print)
-#define gckGALDEVICE_FreeMemory         gcmHAL2D(gckGALDEVICE_FreeMemory)
-#define gckGALDEVICE_AllocateMemory     gcmHAL2D(gckGALDEVICE_AllocateMemory)
-#define gckOS_DebugBreak                gcmHAL2D(gckOS_DebugBreak)
-#define gckGALDEVICE_Release_ISR        gcmHAL2D(gckGALDEVICE_Release_ISR)
-#define gckOS_Verify                    gcmHAL2D(gckOS_Verify)
-#define gckCOMMAND_Release              gcmHAL2D(gckCOMMAND_Release)
-#define gckGALDEVICE_Stop               gcmHAL2D(gckGALDEVICE_Stop)
-#define gckGALDEVICE_Construct          gcmHAL2D(gckGALDEVICE_Construct)
-#define gckOS_DebugFatal                gcmHAL2D(gckOS_DebugFatal)
-#define gckOS_DebugTrace                gcmHAL2D(gckOS_DebugTrace)
-#define gckHARDWARE_GetBaseAddress      gcmHAL2D(gckHARDWARE_GetBaseAddress)
-#define gckGALDEVICE_Setup_ISR          gcmHAL2D(gckGALDEVICE_Setup_ISR)
-#define gckKERNEL_AttachProcess         gcmHAL2D(gckKERNEL_AttachProcess)
-#define gckKERNEL_AttachProcessEx       gcmHAL2D(gckKERNEL_AttachProcessEx)
-#define gckGALDEVICE_Start_Thread       gcmHAL2D(gckGALDEVICE_Start_Thread)
-#define gckHARDWARE_QueryIdle           gcmHAL2D(gckHARDWARE_QueryIdle)
-#define gckGALDEVICE_Start              gcmHAL2D(gckGALDEVICE_Start)
-#define gckOS_GetKernelLogical          gcmHAL2D(gckOS_GetKernelLogical)
-#define gckOS_DebugTraceZone            gcmHAL2D(gckOS_DebugTraceZone)
-#define gckGALDEVICE_Stop_Thread        gcmHAL2D(gckGALDEVICE_Stop_Thread)
-#define gckHARDWARE_NeedBaseAddress     gcmHAL2D(gckHARDWARE_NeedBaseAddress)
-
-#endif
-
-#endif /* __gc_hal_rename_h_ */

+ 0 - 924
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_types.h

@@ -1,924 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_types_h_
-#define __gc_hal_types_h_
-
-#include "gc_hal_version.h"
-#include "gc_hal_options.h"
-
-#if !defined(VIV_KMD)
-#if defined(__KERNEL__)
-#include "linux/version.h"
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
-    typedef unsigned long uintptr_t;
-#   endif
-#   include "linux/types.h"
-#elif defined(UNDER_CE)
-#include <crtdefs.h>
-#elif defined(_MSC_VER) && (_MSC_VER <= 1500)
-#include <crtdefs.h>
-#include "vadefs.h"
-#elif defined(__QNXNTO__)
-#define _QNX_SOURCE
-#include <stdint.h>
-#include <stddef.h>
-#else
-#include <stdlib.h>
-#include <stddef.h>
-#include <stdint.h>
-#endif
-#endif
-
-#ifdef _WIN32
-#pragma warning(disable:4127)   /* Conditional expression is constant (do { }
-                                ** while(0)). */
-#pragma warning(disable:4100)   /* Unreferenced formal parameter. */
-#pragma warning(disable:4204)   /* Non-constant aggregate initializer (C99). */
-#pragma warning(disable:4131)   /* Uses old-style declarator (for Bison and
-                                ** Flex generated files). */
-#pragma warning(disable:4206)   /* Translation unit is empty. */
-#pragma warning(disable:4214)   /* Nonstandard extension used :
-                                ** bit field types other than int. */
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/******************************************************************************\
-**  Platform macros.
-*/
-
-#if defined(__GNUC__)
-#   define gcdHAS_ELLIPSIS      1       /* GCC always has it. */
-#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
-#   define gcdHAS_ELLIPSIS      1       /* C99 has it. */
-#elif defined(_MSC_VER) && (_MSC_VER >= 1500)
-#   define gcdHAS_ELLIPSIS      1       /* MSVC 2007+ has it. */
-#elif defined(UNDER_CE)
-#if UNDER_CE >= 600
-#       define gcdHAS_ELLIPSIS  1
-#   else
-#       define gcdHAS_ELLIPSIS  0
-#   endif
-#else
-#   error "gcdHAS_ELLIPSIS: Platform could not be determined"
-#endif
-
-/******************************************************************************\
-************************************ Keyword ***********************************
-\******************************************************************************/
-#if defined(ANDROID) && defined(__BIONIC_FORTIFY)
-#   define gcmINLINE            __inline__ __attribute__ ((always_inline)) __attribute__ ((gnu_inline)) __attribute__ ((artificial))
-#elif ((defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || defined(__APPLE__))
-#   define gcmINLINE            inline      /* C99 keyword. */
-#elif defined(__GNUC__)
-#   define gcmINLINE            __inline__  /* GNU keyword. */
-#elif defined(_MSC_VER) || defined(UNDER_CE)
-#   define gcmINLINE            __inline    /* Internal keyword. */
-#else
-#   error "gcmINLINE: Platform could not be determined"
-#endif
-
-/* Possible debug flags. */
-#define gcdDEBUG_NONE           0
-#define gcdDEBUG_ALL            (1 << 0)
-#define gcdDEBUG_FATAL          (1 << 1)
-#define gcdDEBUG_TRACE          (1 << 2)
-#define gcdDEBUG_BREAK          (1 << 3)
-#define gcdDEBUG_ASSERT         (1 << 4)
-#define gcdDEBUG_CODE           (1 << 5)
-#define gcdDEBUG_STACK          (1 << 6)
-
-#define gcmIS_DEBUG(flag)       ( gcdDEBUG & (flag | gcdDEBUG_ALL) )
-
-#ifndef gcdDEBUG
-#if (defined(DBG) && DBG) || defined(DEBUG) || defined(_DEBUG)
-#       define gcdDEBUG         gcdDEBUG_ALL
-#   else
-#       define gcdDEBUG         gcdDEBUG_NONE
-#   endif
-#endif
-
-#ifdef _USRDLL
-#ifdef _MSC_VER
-#ifdef HAL_EXPORTS
-#           define HALAPI       __declspec(dllexport)
-#       else
-#           define HALAPI       __declspec(dllimport)
-#       endif
-#       define HALDECL          __cdecl
-#   else
-#ifdef HAL_EXPORTS
-#           define HALAPI
-#       else
-#           define HALAPI       extern
-#       endif
-#   endif
-#else
-#   define HALAPI
-#   define HALDECL
-#endif
-
-/******************************************************************************\
-********************************** Common Types ********************************
-\******************************************************************************/
-
-#define gcvFALSE                0
-#define gcvTRUE                 1
-
-#define gcvINFINITE             ((gctUINT32) ~0U)
-
-#define gcvINVALID_HANDLE       ((gctHANDLE) ~0U)
-
-typedef int                     gctBOOL;
-typedef gctBOOL *               gctBOOL_PTR;
-
-typedef int                     gctINT;
-typedef signed char             gctINT8;
-typedef signed short            gctINT16;
-typedef signed int              gctINT32;
-typedef signed long long        gctINT64;
-
-typedef gctINT *                gctINT_PTR;
-typedef gctINT8 *               gctINT8_PTR;
-typedef gctINT16 *              gctINT16_PTR;
-typedef gctINT32 *              gctINT32_PTR;
-typedef gctINT64 *              gctINT64_PTR;
-
-typedef unsigned int            gctUINT;
-typedef unsigned char           gctUINT8;
-typedef unsigned short          gctUINT16;
-typedef unsigned int            gctUINT32;
-typedef unsigned long long      gctUINT64;
-typedef uintptr_t               gctUINTPTR_T;
-
-typedef gctUINT *               gctUINT_PTR;
-typedef gctUINT8 *              gctUINT8_PTR;
-typedef gctUINT16 *             gctUINT16_PTR;
-typedef gctUINT32 *             gctUINT32_PTR;
-typedef gctUINT64 *             gctUINT64_PTR;
-
-typedef size_t                  gctSIZE_T;
-typedef gctSIZE_T *             gctSIZE_T_PTR;
-typedef gctUINT32               gctTRACE;
-
-#ifdef __cplusplus
-#   define gcvNULL              0
-#else
-#   define gcvNULL              ((void *) 0)
-#endif
-
-#define gcvMAXINT8              0x7f
-#define gcvMININT8              0x80
-#define gcvMAXINT16             0x7fff
-#define gcvMININT16             0x8000
-#define gcvMAXINT32             0x7fffffff
-#define gcvMININT32             0x80000000
-#define gcvMAXINT64             0x7fffffffffffffff
-#define gcvMININT64             0x8000000000000000
-#define gcvMAXUINT8             0xff
-#define gcvMINUINT8             0x0
-#define gcvMAXUINT16            0xffff
-#define gcvMINUINT16            0x8000
-#define gcvMAXUINT32            0xffffffff
-#define gcvMINUINT32            0x80000000
-#define gcvMAXUINT64            0xffffffffffffffff
-#define gcvMINUINT64            0x8000000000000000
-#define gcvMAXUINTPTR_T         (~(gctUINTPTR_T)0)
-
-typedef float                   gctFLOAT;
-typedef signed int              gctFIXED_POINT;
-typedef float *                 gctFLOAT_PTR;
-
-typedef void *                  gctPHYS_ADDR;
-typedef void *                  gctHANDLE;
-typedef void *                  gctFILE;
-typedef void *                  gctSIGNAL;
-typedef void *                  gctWINDOW;
-typedef void *                  gctIMAGE;
-typedef void *                  gctSYNC_POINT;
-typedef void *                  gctSHBUF;
-
-typedef void *                  gctSEMAPHORE;
-
-typedef void *                  gctPOINTER;
-typedef const void *            gctCONST_POINTER;
-
-typedef char                    gctCHAR;
-typedef char *                  gctSTRING;
-typedef const char *            gctCONST_STRING;
-
-typedef struct _gcsCOUNT_STRING
-{
-    gctSIZE_T                   Length;
-    gctCONST_STRING             String;
-}
-gcsCOUNT_STRING;
-
-typedef union _gcuFLOAT_UINT32
-{
-    gctFLOAT    f;
-    gctUINT32   u;
-}
-gcuFLOAT_UINT32;
-
-/* Fixed point constants. */
-#define gcvZERO_X               ((gctFIXED_POINT) 0x00000000)
-#define gcvHALF_X               ((gctFIXED_POINT) 0x00008000)
-#define gcvONE_X                ((gctFIXED_POINT) 0x00010000)
-#define gcvNEGONE_X             ((gctFIXED_POINT) 0xFFFF0000)
-#define gcvTWO_X                ((gctFIXED_POINT) 0x00020000)
-
-
-
-#define gcmFIXEDCLAMP_NEG1_TO_1(_x) \
-    (((_x) < gcvNEGONE_X) \
-        ? gcvNEGONE_X \
-        : (((_x) > gcvONE_X) \
-            ? gcvONE_X \
-            : (_x)))
-
-#define gcmFLOATCLAMP_NEG1_TO_1(_f) \
-    (((_f) < -1.0f) \
-        ? -1.0f \
-        : (((_f) > 1.0f) \
-            ? 1.0f \
-            : (_f)))
-
-
-#define gcmFIXEDCLAMP_0_TO_1(_x) \
-    (((_x) < 0) \
-        ? 0 \
-        : (((_x) > gcvONE_X) \
-            ? gcvONE_X \
-            : (_x)))
-
-#define gcmFLOATCLAMP_0_TO_1(_f) \
-    (((_f) < 0.0f) \
-        ? 0.0f \
-        : (((_f) > 1.0f) \
-            ? 1.0f \
-            : (_f)))
-
-
-/******************************************************************************\
-******************************* Multicast Values *******************************
-\******************************************************************************/
-
-/* Value types. */
-typedef enum _gceVALUE_TYPE
-{
-    gcvVALUE_UINT = 0x0,
-    gcvVALUE_FIXED,
-    gcvVALUE_FLOAT,
-    gcvVALUE_INT,
-
-    /*
-    ** The value need be unsigned denormalized. clamp (0.0-1.0) should be done first.
-    */
-    gcvVALUE_FLAG_UNSIGNED_DENORM = 0x00010000,
-
-    /*
-    ** The value need be signed denormalized. clamp (-1.0-1.0) should be done first.
-    */
-    gcvVALUE_FLAG_SIGNED_DENORM   = 0x00020000,
-
-    /*
-    ** The value need to gammar
-    */
-    gcvVALUE_FLAG_GAMMAR          = 0x00040000,
-
-    /*
-    ** The value need to convert from float to float16
-    */
-    gcvVALUE_FLAG_FLOAT_TO_FLOAT16 = 0x0080000,
-
-    /*
-    ** Mask for flag field.
-    */
-    gcvVALUE_FLAG_MASK            = 0xFFFF0000,
-}
-gceVALUE_TYPE;
-
-/* Value unions. */
-typedef union _gcuVALUE
-{
-    gctUINT                     uintValue;
-    gctFIXED_POINT              fixedValue;
-    gctFLOAT                    floatValue;
-    gctINT                      intValue;
-}
-gcuVALUE;
-
-
-
-
-/* Stringizing macro. */
-#define gcmSTRING(Value)        #Value
-
-/******************************************************************************\
-******************************* Fixed Point Math *******************************
-\******************************************************************************/
-
-#define gcmXMultiply(x1, x2)            gcoMATH_MultiplyFixed(x1, x2)
-#define gcmXDivide(x1, x2)              gcoMATH_DivideFixed(x1, x2)
-#define gcmXMultiplyDivide(x1, x2, x3)  gcoMATH_MultiplyDivideFixed(x1, x2, x3)
-
-/* 2D Engine profile. */
-typedef struct _gcs2D_PROFILE
-{
-    /* Cycle count.
-       32bit counter incremented every 2D clock cycle.
-       Wraps back to 0 when the counter overflows.
-    */
-    gctUINT32 cycleCount;
-
-    /* Pixels rendered by the 2D engine.
-       Resets to 0 every time it is read. */
-    gctUINT32 pixelsRendered;
-}
-gcs2D_PROFILE;
-
-/* Macro to combine four characters into a Charcater Code. */
-#define gcmCC(c1, c2, c3, c4) \
-( \
-    (char) (c1) \
-    | \
-    ((char) (c2) <<  8) \
-    | \
-    ((char) (c3) << 16) \
-    | \
-    ((char) (c4) << 24) \
-)
-
-#define gcmPRINTABLE(c)         ((((c) >= ' ') && ((c) <= '}')) ? ((c) != '%' ?  (c) : ' ') : ' ')
-
-#define gcmCC_PRINT(cc) \
-    gcmPRINTABLE((char) ( (cc)        & 0xFF)), \
-    gcmPRINTABLE((char) (((cc) >>  8) & 0xFF)), \
-    gcmPRINTABLE((char) (((cc) >> 16) & 0xFF)), \
-    gcmPRINTABLE((char) (((cc) >> 24) & 0xFF))
-
-/******************************************************************************\
-****************************** Function Parameters *****************************
-\******************************************************************************/
-
-#define IN
-#define OUT
-#define INOUT
-#define OPTIONAL
-
-/******************************************************************************\
-********************************* Status Codes *********************************
-\******************************************************************************/
-
-typedef enum _gceSTATUS
-{
-    gcvSTATUS_OK                    =   0,
-    gcvSTATUS_FALSE                 =   0,
-    gcvSTATUS_TRUE                  =   1,
-    gcvSTATUS_NO_MORE_DATA          =   2,
-    gcvSTATUS_CACHED                =   3,
-    gcvSTATUS_MIPMAP_TOO_LARGE      =   4,
-    gcvSTATUS_NAME_NOT_FOUND        =   5,
-    gcvSTATUS_NOT_OUR_INTERRUPT     =   6,
-    gcvSTATUS_MISMATCH              =   7,
-    gcvSTATUS_MIPMAP_TOO_SMALL      =   8,
-    gcvSTATUS_LARGER                =   9,
-    gcvSTATUS_SMALLER               =   10,
-    gcvSTATUS_CHIP_NOT_READY        =   11,
-    gcvSTATUS_NEED_CONVERSION       =   12,
-    gcvSTATUS_SKIP                  =   13,
-    gcvSTATUS_DATA_TOO_LARGE        =   14,
-    gcvSTATUS_INVALID_CONFIG        =   15,
-    gcvSTATUS_CHANGED               =   16,
-    gcvSTATUS_NOT_SUPPORT_DITHER    =   17,
-    gcvSTATUS_EXECUTED              =   18,
-    gcvSTATUS_TERMINATE             =   19,
-
-    gcvSTATUS_INVALID_ARGUMENT      =   -1,
-    gcvSTATUS_INVALID_OBJECT        =   -2,
-    gcvSTATUS_OUT_OF_MEMORY         =   -3,
-    gcvSTATUS_MEMORY_LOCKED         =   -4,
-    gcvSTATUS_MEMORY_UNLOCKED       =   -5,
-    gcvSTATUS_HEAP_CORRUPTED        =   -6,
-    gcvSTATUS_GENERIC_IO            =   -7,
-    gcvSTATUS_INVALID_ADDRESS       =   -8,
-    gcvSTATUS_CONTEXT_LOSSED        =   -9,
-    gcvSTATUS_TOO_COMPLEX           =   -10,
-    gcvSTATUS_BUFFER_TOO_SMALL      =   -11,
-    gcvSTATUS_INTERFACE_ERROR       =   -12,
-    gcvSTATUS_NOT_SUPPORTED         =   -13,
-    gcvSTATUS_MORE_DATA             =   -14,
-    gcvSTATUS_TIMEOUT               =   -15,
-    gcvSTATUS_OUT_OF_RESOURCES      =   -16,
-    gcvSTATUS_INVALID_DATA          =   -17,
-    gcvSTATUS_INVALID_MIPMAP        =   -18,
-    gcvSTATUS_NOT_FOUND             =   -19,
-    gcvSTATUS_NOT_ALIGNED           =   -20,
-    gcvSTATUS_INVALID_REQUEST       =   -21,
-    gcvSTATUS_GPU_NOT_RESPONDING    =   -22,
-    gcvSTATUS_TIMER_OVERFLOW        =   -23,
-    gcvSTATUS_VERSION_MISMATCH      =   -24,
-    gcvSTATUS_LOCKED                =   -25,
-    gcvSTATUS_INTERRUPTED           =   -26,
-    gcvSTATUS_DEVICE                =   -27,
-    gcvSTATUS_NOT_MULTI_PIPE_ALIGNED =   -28,
-
-    /* Linker errors. */
-    gcvSTATUS_GLOBAL_TYPE_MISMATCH              =   -1000,
-    gcvSTATUS_TOO_MANY_ATTRIBUTES               =   -1001,
-    gcvSTATUS_TOO_MANY_UNIFORMS                 =   -1002,
-    gcvSTATUS_TOO_MANY_VARYINGS                 =   -1003,
-    gcvSTATUS_UNDECLARED_VARYING                =   -1004,
-    gcvSTATUS_VARYING_TYPE_MISMATCH             =   -1005,
-    gcvSTATUS_MISSING_MAIN                      =   -1006,
-    gcvSTATUS_NAME_MISMATCH                     =   -1007,
-    gcvSTATUS_INVALID_INDEX                     =   -1008,
-    gcvSTATUS_UNIFORM_MISMATCH                  =   -1009,
-    gcvSTATUS_UNSAT_LIB_SYMBOL                  =   -1010,
-    gcvSTATUS_TOO_MANY_SHADERS                  =   -1011,
-    gcvSTATUS_LINK_INVALID_SHADERS              =   -1012,
-    gcvSTATUS_CS_NO_WORKGROUP_SIZE              =   -1013,
-    gcvSTATUS_LINK_LIB_ERROR                    =   -1014,
-    gcvSTATUS_SHADER_VERSION_MISMATCH           =   -1015,
-    gcvSTATUS_TOO_MANY_INSTRUCTION              =   -1016,
-    gcvSTATUS_SSBO_MISMATCH                     =   -1017,
-    gcvSTATUS_TOO_MANY_OUTPUT                   =   -1018,
-    gcvSTATUS_TOO_MANY_INPUT                    =   -1019,
-    gcvSTATUS_NOT_SUPPORT_CL                    =   -1020,
-    gcvSTATUS_NOT_SUPPORT_INTEGER               =   -1021,
-    gcvSTATUS_UNIFORM_TYPE_MISMATCH             =   -1022,
-    gcvSTATUS_TOO_MANY_SAMPLER                  =   -1023,
-
-    /* Compiler errors. */
-    gcvSTATUS_COMPILER_FE_PREPROCESSOR_ERROR    =   -2000,
-    gcvSTATUS_COMPILER_FE_PARSER_ERROR          =   -2001,
-
-    /* Recompilation Errors */
-    gcvSTATUS_RECOMPILER_CONVERT_UNIMPLEMENTED  =   -3000,
-}
-gceSTATUS;
-
-/******************************************************************************\
-********************************* Status Macros ********************************
-\******************************************************************************/
-
-#define gcmIS_ERROR(status)         (status < 0)
-#define gcmNO_ERROR(status)         (status >= 0)
-#define gcmIS_SUCCESS(status)       (status == gcvSTATUS_OK)
-
-/******************************************************************************\
-********************************* Field Macros *********************************
-\******************************************************************************/
-
-#define __gcmSTART(reg_field) \
-    (0 ? reg_field)
-
-#define __gcmEND(reg_field) \
-    (1 ? reg_field)
-
-#define __gcmGETSIZE(reg_field) \
-    (__gcmEND(reg_field) - __gcmSTART(reg_field) + 1)
-
-#define __gcmALIGN(data, reg_field) \
-    (((gctUINT32) (data)) << __gcmSTART(reg_field))
-
-#define __gcmMASK(reg_field) \
-    ((gctUINT32) ((__gcmGETSIZE(reg_field) == 32) \
-        ?  ~0 \
-        : (~(~0 << __gcmGETSIZE(reg_field)))))
-
-/*******************************************************************************
-**
-**  gcmFIELDMASK
-**
-**      Get aligned field mask.
-**
-**  ARGUMENTS:
-**
-**      reg     Name of register.
-**      field   Name of field within register.
-*/
-#define gcmFIELDMASK(reg, field) \
-( \
-    __gcmALIGN(__gcmMASK(reg##_##field), reg##_##field) \
-)
-
-/*******************************************************************************
-**
-**  gcmGETFIELD
-**
-**      Extract the value of a field from specified data.
-**
-**  ARGUMENTS:
-**
-**      data    Data value.
-**      reg     Name of register.
-**      field   Name of field within register.
-*/
-#define gcmGETFIELD(data, reg, field) \
-( \
-    ((((gctUINT32) (data)) >> __gcmSTART(reg##_##field)) \
-        & __gcmMASK(reg##_##field)) \
-)
-
-/*******************************************************************************
-**
-**  gcmSETFIELD
-**
-**      Set the value of a field within specified data.
-**
-**  ARGUMENTS:
-**
-**      data    Data value.
-**      reg     Name of register.
-**      field   Name of field within register.
-**      value   Value for field.
-*/
-#define gcmSETFIELD(data, reg, field, value) \
-( \
-    (((gctUINT32) (data)) \
-        & ~__gcmALIGN(__gcmMASK(reg##_##field), reg##_##field)) \
-        |  __gcmALIGN((gctUINT32) (value) \
-            & __gcmMASK(reg##_##field), reg##_##field) \
-)
-
-/*******************************************************************************
-**
-**  gcmSETFIELDVALUE
-**
-**      Set the value of a field within specified data with a
-**      predefined value.
-**
-**  ARGUMENTS:
-**
-**      data    Data value.
-**      reg     Name of register.
-**      field   Name of field within register.
-**      value   Name of the value within the field.
-*/
-#define gcmSETFIELDVALUE(data, reg, field, value) \
-( \
-    (((gctUINT32) (data)) \
-        & ~__gcmALIGN(__gcmMASK(reg##_##field), reg##_##field)) \
-        |  __gcmALIGN(reg##_##field##_##value \
-            & __gcmMASK(reg##_##field), reg##_##field) \
-)
-
-/*******************************************************************************
-**
-**  gcmGETMASKEDFIELDMASK
-**
-**      Determine field mask of a masked field.
-**
-**  ARGUMENTS:
-**
-**      reg     Name of register.
-**      field   Name of field within register.
-*/
-#define gcmGETMASKEDFIELDMASK(reg, field) \
-( \
-    gcmSETFIELD(0, reg,          field, ~0) | \
-    gcmSETFIELD(0, reg, MASK_ ## field, ~0)   \
-)
-
-/*******************************************************************************
-**
-**  gcmSETMASKEDFIELD
-**
-**      Set the value of a masked field with specified data.
-**
-**  ARGUMENTS:
-**
-**      reg     Name of register.
-**      field   Name of field within register.
-**      value   Value for field.
-*/
-#define gcmSETMASKEDFIELD(reg, field, value) \
-( \
-    gcmSETFIELD     (~0, reg,          field, value) & \
-    gcmSETFIELDVALUE(~0, reg, MASK_ ## field, ENABLED) \
-)
-
-/*******************************************************************************
-**
-**  gcmSETMASKEDFIELDVALUE
-**
-**      Set the value of a masked field with specified data.
-**
-**  ARGUMENTS:
-**
-**      reg     Name of register.
-**      field   Name of field within register.
-**      value   Value for field.
-*/
-#define gcmSETMASKEDFIELDVALUE(reg, field, value) \
-( \
-    gcmSETFIELDVALUE(~0, reg,          field, value) & \
-    gcmSETFIELDVALUE(~0, reg, MASK_ ## field, ENABLED) \
-)
-
-/*******************************************************************************
-**
-**  gcmVERIFYFIELDVALUE
-**
-**      Verify if the value of a field within specified data equals a
-**      predefined value.
-**
-**  ARGUMENTS:
-**
-**      data    Data value.
-**      reg     Name of register.
-**      field   Name of field within register.
-**      value   Name of the value within the field.
-*/
-#define gcmVERIFYFIELDVALUE(data, reg, field, value) \
-( \
-    (((gctUINT32) (data)) >> __gcmSTART(reg##_##field) & \
-                             __gcmMASK(reg##_##field)) \
-        == \
-    (reg##_##field##_##value & __gcmMASK(reg##_##field)) \
-)
-
-/*******************************************************************************
-**  Bit field macros.
-*/
-
-#define __gcmSTARTBIT(Field) \
-    ( 1 ? Field )
-
-#define __gcmBITSIZE(Field) \
-    ( 0 ? Field )
-
-#define __gcmBITMASK(Field) \
-( \
-    (1 << __gcmBITSIZE(Field)) - 1 \
-)
-
-#define gcmGETBITS(Value, Type, Field) \
-( \
-    ( ((Type) (Value)) >> __gcmSTARTBIT(Field) ) \
-    & \
-    __gcmBITMASK(Field) \
-)
-
-#define gcmSETBITS(Value, Type, Field, NewValue) \
-( \
-    ( ((Type) (Value)) \
-    & ~(__gcmBITMASK(Field) << __gcmSTARTBIT(Field)) \
-    ) \
-    | \
-    ( ( ((Type) (NewValue)) \
-      & __gcmBITMASK(Field) \
-      ) << __gcmSTARTBIT(Field) \
-    ) \
-)
-
-/*******************************************************************************
-**
-**  gcmISINREGRANGE
-**
-**      Verify whether the specified address is in the register range.
-**
-**  ARGUMENTS:
-**
-**      Address Address to be verified.
-**      Name    Name of a register.
-*/
-
-#define gcmISINREGRANGE(Address, Name) \
-( \
-    ((Address & (~0U << Name ## _LSB)) == (Name ## _Address >> 2)) \
-)
-
-/******************************************************************************\
-******************************** Ceiling Macro ********************************
-\******************************************************************************/
-#define gcmCEIL(x) ((x - (gctUINT32)x) == 0 ? (gctUINT32)x : (gctUINT32)x + 1)
-
-/******************************************************************************\
-******************************** Min/Max Macros ********************************
-\******************************************************************************/
-
-#define gcmMIN(x, y)            (((x) <= (y)) ?  (x) :  (y))
-#define gcmMAX(x, y)            (((x) >= (y)) ?  (x) :  (y))
-#define gcmCLAMP(x, min, max)   (((x) < (min)) ? (min) : \
-                                 ((x) > (max)) ? (max) : (x))
-#define gcmABS(x)               (((x) < 0)    ? -(x) :  (x))
-#define gcmNEG(x)               (((x) < 0)    ?  (x) : -(x))
-
-/******************************************************************************\
-******************************** Bit Macro ********************************
-\******************************************************************************/
-#define gcmBITSET(x, y)         ((x) & (y))
-/*******************************************************************************
-**
-**  gcmPTR2INT
-**
-**      Convert a pointer to an integer value.
-**
-**  ARGUMENTS:
-**
-**      p       Pointer value.
-*/
-#define gcmPTR2INT(p) \
-( \
-    (gctUINTPTR_T) (p) \
-)
-
-#define gcmPTR2INT32(p) \
-( \
-    (gctUINT32)(gctUINTPTR_T) (p) \
-)
-
-/*******************************************************************************
-**
-**  gcmINT2PTR
-**
-**      Convert an integer value into a pointer.
-**
-**  ARGUMENTS:
-**
-**      v       Integer value.
-*/
-
-#define gcmINT2PTR(i) \
-( \
-    (gctPOINTER) (gctUINTPTR_T)(i) \
-)
-
-/*******************************************************************************
-**
-**  gcmOFFSETOF
-**
-**      Compute the byte offset of a field inside a structure.
-**
-**  ARGUMENTS:
-**
-**      s       Structure name.
-**      field   Field name.
-*/
-#define gcmOFFSETOF(s, field) \
-( \
-    gcmPTR2INT32(& (((struct s *) 0)->field)) \
-)
-
-/*******************************************************************************
-**
-** gcmSWAB32
-**
-**      Return a value with all bytes in the 32 bit argument swapped.
-*/
-#define gcmSWAB32(x) ((gctUINT32)( \
-        (((gctUINT32)(x) & (gctUINT32)0x000000FFUL) << 24) | \
-        (((gctUINT32)(x) & (gctUINT32)0x0000FF00UL) << 8)  | \
-        (((gctUINT32)(x) & (gctUINT32)0x00FF0000UL) >> 8)  | \
-        (((gctUINT32)(x) & (gctUINT32)0xFF000000UL) >> 24)))
-
-/*******************************************************************************
-***** Database ****************************************************************/
-
-typedef struct _gcsDATABASE_COUNTERS
-{
-    /* Number of currently allocated bytes. */
-    gctUINT64                   bytes;
-
-    /* Maximum number of bytes allocated (memory footprint). */
-    gctUINT64                   maxBytes;
-
-    /* Total number of bytes allocated. */
-    gctUINT64                   totalBytes;
-}
-gcsDATABASE_COUNTERS;
-
-typedef struct _gcuDATABASE_INFO
-{
-    /* Counters. */
-    gcsDATABASE_COUNTERS        counters;
-
-    /* Time value. */
-    gctUINT64                   time;
-}
-gcuDATABASE_INFO;
-
-/*******************************************************************************
-***** Frame database **********************************************************/
-
-/* gcsHAL_FRAME_INFO */
-typedef struct _gcsHAL_FRAME_INFO
-{
-    /* Current timer tick. */
-    OUT gctUINT64               ticks;
-
-    /* Bandwidth counters. */
-    OUT gctUINT                 readBytes8[8];
-    OUT gctUINT                 writeBytes8[8];
-
-    /* Counters. */
-    OUT gctUINT                 cycles[8];
-    OUT gctUINT                 idleCycles[8];
-    OUT gctUINT                 mcCycles[8];
-    OUT gctUINT                 readRequests[8];
-    OUT gctUINT                 writeRequests[8];
-
-    /* 3D counters. */
-    OUT gctUINT                 vertexCount;
-    OUT gctUINT                 primitiveCount;
-    OUT gctUINT                 rejectedPrimitives;
-    OUT gctUINT                 culledPrimitives;
-    OUT gctUINT                 clippedPrimitives;
-    OUT gctUINT                 outPrimitives;
-    OUT gctUINT                 inPrimitives;
-    OUT gctUINT                 culledQuadCount;
-    OUT gctUINT                 totalQuadCount;
-    OUT gctUINT                 quadCount;
-    OUT gctUINT                 totalPixelCount;
-
-    /* PE counters. */
-    OUT gctUINT                 colorKilled[8];
-    OUT gctUINT                 colorDrawn[8];
-    OUT gctUINT                 depthKilled[8];
-    OUT gctUINT                 depthDrawn[8];
-
-    /* Shader counters. */
-    OUT gctUINT                 shaderCycles;
-    OUT gctUINT                 vsInstructionCount;
-    OUT gctUINT                 vsTextureCount;
-    OUT gctUINT                 psInstructionCount;
-    OUT gctUINT                 psTextureCount;
-
-    /* Texture counters. */
-    OUT gctUINT                 bilinearRequests;
-    OUT gctUINT                 trilinearRequests;
-    OUT gctUINT                 txBytes8;
-    OUT gctUINT                 txHitCount;
-    OUT gctUINT                 txMissCount;
-}
-gcsHAL_FRAME_INFO;
-
-#if gcdLINK_QUEUE_SIZE
-typedef struct _gckLINKDATA * gckLINKDATA;
-struct _gckLINKDATA
-{
-    gctUINT32                   start;
-    gctUINT32                   end;
-    gctUINT32                   pid;
-};
-
-typedef struct _gckLINKQUEUE * gckLINKQUEUE;
-struct _gckLINKQUEUE
-{
-    struct _gckLINKDATA         data[gcdLINK_QUEUE_SIZE];
-    gctUINT32                   rear;
-    gctUINT32                   front;
-    gctUINT32                   count;
-};
-#endif
-
-#define gcdENTRY_QUEUE_SIZE 256
-typedef struct _gckENTRYDATA * gckENTRYDATA;
-struct _gckENTRYDATA
-{
-    gctUINT32                   physical;
-    gctUINT32                   bytes;
-};
-
-typedef struct _gckENTRYQUEUE * gckENTRYQUEUE;
-struct _gckENTRYQUEUE
-{
-    struct _gckENTRYDATA        data[gcdENTRY_QUEUE_SIZE];
-    gctUINT32                   rear;
-    gctUINT32                   front;
-    gctUINT32                   count;
-};
-
-typedef enum _gceTRACEMODE
-{
-    gcvTRACEMODE_NONE     = 0,
-    gcvTRACEMODE_FULL     = 1,
-    gcvTRACEMODE_LOGGER   = 2,
-    gcvTRACEMODE_PRE      = 3,
-    gcvTRACEMODE_POST     = 4,
-    gcvTRACEMODE_SYSTRACE = 5,
-
-} gceTRACEMODE;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gc_hal_types_h_ */

+ 0 - 31
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_version.h

@@ -1,31 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_version_h_
-#define __gc_hal_version_h_
-
-#define gcvVERSION_MAJOR        5
-
-#define gcvVERSION_MINOR        0
-
-#define gcvVERSION_PATCH        11
-
-#define gcvVERSION_BUILD     28018
-
-#define gcvVERSION_STRING    "5.0.11.p5.28018"
-
-#define gcvVERSION_DATE      __DATE__
-
-#define gcvVERSION_TIME      __TIME__
-
-#endif /* __gc_hal_version_h_ */

+ 0 - 889
buildroot-external/package/demo-v4l2-1668e/include/sys/HAL/gc_hal_vg.h

@@ -1,889 +0,0 @@
-/****************************************************************************
-*
-*    Copyright (c) 2005 - 2014 by Vivante Corp.  All rights reserved.
-*
-*    The material in this file is confidential and contains trade secrets
-*    of Vivante Corporation. This is proprietary information owned by
-*    Vivante Corporation. No part of this work may be disclosed,
-*    reproduced, copied, transmitted, or used in any way for any purpose,
-*    without the express written permission of Vivante Corporation.
-*
-*****************************************************************************/
-
-
-#ifndef __gc_hal_vg_h_
-#define __gc_hal_vg_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#include "gc_hal_rename.h"
-#include "gc_hal_types.h"
-#include "gc_hal_enum.h"
-#include "gc_hal_base.h"
-
-#if gcdENABLE_VG
-
-/* Thread routine type. */
-#if defined(LINUX)
-    typedef gctINT              gctTHREADFUNCRESULT;
-    typedef gctPOINTER          gctTHREADFUNCPARAMETER;
-#   define  gctTHREADFUNCTYPE
-#elif defined(WIN32)
-    typedef gctUINT             gctTHREADFUNCRESULT;
-    typedef gctPOINTER          gctTHREADFUNCPARAMETER;
-#   define  gctTHREADFUNCTYPE   __stdcall
-#elif defined(__QNXNTO__)
-    typedef void *              gctTHREADFUNCRESULT;
-    typedef gctPOINTER          gctTHREADFUNCPARAMETER;
-#   define  gctTHREADFUNCTYPE
-#endif
-
-typedef gctTHREADFUNCRESULT (gctTHREADFUNCTYPE * gctTHREADFUNC) (
-    gctTHREADFUNCPARAMETER ThreadParameter
-    );
-
-
-#if defined(gcvDEBUG)
-#   undef gcvDEBUG
-#endif
-
-#define gcdFORCE_DEBUG 0
-#define gcdFORCE_MESSAGES 0
-
-
-#if DBG || defined(DEBUG) || defined(_DEBUG) || gcdFORCE_DEBUG
-#   define gcvDEBUG 1
-#else
-#   define gcvDEBUG 0
-#endif
-
-#define _gcmERROR_RETURN(prefix, func) \
-    status = func; \
-    if (gcmIS_ERROR(status)) \
-    { \
-        prefix##PRINT_VERSION(); \
-        prefix##TRACE(gcvLEVEL_ERROR, \
-            #prefix "ERR_RETURN: status=%d(%s) @ %s(%d)", \
-            status, gcoOS_DebugStatus2Name(status), __FUNCTION__, __LINE__); \
-        return status; \
-    } \
-    do { } while (gcvFALSE)
-
-#define gcmERROR_RETURN(func)         _gcmERROR_RETURN(gcm, func)
-
-#define gcmLOG_LOCATION()
-
-#define gcmkIS_ERROR(status)        (status < 0)
-
-#define gcmALIGNDOWN(n, align) \
-( \
-    (n) & ~((align) - 1) \
-)
-
-#define gcmIS_VALID_INDEX(Index, Array) \
-    (((gctUINT) (Index)) < gcmCOUNTOF(Array))
-
-
-#define gcmIS_NAN(x) \
-( \
-    ((* (gctUINT32_PTR) &(x)) & 0x7FFFFFFF) == 0x7FFFFFFF \
-)
-
-#define gcmLERP(v1, v2, w) \
-    ((v1) * (w) + (v2) * (1.0f - (w)))
-
-#define gcmINTERSECT(Start1, Start2, Length) \
-    (gcmABS((Start1) - (Start2)) < (Length))
-
-/*******************************************************************************
-**
-**  gcmERR_GOTO
-**
-**      Prints a message and terminates the current loop on error.
-**
-**  ASSUMPTIONS:
-**
-**      'status' variable of gceSTATUS type must be defined.
-**
-**  ARGUMENTS:
-**
-**      Function
-**          Function to evaluate.
-*/
-
-#define gcmERR_GOTO(Function) \
-    status = Function; \
-    if (gcmIS_ERROR(status)) \
-    { \
-        gcmTRACE( \
-            gcvLEVEL_ERROR, \
-            "gcmERR_GOTO: status=%d @ line=%d in function %s.\n", \
-            status, __LINE__, __FUNCTION__ \
-            ); \
-        goto ErrorHandler; \
-    }
-
-#if gcvDEBUG || gcdFORCE_MESSAGES
-#   define gcmVERIFY_BOOLEAN(Expression) \
-        gcmASSERT( \
-            ( (Expression) == gcvFALSE ) || \
-            ( (Expression) == gcvTRUE  )    \
-            )
-#else
-#   define gcmVERIFY_BOOLEAN(Expression)
-#endif
-
-/*******************************************************************************
-**
-**  gcmVERIFYFIELDFIT
-**
-**      Verify whether the value fits in the field.
-**
-**  ARGUMENTS:
-**
-**      data    Data value.
-**      reg     Name of register.
-**      field   Name of field within register.
-**      value   Value for field.
-*/
-#define gcmVERIFYFIELDFIT(reg, field, value) \
-    gcmASSERT( \
-        (value) <= gcmFIELDMAX(reg, field) \
-        )
-/*******************************************************************************
-**
-**  gcmFIELDMAX
-**
-**      Get field maximum value.
-**
-**  ARGUMENTS:
-**
-**      reg     Name of register.
-**      field   Name of field within register.
-*/
-#define gcmFIELDMAX(reg, field) \
-( \
-    (gctUINT32) \
-        ( \
-        (__gcmGETSIZE(reg##_##field) == 32) \
-                ?  ~0 \
-                : (~(~0 << __gcmGETSIZE(reg##_##field))) \
-        ) \
-)
-
-
-/* ANSI C does not have the 'f' functions, define replacements here. */
-#define gcmSINF(x)                      ((gctFLOAT) sin(x))
-#define gcmCOSF(x)                      ((gctFLOAT) cos(x))
-#define gcmASINF(x)                     ((gctFLOAT) asin(x))
-#define gcmACOSF(x)                     ((gctFLOAT) acos(x))
-#define gcmSQRTF(x)                     ((gctFLOAT) sqrt(x))
-#define gcmFABSF(x)                     ((gctFLOAT) fabs(x))
-#define gcmFMODF(x, y)                  ((gctFLOAT) fmod((x), (y)))
-#define gcmCEILF(x)                     ((gctFLOAT) ceil(x))
-#define gcmFLOORF(x)                    ((gctFLOAT) floor(x))
-
-
-
-/* Fixed point constants. */
-#define gcvZERO_X               ((gctFIXED_POINT) 0x00000000)
-#define gcvHALF_X               ((gctFIXED_POINT) 0x00008000)
-#define gcvONE_X                ((gctFIXED_POINT) 0x00010000)
-#define gcvNEGONE_X             ((gctFIXED_POINT) 0xFFFF0000)
-#define gcvTWO_X                ((gctFIXED_POINT) 0x00020000)
-
-/* Integer constants. */
-#define gcvMAX_POS_INT          ((gctINT) 0x7FFFFFFF)
-#define gcvMAX_NEG_INT          ((gctINT) 0x80000000)
-
-/* Float constants. */
-#define gcvMAX_POS_FLOAT        ((gctFLOAT)  3.4028235e+038)
-#define gcvMAX_NEG_FLOAT        ((gctFLOAT) -3.4028235e+038)
-
-/******************************************************************************\
-***************************** Miscellaneous Macro ******************************
-\******************************************************************************/
-
-#define gcmKB2BYTES(Kilobyte) \
-( \
-    (Kilobyte) << 10 \
-)
-
-#define gcmMB2BYTES(Megabyte) \
-( \
-    (Megabyte) << 20 \
-)
-
-#define gcmMAT(Matrix, Row, Column) \
-( \
-    (Matrix) [(Row) * 3 + (Column)] \
-)
-
-#define gcmMAKE2CHAR(Char1, Char2) \
-( \
-    ((gctUINT16) (gctUINT8) (Char1) << 0) | \
-    ((gctUINT16) (gctUINT8) (Char2) << 8) \
-)
-
-#define gcmMAKE4CHAR(Char1, Char2, Char3, Char4) \
-( \
-    ((gctUINT32)(gctUINT8) (Char1) <<  0) | \
-    ((gctUINT32)(gctUINT8) (Char2) <<  8) | \
-    ((gctUINT32)(gctUINT8) (Char3) << 16) | \
-    ((gctUINT32)(gctUINT8) (Char4) << 24) \
-)
-
-/* some platforms need to fix the physical address for HW to access*/
-#define gcmFIXADDRESS(address) \
-(\
-    (address)\
-)
-
-#define gcmkFIXADDRESS(address) \
-(\
-    (address)\
-)
-
-/******************************************************************************\
-****************************** Kernel Debug Macro ******************************
-\******************************************************************************/
-
-/* Set signal to signaled state for specified process. */
-gceSTATUS
-gckOS_SetSignal(
-    IN gckOS Os,
-    IN gctHANDLE Process,
-    IN gctSIGNAL Signal
-    );
-
-/* Return the kernel logical pointer for the given physical one. */
-gceSTATUS
-gckOS_GetKernelLogical(
-    IN gckOS Os,
-    IN gctUINT32 Address,
-    OUT gctPOINTER * KernelPointer
-    );
-
-/* Return the kernel logical pointer for the given physical one. */
-gceSTATUS
-gckOS_GetKernelLogicalEx(
-    IN gckOS Os,
-    IN gceCORE Core,
-    IN gctUINT32 Address,
-    OUT gctPOINTER * KernelPointer
-    );
-
-/*----------------------------------------------------------------------------*/
-/*----------------------------- Semaphore Object -----------------------------*/
-
-/* Increment the value of a semaphore. */
-gceSTATUS
-gckOS_IncrementSemaphore(
-    IN gckOS Os,
-    IN gctSEMAPHORE Semaphore
-    );
-
-/* Decrement the value of a semaphore (waiting might occur). */
-gceSTATUS
-gckOS_DecrementSemaphore(
-    IN gckOS Os,
-    IN gctSEMAPHORE Semaphore
-    );
-
-
-/*----------------------------------------------------------------------------*/
-/*------------------------------- Thread Object ------------------------------*/
-
-/* Start a thread. */
-gceSTATUS
-gckOS_StartThread(
-    IN gckOS Os,
-    IN gctTHREADFUNC ThreadFunction,
-    IN gctPOINTER ThreadParameter,
-    OUT gctTHREAD * Thread
-    );
-
-/* Stop a thread. */
-gceSTATUS
-gckOS_StopThread(
-    IN gckOS Os,
-    IN gctTHREAD Thread
-    );
-
-/* Verify whether the thread is still running. */
-gceSTATUS
-gckOS_VerifyThread(
-    IN gckOS Os,
-    IN gctTHREAD Thread
-    );
-
-
-/* Construct a new gckVGKERNEL object. */
-gceSTATUS
-gckVGKERNEL_Construct(
-    IN gckOS Os,
-    IN gctPOINTER Context,
-    IN gckKERNEL  inKernel,
-    OUT gckVGKERNEL * Kernel
-    );
-
-/* Destroy an gckVGKERNEL object. */
-gceSTATUS
-gckVGKERNEL_Destroy(
-    IN gckVGKERNEL Kernel
-    );
-
-/* Allocate linear video memory. */
-gceSTATUS
-gckVGKERNEL_AllocateLinearMemory(
-    IN gckKERNEL Kernel,
-    IN OUT gcePOOL * Pool,
-    IN gctSIZE_T Bytes,
-    IN gctUINT32 Alignment,
-    IN gceSURF_TYPE Type,
-    OUT gcuVIDMEM_NODE_PTR * Node
-    );
-
-/* Unmap memory. */
-gceSTATUS
-gckKERNEL_UnmapMemory(
-    IN gckKERNEL Kernel,
-    IN gctPHYS_ADDR Physical,
-    IN gctSIZE_T Bytes,
-    IN gctPOINTER Logical
-    );
-
-/* Dispatch a user-level command. */
-gceSTATUS
-gckVGKERNEL_Dispatch(
-    IN gckKERNEL Kernel,
-    IN gctBOOL FromUser,
-    IN OUT struct _gcsHAL_INTERFACE * Interface
-    );
-
-/* Query command buffer requirements. */
-gceSTATUS
-gckKERNEL_QueryCommandBuffer(
-    IN gckKERNEL Kernel,
-    OUT gcsCOMMAND_BUFFER_INFO_PTR Information
-    );
-
-/******************************************************************************\
-******************************* gckVGHARDWARE Object ******************************
-\******************************************************************************/
-
-/* Construct a new gckVGHARDWARE object. */
-gceSTATUS
-gckVGHARDWARE_Construct(
-    IN gckOS Os,
-    OUT gckVGHARDWARE * Hardware
-    );
-
-/* Destroy an gckVGHARDWARE object. */
-gceSTATUS
-gckVGHARDWARE_Destroy(
-    IN gckVGHARDWARE Hardware
-    );
-
-/* Query system memory requirements. */
-gceSTATUS
-gckVGHARDWARE_QuerySystemMemory(
-    IN gckVGHARDWARE Hardware,
-    OUT gctSIZE_T * SystemSize,
-    OUT gctUINT32 * SystemBaseAddress
-    );
-
-/* Build virtual address. */
-gceSTATUS
-gckVGHARDWARE_BuildVirtualAddress(
-    IN gckVGHARDWARE Hardware,
-    IN gctUINT32 Index,
-    IN gctUINT32 Offset,
-    OUT gctUINT32 * Address
-    );
-
-/* Kickstart the command processor. */
-gceSTATUS
-gckVGHARDWARE_Execute(
-    IN gckVGHARDWARE Hardware,
-    IN gctUINT32 Address,
-    IN gctUINT32 Count
-    );
-
-/* Query the available memory. */
-gceSTATUS
-gckVGHARDWARE_QueryMemory(
-    IN gckVGHARDWARE Hardware,
-    OUT gctSIZE_T * InternalSize,
-    OUT gctUINT32 * InternalBaseAddress,
-    OUT gctUINT32 * InternalAlignment,
-    OUT gctSIZE_T * ExternalSize,
-    OUT gctUINT32 * ExternalBaseAddress,
-    OUT gctUINT32 * ExternalAlignment,
-    OUT gctUINT32 * HorizontalTileSize,
-    OUT gctUINT32 * VerticalTileSize
-    );
-
-/* Query the identity of the hardware. */
-gceSTATUS
-gckVGHARDWARE_QueryChipIdentity(
-    IN gckVGHARDWARE Hardware,
-    OUT gceCHIPMODEL* ChipModel,
-    OUT gctUINT32* ChipRevision,
-    OUT gctUINT32* ChipFeatures,
-    OUT gctUINT32* ChipMinorFeatures,
-    OUT gctUINT32* ChipMinorFeatures1
-    );
-
-/* Convert an API format. */
-gceSTATUS
-gckVGHARDWARE_ConvertFormat(
-    IN gckVGHARDWARE Hardware,
-    IN gceSURF_FORMAT Format,
-    OUT gctUINT32 * BitsPerPixel,
-    OUT gctUINT32 * BytesPerTile
-    );
-
-/* Split a harwdare specific address into API stuff. */
-gceSTATUS
-gckVGHARDWARE_SplitMemory(
-    IN gckVGHARDWARE Hardware,
-    IN gctUINT32 Address,
-    OUT gcePOOL * Pool,
-    OUT gctUINT32 * Offset
-    );
-
-/* Align size to tile boundary. */
-gceSTATUS
-gckVGHARDWARE_AlignToTile(
-    IN gckVGHARDWARE Hardware,
-    IN gceSURF_TYPE Type,
-    IN OUT gctUINT32_PTR Width,
-    IN OUT gctUINT32_PTR Height
-    );
-
-/* Convert logical address to hardware specific address. */
-gceSTATUS
-gckVGHARDWARE_ConvertLogical(
-    IN gckVGHARDWARE Hardware,
-    IN gctPOINTER Logical,
-    IN gctBOOL InUserSpace,
-    OUT gctUINT32 * Address
-    );
-
-/* Program MMU. */
-gceSTATUS
-gckVGHARDWARE_SetMMU(
-    IN gckVGHARDWARE Hardware,
-    IN gctPOINTER Logical
-    );
-
-/* Flush the MMU. */
-gceSTATUS
-gckVGHARDWARE_FlushMMU(
-    IN gckVGHARDWARE Hardware
-    );
-
-/* Get idle register. */
-gceSTATUS
-gckVGHARDWARE_GetIdle(
-    IN gckVGHARDWARE Hardware,
-    OUT gctUINT32 * Data
-    );
-
-/* Flush the caches. */
-gceSTATUS
-gckVGHARDWARE_Flush(
-    IN gckVGHARDWARE Hardware,
-    IN gceKERNEL_FLUSH Flush,
-    IN gctPOINTER Logical,
-    IN OUT gctSIZE_T * Bytes
-    );
-
-/* Enable/disable fast clear. */
-gceSTATUS
-gckVGHARDWARE_SetFastClear(
-    IN gckVGHARDWARE Hardware,
-    IN gctINT Enable
-    );
-
-gceSTATUS
-gckVGHARDWARE_ReadInterrupt(
-    IN gckVGHARDWARE Hardware,
-    OUT gctUINT32_PTR IDs
-    );
-
-/* Power management. */
-gceSTATUS
-gckVGHARDWARE_SetPowerManagementState(
-    IN gckVGHARDWARE Hardware,
-    IN gceCHIPPOWERSTATE State
-    );
-
-gceSTATUS
-gckVGHARDWARE_QueryPowerManagementState(
-    IN gckVGHARDWARE Hardware,
-    OUT gceCHIPPOWERSTATE* State
-    );
-
-gceSTATUS
-gckVGHARDWARE_SetPowerManagement(
-    IN gckVGHARDWARE Hardware,
-    IN gctBOOL PowerManagement
-    );
-
-gceSTATUS
-gckVGHARDWARE_SetPowerOffTimeout(
-    IN gckVGHARDWARE  Hardware,
-    IN gctUINT32    Timeout
-    );
-
-gceSTATUS
-gckVGHARDWARE_QueryPowerOffTimeout(
-    IN gckVGHARDWARE  Hardware,
-    OUT gctUINT32*  Timeout
-    );
-
-gceSTATUS
-gckVGHARDWARE_QueryIdle(
-    IN gckVGHARDWARE Hardware,
-    OUT gctBOOL_PTR IsIdle
-    );
-/******************************************************************************\
-*************************** Command Buffer Structures **************************
-\******************************************************************************/
-
-/* Vacant command buffer marker. */
-#define gcvVACANT_BUFFER        ((gcsCOMPLETION_SIGNAL_PTR) ((gctSIZE_T)1))
-
-/* Command buffer header. */
-typedef struct _gcsCMDBUFFER * gcsCMDBUFFER_PTR;
-typedef struct _gcsCMDBUFFER
-{
-    /* Pointer to the completion signal. */
-    gcsCOMPLETION_SIGNAL_PTR    completion;
-
-    /* The user sets this to the node of the container buffer whitin which
-       this particular command buffer resides. The kernel sets this to the
-       node of the internally allocated buffer. */
-    gcuVIDMEM_NODE_PTR          node;
-
-    /* Command buffer hardware address. */
-    gctUINT32                   address;
-
-    /* The offset of the buffer from the beginning of the header. */
-    gctUINT32                   bufferOffset;
-
-    /* Size of the area allocated for the data portion of this particular
-       command buffer (headers and tail reserves are excluded). */
-    gctUINT32                   size;
-
-    /* Offset into the buffer [0..size]; reflects exactly how much data has
-       been put into the command buffer. */
-    gctUINT                     offset;
-
-    /* The number of command units in the buffer for the hardware to
-       execute. */
-    gctUINT32                   dataCount;
-
-    /* MANAGED BY : user HAL (gcoBUFFER object).
-       USED BY    : user HAL (gcoBUFFER object).
-       Points to the immediate next allocated command buffer. */
-    gcsCMDBUFFER_PTR            nextAllocated;
-
-    /* MANAGED BY : user layers (HAL and drivers).
-       USED BY    : kernel HAL (gcoBUFFER object).
-       Points to the next subbuffer if any. A family of subbuffers are chained
-       together and are meant to be executed inseparably as a unit. Meaning
-       that context switching cannot occur while a chain of subbuffers is being
-       executed. */
-    gcsCMDBUFFER_PTR            nextSubBuffer;
-}
-gcsCMDBUFFER;
-
-/* Command queue element. */
-typedef struct _gcsVGCMDQUEUE
-{
-    /* Pointer to the command buffer header. */
-    gcsCMDBUFFER_PTR            commandBuffer;
-
-    /* Dynamic vs. static command buffer state. */
-    gctBOOL                     dynamic;
-}
-gcsVGCMDQUEUE;
-
-/* Context map entry. */
-typedef struct _gcsVGCONTEXT_MAP
-{
-    /* State index. */
-    gctUINT32                   index;
-
-    /* New state value. */
-    gctUINT32                   data;
-
-    /* Points to the next entry in the mod list. */
-    gcsVGCONTEXT_MAP_PTR            next;
-}
-gcsVGCONTEXT_MAP;
-
-/* gcsVGCONTEXT structure that holds the current context. */
-typedef struct _gcsVGCONTEXT
-{
-    /* Context ID. */
-    gctUINT64                   id;
-
-    /* State caching ebable flag. */
-    gctBOOL                     stateCachingEnabled;
-
-    /* Current pipe. */
-    gctUINT32                   currentPipe;
-
-    /* State map/mod buffer. */
-    gctUINT32                   mapFirst;
-    gctUINT32                   mapLast;
-    gcsVGCONTEXT_MAP_PTR        mapContainer;
-    gcsVGCONTEXT_MAP_PTR        mapPrev;
-    gcsVGCONTEXT_MAP_PTR        mapCurr;
-    gcsVGCONTEXT_MAP_PTR        firstPrevMap;
-    gcsVGCONTEXT_MAP_PTR        firstCurrMap;
-
-    /* Main context buffer. */
-    gcsCMDBUFFER_PTR            header;
-    gctUINT32_PTR               buffer;
-
-    /* Completion signal. */
-    gctHANDLE                   process;
-    gctSIGNAL                   signal;
-
-#if defined(__QNXNTO__)
-    gctSIGNAL                   userSignal;
-    gctINT32                    coid;
-    gctINT32                    rcvid;
-#endif
-}
-gcsVGCONTEXT;
-
-/* User space task header. */
-typedef struct _gcsTASK * gcsTASK_PTR;
-typedef struct _gcsTASK
-{
-    /* Pointer to the next task for the same interrupt in user space. */
-    gcsTASK_PTR                 next;
-
-    /* Size of the task data that immediately follows the structure. */
-    gctUINT                     size;
-
-    /* Task data starts here. */
-    /* ... */
-}
-gcsTASK;
-
-/* User space task master table entry. */
-typedef struct _gcsTASK_MASTER_ENTRY * gcsTASK_MASTER_ENTRY_PTR;
-typedef struct _gcsTASK_MASTER_ENTRY
-{
-    /* Pointers to the head and to the tail of the task chain. */
-    gcsTASK_PTR                 head;
-    gcsTASK_PTR                 tail;
-}
-gcsTASK_MASTER_ENTRY;
-
-/* User space task master table entry. */
-typedef struct _gcsTASK_MASTER_TABLE
-{
-    /* Table with one entry per block. */
-    gcsTASK_MASTER_ENTRY        table[gcvBLOCK_COUNT];
-
-    /* The total number of tasks sckeduled. */
-    gctUINT                     count;
-
-    /* The total size of event data in bytes. */
-    gctUINT                     size;
-
-#if defined(__QNXNTO__)
-    gctINT32                    coid;
-    gctINT32                    rcvid;
-#endif
-}
-gcsTASK_MASTER_TABLE;
-
-/******************************************************************************\
-***************************** gckVGINTERRUPT Object ******************************
-\******************************************************************************/
-
-typedef struct _gckVGINTERRUPT * gckVGINTERRUPT;
-
-typedef gceSTATUS (* gctINTERRUPT_HANDLER)(
-    IN gckVGKERNEL Kernel
-    );
-
-gceSTATUS
-gckVGINTERRUPT_Construct(
-    IN gckVGKERNEL Kernel,
-    OUT gckVGINTERRUPT * Interrupt
-    );
-
-gceSTATUS
-gckVGINTERRUPT_Destroy(
-    IN gckVGINTERRUPT Interrupt
-    );
-
-gceSTATUS
-gckVGINTERRUPT_Enable(
-    IN gckVGINTERRUPT Interrupt,
-    IN OUT gctINT32_PTR Id,
-    IN gctINTERRUPT_HANDLER Handler
-    );
-
-gceSTATUS
-gckVGINTERRUPT_Disable(
-    IN gckVGINTERRUPT Interrupt,
-    IN gctINT32 Id
-    );
-
-#ifndef __QNXNTO__
-
-gceSTATUS
-gckVGINTERRUPT_Enque(
-    IN gckVGINTERRUPT Interrupt
-    );
-
-#else
-
-gceSTATUS
-gckVGINTERRUPT_Enque(
-    IN gckVGINTERRUPT Interrupt,
-    OUT gckOS *Os,
-    OUT gctSEMAPHORE *Semaphore
-    );
-
-#endif
-
-gceSTATUS
-gckVGINTERRUPT_DumpState(
-    IN gckVGINTERRUPT Interrupt
-    );
-
-
-/******************************************************************************\
-******************************* gckVGCOMMAND Object *******************************
-\******************************************************************************/
-
-typedef struct _gckVGCOMMAND *      gckVGCOMMAND;
-
-/* Construct a new gckVGCOMMAND object. */
-gceSTATUS
-gckVGCOMMAND_Construct(
-    IN gckVGKERNEL Kernel,
-    IN gctUINT TaskGranularity,
-    IN gctUINT QueueSize,
-    OUT gckVGCOMMAND * Command
-    );
-
-/* Destroy an gckVGCOMMAND object. */
-gceSTATUS
-gckVGCOMMAND_Destroy(
-    IN gckVGCOMMAND Command
-    );
-
-/* Query command buffer attributes. */
-gceSTATUS
-gckVGCOMMAND_QueryCommandBuffer(
-    IN gckVGCOMMAND Command,
-    OUT gcsCOMMAND_BUFFER_INFO_PTR Information
-    );
-
-/* Allocate a command queue. */
-gceSTATUS
-gckVGCOMMAND_Allocate(
-    IN gckVGCOMMAND Command,
-    IN gctSIZE_T Size,
-    OUT gcsCMDBUFFER_PTR * CommandBuffer,
-    OUT gctPOINTER * Data
-    );
-
-/* Release memory held by the command queue. */
-gceSTATUS
-gckVGCOMMAND_Free(
-    IN gckVGCOMMAND Command,
-    IN gcsCMDBUFFER_PTR CommandBuffer
-    );
-
-/* Schedule the command queue for execution. */
-gceSTATUS
-gckVGCOMMAND_Execute(
-    IN gckVGCOMMAND Command,
-    IN gcsCMDBUFFER_PTR CommandBuffer
-    );
-
-/* Commit a buffer to the command queue. */
-gceSTATUS
-gckVGCOMMAND_Commit(
-    IN gckVGCOMMAND Command,
-    IN gcsVGCONTEXT_PTR Context,
-    IN gcsVGCMDQUEUE_PTR Queue,
-    IN gctUINT EntryCount,
-    IN gcsTASK_MASTER_TABLE_PTR TaskTable
-    );
-
-/******************************************************************************\
-********************************* gckVGMMU Object ********************************
-\******************************************************************************/
-
-typedef struct _gckVGMMU *          gckVGMMU;
-
-/* Construct a new gckVGMMU object. */
-gceSTATUS
-gckVGMMU_Construct(
-    IN gckVGKERNEL Kernel,
-    IN gctUINT32 MmuSize,
-    OUT gckVGMMU * Mmu
-    );
-
-/* Destroy an gckVGMMU object. */
-gceSTATUS
-gckVGMMU_Destroy(
-    IN gckVGMMU Mmu
-    );
-
-/* Allocate pages inside the MMU. */
-gceSTATUS
-gckVGMMU_AllocatePages(
-    IN gckVGMMU Mmu,
-    IN gctSIZE_T PageCount,
-    OUT gctPOINTER * PageTable,
-    OUT gctUINT32 * Address
-    );
-
-/* Remove a page table from the MMU. */
-gceSTATUS
-gckVGMMU_FreePages(
-    IN gckVGMMU Mmu,
-    IN gctPOINTER PageTable,
-    IN gctSIZE_T PageCount
-    );
-
-/* Set the MMU page with info. */
-gceSTATUS
-gckVGMMU_SetPage(
-   IN gckVGMMU Mmu,
-   IN gctUINT32 PageAddress,
-   IN gctUINT32 *PageEntry
-   );
-
-/* Flush MMU */
-gceSTATUS
-gckVGMMU_Flush(
-   IN gckVGMMU Mmu
-   );
-
-#endif /* gcdENABLE_VG */
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* __gc_hal_h_ */

+ 0 - 38
buildroot-external/package/demo-v4l2-1668e/include/sys/basetype.h

@@ -1,38 +0,0 @@
-#ifndef __BASETYPE_H__
-#define __BASETYPE_H__
-
-#if defined( __linux__ ) || defined( WIN32 )
-#include <stddef.h>
-#endif
-
-#ifndef NULL
-#ifdef  __cplusplus
-#define NULL    0
-#else
-#define NULL    ((void *)0)
-#endif
-#endif
-
-typedef unsigned char u8;
-typedef signed char i8;
-typedef unsigned char UINT8;
-typedef unsigned short u16;
-typedef signed short i16;
-typedef unsigned short UINT16;
-typedef unsigned int u32;
-typedef signed int i32;
-typedef unsigned int UINT32;
-
-typedef int	BOOL;
-
-
-/* SW decoder 16 bits types */
-#if defined(VC1SWDEC_16BIT) || defined(MP4ENC_ARM11)
-typedef unsigned short u16x;
-typedef signed short i16x;
-#else
-typedef unsigned int u16x;
-typedef signed int i16x;
-#endif
-
-#endif /* __BASETYPE_H__ */

+ 0 - 197
buildroot-external/package/demo-v4l2-1668e/include/sys/decapicommon.h

@@ -1,197 +0,0 @@
-/*------------------------------------------------------------------------------
---                                                                            --
---       This software is confidential and proprietary and may be used        --
---        only as expressly authorized by a licensing agreement from          --
---                                                                            --
---                            Hantro Products Oy.                             --
---                                                                            --
---                   (C) COPYRIGHT 2007 HANTRO PRODUCTS OY                    --
---                            ALL RIGHTS RESERVED                             --
---                                                                            --
---                 The entire notice above must be reproduced                 --
---                  on all copies and should not be removed.                  --
---                                                                            --
---------------------------------------------------------------------------------
---
---  Description : Common Decoder API definitions
---
---------------------------------------------------------------------------------
---
---  Version control information, please leave untouched.
---
---  $RCSfile: decapicommon.h,v $
---  $Date: 2011/05/26 13:14:23 $
---  $Revision: 1.25 $
---
-------------------------------------------------------------------------------*/
-#ifndef __DECAPICOMMON_H__
-#define __DECAPICOMMON_H__
-
-#include "basetype.h"
-
-#define MAX_ASIC_CORES	4
-
-#define MPEG4_NOT_SUPPORTED             (u32)(0x00)
-#define MPEG4_SIMPLE_PROFILE            (u32)(0x01)
-#define MPEG4_ADVANCED_SIMPLE_PROFILE   (u32)(0x02)
-#define MPEG4_CUSTOM_NOT_SUPPORTED      (u32)(0x00)
-#define MPEG4_CUSTOM_FEATURE_1          (u32)(0x01)
-#define H264_NOT_SUPPORTED              (u32)(0x00)
-#define H264_BASELINE_PROFILE           (u32)(0x01)
-#define H264_MAIN_PROFILE               (u32)(0x02)
-#define H264_HIGH_PROFILE               (u32)(0x03)
-#define VC1_NOT_SUPPORTED               (u32)(0x00)
-#define VC1_SIMPLE_PROFILE              (u32)(0x01)
-#define VC1_MAIN_PROFILE                (u32)(0x02)
-#define VC1_ADVANCED_PROFILE            (u32)(0x03)
-#define MPEG2_NOT_SUPPORTED             (u32)(0x00)
-#define MPEG2_MAIN_PROFILE              (u32)(0x01)
-#define JPEG_NOT_SUPPORTED              (u32)(0x00)
-#define JPEG_BASELINE                   (u32)(0x01)
-#define JPEG_PROGRESSIVE                (u32)(0x02)
-#define PP_NOT_SUPPORTED                (u32)(0x00)
-#define PP_SUPPORTED                    (u32)(0x01)
-#define PP_TILED_4X4                    (u32)(0x20000000)
-#define PP_DITHERING                    (u32)(0x10000000)
-#define PP_SCALING                      (u32)(0x0C000000)
-#define PP_DEINTERLACING                (u32)(0x02000000)
-#define PP_ALPHA_BLENDING               (u32)(0x01000000)
-#define PP_OUTP_ENDIAN                  (u32)(0x00040000)
-#define PP_TILED_INPUT                  (u32)(0x0000C000)
-#define PP_PIX_ACC_OUTPUT               (u32)(0x40000000)
-#define PP_ABLEND_CROP                  (u32)(0x80000000)
-#define SORENSON_SPARK_NOT_SUPPORTED    (u32)(0x00)
-#define SORENSON_SPARK_SUPPORTED        (u32)(0x01)
-#define VP6_NOT_SUPPORTED               (u32)(0x00)
-#define VP6_SUPPORTED                   (u32)(0x01)
-#define VP7_NOT_SUPPORTED               (u32)(0x00)
-#define VP7_SUPPORTED                   (u32)(0x01)
-#define VP8_NOT_SUPPORTED               (u32)(0x00)
-#define VP8_SUPPORTED                   (u32)(0x01)
-#define REF_BUF_NOT_SUPPORTED           (u32)(0x00)
-#define REF_BUF_SUPPORTED               (u32)(0x01)
-#define REF_BUF_INTERLACED              (u32)(0x02)
-#define REF_BUF_DOUBLE                  (u32)(0x04)
-#define TILED_NOT_SUPPORTED             (u32)(0x00)
-#define TILED_8x4_SUPPORTED             (u32)(0x01)
-#define AVS_NOT_SUPPORTED               (u32)(0x00)
-#define AVS_SUPPORTED                   (u32)(0x01)
-#define JPEG_EXT_NOT_SUPPORTED          (u32)(0x00)
-#define JPEG_EXT_SUPPORTED              (u32)(0x01)
-#define RV_NOT_SUPPORTED                (u32)(0x00)
-#define RV_SUPPORTED                    (u32)(0x01)
-#define MVC_NOT_SUPPORTED               (u32)(0x00)
-#define MVC_SUPPORTED                   (u32)(0x01)
-#define WEBP_NOT_SUPPORTED              (u32)(0x00)
-#define WEBP_SUPPORTED                  (u32)(0x01)
-#define EC_NOT_SUPPORTED                (u32)(0x00)
-#define EC_SUPPORTED                    (u32)(0x01)
-
-#define H264_NOT_SUPPORTED_FUSE					 (u32)(0x00)
-#define H264_FUSE_ENABLED						 (u32)(0x01)
-#define MPEG4_NOT_SUPPORTED_FUSE				 (u32)(0x00)
-#define MPEG4_FUSE_ENABLED						 (u32)(0x01)
-#define MPEG2_NOT_SUPPORTED_FUSE				 (u32)(0x00)
-#define MPEG2_FUSE_ENABLED						 (u32)(0x01)
-#define SORENSON_SPARK_NOT_SUPPORTED_FUSE		 (u32)(0x00)
-#define SORENSON_SPARK_ENABLED					 (u32)(0x01)
-#define JPEG_NOT_SUPPORTED_FUSE					 (u32)(0x00)
-#define JPEG_FUSE_ENABLED						 (u32)(0x01)
-#define VP6_NOT_SUPPORTED_FUSE					 (u32)(0x00)
-#define VP6_FUSE_ENABLED						 (u32)(0x01)
-#define VP7_NOT_SUPPORTED_FUSE					 (u32)(0x00)
-#define VP7_FUSE_ENABLED						 (u32)(0x01)
-#define VP8_NOT_SUPPORTED_FUSE					 (u32)(0x00)
-#define VP8_FUSE_ENABLED						 (u32)(0x01)
-#define VC1_NOT_SUPPORTED_FUSE					 (u32)(0x00)
-#define VC1_FUSE_ENABLED						 (u32)(0x01)
-#define JPEG_PROGRESSIVE_NOT_SUPPORTED_FUSE		 (u32)(0x00)
-#define JPEG_PROGRESSIVE_FUSE_ENABLED    		 (u32)(0x01)
-#define REF_BUF_NOT_SUPPORTED_FUSE				 (u32)(0x00)
-#define REF_BUF_FUSE_ENABLED					 (u32)(0x01)
-#define AVS_NOT_SUPPORTED_FUSE		             (u32)(0x00)
-#define AVS_FUSE_ENABLED		                 (u32)(0x01)
-#define RV_NOT_SUPPORTED_FUSE	                 (u32)(0x00)
-#define RV_FUSE_ENABLED		                     (u32)(0x01)
-#define MVC_NOT_SUPPORTED_FUSE	                 (u32)(0x00)
-#define MVC_FUSE_ENABLED		                 (u32)(0x01)
-
-#define PP_NOT_SUPPORTED_FUSE					 (u32)(0x00)
-#define PP_FUSE_ENABLED						     (u32)(0x01)
-#define PP_FUSE_DEINTERLACING_ENABLED            (u32)(0x40000000)
-#define PP_FUSE_ALPHA_BLENDING_ENABLED           (u32)(0x20000000)
-#define MAX_PP_OUT_WIDHT_1920_FUSE_ENABLED       (u32)(0x00008000)
-#define MAX_PP_OUT_WIDHT_1280_FUSE_ENABLED       (u32)(0x00004000)
-#define MAX_PP_OUT_WIDHT_720_FUSE_ENABLED        (u32)(0x00002000)
-#define MAX_PP_OUT_WIDHT_352_FUSE_ENABLED        (u32)(0x00001000)
-
-/* Macro to copy support flags and picture max width from DWL HW config 
- * to Decoder HW config */
-#define SET_DEC_BUILD_SUPPORT(decHwCfg, dwlHwCfg) \
-    decHwCfg.maxDecPicWidth = dwlHwCfg.maxDecPicWidth; \
-    decHwCfg.maxPpOutPicWidth = dwlHwCfg.maxPpOutPicWidth; \
-    decHwCfg.h264Support = dwlHwCfg.h264Support; \
-    decHwCfg.jpegSupport = dwlHwCfg.jpegSupport; \
-    decHwCfg.jpegESupport = dwlHwCfg.jpegESupport; \
-    decHwCfg.mpeg2Support = dwlHwCfg.mpeg2Support; \
-    decHwCfg.mpeg4Support = dwlHwCfg.mpeg4Support; \
-    decHwCfg.vc1Support = dwlHwCfg.vc1Support; \
-    decHwCfg.ppSupport = dwlHwCfg.ppSupport; \
-    decHwCfg.ppConfig = dwlHwCfg.ppConfig; \
-    decHwCfg.sorensonSparkSupport = dwlHwCfg.sorensonSparkSupport; \
-    decHwCfg.vp6Support = dwlHwCfg.vp6Support; \
-    decHwCfg.vp7Support = dwlHwCfg.vp7Support; \
-    decHwCfg.vp8Support = dwlHwCfg.vp8Support; \
-    decHwCfg.refBufSupport = dwlHwCfg.refBufSupport; \
-    decHwCfg.tiledModeSupport = dwlHwCfg.tiledModeSupport; \
-    decHwCfg.avsSupport = dwlHwCfg.avsSupport; \
-    decHwCfg.rvSupport = dwlHwCfg.rvSupport; \
-    decHwCfg.customMpeg4Support = dwlHwCfg.customMpeg4Support; \
-    decHwCfg.mvcSupport = dwlHwCfg.mvcSupport; \
-    decHwCfg.webpSupport = dwlHwCfg.webpSupport; \
-    decHwCfg.ecSupport = dwlHwCfg.ecSupport;
-
-typedef struct DecHwConfig_
-{
-    u32 mpeg4Support;        /* one of the MPEG4 values defined above */
-    u32 customMpeg4Support;  /* one of the MPEG4 custom values defined above */
-    u32 h264Support;         /* one of the H264 values defined above */
-    u32 vc1Support;          /* one of the VC1 values defined above */
-    u32 mpeg2Support;        /* one of the MPEG2 values defined above */
-    u32 jpegSupport;         /* one of the JPEG values defined above */
-	u32 jpegProgSupport;     /* one of the Progressive JPEG values defined above */
-    u32 maxDecPicWidth;      /* maximum picture width in decoder */
-    u32 ppSupport;           /* PP_SUPPORTED or PP_NOT_SUPPORTED */
-    u32 ppConfig;            /* Bitwise list of PP function */
-    u32 maxPpOutPicWidth;    /* maximum post-processor output picture width */
-    u32 sorensonSparkSupport;   /* one of the SORENSON_SPARK values defined above */
-    u32 refBufSupport;       /* one of the REF_BUF values defined above */
-    u32 tiledModeSupport; /* one of the TILED values defined above */
-    u32 vp6Support;          /* one of the VP6 values defined above */
-    u32 vp7Support;          /* one of the VP7 values defined above */
-    u32 vp8Support;          /* one of the VP8 values defined above */
-    u32 avsSupport;          /* one of the AVS values defined above */
-    u32 jpegESupport;        /* one of the JPEG EXT values defined above */    
-    u32 rvSupport;           /* one of the HUKKA values defined above */
-    u32 mvcSupport;          /* one of the MVC values defined above */
-    u32 webpSupport;         /* one of the WEBP values defined above */
- 	u32 ecSupport;           /* one of the EC values defined above */
-	u32 strideSupport;       /* HW supports separate Y and C strides */
-	u32 fieldDpbSupport; 
-} DecHwConfig;
-
-/* Reference picture format types */
-typedef enum 
-{
-    DEC_REF_FRM_RASTER_SCAN          = 0,
-    DEC_REF_FRM_TILED_DEFAULT        = 1
-} DecRefFrmFormat;
-
-/* Output picture format types */
-typedef enum
-{
-    DEC_OUT_FRM_RASTER_SCAN          = 0,
-    DEC_OUT_FRM_TILED_8X4            = 1
-} DecOutFrmFormat;
-
-#endif /* __DECAPICOMMON_H__ */

+ 0 - 180
buildroot-external/package/demo-v4l2-1668e/include/sys/dwl.h

@@ -1,180 +0,0 @@
-/*------------------------------------------------------------------------------
---                                                                            --
---       This software is confidential and proprietary and may be used        --
---        only as expressly authorized by a licensing agreement from          --
---                                                                            --
---                            Hantro Products Oy.                             --
---                                                                            --
---                   (C) COPYRIGHT 2006 HANTRO PRODUCTS OY                    --
---                            ALL RIGHTS RESERVED                             --
---                                                                            --
---                 The entire notice above must be reproduced                 --
---                  on all copies and should not be removed.                  --
---                                                                            --
---------------------------------------------------------------------------------
---
---  Description : Sytem Wrapper Layer
---
-------------------------------------------------------------------------------
---
---  Version control information, please leave untouched.
---
---  $RCSfile: dwl.h,v $
---  $Revision: 1.21 $
---  $Date: 2010/12/01 12:31:03 $
---
-------------------------------------------------------------------------------*/
-#ifndef __DWL_H__
-#define __DWL_H__
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#include "basetype.h"
-#include "decapicommon.h"
-
-#define DWL_OK                      0
-#define DWL_ERROR                  -1
-
-#define DWL_HW_WAIT_OK              DWL_OK
-#define DWL_HW_WAIT_ERROR           DWL_ERROR
-#define DWL_HW_WAIT_TIMEOUT         1
-
-#define DWL_CLIENT_TYPE_H264_DEC         1U
-#define DWL_CLIENT_TYPE_MPEG4_DEC        2U
-#define DWL_CLIENT_TYPE_JPEG_DEC         3U
-#define DWL_CLIENT_TYPE_PP               4U
-#define DWL_CLIENT_TYPE_VC1_DEC          5U
-#define DWL_CLIENT_TYPE_MPEG2_DEC        6U
-#define DWL_CLIENT_TYPE_VP6_DEC          7U
-#define DWL_CLIENT_TYPE_AVS_DEC          9U /* TODO: fix */
-#define DWL_CLIENT_TYPE_RV_DEC           8U
-#define DWL_CLIENT_TYPE_VP8_DEC          10U
-
-    /* Linear memory area descriptor */
-    typedef struct DWLLinearMem
-    {
-        u32 *virtualAddress;
-        u32 busAddress;
-        u32 size;
-    } DWLLinearMem_t;
-
-    /* DWLInitParam is used to pass parameters when initializing the DWL */
-    typedef struct DWLInitParam
-    {
-        u32 clientType;
-    } DWLInitParam_t;
-
-    /* Hardware configuration description */
-
-    typedef struct DWLHwConfig
-    {
-        u32 maxDecPicWidth;  /* Maximum video decoding width supported  */
-        u32 maxPpOutPicWidth;   /* Maximum output width of Post-Processor */
-        u32 h264Support;     /* HW supports h.264 */
-        u32 jpegSupport;     /* HW supports JPEG */
-        u32 mpeg4Support;    /* HW supports MPEG-4 */
-        u32 customMpeg4Support; /* HW supports custom MPEG-4 features */
-        u32 vc1Support;      /* HW supports VC-1 Simple */
-        u32 mpeg2Support;    /* HW supports MPEG-2 */
-        u32 ppSupport;       /* HW supports post-processor */
-        u32 ppConfig;        /* HW post-processor functions bitmask */
-        u32 sorensonSparkSupport;   /* HW supports Sorenson Spark */
-        u32 refBufSupport;   /* HW supports reference picture buffering */
-        u32 tiledModeSupport; /* HW supports tiled reference pictuers */
-        u32 vp6Support;      /* HW supports VP6 */
-        u32 vp7Support;      /* HW supports VP7 */
-        u32 vp8Support;      /* HW supports VP8 */
-        u32 avsSupport;      /* HW supports AVS */
-        u32 jpegESupport;    /* HW supports JPEG extensions */
-        u32 rvSupport;       /* HW supports REAL */
-        u32 mvcSupport;      /* HW supports H264 MVC extension */
-        u32 webpSupport;     /* HW supports WebP (VP8 snapshot) */
-		u32 ecSupport;       /* one of the EC values defined above */
-		u32 strideSupport;   /* HW supports separate Y and C strides */
-		u32 fieldDpbSupport; 
-    } DWLHwConfig_t;
-
-	typedef struct DWLHwFuseStatus
-    {
-        u32 h264SupportFuse;     /* HW supports h.264 */
-        u32 mpeg4SupportFuse;    /* HW supports MPEG-4 */
-        u32 mpeg2SupportFuse;    /* HW supports MPEG-2 */
-        u32 sorensonSparkSupportFuse;   /* HW supports Sorenson Spark */
-		u32 jpegSupportFuse;     /* HW supports JPEG */
-        u32 vp6SupportFuse;      /* HW supports VP6 */
-        u32 vp7SupportFuse;      /* HW supports VP6 */
-        u32 vp8SupportFuse;      /* HW supports VP6 */
-        u32 vc1SupportFuse;      /* HW supports VC-1 Simple */
-		u32 jpegProgSupportFuse; /* HW supports Progressive JPEG */
-        u32 ppSupportFuse;       /* HW supports post-processor */
-        u32 ppConfigFuse;        /* HW post-processor functions bitmask */
-        u32 maxDecPicWidthFuse;  /* Maximum video decoding width supported  */
-        u32 maxPpOutPicWidthFuse; /* Maximum output width of Post-Processor */
-        u32 refBufSupportFuse;   /* HW supports reference picture buffering */
-		u32 avsSupportFuse;      /* one of the AVS values defined above */
-		u32 rvSupportFuse;       /* one of the REAL values defined above */
-		u32 mvcSupportFuse;
-        u32 customMpeg4SupportFuse; /* Fuse for custom MPEG-4 */
-
-    } DWLHwFuseStatus_t;
-
-/* HW ID retriving, static implementation */
-    u32 DWLReadAsicID(void);
-
-/* HW configuration retrieving, static implementation */
-    void DWLReadAsicConfig(DWLHwConfig_t * pHwCfg);
-
-/* HW fuse retrieving, static implementation */
-	void DWLReadAsicFuseStatus(DWLHwFuseStatus_t * pHwFuseSts);
-
-/* DWL initilaization and release */
-    const void *DWLInit(DWLInitParam_t * param);
-    i32 DWLRelease(const void *instance);
-
-/* HW sharing */
-    i32 DWLReserveHw(const void *instance);
-    void DWLReleaseHw(const void *instance);
-
-/* Frame buffers memory */
-    i32 DWLMallocRefFrm(const void *instance, u32 size, DWLLinearMem_t * info);
-    void DWLFreeRefFrm(const void *instance, DWLLinearMem_t * info);
-
-/* SW/HW shared memory */
-    i32 DWLMallocLinear(const void *instance, u32 size, DWLLinearMem_t * info);
-    void DWLFreeLinear(const void *instance, DWLLinearMem_t * info);
-
-/* D-Cache coherence */
-    void DWLDCacheRangeFlush(const void *instance, DWLLinearMem_t * info);  /* NOT in use */
-    void DWLDCacheRangeRefresh(const void *instance, DWLLinearMem_t * info);    /* NOT in use */
-
-/* Register access */
-    void DWLWriteReg(const void *instance, u32 offset, u32 value);
-    u32 DWLReadReg(const void *instance, u32 offset);
-
-    void DWLWriteRegAll(const void *instance, const u32 * table, u32 size); /* NOT in use */
-    void DWLReadRegAll(const void *instance, u32 * table, u32 size);    /* NOT in use */
-
-/* HW starting/stopping */
-    void DWLEnableHW(const void *instance, u32 offset, u32 value);
-    void DWLDisableHW(const void *instance, u32 offset, u32 value);
-
-/* HW synchronization */
-    i32 DWLWaitHwReady(const void *instance, u32 timeout);
-
-/* SW/SW shared memory */
-    void *DWLmalloc(u32 n);
-    void DWLfree(void *p);
-    void *DWLcalloc(u32 n, u32 s);
-    void *DWLmemcpy(void *d, const void *s, u32 n);
-    void *DWLmemset(void *d, i32 c, u32 n);
-
-	void DWLSoftResetAsic(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif                       /* __DWL_H__ */

+ 0 - 54
buildroot-external/package/demo-v4l2-1668e/include/sys/memalloc.h

@@ -1,54 +0,0 @@
-/*
- * Memalloc, encoder memory allocation driver (kernel module headers)
- *
- * Copyright (C) 2009  Hantro Products Oy.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-
-#ifndef MEMALLOC_H
-#define MEMALLOC_H
-
-#include <linux/ioctl.h>
-
-/* Use 'k' as magic number */
-#define MEMALLOC_IOC_MAGIC  'k'
-/*
- * S means "Set" through a ptr,
- * T means "Tell" directly with the argument value
- * G means "Get": reply by setting through a pointer
- * Q means "Query": response is on the return value
- * X means "eXchange": G and S atomically
- * H means "sHift": T and Q atomically
- */
-#define MEMALLOC_IOCXGETBUFFER          _IOWR(MEMALLOC_IOC_MAGIC, 1, MemallocParams*)
-#define MEMALLOC_IOCSFREEBUFFER         _IOW(MEMALLOC_IOC_MAGIC,  2, unsigned long)
-#define MEMALLOC_IOCSFLUSHRAMBUFFER     _IOW(MEMALLOC_IOC_MAGIC,  6, unsigned long)
-/*
- * ... more to come
- *
- * debugging tool
- * #define MEMALLOC_IOCHARDRESET       _IO(MEMALLOC_IOC_MAGIC, 15)
- * #define MEMALLOC_IOC_MAXNR 15
- *
- */
-
-typedef struct {
-        unsigned busAddress;
-        unsigned size;
-} MemallocParams;
-
-#endif /* MEMALLOC_H */

+ 0 - 87
buildroot-external/package/demo-v4l2-1668e/include/sys/mfcapi.h

@@ -1,87 +0,0 @@
-#ifndef __MFCAPI_H__
-#define __MFCAPI_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "dwl.h"
-
-#define RAW_STRM_TYPE_H264				104
-#define RAW_STRM_TYPE_MP2				105
-#define RAW_STRM_TYPE_MP4				106
-#define RAW_STRM_TYPE_REAL				107
-#define RAW_STRM_TYPE_VC1				108
-#define RAW_STRM_TYPE_WMV3				109
-#define RAW_STRM_TYPE_JPEG				110
-#define RAW_STRM_TYPE_SOR				111
-#define RAW_STRM_TYPE_VP8				112
-#define RAW_STRM_TYPE_VP6				113
-#define RAW_STRM_TYPE_RV1020			114
-#define RAW_STRM_TYPE_MSMP4				115
-#define RAW_STRM_TYPE_MP4_CUSTOM		116
-#define RAW_STRM_TYPE_H264_NOREORDER	(RAW_STRM_TYPE_H264 | (1 << 8))
-
-#define MAX_OUTFRAME_NUM	8
-
-#define MAX_OUTFRAME_WIDTH	1920
-#define MAX_OUTFRAME_HEIGHT	1088
-
-typedef struct
-{
-	u32 yBusAddress;
-	u32 cbcrBusAddress;
-	u32 crBusAddress;
-	const void *pyVirAddress;
-	const void *pcbcrVirAddress;
-	const void *pcrVirAddress;
-	i32 keyPicture;
-}FrameBuffer;
-
-typedef struct
-{
-	i32 num;
-	i32 codedWidth;
-	i32 codedHeight;
-	i32 frameWidth;
-	i32 frameHeight;
-	FrameBuffer buffer[MAX_OUTFRAME_NUM];
-}OutFrameBuffer;
-
-typedef enum{
-	MFCDEC_RET_OK = 1,
-	MFCDEC_RET_DECFAIL = 0,
-	MFCDEC_RET_MEMFAIL = -1,
-	MFCDEC_RET_LOCKFAIL = -2,
-}MFCDecodeRet;
-
-typedef struct
-{
-	void *decInst;
-	void *ppInst;
-	int streamType;
-	int delayInit;
-	int isCustomMp4;
-	int outputFormat;
-	int ppInit;
-	int ppMemalloc;
-	int ppOutWidth;
-	int ppOutHeight;
-	int ppOutFormat;
-	int ppOutBufferIndex;
-	DWLLinearMem_t ppOutBuffer;
-}MFCHandle;
-
-MFCHandle *mfc_init(int streamType);
-
-int mfc_decode(MFCHandle *handle, DWLLinearMem_t *inBuffer, OutFrameBuffer *outBuffer);
-
-void mfc_uninit(MFCHandle *handle);
-
-int mfc_pp_init(MFCHandle *handle, int outWidth, int outHeight, int outFormat);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

BIN
buildroot-external/package/demo-v4l2-1668e/lib/libGAL.so


BIN
buildroot-external/package/demo-v4l2-1668e/lib/libarkapi.so


BIN
buildroot-external/package/demo-v4l2-1668e/lib/libmfc.so


+ 35 - 159
buildroot-external/package/demo-v4l2-1668e/main.c

@@ -8,8 +8,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <linux/videodev2.h>
-#include <pthread.h>
-#include "include/ark_api.h"
+#include <pthread.h> 
 
 //#define DEBUG
 
@@ -19,10 +18,9 @@
 #define V4L2_DBG(...)
 #endif
 
-#define BUF_NUM 				4
+#define BUF_NUM 				8
 #define DISPLAY 				1
-#define GETDATA 				2
-#define ARK_BUFFER_NUM			3
+#define GETDATA 				2 
 
 struct VideoDevice {
     int Vfd;
@@ -36,30 +34,10 @@ struct VideoDevice {
 	unsigned char* Video_Data;					//video data physical address
 };
 
-struct display_info{
-	disp_handle *display_handle;
-	int lay_id;
-
-	unsigned int disp_posx;
-	unsigned int disp_posy;
-	unsigned int disp_width;
-	unsigned int disp_height;
-};
-
-enum work_mode {
-	WORK_MODE_DISPLAY,
+enum work_mode { 
 	WORK_MODE_GETDATA,
 	WORK_MODE_END,
-};
-
-enum ark1668e_lcdc_layer {
-	ARK1668E_LCDC_LAYER_VIDEO1,
-	ARK1668E_LCDC_LAYER_VIDEO2,
-	ARK1668E_LCDC_LAYER_OSD1,
-	ARK1668E_LCDC_LAYER_OSD2,
-	ARK1668E_LCDC_LAYER_OSD3,
-	ARK1668E_LCDC_LAYER_MAX
-};
+}; 
 
 enum dvr_source {
 	DVR_SOURCE_CAMERA,
@@ -69,9 +47,7 @@ enum dvr_source {
 
 
 struct VideoDevice *g_ark_Vdev;
-struct display_info *pinfo = NULL;
-static pthread_t v4l2_work_id;
-static reqbuf_info reqbuf;
+static pthread_t v4l2_work_id; 
 int t_cmd;
 
 /* This function first makes the query judgmentThe space is then allocated and queued */
@@ -261,75 +237,10 @@ static int V4l2StopDevice(struct VideoDevice *Vdec)
     return 0;
 }
 
-void display_layer_init(struct VideoDevice *Vdec)
-{
-	screen_info screen;
-	int Format,screen_width, screen_height;;
-	unsigned int addr, ret;
-	disp_handle *display_handle;
-	pinfo = (struct display_info *)malloc(sizeof(struct display_info));
-	if (pinfo == NULL) {
-		printf("no enough memory be alloc");
-	}
-    
-	memset(pinfo, 0, sizeof(struct display_info));
-	pinfo->disp_posx   = 600;
-	pinfo->disp_posy   = 216;
-	pinfo->disp_width  = g_ark_Vdev->src_width;
-	pinfo->disp_height = g_ark_Vdev->src_height;
-	pinfo->lay_id = ARK1668E_LCDC_LAYER_VIDEO2;
-	Format = ARK_LCDC_FORMAT_Y_UV420 | ARK_LCDC_ORDER_VYUY;
-
-	display_handle = arkapi_display_open_layer(pinfo->lay_id);
-	if(!display_handle){
-		printf("open fb%d error.",pinfo->lay_id);
-		free(pinfo);
-	}
-	pinfo->display_handle = display_handle;
-	arkapi_display_hide_layer(display_handle);
-
-	arkapi_display_set_layer_pos_atomic(display_handle, pinfo->disp_posx, pinfo->disp_posy);
-	arkapi_display_set_layer_size_atomic(display_handle, pinfo->disp_width, pinfo->disp_height);
-	arkapi_display_set_layer_format_atomic(display_handle, Format);
-	arkapi_display_layer_update_commit(display_handle);
-}
-
-void display_set_addr(u32 pyrgbaddr, u32 pcbaddr, u32 pcraddr)
-{
-	V4L2_DBG("app write buf  : %p\n",g_ark_Vdev->Video_Data);
-	struct ark_disp_addr addr;
-	addr.yaddr = pyrgbaddr;
-	addr.cbaddr = pcbaddr;
-	addr.craddr = pcraddr;
-	arkapi_display_set_layer_addr(pinfo->display_handle, addr.yaddr, addr.cbaddr, addr.craddr);
-}
-
-void display_show_layer(void)
-{
-	if(pinfo){
-		arkapi_display_show_layer(pinfo->display_handle);
-	}
-}
-
-void display_hide_layer(void)
-{
-	if(pinfo){
-		arkapi_display_close_layer(pinfo->display_handle);
-		free(pinfo);
-	}
-}
-
 static void* display_work_thread(void *param)
 {
 	int fd_t,Ret,i;
-	if(t_cmd == DISPLAY){
-	    while(1){
-			V4l2GetDataForStreaming(g_ark_Vdev);
-			display_set_addr(g_ark_Vdev->Video_Data,g_ark_Vdev->Video_Data+pinfo->disp_width*pinfo->disp_height,0);
-			V4l2PutDataForStreaming(g_ark_Vdev);
-	   }
-	}
-	else if(t_cmd == GETDATA){
+	if(t_cmd == GETDATA){
 		fd_t = open("stream.yuv",O_RDWR|O_CREAT);
 		if(fd_t < 0){
 			V4L2_DBG("open error.\n");
@@ -353,25 +264,6 @@ void display_video_start(void)
 	pthread_create(&v4l2_work_id, NULL, display_work_thread,NULL);
 }
 
-int display_demo(void)
-{
-	int Ret;
-	t_cmd = DISPLAY;
-
-	display_layer_init(g_ark_Vdev);
-	/* start device && open display layer*/
-	Ret = V4l2StartDevice(g_ark_Vdev);
-	if(Ret < 0){
-		V4L2_DBG("start v4l2 device error.\n");
-		return 0;
-	}
-	display_show_layer();
-	display_video_start();
-	while(1){
-		usleep(100*1000);
-	}
-}
-
 int getdata_demo(void)
 {
 	char flag_quit[10];
@@ -391,29 +283,39 @@ int getdata_demo(void)
 
 static void printf_command_help(void)
 {
-	V4L2_DBG("\n");
-	V4L2_DBG("***********************command help*****************************\n");
-	V4L2_DBG("*                                                              *\n");
-	V4L2_DBG("*run cmd: demo-v4l2  [cmd]                                     *\n");
-	V4L2_DBG("*                                                              *\n");
-	V4L2_DBG("*cmd1 option: 1.display         2.getdata                      *\n");
-	V4L2_DBG("*                                                              *\n");
-	V4L2_DBG("*example:                                                      *\n");
-	V4L2_DBG("*         demo-v4l2   display                                  *\n");
-	V4L2_DBG("*         demo-v4l2   getdata                                  *\n");
-	V4L2_DBG("*                                                              *\n");
-	V4L2_DBG("****************************************************************\n");
-	V4L2_DBG("\n");
+	printf("\n");
+	printf("***********************command help*****************************\n");
+	printf("*                                                              *\n");
+	printf("*run cmd: demo-v4l2  [width]  [height]                         *\n");
+	printf("*                                                              *\n");
+	printf("*                                                              *\n");
+	printf("*example:                                                      *\n");
+	printf("*         cvbs  :   ntsc   demo-v4l2 720 240                   *\n");
+	printf("*                   pal    demo-v4l2 720 288                   *\n");
+	printf("*         720p  :          demo-v4l2 1280 720                  *\n");
+	printf("*         1080p :          demo-v4l2 1920 1080                 *\n");
+	printf("*                                                              *\n");
+	printf("****************************************************************\n");
+	printf("\n");
 }
 
 int main(int argc, char *argv[])
 {
 	struct VideoDevice Ark_Vdev;
 	int work_mode; 
-	int Ret;
+	int Ret,width,height;
+
+	if(argc == 1){	
+		printf("cmd error.\n");
+		printf_command_help();
+		return -1;
+	}
 
-	Ark_Vdev.src_width = 720;                //set pal
-	Ark_Vdev.src_height = 288;
+	width = atoi(argv[1]);
+	height = atoi(argv[2]);
+
+	Ark_Vdev.src_width = width;
+	Ark_Vdev.src_height = height;
 
 	/* init device */
 	Ret = V4l2InitDevice(&Ark_Vdev);
@@ -421,36 +323,11 @@ int main(int argc, char *argv[])
 		V4L2_DBG("init v4l2 device error.\n");
 		return -1;
 	}
-
-	printf_command_help();
+ 
 	g_ark_Vdev = &Ark_Vdev;
+	work_mode = WORK_MODE_GETDATA;
 	
-	if(argc == 1){
-		work_mode = WORK_MODE_DISPLAY;
-		printf("==>get run cmd: %s display \n",argv[0]);	
-	}
-	else if(argc == 2){
-		if(strcmp("display",argv[1]) == 0){
-				work_mode = WORK_MODE_DISPLAY;
-				printf("==>get run cmd: %s %s \n",argv[0],argv[1]);
-			}
-		else if(strcmp("getdata",argv[1]) == 0){
-				work_mode = WORK_MODE_GETDATA;
-				printf("==>get run cmd: %s %s \n",argv[0],argv[1]);
-			}
-		else{
-			printf("cmd = %s, error!\n",argv[1]);
-			return 0;
-		}
-	}
-	else{
-		printf("argc=%d, error!\n",argc);
-		return 0;
-	}
 	switch (work_mode){
-		case WORK_MODE_DISPLAY:
-			display_demo();
-			break;
 		case WORK_MODE_GETDATA:
 			getdata_demo();
 			break;
@@ -459,7 +336,6 @@ int main(int argc, char *argv[])
 			break;
 	}
 
-	display_hide_layer();
 	/*close device*/
 	V4l2StopDevice(&Ark_Vdev);
 	V4l2ExitDevice(&Ark_Vdev);