cyclic_oper.h revision d14abf155341d55053c76eeec58b787a456b753b
/*******************************************************************************
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
* Copyright 2014 QLogic Corporation
* The contents of this file are subject to the terms of the
* QLogic End User License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the License at
* See the License for the specific language governing permissions
* and limitations under the License.
*
*
* Module Description:
* This file should include pure ANSI C defines
*
* History:
* 25/04/10 Shay Haroush Inception.
******************************************************************************/
#ifndef CYCLIC_OPERATIONS
#define CYCLIC_OPERATIONS
/******** Cyclic Operators Macros ********/
#define _ABS_DIFF(x, y) ((x) > (y) ? (x) - (y) : (y) - (x))
{
return (diff < d) ? x < y : x > y;
}
{
return (diff < d) ? x <= y : x >= y;
}
#define CYCLIC_GT_8(x, y) (!(CYCLIC_LE_8(x, y)))
#define CYCLIC_GT_16(x, y) (!(CYCLIC_LE_16(x, y)))
#define CYCLIC_GT_24(x, y) (!(CYCLIC_LE_24(x, y)))
#define CYCLIC_GT_32(x, y) (!(CYCLIC_LE_32(x, y)))
#define CYCLIC_GE_8(x, y) (!(CYCLIC_LT_8(x, y)))
#define CYCLIC_GE_16(x, y) (!(CYCLIC_LT_16(x, y)))
#define CYCLIC_GE_24(x, y) (!(CYCLIC_LT_24(x, y)))
#define CYCLIC_GE_32(x, y) (!(CYCLIC_LT_32(x, y)))
// bits = number of bits in x, y (i.e., sizeof_x)
/******** End Cyclic Operators Macros ********/
#endif // CYCLIC_OPERATIONS