📄 genlib.h
字号:
/**************************************************************************************
*
* TELECHIPS Co.
*
* 3rd floor Heung-A 70-1 Samsung-dong, KangNam-ku, Seoul, Korea
* ====================================================================================
*
* Name: Jincheol Hong, Hyun-Chul Hong
* Phone: 82-2-3443-6792
* E-mail: jchong@telechips.com hchong@telechips.com
*
* FILE NAME: GENLIB.H
*
* DESCRIPTION:
* This is a Header File for General Libraries
*
*
* FILE HISTORY:
* Date: 2002.04.20 Start source coding By Jincheol Hong
* Date: 2002.08.05 Added some codes By Hyunchul Hong
*
*
*
**************************************************************************************/
#ifndef __GENLIB_H__
#define __GENLIB_H__
#ifndef CONST_FAKE
#if !defined(CONST_IS_DATA)
#define CONST_FAKE
#define CONST_OR_CODE code
#else
#define CONST_FAKE const
#define CONST_OR_CODE const
#endif
#endif
/////////////////////////////////////////////////////////////////////////////
#ifndef SWAP16
#define SWAP16(x) ( \
(((unsigned)(x) & 0xff) << 8) | \
(((unsigned)(x) >> 8) & 0xff) \
)
#endif
/////////////////////////////////////////////////////////////////////////////
#ifndef SWAP32
#define SWAP32(x) ( \
(((unsigned long int)(x) & 0x000000ffL) << 24) | \
(((unsigned long int)(x) & 0x0000ff00L) << 8) | \
(((unsigned long int)(x) & 0x00ff0000L) >> 8) | \
(((unsigned long int)(x) & 0xff000000L) >> 24) \
)
#endif
/////////////////////////////////////////////////////////////////////////////
#define MAKE_WORD(__l, __h) \
((((unsigned short int)(__l) ) & 0x00ff) | \
(((unsigned short int)(__h) << 8) & 0xff00))
#define MAKE_DWORD(__lsb, __mdl, __mdh, __msb) \
((((unsigned long int)(__lsb) ) & 0x000000ffL) | \
(((unsigned long int)(__mdl) << 8) & 0x0000ff00L) | \
(((unsigned long int)(__mdh) << 16) & 0x00ff0000L) | \
(((unsigned long int)(__msb) << 24) & 0xff000000L))
#define MAKE_DWORD2(__lsb, __msb) \
((((unsigned long int)(__lsb) ) & 0x0000ffffL) | \
(((unsigned long int)(__msb) << 16) & 0xffff0000L))
/////////////////////////////////////////////////////////////////////////////
#if defined(__cplusplus)
extern "C" {
#endif
void TCC730_FillMemory (void* lpTarget, unsigned char bFill, unsigned nLen);
void TCC730_CopyMemory (void* lpTarget, CONST_FAKE void* lpSource, unsigned nLen);
void TCC730_MoveMemory (void* lpTarget, CONST_FAKE void* lpSource, unsigned nLen);
void TCC730_MoveCodeMemory (void* lpTarget, code void* lpSource, unsigned nLen);
void TCC730_CopySkippedMemory (void* lpTarget, CONST_FAKE void* lpSource, unsigned nLen, unsigned nSkip);
#define TCC730_ZeroMemory(__lpTarget, __nLen) \
TCC730_FillMemory(__lpTarget, 0, __nLen)
#define TCC730_CopyCodeMemory(__lpTarget, __lpSource, __nLen) \
TCC730_MoveCodeMemory(__lpTarget, __lpSource, __nLen) \
#if !defined(CONST_IS_DATA)
#define TCC730_CopyConstMemory(__lpTarget, __lpSource, __nLen) \
TCC730_CopyCodeMemory(__lpTarget, __lpSource, __nLen)
#define TCC730_MoveConstMemory(__lpTarget, __lpSource, __nLen) \
TCC730_MoveCodeMemory(__lpTarget, __lpSource, __nLen)
#else
#define TCC730_CopyConstMemory(__lpTarget, __lpSource, __nLen) \
TCC730_CopyMemory(__lpTarget, __lpSource, __nLen)
#define TCC730_MoveConstMemory(__lpTarget, __lpSource, __nLen) \
TCC730_MoveMemory(__lpTarget, __lpSource, __nLen)
#endif
int TCC730_CompareMemory (CONST_FAKE void* lpCmp1, CONST_FAKE void* lpCmp2, unsigned nLen);
int TCC730_CompareCodeMemory (CONST_FAKE void* lpCmp1, CONST_OR_CODE void* lpCmp2, unsigned nLen);
int TCC730_CompareMemoryI (CONST_FAKE void* lpCmp1, CONST_FAKE void* lpCmp2, unsigned nLen);
#if !defined(CONST_IS_DATA)
#define TCC730_CompareConstMemory(__lpCmp1, __lpCmp2, __nLen) \
TCC730_CompareCodeMemory(__lpCmp1, __lpCmp2, __nLen)
#else
#define TCC730_CompareConstMemory(__lpCmp1, __lpCmp2, __nLen) \
TCC730_CompareMemory(__lpCmp1, __lpCmp2, __nLen)
#endif
int TCC730_GetStringLength (CONST_FAKE char* lpszString);
int TCC730_GetCodeStringLength (CONST_OR_CODE char* lpszString);
#if !defined(CONST_IS_DATA)
#define TCC730_GetConstStringLength(__lpszString) \
TCC730_GetCodeStringLength(__lpszString)
#else
#define TCC730_GetConstStringLength(__lpszString) \
TCC730_GetStringLength(__lpszString)
#endif
char* TCC730_CopyString (char* lpszDest, CONST_FAKE char* lpszSource);
char* TCC730_CopyCodeString (char* lpszDest, CONST_OR_CODE char* lpszSource);
#if !defined(CONST_IS_DATA)
#define TCC730_CopyConstString(__lpszDest, __lpszSource) \
TCC730_CopyCodeString(__lpszDest, __lpszSource)
#else
#define TCC730_CopyConstString(__lpszDest, __lpszSource) \
TCC730_CopyString(__lpszDest, __lpszSource)
#endif
unsigned TCC730_WaitForClockStable (int nPLL, unsigned nTimeout);
/////////////////////////////////////////////////////////////////////////////
//===============================================
//= GENLIB.C
//===============================================
extern int GENLIB_MemCmpCode( unsigned char* src, code unsigned char* dst, unsigned int size ) ;
extern void GENLIB_MemCpy( unsigned char* dst, unsigned char* src, unsigned int size);
extern void GENLIB_MemCpyCode( unsigned char* dst, code unsigned char* src, unsigned int size);
extern void GENLIB_MemSet( unsigned char* dst, unsigned int val, unsigned int count) ;
extern int GENLIB_StrCmpCodetoCode( code unsigned char* src, code unsigned char* dst, unsigned int size );
extern int GENLIB_StrCmpDatatoCode( unsigned char* src, code unsigned char* dst, unsigned int size );
extern int GENLIB_StrCmpCodetoData( code unsigned char* src, unsigned char* dst, unsigned int size );
extern int GENLIB_StrCmpDatatoData( unsigned char* src, unsigned char* dst, unsigned int size );
extern void GENLIB_StrCpyFromCode( unsigned char* dst, code unsigned char* src, unsigned int size );
extern void GENLIB_StrCpyFromData( unsigned char* dst, unsigned char* src, unsigned int size );
extern unsigned int GENLIB_StrLenCode( code unsigned char* str);
extern unsigned int GENLIB_StrLenData( unsigned char* str);
extern unsigned char GENLIB_UpperCaseData( unsigned char Data );
//===============================================
//= GENLIBasm.s
//===============================================
extern void GENLIB_FillMem( unsigned char* Spoint, unsigned char FillData, unsigned int Size );
extern void GENLIB_MemCpyData( unsigned char* lpTarget, unsigned char* lpSource, unsigned int nLen );
extern unsigned long FMul( unsigned long a, unsigned int b ); // ONLY 32Bit*16Bit
extern unsigned long FDiv( unsigned long a, unsigned int b ); // ONLY 32Bit/16Bit
extern unsigned int FMod( unsigned long a, unsigned int b ); // ONLY 32Bit%16Bit
extern unsigned int FShr16( unsigned int a, unsigned int b ); // ONLY 16Bit Right Shift
extern unsigned int FShl16( unsigned int a, unsigned int b ); // ONLY 16Bit Left Shift
#if defined(__cplusplus)
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -