📄 hal_private.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 + -