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

📄 xbasic_types.h

📁 自学ZedBoard:使用IP通过ARM PS访问FPGA(源代码)
💻 H
字号:
/* $Id: xbasic_types.h,v 1.19.10.4 2011/06/28 11:00:54 sadanan Exp $ *//********************************************************************************       XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS"*       AS A COURTESY TO YOU, SOLELY FOR USE IN DEVELOPING PROGRAMS AND*       SOLUTIONS FOR XILINX DEVICES.  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 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.**       (c) Copyright 2002-2007 Xilinx Inc.*       All rights reserved.*******************************************************************************//*****************************************************************************//**** @file xbasic_types.h** This file contains basic types for Xilinx software IP.  These types do not* follow the standard naming convention with respect to using the component* name in front of each name because they are considered to be primitives.** @note** This file contains items which are architecture dependent.** <pre>* MODIFICATION HISTORY:** Ver   Who    Date   Changes* ----- ---- -------- -------------------------------------------------------* 1.00a rmm  12/14/01 First release*       rmm  05/09/03 Added "xassert always" macros to rid ourselves of diab*                     compiler warnings* 1.00a rpm  11/07/03 Added XNullHandler function as a stub interrupt handler* 1.00a rpm  07/21/04 Added XExceptionHandler typedef for processor exceptions* 1.00a xd   11/03/04 Improved support for doxygen.* 1.00a wre  01/25/07 Added Linux style data types u32, u16, u8, TRUE, FALSE* 1.00a rpm  04/02/07 Added ifndef KERNEL around u32, u16, u8 data types* </pre>*******************************************************************************/#ifndef XBASIC_TYPES_H	/* prevent circular inclusions */#define XBASIC_TYPES_H	/* by using protection macros */#ifdef __cplusplusextern "C" {#endif/***************************** Include Files *********************************//************************** Constant Definitions *****************************/#ifndef TRUE#  define TRUE		1#endif#ifndef FALSE#  define FALSE		0#endif#ifndef NULL#define NULL		0#endif/** Xilinx NULL, TRUE and FALSE legacy support. Deprecated. */#define XNULL		NULL#define XTRUE		TRUE#define XFALSE		FALSE#define XCOMPONENT_IS_READY     0x11111111  /**< component has been initialized */#define XCOMPONENT_IS_STARTED   0x22222222  /**< component has been started *//* the following constants and declarations are for unit test purposes and are * designed to be used in test applications. */#define XTEST_PASSED    0#define XTEST_FAILED    1#define XASSERT_NONE     0#define XASSERT_OCCURRED 1extern unsigned int XAssertStatus;extern void XAssert(char *, int);/**************************** Type Definitions *******************************//** @name Legacy types * Deprecated legacy types. * @{ */typedef unsigned char	Xuint8;		/**< unsigned 8-bit */typedef char		Xint8;		/**< signed 8-bit */typedef unsigned short	Xuint16;	/**< unsigned 16-bit */typedef short		Xint16;		/**< signed 16-bit */typedef unsigned long	Xuint32;	/**< unsigned 32-bit */typedef long		Xint32;		/**< signed 32-bit */typedef float		Xfloat32;	/**< 32-bit floating point */typedef double		Xfloat64;	/**< 64-bit double precision FP */typedef unsigned long	Xboolean;	/**< boolean (XTRUE or XFALSE) */#if !defined __XUINT64__typedef struct{	Xuint32 Upper;	Xuint32 Lower;} Xuint64;#endif/** @name New types * New simple types. * @{ */#ifndef __KERNEL__#ifndef XIL_TYPES_Htypedef Xuint32         u32;typedef Xuint16         u16;typedef Xuint8          u8;#endif#else#include <linux/types.h>#endif/*@}*//** * This data type defines an interrupt handler for a device. * The argument points to the instance of the component */typedef void (*XInterruptHandler) (void *InstancePtr);/** * This data type defines an exception handler for a processor. * The argument points to the instance of the component */typedef void (*XExceptionHandler) (void *InstancePtr);/** * This data type defines a callback to be invoked when an * assert occurs. The callback is invoked only when asserts are enabled */typedef void (*XAssertCallback) (char *FilenamePtr, int LineNumber);/***************** Macros (Inline Functions) Definitions *********************//*****************************************************************************//*** Return the most significant half of the 64 bit data type.** @param    x is the 64 bit word.** @return   The upper 32 bits of the 64 bit word.** @note     None.*******************************************************************************/#define XUINT64_MSW(x) ((x).Upper)/*****************************************************************************//*** Return the least significant half of the 64 bit data type.** @param    x is the 64 bit word.** @return   The lower 32 bits of the 64 bit word.** @note     None.*******************************************************************************/#define XUINT64_LSW(x) ((x).Lower)#ifndef NDEBUG/*****************************************************************************//*** This assert macro is to be used for functions that do not return anything* (void). This in conjunction with the XWaitInAssert boolean can be used to* accomodate tests so that asserts which fail allow execution to continue.** @param    expression is the expression to evaluate. If it evaluates to*           false, the assert occurs.** @return   Returns void unless the XWaitInAssert variable is true, in which*           case no return is made and an infinite loop is entered.** @note     None.*******************************************************************************/#define XASSERT_VOID(expression)                   \{                                                  \    if (expression)                                \    {                                              \        XAssertStatus = XASSERT_NONE;              \    }                                              \    else                                           \    {                                              \        XAssert(__FILE__, __LINE__);               \                XAssertStatus = XASSERT_OCCURRED;  \        return;                                    \    }                                              \}/*****************************************************************************//*** This assert macro is to be used for functions that do return a value. This in* conjunction with the XWaitInAssert boolean can be used to accomodate tests so* that asserts which fail allow execution to continue.** @param    expression is the expression to evaluate. If it evaluates to false,*           the assert occurs.** @return   Returns 0 unless the XWaitInAssert variable is true, in which case*           no return is made and an infinite loop is entered.** @note     None.*******************************************************************************/#define XASSERT_NONVOID(expression)                \{                                                  \    if (expression)                                \    {                                              \        XAssertStatus = XASSERT_NONE;              \    }                                              \    else                                           \    {                                              \        XAssert(__FILE__, __LINE__);               \                XAssertStatus = XASSERT_OCCURRED;  \        return 0;                                  \    }                                              \}/*****************************************************************************//*** Always assert. This assert macro is to be used for functions that do not* return anything (void). Use for instances where an assert should always* occur.** @return Returns void unless the XWaitInAssert variable is true, in which case*         no return is made and an infinite loop is entered.** @note   None.*******************************************************************************/#define XASSERT_VOID_ALWAYS()                      \{                                                  \   XAssert(__FILE__, __LINE__);                    \           XAssertStatus = XASSERT_OCCURRED;       \   return;                                         \}/*****************************************************************************//*** Always assert. This assert macro is to be used for functions that do return* a value. Use for instances where an assert should always occur.** @return Returns void unless the XWaitInAssert variable is true, in which case*         no return is made and an infinite loop is entered.** @note   None.*******************************************************************************/#define XASSERT_NONVOID_ALWAYS()                   \{                                                  \   XAssert(__FILE__, __LINE__);                    \           XAssertStatus = XASSERT_OCCURRED;       \   return 0;                                       \}#else#define XASSERT_VOID(expression)#define XASSERT_VOID_ALWAYS()#define XASSERT_NONVOID(expression)#define XASSERT_NONVOID_ALWAYS()#endif/************************** Function Prototypes ******************************/void XAssertSetCallback(XAssertCallback Routine);void XNullHandler(void *NullParameter);#ifdef __cplusplus}#endif#endif	/* end of protection macro */

⌨️ 快捷键说明

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