| /****************************************************************************** |
| * |
| * 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. |
| * |
| ******************************************************************************/ |
| /***************************************************************************** |
| * |
| * This file contains the interface for the XVersion component. This |
| * component represents a version ID. It is encapsulated within a component |
| * so that it's type and implementation can change without affecting users of |
| * it. |
| * |
| * The version is formatted as X.YYZ where X = 0 - 9, Y = 00 - 99, Z = a - z |
| * X is the major revision, YY is the minor revision, and Z is the |
| * compatability revision. |
| * |
| * Packed versions are also utilized for the configuration ROM such that |
| * memory is minimized. A packed version consumes only 16 bits and is |
| * formatted as follows. |
| * |
| * <pre> |
| * Revision Range Bit Positions |
| * |
| * Major Revision 0 - 9 Bits 15 - 12 |
| * Minor Revision 0 - 99 Bits 11 - 5 |
| * Compatability Revision a - z Bits 4 - 0 |
| * </pre> |
| * |
| ******************************************************************************/ |
| |
| #ifndef XVERSION_H /* prevent circular inclusions */ |
| #define XVERSION_H /* by using protection macros */ |
| |
| /***************************** Include Files *********************************/ |
| |
| #include "xbasic_types.h" |
| #include "xstatus.h" |
| |
| /************************** Constant Definitions *****************************/ |
| |
| /**************************** Type Definitions *******************************/ |
| |
| /* the following data type is used to hold a null terminated version string |
| * consisting of the following format, "X.YYX" |
| */ |
| typedef s8 XVersion[6]; |
| |
| /***************** Macros (Inline Functions) Definitions *********************/ |
| |
| /************************** Function Prototypes ******************************/ |
| |
| void XVersion_UnPack(XVersion * InstancePtr, u16 PackedVersion); |
| |
| XStatus XVersion_Pack(XVersion * InstancePtr, u16 * PackedVersion); |
| |
| u32 XVersion_IsEqual(XVersion * InstancePtr, XVersion * VersionPtr); |
| |
| void XVersion_ToString(XVersion * InstancePtr, s8 * StringPtr); |
| |
| XStatus XVersion_FromString(XVersion * InstancePtr, s8 * StringPtr); |
| |
| void XVersion_Copy(XVersion * InstancePtr, XVersion * VersionPtr); |
| |
| #endif /* end of protection macro */ |