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

📄 hal_private.h

📁 s1d13716的源码 windiws ce 或8位单片机
💻 H
字号:
//===========================================================================
//	HAL_PRIVATE.H
// (Tabs set to every 4)
//---------------------------------------------------------------------------
//  Copyright (c) 2002 Epson Research and Development, Inc.
//  All Rights Reserved.
//===========================================================================


#ifndef _HAL_PRIVATE_H_
#define _HAL_PRIVATE_H_


#include "hal.h"



#ifndef PRODUCTCODE
  #define PRODUCTCODE			13700
#endif

// Use two levels of macro indirection to force/trick the compiler
// to stringize PRODUCTCODE into HALCHIPID.
#define HALSTRINGIZE1(x)		#x
#define HALSTRINGIZE2(x)		HALSTRINGIZE1(x)
#define	HALCHIPID				HALSTRINGIZE2(PRODUCTCODE)

#define HAL_PCI_VRAM_OFFSET		0x00200000UL		// Default offset of VRAM in PCI virtual memory block
#define offsetof(s,m)			(int)&(((s *)0)->m)


#if HAL_REGBYTES == 1		// 8-bit registers

  typedef UInt8					UIntReg;
  #define HAL_WRITE_REG(i,v)	halWriteReg8(i,v)
  #define HAL_READ_REG(i)		halReadReg8(i)
  #define HAL_MODIFY_REG(i,a,o)	halModifyReg8(i,a,o)
  #define HAL_WRITE_LUT(i,v)	halWriteReg8(i * 4 + 0x400,(UInt8)v);				\
								halWriteReg8(i * 4 + 0x401,(UInt8)(v>>8));		\
								halWriteReg8(i * 4 + 0x402,(UInt8)(v>>16))

#elif HAL_REGBYTES == 2		// 16-bit registers

  typedef UInt16				UIntReg;
  #define HAL_WRITE_REG(i,v)	halWriteReg16(i,v)
  #define HAL_READ_REG(i)		halReadReg16(i)
  #define HAL_MODIFY_REG(i,a,o)	halModifyReg16(i,a,o)
  #define HAL_WRITE_LUT(i,v)	halWriteReg16(i+0,(UInt16)v);			\
								halWriteReg16(i+2,(UInt16)(v>>16))

#elif HAL_REGBYTES == 4		// 32-bit registers

  typedef UInt32				UIntReg;
  #define HAL_WRITE_REG(i,v)	halWriteReg32(i,v)
  #define HAL_READ_REG(i)		halReadReg32(i)
  #define HAL_MODIFY_REG(i,a,o)	halModifyReg32(i,a,o)
  #define HAL_WRITE_LUT(i,v)	halWriteReg32(i,(UInt32)v)

#else						// HAL_REGBYTES != 1,2,4

  #error Definition of HAL_REGBYTES not one of 1, 2, or 4!
  typedef UInt16				UIntReg;
  #define HAL_WRITE_REG(i,v)	((void)0)
  #define HAL_READ_REG(i)		((void)0)
  #define HAL_MODIFY_REG(i,a,o)	((void)0)
  #define HAL_WRITE_LUT(i,v)	((void)0)

#endif


typedef union tagRGBUnion	// LUT entries RGB structure, used by halInitLUT()
{
	struct
	{
		UInt8	Red;			// Red primary
		UInt8	Green;			// Green primary
		UInt8	Blue;			// Blue primary
		UInt8	Reserved;		// n/a
	} rgb;
	UInt32		Value32;		// RGB 32-bit composite value
} RGB_UNION, *PRGB_UNION;


#endif	// _HAL_PRIVATE_H_

⌨️ 快捷键说明

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