This repository has been archived on 2025-06-06. You can view files and clone it, but cannot push or open issues or pull requests.
Files
android-g900/Start_WM/test6/inc/GFRmHelp.inl
2010-10-16 00:02:07 +06:00

627 lines
19 KiB
C++
Executable File
Raw Permalink Blame History

/*
* Copyright 2003 NVIDIA Corporation. All Rights Reserved.
*
* BY INSTALLING THE SOFTWARE THE USER AGREES TO THE TERMS BELOW.
*
* User agrees to use the software under carefully controlled conditions
* and to inform all employees and contractors who have access to the software
* that the source code of the software is confidential and proprietary
* information of NVIDIA and is licensed to user as such. User acknowledges
* and agrees that protection of the source code is essential and user shall
* retain the source code in strict confidence. User shall restrict access to
* the source code of the software to those employees and contractors of user
* who have agreed to be bound by a confidentiality obligation which
* incorporates the protections and restrictions substantially set forth
* herein, and who have a need to access the source code in order to carry out
* the business purpose between NVIDIA and user. The software provided
* herewith to user may only be used so long as the software is used solely
* with NVIDIA products and no other third party products (hardware or
* software). The software must carry the NVIDIA copyright notice shown
* above. User must not disclose, copy, duplicate, reproduce, modify,
* publicly display, create derivative works of the software other than as
* expressly authorized herein. User must not under any circumstances,
* distribute or in any way disseminate the information contained in the
* source code and/or the source code itself to third parties except as
* expressly agreed to by NVIDIA. In the event that user discovers any bugs
* in the software, such bugs must be reported to NVIDIA and any fixes may be
* inserted into the source code of the software by NVIDIA only. User shall
* not modify the source code of the software in any way. User shall be fully
* responsible for the conduct of all of its employees, contractors and
* representatives who may in any way violate these restrictions.
*
* NO WARRANTY
* THE ACCOMPANYING SOFTWARE (INCLUDING OBJECT AND SOURCE CODE) PROVIDED BY
* NVIDIA TO USER IS PROVIDED "AS IS." NVIDIA DISCLAIMS ALL WARRANTIES,
* EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT.
* LIMITATION OF LIABILITY
* NVIDIA SHALL NOT BE LIABLE TO USER, USER<45>S CUSTOMERS, OR ANY OTHER PERSON
* OR ENTITY CLAIMING THROUGH OR UNDER USER FOR ANY LOSS OF PROFITS, INCOME,
* SAVINGS, OR ANY OTHER CONSEQUENTIAL, INCIDENTAL, SPECIAL, PUNITIVE, DIRECT
* OR INDIRECT DAMAGES (WHETHER IN AN ACTION IN CONTRACT, TORT OR BASED ON A
* WARRANTY), EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGES. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF THE
* ESSENTIAL PURPOSE OF ANY LIMITED REMEDY. IN NO EVENT SHALL NVIDIA<49>S
* AGGREGATE LIABILITY TO USER OR ANY OTHER PERSON OR ENTITY CLAIMING THROUGH
* OR UNDER USER EXCEED THE AMOUNT OF MONEY ACTUALLY PAID BY USER TO NVIDIA
* FOR THE SOFTWARE PROVIDED HEREWITH.
*/
/*
* File: GFRmHelp.inl
* GFSDK Resource Manager Helper Manager inline header file.
* #### The helper functions are highly dependent on Operating System ####
* #### and Compiler. A number of these functions are macros that ####
* #### maps to corresonding operating system functions directly. ####
*/
#ifndef __GFRMHelp_INL__
#define __GFRMHelp_INL__
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
/*
* Define the macro GFRMHELP_IMPORTFUNC to import the helper functions
* referenced in GFSDK. Typically Target OS provides definitions for these
* functions. Sample definitions are provided in file RMHelpGeneric.c.
*/
#if defined(GFRMHELP_ABSTRACTION)
extern char GFAToupper(char);
extern char GFATolower(char);
extern void *GFMalloc(int);
extern void GFFree(void *ptr);
extern void *GFMemcpy(void *, const void *, int);
extern void *GFMemmove(void *, const void *, int);
extern void *GFMemset(void *, int, int);
extern int GFMemcmp(void *, void *, int);
extern char *GFAStrcpy(char *, const char *);
extern char *GFAStrncpy(char *, const char *, int);
extern char *GFAStrcat(char *, const char *);
extern char *GFAStrncat(char *, const char *, int);
extern char *GFAStrstr(const char * string1, const char * string2);
extern int GFASscanf(char * string1, const char * string2, ...);
extern int GFAStrlen(const char *);
extern char *GFAStrchr(const char *,int);
extern int GFAStrcmp(const char *, const char *);
extern int GFAStrncmp(const char *, const char *, int);
extern char *GFAStrtok(char *, const char *);
extern long GFAStrtol(const char *, char **, int);
extern double GFAStrtod(const char *, char **);
extern int GFAPrintf(const char *, ... );
#if defined(GF_ENABLE_RMC_TRACE)
void GFRmRMCTrace(const char *printf_format, ...);
#define GFRMCTrace(a) GFRmRMCTrace a
#else
#define GFRMCTrace(a)
#endif
#else
/* Defined in GFRMHelp.c */
extern int GFAStricmp(char *, char *);
extern int GFAStrincmp(char *, char *, int);
#if defined(NV_WINDOWS_CE)
#ifndef __KERNEL__
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
#endif // __KERNEL__
/* String Helper functions */
#define GFAStrcpy(p1, p2) strcpy(p1, p2)
#define GFAStrncpy(p1, p2, p3) strncpy(p1, p2, p3)
#define GFAStrcat(p1, p2) strcat(p1, p2)
#define GFAStrncat(p1, p2, p3) strncat(p1, p2, p3)
#define GFAStrlen(p1) strlen(p1)
#define GFAStrchr(p1, p2) strchr(p1, p2)
#define GFAStrcmp(p1, p2) strcmp(p1, p2)
#define GFAStrncmp(p1, p2, p3) strncmp(p1, p2, p3)
#define GFAStrtok(p1, p2) strtok(p1, p2)
#define GFAStrstr(p1, p2) strstr(p1, p2)
#define GFASscanf(p1, p2, p3) sscanf(p1, p2, p3)
#define GFAToupper(p1) toupper(p1)
#define GFATolower(p1) tolower(p1)
#define GFAAtoi(p1) atoi(p1)
// convert char string to wchar_t
// p1 = src string of type char
// p2 = dst string of type wchar_t
// p3 = size of dst string in wchar_t unit
#define GFAStrConvert(p1, p2, p3) \
MultiByteToWideChar(CP_ACP, 0, p1, -1, p2, p3);
// convert wchar_t string to char
// p1 = src string of type wchar_t
// p2 = dst string of type char
// p3 = size of dst string in char unit
#define GFWStrConvert(p1, p2, p3) \
WideCharToMultiByte(CP_ACP, 0, p1, -1, p2, p3, NULL, NULL)
/* Standard Helper functions */
#define GFAStrtol(p1, p2, p3) strtol(p1, p2, p3)
#define GFAStrtod(p1, p2) strtod(p1, p2)
/* Memory Helper functions */
#define GFMalloc( p1 ) malloc( p1 )
#define GFFree( p1 ) free( p1 )
#define GFMemcpy( p1, p2, p3 ) memcpy( p1, p2, p3 )
#define GFMemmove( p1, p2, p3 ) memmove( p1, p2, p3 )
#define GFMemcmp( p1, p2, p3 ) memcmp( p1, p2, p3 )
#define GFMemset( p1, p2, p3 ) memset( p1, p2, p3 )
#if defined(GF_ENABLE_RMC_TRACE)
void GFRmRMCTrace(const char *printf_format, ...);
void GFRmRMCVTrace(const char *printf_format, va_list ap);
#define GFRMCTrace(a) GFRmRMCTrace a
#define GFRMCVTrace(a) GFRmRMCVTrace a
#else
#define GFRMCTrace(a)
#define GFRMCVTrace(a)
#endif
/* Debug Helper functions */
#define GFAPrintf printf
#define GFASprintf sprintf
#define GFASprintfVAL vsprintf
#define GFAPrintfVAL vprintf
#ifdef DEBUG
extern void RmDebugBreak(void);
#define GFDEBUG_ASSERT(x) if(!(x)) \
{ \
GFPrintf(" Assert at Line no: %d in %s ", \
__LINE__, __FILE__); \
RmDebugBreak(); \
}
#endif
#elif defined(NV_LINUX)
#ifndef __KERNEL__
#ifdef DEBUG
#include <assert.h>
#define GFDEBUG_ASSERT(x) assert(x)
#endif
#define __declspec(x)
#include <stdlib.h>
#define GFMalloc malloc
#define GFFree free
#include <ctype.h>
#define GFAToupper toupper
#define GFATolower tolower
#include <string.h>
#ifndef GF_XTENSA_RM_TASK
#include <strings.h>
#endif
#define GFMemcpy memcpy
#define GFMemmove memmove
#define GFMemset memset
#define GFMemcmp memcmp
#define GFAStrcmp strcmp
#define GFAStrcpy strcpy
#define GFAStrncpy strncpy
#define GFAStrlen strlen
#define GFAStrcat strcat
#define GFAStrncmp strncmp
#define GFAStrtok strtok
#define GFAStrstr strstr
#define GFASscanf sscanf
#include <stdio.h>
#define GFAPrintf printf
#define GFASprintf sprintf
#define GFASprintfVAL vsprintf
#define GFAPrintf printf
#define GFASprintf sprintf
#define GFASprintfVAL vsprintf
#define GFAPrintfVAL vprintf
#include <stdlib.h>
#define GFAStrtol strtol
#define GFAStrtod strtod
#define GFAAtoi atoi
#include <unistd.h>
/* Add or overload RMCTrace function here */
#if defined(GF_ENABLE_RMC_TRACE)
#include <stdarg.h>
void GFRmRMCTrace(const char *printf_format, ...);
void GFRmRMCVTrace(const char *printf_format, va_list ap);
#define GFRMCTrace(a) GFRmRMCTrace a
#define GFRMCVTrace(a) GFRmRMCVTrace a
#else
#define GFRMCTrace(a)
#define GFRMCVTrace(a)
#endif
#else /* kernel mode */
#include <linux/kernel.h>
#include <linux/slab.h>
#define GFMalloc(x) kmalloc((x), GFP_KERNEL)
#define GFFree kfree
#include <linux/ctype.h>
#define GFAToupper toupper
#define GFATolower tolower
#include <linux/string.h>
#define GFMemcpy memcpy
#define GFMemmove memmove
#define GFMemset memset
#define GFAStrcpy strcpy
#define GFAStrncpy strncpy
#define GFAStrlen strlen
#define GFMemcmp memcmp
#define GFAStrcmp strcmp
#define GFAStrncmp strncmp
#define GFAStrcat strcat
#define GFAStrncat strncat
#define GFAStrstr strstr
#define GFASscanf sscanf
#define GFAPrintf printk
#define GFASprintf sprintf
#define GFASprintfVAL vsprintf
#define GFAPrintfVAL vprintf
#define GFAAtoi atoi
#if defined(GF_ENABLE_RMC_TRACE)
#include <stdarg.h>
void GFRmRMCTrace(const char *printf_format, ...);
void GFRmRMCVTrace(const char *printf_format, va_list ap);
#define GFRMCTrace(a) GFRmRMCTrace a
#define GFRMCVTrace(a) GFRmRMCVTrace a
#else
#define GFRMCTrace(a)
#define GFRMCVTrace(a)
#endif
#endif /* KERNEL */
#elif defined(NV_WINDOWS)
#include <conio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
#include <stdio.h>
/* String functions */
#define GFAStrcpy(p1, p2) strcpy(p1, p2)
#define GFAStrncpy(p1, p2, p3) strncpy(p1, p2, p3)
#define GFAStrcat(p1, p2) strcat(p1, p2)
#define GFAStrncat(p1, p2, p3) strncat(p1, p2, p3)
#define GFAStrstr(p1, p2) strstr(p1, p2)
#define GFASscanf(p1, p2, p3) sscanf(p1, p2, p3)
#define GFAStrlen(p1) strlen(p1)
#define GFAStrchr(p1, p2) strchr(p1, p2)
#define GFAStrcmp(p1, p2) strcmp(p1, p2)
#define GFAStrncmp(p1, p2, p3) strncmp(p1, p2, p3)
#define GFAStrtok(p1, p2) strtok(p1, p2)
#define GFAToupper(p1) toupper(p1)
#define GFATolower(p1) tolower(p1)
#define GFAStrConvert(p1, p2, p3) \
strcpy(p2,p1)
// MultiByteToWideChar( CP_ACP, 0, p1, -1, p2, p3 );
// convert char string to Wide
// p1 = src string of type char
// p2 = dst string of type wchar_t
// p3 = size of dst string in wchar_t unit
/* Standard Helper functions */
#define GFAStrtol(p1, p2, p3) strtol(p1, p2, p3)
#define GFAStrtod(p1, p2) strtod(p1, p2)
/* Memory Helper functions */
#define GFMalloc( p1 ) malloc( p1 )
#define GFFree( p1 ) free( p1 )
#define GFMemcpy( p1, p2, p3 ) memcpy( p1, p2, p3 )
#define GFMemmove( p1, p2, p3 ) memmove( p1, p2, p3 )
#define GFMemcmp( p1, p2, p3 ) memcmp( p1, p2, p3 )
#define GFMemset( p1, p2, p3 ) memset( p1, p2, p3 )
#define GFAAtoi( p1 ) atoi( p1 )
/* Debug Helper functions */
#define GFAPrintf printf
#define GFASprintf sprintf
#define GFASprintfVAL vsprintf
#define GFAPrintfVAL vprintf
#if defined(GF_ENABLE_RMC_TRACE)
void GFRmRMCTrace(const char *printf_format, ...);
void GFRmRMCVTrace(const char *printf_format, va_list ap);
#define GFRMCTrace(a) GFRmRMCTrace a
#define GFRMCVTrace(a) GFRmRMCVTrace a
#else
#define GFRMCTrace(a)
#define GFRMCVTrace(a)
#endif
#ifdef DEBUG
#include "assert.h"
#define GFDEBUG_ASSERT( x ) assert( x )
#endif
// Operating system running on the Xtensa
#elif defined(NVCPU_XTENSA)
#include <string.h>
#define GFAAtoi(p1)
/* String functions */
#define GFAStrcpy(p1, p2) strcpy(p1, p2)
#define GFAStrncpy(p1, p2, p3)
#define GFAStrcat(p1, p2)
#define GFAStrncat(p1, p2, p3)
#define GFAStrlen(p1)
#define GFAStrchr(p1, p2)
#define GFAStrcmp(p1, p2)
#define GFAStrncmp(p1, p2, p3)
#define GFAStrstr(p1, p2)
#define GFASscanf(p1, p2, p3)
#define GFAStrncmp(p1, p2, p3)
#define GFAStrtok(p1, p2)
#define GFAToupper(p1)
#define GFATolower(p1)
#define GFAStrConvert(p1, p2, p3)
#define GFAAtoi(p1)
/* Standard Helper functions */
#define GFAStrtol(p1, p2, p3)
#define GFAStrtod(p1, p2)
/* Memory Helper functions */
#define GFMalloc( p1 )
#define GFFree( p1 )
#define GFMemcpy( p1, p2, p3 ) memcpy(p1, p2, p3)
#define GFMemmove( p1, p2, p3 ) memmove(p1, p2, p3)
#define GFMemcmp( p1, p2, p3 ) memcmp(p1, p2, p3)
#define GFMemset( p1, p2, p3 ) memset(p1, p2, p3)
/* Debug Helper functions */
#define GFAPrintf
#define GFASprintf
#define GFASprintfVAL
#define GFAPrintfVAL
#define GFRMCTrace(a)
#define GFRMCVTrace(a)
#else
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <stdio.h>
#include <stdarg.h>
/* String functions */
extern char GFAToupper(char);
extern char GFATolower(char);
extern int GFAAtoi(const char *);
//#define GFMalloc( p1 ) malloc( p1 )
//#define GFFree( p1 ) free( p1 )
extern void *GFMalloc(int);
extern void GFFree(void *);
extern void *GFMemcpy(void *, const void *, int);
extern void *GFMemmove(void *, const void *, int);
extern void *GFMemset(void *, int, int);
extern int GFMemcmp(void *, void *, int);
extern char *GFAStrcpy(char *, const char *);
extern char *GFAStrncpy(char *, const char *, int);
extern char *GFAStrcat(char *, const char *);
extern char *GFAStrncat(char *, const char *, int);
extern int GFAStrlen(const char *);
extern char *GFAStrchr(const char *,int);
extern char *GFAStrrchr(const char *,int);
extern int GFAStrcmp(const char *, const char *);
extern int GFAStrncmp(const char *, const char *, int);
extern char *GFAStrstr(const char * string1, const char * string2);
extern int GFASscanf(char * string1, const char * string2, ...);
extern char *GFAStrtok(char *, const char *);
extern long GFAStrtol(const char *, char **, int);
extern double GFAStrtod(const char *, char **);
extern int GFAPrintf(const char *, ... );
extern int GFASprintf(char * , const char *, ... );
extern int GFASprintfVAL(char *, const char *, va_list);
extern int GFAPrintfVAL(const char *, va_list);
#define GFAStrConvert(p1, p2, p3) GFAStrncpy(p1, p2, p3)
#if defined(GF_ENABLE_RMC_TRACE)
#define GFRMCTrace(a) printf a
#define GFRMCVTrace(a) vprintf a
#else
#define GFRMCTrace(a)
#define GFRMCVTrace(a)
#endif
#ifdef DEBUG
#define GFDEBUG_ASSERT(x) if(!(x)) \
{ \
GFPrintf(" Assert at Line no: %d in %s ", \
__LINE__, __FILE__); \
}
#endif
#endif /* GF_OS */
#endif /* GFRMHELP_ABSTRACTION */
#define GFStrcpy GFAStrcpy
#define GFStrncpy GFAStrncpy
#define GFStrcat GFAStrcat
#define GFStrncat GFAStrncat
#define GFStrlen GFAStrlen
#define GFStrchr GFAStrchr
#define GFStrrchr GFAStrrchr
#define GFStrstr GFAStrstr
#define GFStrcmp GFAStrcmp
#define GFStricmp GFAStricmp
#define GFStrincmp GFAStrincmp
#define GFStrncmp GFAStrncmp
#define GFStrtok GFAStrtok
#define GFToupper GFAToupper
#define GFTolower GFATolower
#define GFStrConvert GFAStrConvert
#define GFPrintf GFAPrintf
#define GFSprintf GFASprintf
#define GFSprintfVAL GFASprintfVAL
#define GFPrintfVAL GFAPrintfVAL
#define GFStrtol GFAStrtol
#define GFStrtod GFAStrtod
#define GFSscanf GFASscanf
#define GFAtoi GFAAtoi
/* Virtual Key Mappings for Specific OS */
#if defined(NV_LINUX)
/* Virtual Keys */
#define GF_VKEY_BACK 27
#define GF_VKEY_FORWARD 13
#define GF_VKEY_UP 65
#define GF_VKEY_LEFT 68
#define GF_VKEY_RIGHT 67
#define GF_VKEY_DOWN 66
#define GF_VKEY_SEND 46
#define GF_VKEY_END 44
#define GF_VKEY_0 48
#define GF_VKEY_1 49
#define GF_VKEY_2 50
#define GF_VKEY_3 51
#define GF_VKEY_4 52
#define GF_VKEY_5 53
#define GF_VKEY_6 54
#define GF_VKEY_7 55
#define GF_VKEY_8 56
#define GF_VKEY_9 57
#define GF_VKEY_STAR 42
#define GF_VKEY_POUND 35
#elif defined(NV_WINDOWS_CE)
/* Virtual Keys */
#define GF_VKEY_BACK 27
#define GF_VKEY_FORWARD 13
#define GF_VKEY_UP 72
#define GF_VKEY_LEFT 75
#define GF_VKEY_RIGHT 77
#define GF_VKEY_DOWN 80
#define GF_VKEY_SEND 46
#define GF_VKEY_END 44
#define GF_VKEY_0 48
#define GF_VKEY_1 49
#define GF_VKEY_2 50
#define GF_VKEY_3 51
#define GF_VKEY_4 52
#define GF_VKEY_5 53
#define GF_VKEY_6 54
#define GF_VKEY_7 55
#define GF_VKEY_8 56
#define GF_VKEY_9 57
#define GF_VKEY_STAR 42
#define GF_VKEY_POUND 35
#elif defined(NV_WINDOWS)
/* Virtual Keys */
#define GF_VKEY_BACK 27
#define GF_VKEY_FORWARD 13
#define GF_VKEY_UP 72
#define GF_VKEY_LEFT 75
#define GF_VKEY_RIGHT 77
#define GF_VKEY_DOWN 80
#define GF_VKEY_SEND 46
#define GF_VKEY_END 44
#define GF_VKEY_0 48
#define GF_VKEY_1 49
#define GF_VKEY_2 50
#define GF_VKEY_3 51
#define GF_VKEY_4 52
#define GF_VKEY_5 53
#define GF_VKEY_6 54
#define GF_VKEY_7 55
#define GF_VKEY_8 56
#define GF_VKEY_9 57
#define GF_VKEY_STAR 42
#define GF_VKEY_POUND 35
#else
/* Virtual Keys */
#define GF_VKEY_BACK 2
#define GF_VKEY_FORWARD 3
#define GF_VKEY_UP 4
#define GF_VKEY_LEFT 5
#define GF_VKEY_RIGHT 6
#define GF_VKEY_DOWN 7
#define GF_VKEY_SEND 8
#define GF_VKEY_END 9
#define GF_VKEY_0 10
#define GF_VKEY_1 11
#define GF_VKEY_2 12
#define GF_VKEY_3 13
#define GF_VKEY_4 14
#define GF_VKEY_5 15
#define GF_VKEY_6 16
#define GF_VKEY_7 17
#define GF_VKEY_8 18
#define GF_VKEY_9 19
#define GF_VKEY_STAR 20
#define GF_VKEY_POUND 21
#endif /* GF_OS */
#ifndef GFDEBUG_ASSERT
#define GFDEBUG_ASSERT(x) do {} while (0)
#endif /* GFDEBUG_ASSERT */
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __GFRMHelp_INL__ */