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

📄 endian.h

📁 Sunplus 8202S source code.
💻 H
字号:
#ifndef	__ENDIAN_H
#define	__ENDIAN_H

#define	BIT_L2M(x)	( (((x)&0x01)<<7) | (((x)&0x02)<<5) | \
			  (((x)&0x04)<<3) | (((x)&0x08)<<1) | \
			  (((x)&0x10)>>1) | (((x)&0x20)>>3) | \
			  (((x)&0x40)>>5) | (((x)&0x80)>>7))

#define	ADR_L2M(x)	(((x)&(~0x07)) | (7-((x)&0x07)))

//
// SWAP
//
//	AABB	 	BBAA
//	AABBCCDD	DDCCBBAA
//
#define	SWAP16(x)	(((x)&0x0ff)<<8 | ((x)>>8))
#define	SWAP32(x)	( (((UINT32)x           ) >> 24)	\
			| (((UINT32)x&0x00ff0000) >>  8)	\
			| (((UINT32)x<<8) & 0x00ff0000)		\
			| (((UINT32)x		) << 24))		


//
//
extern  void	__wbe32(void *, UINT32);
extern  void	__wbe16(void *, UINT32);
extern  void	__wle32(void *, UINT32);
extern  void	__wle16(void *, UINT32);

extern  UINT32	__lbe32(void *);
extern  UINT32	__lbe16(void *);
extern  UINT32	__lle32(void *);
extern  UINT32	__lle16(void *);


#if	defined(__MIPSEL__)
#define	SYSTEM_ENDIAN_LITTLE
#elif	defined(__MIPSEB__)
#define	SYSTEM_ENDIAN_BIG
#else
#error	"please define endian"
#endif

#define	wbe32(p,d)	__wbe32(p,d)
#define	wbe16(p,d)	__wbe16(p,d)
#define	lbe32(p)	__lbe32(p)
#define	lbe16(p)	__lbe16(p)
#define	wle32(p,d)	__wle32(p,d)
#define	wle16(p,d)	__wle16(p,d)
#define	lle32(p)	__lle32(p)
#define	lle16(p)	__lle16(p)
#define	lbe8(p)		(*(UINT8 *)p)
#define	lle8(p)		(*(UINT8 *)p)

#if 0
#if	defined(SYSTEM_ENDIAN_LITTLE)
//
// LITTLE endian
//
#define	wbe32(p,d)	__wbe32(p,d)
#define	wbe16(p,d)	__wbe16(p,d)
#define	lbe32(p)	__lbe32(p)
#define	lbe16(p)	__lbe16(p)
#define	lbe8(p)		(*(UINT8 *)p)

#define	wle32(p,d)	(*(UINT32 *)p = d)
#define	wle16(p,d)	(*(UINT16 *)p = d)
#define	lle32(p)	(*(UINT32 *)p)
#define	lle16(p)	(*(UINT16 *)p)
#define	lle8(p)		(*(UINT8 *)p)
#elif	defined(SYSTEM_ENDIAN_BIG)
//
// BIG endian
//
#define	wbe32(p,d)	(*(UINT32 *)p = d)
#define	wbe16(p,d)	(*(UINT16 *)p = d)
#define	lbe32(p)	(*(UINT32 *)p)
#define	lbe16(p)	(*(UINT16 *)p)
#define	lbe8(p)		(*(UINT8 *)p)

#define	wle32(p,d)	__wle32(p,d)
#define	wle16(p,d)	__wle16(p,d)
#define	lle32(p)	__lle32(p)
#define	lle16(p)	__lle16(p)
#define	lle8(p)		(*(UINT8 *)p)
#endif
#endif

#endif/*__ENDIAN_H*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -