diff options
Diffstat (limited to 'pvr-source/tools/intern/debug/dbgdriv/linux')
-rwxr-xr-x | pvr-source/tools/intern/debug/dbgdriv/linux/hostfunc.c | 395 | ||||
-rwxr-xr-x | pvr-source/tools/intern/debug/dbgdriv/linux/main.c | 355 |
2 files changed, 0 insertions, 750 deletions
diff --git a/pvr-source/tools/intern/debug/dbgdriv/linux/hostfunc.c b/pvr-source/tools/intern/debug/dbgdriv/linux/hostfunc.c deleted file mode 100755 index 5d5e9ef..0000000 --- a/pvr-source/tools/intern/debug/dbgdriv/linux/hostfunc.c +++ /dev/null @@ -1,395 +0,0 @@ -/*************************************************************************/ /*! -@Title Debug driver file -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@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. -*/ /**************************************************************************/ -#include <linux/version.h> -#include <linux/errno.h> -#include <linux/module.h> -#include <linux/fs.h> -#include <linux/kernel.h> -#include <linux/slab.h> -#include <linux/mm.h> -#include <linux/string.h> -#include <asm/page.h> -#include <linux/vmalloc.h> -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)) -#include <linux/mutex.h> -#else -#include <asm/semaphore.h> -#endif -#include <linux/hardirq.h> - -#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS) -#include <linux/sched.h> -#include <linux/wait.h> -#include <linux/jiffies.h> -#include <linux/delay.h> -#endif /* defined(SUPPORT_DBGDRV_EVENT_OBJECTS) */ - -#include "img_types.h" -#include "pvr_debug.h" - -#include "dbgdrvif.h" -#include "hostfunc.h" -#include "dbgdriv.h" - -#if defined(MODULE) && defined(DEBUG) && !defined(SUPPORT_DRI_DRM) -IMG_UINT32 gPVRDebugLevel = (DBGPRIV_FATAL | DBGPRIV_ERROR | DBGPRIV_WARNING); - -#define PVR_STRING_TERMINATOR '\0' -#define PVR_IS_FILE_SEPARATOR(character) ( ((character) == '\\') || ((character) == '/') ) - -/******************************************************************************/ - - -/*! -****************************************************************************** - - @Function PVRSRVDebugPrintf - - @Description To output a debug message to the user - - @Input uDebugLevel: The current debug level - @Input pszFile: The source file generating the message - @Input uLine: The line of the source file - @Input pszFormat: The message format string - @Input ...: Zero or more arguments for use by the format string - - @Return none -******************************************************************************/ -void PVRSRVDebugPrintf ( - IMG_UINT32 ui32DebugLevel, - const IMG_CHAR* pszFileName, - IMG_UINT32 ui32Line, - const IMG_CHAR* pszFormat, - ... - ) -{ - IMG_BOOL bTrace; -#if !defined(__sh__) - IMG_CHAR *pszLeafName; - - pszLeafName = (char *)strrchr (pszFileName, '\\'); - - if (pszLeafName) - { - pszFileName = pszLeafName; - } -#endif /* __sh__ */ - - bTrace = (IMG_BOOL)(ui32DebugLevel & DBGPRIV_CALLTRACE) ? IMG_TRUE : IMG_FALSE; - - if (gPVRDebugLevel & ui32DebugLevel) - { - va_list vaArgs; - char szBuffer[256]; - char *szBufferEnd = szBuffer; - char *szBufferLimit = szBuffer + sizeof(szBuffer) - 1; - - /* The Limit - End pointer arithmetic we're doing in snprintf - ensures that our buffer remains null terminated from this */ - *szBufferLimit = '\0'; - - snprintf(szBufferEnd, szBufferLimit - szBufferEnd, "PVR_K:"); - szBufferEnd += strlen(szBufferEnd); - - /* Add in the level of warning */ - if (bTrace == IMG_FALSE) - { - switch(ui32DebugLevel) - { - case DBGPRIV_FATAL: - { - snprintf(szBufferEnd, szBufferLimit - szBufferEnd, "(Fatal):"); - break; - } - case DBGPRIV_ERROR: - { - snprintf(szBufferEnd, szBufferLimit - szBufferEnd, "(Error):"); - break; - } - case DBGPRIV_WARNING: - { - snprintf(szBufferEnd, szBufferLimit - szBufferEnd, "(Warning):"); - break; - } - case DBGPRIV_MESSAGE: - { - snprintf(szBufferEnd, szBufferLimit - szBufferEnd, "(Message):"); - break; - } - case DBGPRIV_VERBOSE: - { - snprintf(szBufferEnd, szBufferLimit - szBufferEnd, "(Verbose):"); - break; - } - default: - { - snprintf(szBufferEnd, szBufferLimit - szBufferEnd, "(Unknown message level)"); - break; - } - } - szBufferEnd += strlen(szBufferEnd); - } - snprintf(szBufferEnd, szBufferLimit - szBufferEnd, " "); - szBufferEnd += strlen(szBufferEnd); - - va_start (vaArgs, pszFormat); - vsnprintf(szBufferEnd, szBufferLimit - szBufferEnd, pszFormat, vaArgs); - va_end (vaArgs); - szBufferEnd += strlen(szBufferEnd); - - /* - * Metrics and Traces don't need a location - */ - if (bTrace == IMG_FALSE) - { - snprintf(szBufferEnd, szBufferLimit - szBufferEnd, - " [%d, %s]", (int)ui32Line, pszFileName); - szBufferEnd += strlen(szBufferEnd); - } - - printk(KERN_INFO "%s\r\n", szBuffer); - } -} -#endif /* defined(DEBUG) && !defined(SUPPORT_DRI_DRM) */ - -/*! -****************************************************************************** - - @Function HostMemSet - - @Description Function that does the same as the C memset() function - - @Modified *pvDest : pointer to start of buffer to be set - - @Input ui8Value: value to set each byte to - - @Input ui32Size : number of bytes to set - - @Return IMG_VOID - -******************************************************************************/ -IMG_VOID HostMemSet(IMG_VOID *pvDest, IMG_UINT8 ui8Value, IMG_UINT32 ui32Size) -{ - memset(pvDest, (int) ui8Value, (size_t) ui32Size); -} - -/*! -****************************************************************************** - - @Function HostMemCopy - - @Description Function that does the same as the C memscpy() function - - @Input pvDst - pointer to dst - @Output pvSrc - pointer to src - @Input ui32Size - bytes to copy - - @Return none - -******************************************************************************/ -IMG_VOID HostMemCopy(IMG_VOID *pvDst, IMG_VOID *pvSrc, IMG_UINT32 ui32Size) -{ -#if defined(USE_UNOPTIMISED_MEMCPY) - unsigned char *src,*dst; - int i; - - src=(unsigned char *)pvSrc; - dst=(unsigned char *)pvDst; - for(i=0;i<ui32Size;i++) - { - dst[i]=src[i]; - } -#else - memcpy(pvDst, pvSrc, ui32Size); -#endif -} - -IMG_UINT32 HostReadRegistryDWORDFromString(char *pcKey, char *pcValueName, IMG_UINT32 *pui32Data) -{ - /* FIXME: Not yet implemented */ - return 0; -} - -IMG_VOID * HostPageablePageAlloc(IMG_UINT32 ui32Pages) -{ - return (void*)vmalloc(ui32Pages * PAGE_SIZE);/*, GFP_KERNEL);*/ -} - -IMG_VOID HostPageablePageFree(IMG_VOID * pvBase) -{ - vfree(pvBase); -} - -IMG_VOID * HostNonPageablePageAlloc(IMG_UINT32 ui32Pages) -{ - return (void*)vmalloc(ui32Pages * PAGE_SIZE);/*, GFP_KERNEL);*/ -} - -IMG_VOID HostNonPageablePageFree(IMG_VOID * pvBase) -{ - vfree(pvBase); -} - -IMG_VOID * HostMapKrnBufIntoUser(IMG_VOID * pvKrnAddr, IMG_UINT32 ui32Size, IMG_VOID **ppvMdl) -{ - /* FIXME: Not yet implemented */ - return IMG_NULL; -} - -IMG_VOID HostUnMapKrnBufFromUser(IMG_VOID * pvUserAddr, IMG_VOID * pvMdl, IMG_VOID * pvProcess) -{ - /* FIXME: Not yet implemented */ -} - -IMG_VOID HostCreateRegDeclStreams(IMG_VOID) -{ - /* FIXME: Not yet implemented */ -} - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) -typedef struct mutex MUTEX; -#define INIT_MUTEX(m) mutex_init(m) -#define DOWN_TRYLOCK(m) (!mutex_trylock(m)) -#define DOWN(m) mutex_lock(m) -#define UP(m) mutex_unlock(m) -#else -typedef struct semaphore MUTEX; -#define INIT_MUTEX(m) init_MUTEX(m) -#define DOWN_TRYLOCK(m) down_trylock(m) -#define DOWN(m) down(m) -#define UP(m) up(m) -#endif - -IMG_VOID *HostCreateMutex(IMG_VOID) -{ - MUTEX *psMutex; - - psMutex = kmalloc(sizeof(*psMutex), GFP_KERNEL); - if (psMutex) - { - INIT_MUTEX(psMutex); - } - - return psMutex; -} - -IMG_VOID HostAquireMutex(IMG_VOID * pvMutex) -{ - BUG_ON(in_interrupt()); - -#if defined(PVR_DEBUG_DBGDRV_DETECT_HOST_MUTEX_COLLISIONS) - if (DOWN_TRYLOCK((MUTEX *)pvMutex)) - { - printk(KERN_INFO "HostAquireMutex: Waiting for mutex\n"); - DOWN((MUTEX *)pvMutex); - } -#else - DOWN((MUTEX *)pvMutex); -#endif -} - -IMG_VOID HostReleaseMutex(IMG_VOID * pvMutex) -{ - UP((MUTEX *)pvMutex); -} - -IMG_VOID HostDestroyMutex(IMG_VOID * pvMutex) -{ - if (pvMutex) - { - kfree(pvMutex); - } -} - -#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS) - -#define EVENT_WAIT_TIMEOUT_MS 500 -#define EVENT_WAIT_TIMEOUT_JIFFIES (EVENT_WAIT_TIMEOUT_MS * HZ / 1000) - -static int iStreamData; -static wait_queue_head_t sStreamDataEvent; - -IMG_INT32 HostCreateEventObjects(IMG_VOID) -{ - init_waitqueue_head(&sStreamDataEvent); - - return 0; -} - -IMG_VOID HostWaitForEvent(DBG_EVENT eEvent) -{ - switch(eEvent) - { - case DBG_EVENT_STREAM_DATA: - /* - * More than one process may be woken up. - * Any process that wakes up should consume - * all the data from the streams. - */ - wait_event_interruptible_timeout(sStreamDataEvent, iStreamData != 0, EVENT_WAIT_TIMEOUT_JIFFIES); - iStreamData = 0; - break; - default: - /* - * For unknown events, enter an interruptible sleep. - */ - msleep_interruptible(EVENT_WAIT_TIMEOUT_MS); - break; - } -} - -IMG_VOID HostSignalEvent(DBG_EVENT eEvent) -{ - switch(eEvent) - { - case DBG_EVENT_STREAM_DATA: - iStreamData = 1; - wake_up_interruptible(&sStreamDataEvent); - break; - default: - break; - } -} - -IMG_VOID HostDestroyEventObjects(IMG_VOID) -{ -} -#endif /* defined(SUPPORT_DBGDRV_EVENT_OBJECTS) */ diff --git a/pvr-source/tools/intern/debug/dbgdriv/linux/main.c b/pvr-source/tools/intern/debug/dbgdriv/linux/main.c deleted file mode 100755 index c1ca85b..0000000 --- a/pvr-source/tools/intern/debug/dbgdriv/linux/main.c +++ /dev/null @@ -1,355 +0,0 @@ -/*************************************************************************/ /*! -@Title Debug driver main file -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@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. -*/ /**************************************************************************/ -#include <linux/errno.h> -#include <linux/module.h> -#include <linux/fs.h> -#include <linux/kernel.h> -#include <linux/kdev_t.h> -#include <linux/pci.h> -#include <linux/list.h> -#include <linux/init.h> -#include <linux/vmalloc.h> -#include <linux/version.h> - -#if defined(LDM_PLATFORM) && !defined(SUPPORT_DRI_DRM) -#include <linux/platform_device.h> -#endif - -#if defined(LDM_PCI) && !defined(SUPPORT_DRI_DRM) -#include <linux/pci.h> -#endif - -#include <asm/uaccess.h> - -#if defined(SUPPORT_DRI_DRM) -#include "drmP.h" -#include "drm.h" -#endif - -#include "img_types.h" -#include "linuxsrv.h" -#include "dbgdriv_ioctl.h" -#include "dbgdrvif.h" -#include "dbgdriv.h" -#include "hostfunc.h" -#include "hotkey.h" -#include "pvr_debug.h" -#include "pvrmodule.h" -#include "pvr_uaccess.h" - -#if defined(SUPPORT_DRI_DRM) - -#include "pvr_drm_shared.h" -#include "pvr_drm.h" - -#else /* defined(SUPPORT_DRI_DRM) */ - -#define DRVNAME "dbgdrv" -MODULE_SUPPORTED_DEVICE(DRVNAME); - -#if (defined(LDM_PLATFORM) || defined(LDM_PCI)) && !defined(SUPPORT_DRI_DRM) -static struct class *psDbgDrvClass; -#endif - -static int AssignedMajorNumber = 0; - -long dbgdrv_ioctl(struct file *, unsigned int, unsigned long); - -static int dbgdrv_open(struct inode unref__ * pInode, struct file unref__ * pFile) -{ - return 0; -} - -static int dbgdrv_release(struct inode unref__ * pInode, struct file unref__ * pFile) -{ - return 0; -} - -static int dbgdrv_mmap(struct file* pFile, struct vm_area_struct* ps_vma) -{ - return 0; -} - -static struct file_operations dbgdrv_fops = { - .owner = THIS_MODULE, - .unlocked_ioctl = dbgdrv_ioctl, - .open = dbgdrv_open, - .release = dbgdrv_release, - .mmap = dbgdrv_mmap, -}; - -#endif /* defined(SUPPORT_DRI_DRM) */ - -IMG_VOID DBGDrvGetServiceTable(DBGKM_SERVICE_TABLE **fn_table) -{ - extern DBGKM_SERVICE_TABLE g_sDBGKMServices; - - *fn_table = &g_sDBGKMServices; -} - -#if defined(SUPPORT_DRI_DRM) -void dbgdrv_cleanup(void) -#else -static void __exit dbgdrv_cleanup(void) -#endif -{ -#if !defined(SUPPORT_DRI_DRM) -#if defined(LDM_PLATFORM) || defined(LDM_PCI) - device_destroy(psDbgDrvClass, MKDEV(AssignedMajorNumber, 0)); - class_destroy(psDbgDrvClass); -#endif - unregister_chrdev(AssignedMajorNumber, DRVNAME); -#endif /* !defined(SUPPORT_DRI_DRM) */ -#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS) - HostDestroyEventObjects(); -#endif - HostDestroyMutex(g_pvAPIMutex); - return; -} - -#if defined(SUPPORT_DRI_DRM) -IMG_INT dbgdrv_init(void) -#else -static int __init dbgdrv_init(void) -#endif -{ -#if (defined(LDM_PLATFORM) || defined(LDM_PCI)) && !defined(SUPPORT_DRI_DRM) - struct device *psDev; -#endif - -#if !defined(SUPPORT_DRI_DRM) - int err = -EBUSY; -#endif - - /* Init API mutex */ - if ((g_pvAPIMutex=HostCreateMutex()) == IMG_NULL) - { - return -ENOMEM; - } - -#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS) - /* - * The current implementation of HostCreateEventObjects on Linux - * can never fail, so there is no need to check for error. - */ - (void) HostCreateEventObjects(); -#endif - -#if !defined(SUPPORT_DRI_DRM) - AssignedMajorNumber = - register_chrdev(AssignedMajorNumber, DRVNAME, &dbgdrv_fops); - - if (AssignedMajorNumber <= 0) - { - PVR_DPF((PVR_DBG_ERROR," unable to get major\n")); - goto ErrDestroyEventObjects; - } - -#if defined(LDM_PLATFORM) || defined(LDM_PCI) - /* - * This code (using GPL symbols) facilitates automatic device - * node creation on platforms with udev (or similar). - */ - psDbgDrvClass = class_create(THIS_MODULE, DRVNAME); - if (IS_ERR(psDbgDrvClass)) - { - PVR_DPF((PVR_DBG_ERROR, "%s: unable to create class (%ld)", - __func__, PTR_ERR(psDbgDrvClass))); - goto ErrUnregisterCharDev; - } - - psDev = device_create(psDbgDrvClass, NULL, MKDEV(AssignedMajorNumber, 0), -#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26)) - NULL, -#endif - DRVNAME); - if (IS_ERR(psDev)) - { - PVR_DPF((PVR_DBG_ERROR, "%s: unable to create device (%ld)", - __func__, PTR_ERR(psDev))); - goto ErrDestroyClass; - } -#endif /* defined(LDM_PLATFORM) || defined(LDM_PCI) */ -#endif /* !defined(SUPPORT_DRI_DRM) */ - - return 0; - -#if !defined(SUPPORT_DRI_DRM) -ErrDestroyEventObjects: -#if defined(SUPPORT_DBGDRV_EVENT_OBJECTS) - HostDestroyEventObjects(); -#endif -#if defined(LDM_PLATFORM) || defined(LDM_PCI) -ErrUnregisterCharDev: - unregister_chrdev(AssignedMajorNumber, DRVNAME); -ErrDestroyClass: - class_destroy(psDbgDrvClass); -#endif - return err; -#endif /* !defined(SUPPORT_DRI_DRM) */ -} - -#if defined(SUPPORT_DRI_DRM) -int dbgdrv_ioctl(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile) -#else -long dbgdrv_ioctl(struct file *file, unsigned int ioctlCmd, unsigned long arg) -#endif -{ - IOCTL_PACKAGE *pIP = (IOCTL_PACKAGE *) arg; - char *buffer, *in, *out; - unsigned int cmd; - - if((pIP->ui32InBufferSize > (PAGE_SIZE >> 1) ) || (pIP->ui32OutBufferSize > (PAGE_SIZE >> 1))) - { - PVR_DPF((PVR_DBG_ERROR,"Sizes of the buffers are too large, cannot do ioctl\n")); - return -1; - } - - buffer = (char *) HostPageablePageAlloc(1); - if(!buffer) - { - PVR_DPF((PVR_DBG_ERROR,"Failed to allocate buffer, cannot do ioctl\n")); - return -EFAULT; - } - - in = buffer; - out = buffer + (PAGE_SIZE >>1); - - if(pvr_copy_from_user(in, pIP->pInBuffer, pIP->ui32InBufferSize) != 0) - { - goto init_failed; - } - - /* Extra -1 because ioctls start at DEBUG_SERVICE_IOCTL_BASE + 1 */ - cmd = MAKEIOCTLINDEX(pIP->ui32Cmd) - DEBUG_SERVICE_IOCTL_BASE - 1; - - if(pIP->ui32Cmd == DEBUG_SERVICE_READ) - { - IMG_UINT32 *pui32BytesCopied = (IMG_UINT32 *)out; - DBG_IN_READ *psReadInParams = (DBG_IN_READ *)in; - DBG_STREAM *psStream; - IMG_CHAR *ui8Tmp; - - ui8Tmp = vmalloc(psReadInParams->ui32OutBufferSize); - - if(!ui8Tmp) - { - goto init_failed; - } - - psStream = SID2PStream(psReadInParams->hStream); - if(!psStream) - { - goto init_failed; - } - - *pui32BytesCopied = ExtDBGDrivRead(psStream, - psReadInParams->bReadInitBuffer, - psReadInParams->ui32OutBufferSize, - ui8Tmp); - - if(pvr_copy_to_user(psReadInParams->u.pui8OutBuffer, - ui8Tmp, - *pui32BytesCopied) != 0) - { - vfree(ui8Tmp); - goto init_failed; - } - - vfree(ui8Tmp); - } - else - { - (g_DBGDrivProc[cmd])(in, out); - } - - if(copy_to_user(pIP->pOutBuffer, out, pIP->ui32OutBufferSize) != 0) - { - goto init_failed; - } - - HostPageablePageFree((IMG_VOID *)buffer); - return 0; - -init_failed: - HostPageablePageFree((IMG_VOID *)buffer); - return -EFAULT; -} - - -/****************************************************************************** - * Function Name: RemoveHotKey - * - * Inputs : - - * Outputs : - - * Returns : - - * Globals Used : - - * - * Description : Removes HotKey callbacks - *****************************************************************************/ -IMG_VOID RemoveHotKey (IMG_UINT32 hHotKey) -{ - PVR_UNREFERENCED_PARAMETER(hHotKey); -} - -/****************************************************************************** - * Function Name: DefineHotKey - * - * Inputs : - - * Outputs : - - * Returns : - - * Globals Used : - - * - * Description : Removes HotKey callbacks - *****************************************************************************/ -IMG_VOID DefineHotKey (IMG_UINT32 ui32ScanCode, IMG_UINT32 ui32ShiftState, PHOTKEYINFO psInfo) -{ - PVR_UNREFERENCED_PARAMETER(ui32ScanCode); - PVR_UNREFERENCED_PARAMETER(ui32ShiftState); - PVR_UNREFERENCED_PARAMETER(psInfo); -} - -EXPORT_SYMBOL(DBGDrvGetServiceTable); - -#if !defined(SUPPORT_DRI_DRM) -subsys_initcall(dbgdrv_init); -module_exit(dbgdrv_cleanup); -#endif |