/****************************************************************************** * * Author: Xilinx, Inc. * * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A * COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS * ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR STANDARD, * XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION IS FREE * FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE FOR OBTAINING * ANY THIRD PARTY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. * XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO * THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY * WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM * CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE. * * * Xilinx hardware products are not intended for use in life support * appliances, devices, or systems. Use in such applications is * expressly prohibited. * * * (c) Copyright 2002-2004 Xilinx Inc. * All rights reserved. * * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 675 Mass Ave, Cambridge, MA 02139, USA. * ******************************************************************************/ /*****************************************************************************/ /** * * @file xbasic_types.c * * This file contains basic functions for Xilinx software IP. * *
* MODIFICATION HISTORY:
*
* Ver   Who    Date   Changes
* ----- ---- -------- -------------------------------------------------------
* 1.00a rpm  11/07/03 Added XNullHandler function as a stub interrupt handler
* 
* ******************************************************************************/ /***************************** Include Files *********************************/ #include "xbasic_types.h" /************************** Constant Definitions *****************************/ /**************************** Type Definitions *******************************/ /***************** Macros (Inline Functions) Definitions *********************/ /************************** Variable Definitions *****************************/ /** * This variable allows testing to be done easier with asserts. An assert * sets this variable such that a driver can evaluate this variable * to determine if an assert occurred. */ unsigned int XAssertStatus; /** * This variable allows the assert functionality to be changed for testing * such that it does not wait infinitely. Use the debugger to disable the * waiting during testing of asserts. */ u32 XWaitInAssert = TRUE; /* The callback function to be invoked when an assert is taken */ static XAssertCallback XAssertCallbackRoutine = (XAssertCallback) NULL; /************************** Function Prototypes ******************************/ /*****************************************************************************/ /** * * Implements assert. Currently, it calls a user-defined callback function * if one has been set. Then, it potentially enters an infinite loop depending * on the value of the XWaitInAssert variable. * * @param File is the name of the filename of the source * @param Line is the linenumber within File * * @return * * None. * * @note * * None. * ******************************************************************************/ void XAssert(char *File, int Line) { /* if the callback has been set then invoke it */ if (XAssertCallbackRoutine != NULL) { (*XAssertCallbackRoutine) (File, Line); } /* if specified, wait indefinitely such that the assert will show up * in testing */ while (XWaitInAssert) { } } /*****************************************************************************/ /** * * Sets up a callback function to be invoked when an assert occurs. If there * was already a callback installed, then it is replaced. * * @param Routine is the callback to be invoked when an assert is taken * * @return * * None. * * @note * * This function has no effect if NDEBUG is set * ******************************************************************************/ void XAssertSetCallback(XAssertCallback Routine) { XAssertCallbackRoutine = Routine; } /*****************************************************************************/ /** * * Null handler function. This follows the XInterruptHandler signature for * interrupt handlers. It can be used to assign a null handler (a stub) to an * interrupt controller vector table. * * @param NullParameter is an arbitrary void pointer and not used. * * @return * * None. * * @note * * None. * ******************************************************************************/ void XNullHandler(void *NullParameter) { }