⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 genlib.h

📁 TELECHIPS MP3解决方案UMS实现源代码
💻 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 + -