mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-20 03:33:20 +09:00
166 lines
5.0 KiB
C
166 lines
5.0 KiB
C
|
/******************************************************************************
|
||
|
*
|
||
|
* 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.
|
||
|
*
|
||
|
* <pre>
|
||
|
* MODIFICATION HISTORY:
|
||
|
*
|
||
|
* Ver Who Date Changes
|
||
|
* ----- ---- -------- -------------------------------------------------------
|
||
|
* 1.00a rpm 11/07/03 Added XNullHandler function as a stub interrupt handler
|
||
|
* </pre>
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
|
||
|
/***************************** 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)
|
||
|
{
|
||
|
}
|