/******************************************************************************/ /* DNA PROPRIETARY INFORMATION */ /* (C) Copyright 1997,1998 by DNA Enterprises, Inc. */ /* All rights reserved */ /******************************************************************************/ /* COMMON.H - Common Utilities */ /* */ /* This module provides common macro definitions and functions. */ /* */ /* MACRO FUNCTIONS: */ /* CSET_BIT() - Set bit in memory-mapped, byte-wide register */ /* CGET_BIT() - Get bit in memory-mapped, byte-wide register */ /* CCLR_BIT() - Clear bit in memory-mapped, byte-wide register */ /* CGET_FIELD() - Get field in memory-mapped, byte-wide register */ /* CLOAD_FIELD() - Load field in memory-mapped, byte-wide register */ /* CREG_READ() - Read memory-mapped, byte-wide register */ /* CREG_WRITE() - Write memory-mapped, byte-wide register */ /* */ /******************************************************************************/ #ifndef _COMMON_H_ #define _COMMON_H_ /*----------------------------------------------------------------------------*/ /* INCLUDES */ /*----------------------------------------------------------------------------*/ #include "regs.h" /* Peripheral Support Library register access macros */ /*----------------------------------------------------------------------------*/ /* MACRO DEFINITIONS */ /*----------------------------------------------------------------------------*/ #define OK 0 #define ERROR -1 #define TRUE 1 #define FALSE 0 #define CLOSED 0 #define OPEN 1 #define BUSY 2 #define PI 3.14159 #define EXIT_ERROR(y) \ if (y) goto exit_err /*----------------------------------------------------------------------------*/ /* MACRO FUNCTIONS */ /*----------------------------------------------------------------------------*/ /******************************************************************************/ /* Memory-mapped Byte Manipulation Macros */ /******************************************************************************/ #define CSET_BIT(reg,bit) \ ((*((volatile unsigned char *)(reg))) |= (MASK_BIT(bit))) #define CGET_BIT(reg,bit) \ ((*((volatile unsigned char *)(reg))) & (MASK_BIT(bit)) ? 1 : 0) #define CCLR_BIT(reg,bit) \ ((*((volatile unsigned char *)(reg))) &= (~MASK_BIT(bit))) #define CGET_FIELD(reg,bit,length) \ ((*((volatile unsigned char *)(reg)) & (MASK_FIELD(bit,length))) >> bit) #define CLOAD_FIELD(reg,bit,length,val) \ ((*((volatile unsigned char *)(reg))) = \ ((*((volatile unsigned char *)(reg)) & (~MASK_FIELD(bit,length)))) | (val<