/**
 * ============================================================================
 * = COPYRIGHT
 * 
 * @par
 * IXP400 SW Release version 2.0
 * 
 * -- Copyright Notice --
 * 
 * @par
 * Copyright 2001-2005, Intel Corporation.
 * All rights reserved.
 * 
 * @par
 * SPDX-License-Identifier:	BSD-3-Clause
 * @par
 * -- End of Copyright Notice --
 * = PRODUCT
 *      Intel(r) IXP425 Software Release
 *
 * = FILENAME
 *      ix_error.h (Replaced by OSAL)
 *
 * = DESCRIPTION
 *      This file will describe the basic error type and support functions that
 *      will be used by the IXA SDK Framework API.
 *
 * = AUTHOR
 *      Intel Corporation
 *
 * = CHANGE HISTORY
 *      4/22/2002 4:19:03 PM - creation time 
 * ============================================================================
 */

#if !defined(__IX_ERROR_H__)
#define __IX_ERROR_H__

#include "IxOsalBackward.h"

#endif /* end !defined(__IX_ERROR_H__) */

