summaryrefslogtreecommitdiffstats
path: root/pvr-source/services4/include/kerneldisplay.h
diff options
context:
space:
mode:
authorEric Luong <x0119002@ti.com>2015-02-06 10:54:56 -0800
committerHashcode <hashcode0f@gmail.com>2015-02-06 10:59:59 -0800
commit391c312c8964088c512de2cfb1e29c78d245d06b (patch)
treebdef0b7ecb2ff0da3c9b5922fa358fca1bdbbe73 /pvr-source/services4/include/kerneldisplay.h
parent882c2b4c53e1b2633700906b50c86d4b5f4ce274 (diff)
downloadhardware_ti_omap4-391c312c8964088c512de2cfb1e29c78d245d06b.zip
hardware_ti_omap4-391c312c8964088c512de2cfb1e29c78d245d06b.tar.gz
hardware_ti_omap4-391c312c8964088c512de2cfb1e29c78d245d06b.tar.bz2
IMG DDK 1.9@2166536 for Android
IMG DDK Release 1.9@2166536 for Android. Included in this release: - User space and Kernel module binaries - Kernel module source code TI's Patches: - 084d3db SGX-KM: sgxfreq: Enable on3demand governor as default - c1e1f93 SGX-KM: on3demand: Added polling based on timeout - 1baf19c Build: Compile OMAP4 kernel modules with arm-eabi toolchain - e166956 Build: Add production build option to build script - 9efd5d3 SGX UM: Properly update vertex shader constants when recompiled - f6e71f1 Revert "Build: Add optional flag to disable uKernel logging" - a49e042 SGXKM: Inherit PVRSRV_HAP_GPU_PAGEABLE flag - f05da87 SGXUM: Creates a new PVRSRV_HAP MAPPING CTRL mask - 0e6ac23 SGXKM: Creates a new PVRSRV_HAP MAPPING CTRL mask - 5044cbb SGXKM: Divorce Sparse Mapping from GPU Pageable - 4abdd37 SGX-KM: sgxfreq: Header for GPL license - 7a1e61b gpu: thermal: adding cooling device for "case" management - 1221aba SGX-KM: Add 'userspace' governor to sgxfreq - 7cc1319 SGX-KM: Add on3demand governor to sgxfreq - c3283ff SGX-KM: Allow sgxfreq active notification when prev state was active - 7275e62 SGX-KM: Add idle and active time caluclation to sgxfreq - e15265c SGX-KM: Add frame_done interface to sgxfreq - a021f10 SGX-KM: Add activeidle governor to sgxfreq - bbdceee SGX-KM: Add active/idle notification to sgxfreq - 4e1e8d9 SGX-UM: Rework SGX idle notification - fce3459 SGX-KM: Rework SGX idle notification - 17cdf8c SGX-KM: Add onoff governor to sgxfreq - 403caa1 SGX-KM: Add cooling device interface to sgxfreq - 1d785b8 SGX-KM: Add sgxfreq subsystem for DVFS control - 14de6d8 Build: Add optional flag to disable uKernel logging - 374bea1 SGX UM: Set ro.product.processor before loading modules - 91d286d SGX UM: Pvrsrvinit fix typo in remount command - 3d08869 SGX UM: Remove BRN32044 for omap5 - 086f52b OMAP5: WA: Race condition when SGX is powered down - 1a904c2 SGX KM: ShrinkPagePool statistics changed to PVR_DBG_MESSAGE - fbf2890 SGX KM: Fix num_handle calculation for ion handles - 322af97 BUILD: fix usage and help - 50440d3 BUILD: Add install option "adb" - ee66bfb pvr-km: gc: Add page offset for ion allocated buffers - be4fe11 pvr-km: gc: Improve gc map/unmap logging - 51da16d gralloc: Map NV12 buffers with the GC MMU - 210b590 SGX-KM: Enable APM for OMAP5 - 31e2f05 SGX-UM: Enable APM for OMAP5 - a98b81b SGX-UM: Don't load omaplfb module when in-kernel driver is present - b20f5c6 SGX-KM: Support in-kernel omaplfb - 0955f19 SGXKM: Multi-plane support for deviceclass i-face - 11f6682 build: remove omaplfb from install step - 9ecd6e0 pvr-um: use arm-linux-androideabi- and fix JB debug build - abef31d PVR-UM: Make pvrsrvinit wrapper compatible with Jellybean - 5b4e4f0 Revert "SGXUM: Implements Gralloc late CPU mapping" - 5f25289 SGX-UM: build - Remove target platform based configuration - 9d5ac31 OMAP5: BUILD: Remove unused variable - 5365b64 readme: Correct DDK version - 8095cc6 SGX-UM: Add support for hardware specific powervr.ini files - 7e13d26 PVR-UM: Add support to DDK for powervr.ini files - e545f59 SGX-UM: Added 16 bit depth EGL configs - 27da0ae SGX UM: Srvinit block until services ready - ba35538 SGX UM: HAL block OpenPVRServices until services initialized - 43f8c1f SGX UM: Fix calculation of chroma plane in blit_internal - f6a6944 SGX KM: Dump dsscomp info during HW recovery - fc6d85b SGXKM: Adds support for 1D buffer allocation - d8d061b SGXKM: Do not perform explicit invalidate on mmap - 3ac6e1f SGXUM: Implements Gralloc late CPU mapping - b621744 SGXUM: Gralloc allow for late or no GPU mapping - dde30cf SGXUM: Add allocation of images from system heap - 552c0f5 SGXUM: Adds A8/U8/Y8 color format to WSEGL - f1c7822 SGXKM: Increase XPROC_WORKAROUND to 500 - 65f61bf SGXKM: Fix cc-check.sh file permissions - 0dfe392 SGXKM: Make the DMM offset optional - 946eb30 gralloc: add support for GRALLOC_USAGE_EXCLUSIVE_DISP - 5cf7248 gralloc: publicly define omap specific usage flags - afcb9bd SGX-KM: Block DPLL cascading when SGX clock is enabled - 616ff0b SGX-KM: Hold wake lock during hardware recovery - 872b4c0 SGXKM: Fix NULL handle warning when blitting GC320 - 39de55c SGXKM: Allow for late or no GPU mapping - d229a7b SGXKM: Allow for SW access to a tiler buffer - 7024790 SGXUM: Adds YUV plane offsets for MM - d202649 SGXKM: SGX Tiler non-page-aligned support - 2b2ac18 SGXUM: Implements GPU Common Buffer Interface - 86cd052 SGXUM: Multi-buffer manage bridge - d272c49 SGXKM: Multi-buffer manage bridge - 4d8facf SGXKM: Implements Heap Alloc Failure Report - 6d4253a SGXUM: Add support for GPU unmap/remap - 64f4805 SGXKM: Add support for GPU unmap/remap - 5425356 SGX-KM: Use CONFIG_DRM_OMAP_DMM_TILER for kernel 3.4 - 853be19 SGX-KM: Use pud_offset to get pmd_offset - 5ec5d70 PVR-KM: Prevent compilation of dc_omapfb3_linux - 1bbe8a2 SGX-KM: Remove hardcoding of values in egl.cfg - 83b8af6 pvr-km: kfree phys info at unmap instead of map - f347fb9 pvr-km: add a struct size to the physical descriptor - 6ccff8f gralloc: Set flag to enable GC MMU mapping in PVR services - 0cfaa6d PVR-KM: Add function to obtain BV descriptor through 3PDC interface - c8f4c5f PVR-KM: Map buffers to GC core MMU on allocation time with Bltsville - 65b2b84 SGXKM: Prevent mapping of export with zero ref - f4cc0a2 OMAP4-SGX-UM: Allow for tiler buffer SW access - 5c97ded OMAP4-SGX-UM: Gralloc SW access and caching flags - bbf5424 OMAP4-SGX-UM: Gralloc HAL_PIXEL_FORMAT_NV12 format - ec6cc69 SGX-KM: Make PVRSRVExportFDToIONHandles generic and register it with ion - 8c1255d PVR-KM: OMAP5: Use shared device for Tiler 2D Mappings - 2391ac8 PVR-KM: OMAP5: Hardcode core version value - 7d87962 SGX-KM: OMAP5: HACK: Set the size of the SGX registers - 9f40224 SGX-UM: add detection of OMAP5432 in pvrsrvinit - f75d48b SGX-UM: build: Add panda5 and omap5sevm to product list - c23eff9 SGX-KM: BUILD: Add OMAP5 support - 5cc4ade SGX-UM: BUILD: Consolidate build into a single Makefile - 2c6a2f6 SGX-KM: (build) Remove Android product and version dependency - 6f54fe8 Build: Don't install egl.cfg anymore - a49c59c SGX-KM: egl.cfg sysfs entry - c759928 SGX-KM: Enable DPF, TRACE and ASSERT - 1628094 build-km: Enable blaze and blaze_tablet for ICS environment - 05f00eb build: Enable blaze and blaze_tablet for ICS environment - 542e279 SGX-KM: Add ability to build multiple sets of GFX kernel modules - 69d3661 build: Set correct load directory for kernel modules. - 2dfe14b KM: add support for sgx544sc - 58f317a SGX-UM: Add ability to build multiple sets of GFX binaries - 04e5deb SGX-KM: Use platform data for OPP symbols. - 5eed373 SGX-UM: Enable building binaries for specific SGX - 0801be2 readme: Add README - 649d010 build: Add build_DDK.sh - fe34640 Create gitignore file - 519ca9a IMG DDK 1.9@2166536 for Android Change-Id: I4a060344fa134a2484d1b7a69fc87963455e9e34 Signed-off-by: Eric Luong <x0119002@ti.com>
Diffstat (limited to 'pvr-source/services4/include/kerneldisplay.h')
-rw-r--r--pvr-source/services4/include/kerneldisplay.h243
1 files changed, 243 insertions, 0 deletions
diff --git a/pvr-source/services4/include/kerneldisplay.h b/pvr-source/services4/include/kerneldisplay.h
new file mode 100644
index 0000000..2efd7b3
--- /dev/null
+++ b/pvr-source/services4/include/kerneldisplay.h
@@ -0,0 +1,243 @@
+/*************************************************************************/ /*!
+@Title Display device class API structures and prototypes
+@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+@Description Provides display device class API structures and prototypes
+ for kernel services to kernel 3rd party display.
+@License Dual MIT/GPLv2
+
+The contents of this file are subject to the MIT license as set out below.
+
+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, sublicense, 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 shall be included in
+all copies or substantial portions of the Software.
+
+Alternatively, the contents of this file may be used under the terms of
+the GNU General Public License Version 2 ("GPL") in which case the provisions
+of GPL are applicable instead of those above.
+
+If you wish to allow use of your version of this file only under the terms of
+GPL, and not to allow others to use your version of this file under the terms
+of the MIT license, indicate your decision by deleting the provisions above
+and replace them with the notice and other provisions required by GPL as set
+out in the file called "GPL-COPYING" included in this distribution. If you do
+not delete the provisions above, a recipient may use your version of this file
+under the terms of either the MIT license or GPL.
+
+This License is also included in this distribution in the file called
+"MIT-COPYING".
+
+EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) 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 NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS 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.
+*/ /**************************************************************************/
+
+#if !defined (__KERNELDISPLAY_H__)
+#define __KERNELDISPLAY_H__
+
+#if defined (__cplusplus)
+extern "C" {
+#endif
+
+typedef PVRSRV_ERROR (*PFN_OPEN_DC_DEVICE)(IMG_UINT32, IMG_HANDLE*, PVRSRV_SYNC_DATA*);
+typedef PVRSRV_ERROR (*PFN_CLOSE_DC_DEVICE)(IMG_HANDLE);
+typedef PVRSRV_ERROR (*PFN_ENUM_DC_FORMATS)(IMG_HANDLE, IMG_UINT32*, DISPLAY_FORMAT*);
+typedef PVRSRV_ERROR (*PFN_ENUM_DC_DIMS)(IMG_HANDLE,
+ DISPLAY_FORMAT*,
+ IMG_UINT32*,
+ DISPLAY_DIMS*);
+typedef PVRSRV_ERROR (*PFN_GET_DC_SYSTEMBUFFER)(IMG_HANDLE, IMG_HANDLE*);
+typedef PVRSRV_ERROR (*PFN_GET_DC_INFO)(IMG_HANDLE, DISPLAY_INFO*);
+typedef PVRSRV_ERROR (*PFN_CREATE_DC_SWAPCHAIN)(IMG_HANDLE,
+ IMG_UINT32,
+ DISPLAY_SURF_ATTRIBUTES*,
+ DISPLAY_SURF_ATTRIBUTES*,
+ IMG_UINT32,
+ PVRSRV_SYNC_DATA**,
+ IMG_UINT32,
+ IMG_HANDLE*,
+ IMG_UINT32*);
+typedef PVRSRV_ERROR (*PFN_DESTROY_DC_SWAPCHAIN)(IMG_HANDLE,
+ IMG_HANDLE);
+typedef PVRSRV_ERROR (*PFN_SET_DC_DSTRECT)(IMG_HANDLE, IMG_HANDLE, IMG_RECT*);
+typedef PVRSRV_ERROR (*PFN_SET_DC_SRCRECT)(IMG_HANDLE, IMG_HANDLE, IMG_RECT*);
+typedef PVRSRV_ERROR (*PFN_SET_DC_DSTCK)(IMG_HANDLE, IMG_HANDLE, IMG_UINT32);
+typedef PVRSRV_ERROR (*PFN_SET_DC_SRCCK)(IMG_HANDLE, IMG_HANDLE, IMG_UINT32);
+typedef PVRSRV_ERROR (*PFN_GET_DC_BUFFERS)(IMG_HANDLE,
+ IMG_HANDLE,
+ IMG_UINT32*,
+ IMG_HANDLE*);
+typedef PVRSRV_ERROR (*PFN_SWAP_TO_DC_BUFFER)(IMG_HANDLE,
+ IMG_HANDLE,
+ IMG_UINT32,
+ IMG_HANDLE,
+ IMG_UINT32,
+ IMG_RECT*);
+typedef IMG_VOID (*PFN_QUERY_SWAP_COMMAND_ID)(IMG_HANDLE, IMG_HANDLE, IMG_HANDLE, IMG_HANDLE, IMG_UINT16*, IMG_BOOL*);
+typedef IMG_VOID (*PFN_SET_DC_STATE)(IMG_HANDLE, IMG_UINT32);
+
+/*
+ Function table for SRVKM->DISPLAY
+*/
+typedef struct PVRSRV_DC_SRV2DISP_KMJTABLE_TAG
+{
+ IMG_UINT32 ui32TableSize;
+ PFN_OPEN_DC_DEVICE pfnOpenDCDevice;
+ PFN_CLOSE_DC_DEVICE pfnCloseDCDevice;
+ PFN_ENUM_DC_FORMATS pfnEnumDCFormats;
+ PFN_ENUM_DC_DIMS pfnEnumDCDims;
+ PFN_GET_DC_SYSTEMBUFFER pfnGetDCSystemBuffer;
+ PFN_GET_DC_INFO pfnGetDCInfo;
+ PFN_GET_BUFFER_ADDR pfnGetBufferAddr;
+ PFN_CREATE_DC_SWAPCHAIN pfnCreateDCSwapChain;
+ PFN_DESTROY_DC_SWAPCHAIN pfnDestroyDCSwapChain;
+ PFN_SET_DC_DSTRECT pfnSetDCDstRect;
+ PFN_SET_DC_SRCRECT pfnSetDCSrcRect;
+ PFN_SET_DC_DSTCK pfnSetDCDstColourKey;
+ PFN_SET_DC_SRCCK pfnSetDCSrcColourKey;
+ PFN_GET_DC_BUFFERS pfnGetDCBuffers;
+ PFN_SWAP_TO_DC_BUFFER pfnSwapToDCBuffer;
+ PFN_SET_DC_STATE pfnSetDCState;
+ PFN_QUERY_SWAP_COMMAND_ID pfnQuerySwapCommandID;
+
+} PVRSRV_DC_SRV2DISP_KMJTABLE;
+
+/* ISR callback pfn prototype */
+typedef IMG_BOOL (*PFN_ISR_HANDLER)(IMG_VOID*);
+
+/*
+ functions exported by kernel services for use by 3rd party kernel display class device driver
+*/
+typedef PVRSRV_ERROR (*PFN_DC_REGISTER_DISPLAY_DEV)(PVRSRV_DC_SRV2DISP_KMJTABLE*, IMG_UINT32*);
+typedef PVRSRV_ERROR (*PFN_DC_REMOVE_DISPLAY_DEV)(IMG_UINT32);
+typedef PVRSRV_ERROR (*PFN_DC_OEM_FUNCTION)(IMG_UINT32, IMG_VOID*, IMG_UINT32, IMG_VOID*, IMG_UINT32);
+typedef PVRSRV_ERROR (*PFN_DC_REGISTER_COMMANDPROCLIST)(IMG_UINT32, PPFN_CMD_PROC,IMG_UINT32[][2], IMG_UINT32);
+typedef PVRSRV_ERROR (*PFN_DC_REMOVE_COMMANDPROCLIST)(IMG_UINT32, IMG_UINT32);
+typedef IMG_VOID (*PFN_DC_CMD_COMPLETE)(IMG_HANDLE, IMG_BOOL);
+typedef PVRSRV_ERROR (*PFN_DC_REGISTER_SYS_ISR)(PFN_ISR_HANDLER, IMG_VOID*, IMG_UINT32, IMG_UINT32);
+typedef PVRSRV_ERROR (*PFN_DC_REGISTER_POWER)(IMG_UINT32, PFN_PRE_POWER, PFN_POST_POWER,
+ PFN_PRE_CLOCKSPEED_CHANGE, PFN_POST_CLOCKSPEED_CHANGE,
+ IMG_HANDLE, PVRSRV_DEV_POWER_STATE, PVRSRV_DEV_POWER_STATE);
+
+typedef struct _PVRSRV_KERNEL_MEM_INFO_* PDC_MEM_INFO;
+
+typedef PVRSRV_ERROR (*PFN_DC_MEMINFO_GET_CPU_VADDR)(PDC_MEM_INFO, IMG_CPU_VIRTADDR *pVAddr);
+typedef PVRSRV_ERROR (*PFN_DC_MEMINFO_GET_CPU_PADDR)(PDC_MEM_INFO, IMG_SIZE_T uByteOffset, IMG_CPU_PHYADDR *pPAddr);
+typedef PVRSRV_ERROR (*PFN_DC_MEMINFO_GET_BYTE_SIZE)(PDC_MEM_INFO, IMG_SIZE_T *uByteSize);
+typedef IMG_BOOL (*PFN_DC_MEMINFO_IS_PHYS_CONTIG)(PDC_MEM_INFO);
+typedef PVRSRV_ERROR (*PFN_DC_GETBVHANDLE)(PDC_MEM_INFO, IMG_VOID **handle);
+typedef IMG_INT32 (*PFN_DC_MEMINFO_GET_MULTI_PLANE_CPU_PADDRS)(PDC_MEM_INFO, IMG_SIZE_T* puByteOffsets,
+ IMG_CPU_PHYADDR *pPAddrs, IMG_UINT32* pui32NumAddrOffsets);
+
+/*
+ Function table for DISPLAY->SRVKM
+*/
+typedef struct PVRSRV_DC_DISP2SRV_KMJTABLE_TAG
+{
+ IMG_UINT32 ui32TableSize;
+ PFN_DC_REGISTER_DISPLAY_DEV pfnPVRSRVRegisterDCDevice;
+ PFN_DC_REMOVE_DISPLAY_DEV pfnPVRSRVRemoveDCDevice;
+ PFN_DC_OEM_FUNCTION pfnPVRSRVOEMFunction;
+ PFN_DC_REGISTER_COMMANDPROCLIST pfnPVRSRVRegisterCmdProcList;
+ PFN_DC_REMOVE_COMMANDPROCLIST pfnPVRSRVRemoveCmdProcList;
+ PFN_DC_CMD_COMPLETE pfnPVRSRVCmdComplete;
+ PFN_DC_REGISTER_SYS_ISR pfnPVRSRVRegisterSystemISRHandler;
+ PFN_DC_REGISTER_POWER pfnPVRSRVRegisterPowerDevice;
+ PFN_DC_CMD_COMPLETE pfnPVRSRVFreeCmdCompletePacket;
+ PFN_DC_MEMINFO_GET_CPU_VADDR pfnPVRSRVDCMemInfoGetCpuVAddr;
+ PFN_DC_MEMINFO_GET_CPU_PADDR pfnPVRSRVDCMemInfoGetCpuPAddr;
+ PFN_DC_MEMINFO_GET_BYTE_SIZE pfnPVRSRVDCMemInfoGetByteSize;
+ PFN_DC_MEMINFO_IS_PHYS_CONTIG pfnPVRSRVDCMemInfoIsPhysContig;
+ PFN_DC_GETBVHANDLE pfnPVRSRVDCMemInfoGetBvHandle;
+ PFN_DC_MEMINFO_GET_MULTI_PLANE_CPU_PADDRS pfnPVRSRVDCMemInfoGetCpuMultiPlanePAddr;
+
+} PVRSRV_DC_DISP2SRV_KMJTABLE, *PPVRSRV_DC_DISP2SRV_KMJTABLE;
+
+
+typedef struct DISPLAYCLASS_FLIP_COMMAND_TAG
+{
+ /* Ext Device Handle */
+ IMG_HANDLE hExtDevice;
+
+ /* Ext SwapChain Handle */
+ IMG_HANDLE hExtSwapChain;
+
+ /* Ext Buffer Handle (Buffer to Flip to) */
+ IMG_HANDLE hExtBuffer;
+
+ /* private tag */
+ IMG_HANDLE hPrivateTag;
+
+ /* number of clip rects */
+ IMG_UINT32 ui32ClipRectCount;
+
+ /* clip rects */
+ IMG_RECT *psClipRect;
+
+ /* number of vsync intervals between successive flips */
+ IMG_UINT32 ui32SwapInterval;
+
+} DISPLAYCLASS_FLIP_COMMAND;
+
+
+typedef struct DISPLAYCLASS_FLIP_COMMAND2_TAG
+{
+ /* Ext Device Handle */
+ IMG_HANDLE hExtDevice;
+
+ /* Ext SwapChain Handle */
+ IMG_HANDLE hExtSwapChain;
+
+ /* Unused field, padding for compatibility with above structure */
+ IMG_HANDLE hUnused;
+
+ /* number of vsync intervals between successive flips */
+ IMG_UINT32 ui32SwapInterval;
+
+ /* private data from userspace */
+ IMG_PVOID pvPrivData;
+
+ /* length of private data in bytes */
+ IMG_UINT32 ui32PrivDataLength;
+
+ /* meminfos */
+ PDC_MEM_INFO *ppsMemInfos;
+
+ /* number of meminfos */
+ IMG_UINT32 ui32NumMemInfos;
+
+} DISPLAYCLASS_FLIP_COMMAND2;
+
+/* start command IDs from 0 */
+#define DC_FLIP_COMMAND 0
+
+/* States used in PFN_SET_DC_STATE */
+#define DC_STATE_NO_FLUSH_COMMANDS 0
+#define DC_STATE_FLUSH_COMMANDS 1
+#define DC_STATE_FORCE_SWAP_TO_SYSTEM 2
+
+/* function to retrieve kernel services function table from kernel services */
+typedef IMG_BOOL (*PFN_DC_GET_PVRJTABLE)(PPVRSRV_DC_DISP2SRV_KMJTABLE);
+
+/* Prototype for platforms that access the JTable via linkage */
+IMG_IMPORT IMG_BOOL PVRGetDisplayClassJTable(PVRSRV_DC_DISP2SRV_KMJTABLE *psJTable);
+
+
+#if defined (__cplusplus)
+}
+#endif
+
+#endif/* #if !defined (__KERNELDISPLAY_H__) */
+
+/******************************************************************************
+ End of file (kerneldisplay.h)
+******************************************************************************/