/* BlueDataDistributor - data distribution module from ethernet to 32 serial ports
 * version 0.1.1 date 2006-10-07
 * Copyright (C) 2006 Stefan Schuermans <stefan@blinkenarea.org>
 * a BlinkenArea project - http://www.blinkenarea.org/
 */

#ifndef INC_macros
#define INC_macros

// minimum and maximum
#define min( a, b ) ((a) < (b) ? (a) : (b))
#define max( a, b ) ((a) > (b) ? (a) : (b))

// number of entries in an array
#define count( array ) (sizeof( (array) ) / sizeof( (array)[0] ))

// waiting
#define nop( ) { __asm__ __volatile__ ("nop"::); }

// bit manipulation
#define bit_set( var, bit ) (var |= (1 << bit))
#define bit_clear( var, bit ) (var &= ~(1 << bit))
#define bit_toggle( var, bit ) (var ^= (1 << bit))

#endif // #ifndef INC_macros

