00001 /*------------------------------------------------------------------------ 00002 *--------------------- RT-WMP -------------------- 00003 *------------------------------------------------------------------------ 00004 * V7.0B 11/05/10 00005 * 00006 * 00007 * File: ./src/core/include/global.h 00008 * Authors: Danilo Tardioli 00009 * ---------------------------------------------------------------------- 00010 * Copyright (C) 2000-2010, Universidad de Zaragoza, SPAIN 00011 * 00012 * Contact Addresses: Danilo Tardioli dantard@unizar.es 00013 * 00014 * RT-WMP is free software; you can redistribute it and/or modify it 00015 * under the terms of the GNU General Public License as published by the 00016 * Free Software Foundation; either version 2, or (at your option) any 00017 * later version. 00018 * 00019 * RT-WMP is distributed in the hope that it will be useful, but 00020 * WITHOUT ANY WARRANTY; without even the implied warranty of 00021 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00022 * General Public License for more details. 00023 * 00024 * You should have received a copy of the GNU General Public License 00025 * distributed with RT-WMP; see file COPYING. If not, write to the 00026 * Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 00027 * 02111-1307, USA. 00028 * 00029 * As a special exception, if you link this unit with other files to 00030 * produce an executable, this unit does not by itself cause the 00031 * resulting executable to be covered by the GNU General Public License. 00032 * This exception does not however invalidate any other reasons why the 00033 * executable file might be covered by the GNU Public License. 00034 * 00035 *----------------------------------------------------------------------*/ 00036 00037 00038 00039 #ifndef GLOBAL_H_ 00040 #define GLOBAL_H_ 00041 #include "config/compiler.h" 00042 #include "definitions.h" 00043 00044 extern Status status; 00045 00046 #define mBits(x,m) ((x)&(m)) 00047 #define mBitsExcept(x,m,be) (((x)&(m))& ~(be)) 00048 #define mTestBits(x,m,b) (mBits(x,m)==(b))) 00049 #define mTestBitsExcept(x,m,b,be) (mBitsExcept(x,m,be)==(b)) 00050 00051 #define mBitsOn(lvx,by) ((lvx)|=(by)) 00052 #define mBitsOnExcept(lvx,by,be) ((lvx)|=(by)&~(be)) 00053 #define mBitsOff(lvx,bn) ((lvx)&= ~(bn)) 00054 #define mBitsOffExcept(lvx,bn,be) ((lvx)&= ~((bn)&~(be))) 00055 #define mBitsToggle(lvx,b) ((lvx)^= (b)) 00056 #define mBitsToggleExcept(lvx,b,be) ((lvx)^= ((b)&~(be))) 00057 00058 #define mBitsOnOff(lvx,by,bn) {mBitsOff(lvx,bn);mBitsOn(lvx,by);} 00059 #define mBitsOnOffExcept(lvx,by,bn,be) {mBitsOffExcept(lvx,bn,be);mBitsOnExcept(lvx,by,be);} 00060 00061 #define mBitsSet(x,n) mBitsOn(x, (int) (1 << n) ) 00062 #define mBitsUnset(x,n) mBitsOff(x, (int) (1 << n) ) 00063 #define mBitsTogg(x,n) mBitsToggle(x, (int) (1 << n) ) 00064 00065 #define mBitsIsSet(x,n) mBits(x, (int) (1 << n) ) 00066 00067 00068 #endif /*GLOBAL_H_*/ 00069