00001 00002 /* 00003 ** Copyright (C) 2002 Russell Leighton 00004 ** 00005 ** This program is free software; you can redistribute it and/or modify 00006 ** it under the terms of the GNU General Public License as published by 00007 ** the Free Software Foundation; either version 2 of the License, or 00008 ** (at your option) any later version. 00009 ** 00010 ** This program is distributed in the hope that it will be useful, 00011 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 ** GNU General Public License for more details. 00014 ** 00015 ** You should have received a copy of the GNU General Public License 00016 ** along with this program; if not, write to the Free Software 00017 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00018 */ 00019 00020 00021 00022 #ifndef __AW_SYS__ 00023 #define __AW_SYS__ 00024 00025 #include "version.h" 00026 00033 /* -------- os ports --------- */ 00034 #include "linux/sys.h" 00035 00036 /* -------- generic --------- */ 00037 00038 #include "debug.h" 00039 #include "thread.h" 00040 00041 /* macros */ 00042 #ifndef __inline__ 00043 # define __inline__ inline 00044 #endif 00045 00046 /* branch hints like the kernel */ 00047 #define likely(x) __builtin_expect((x),1) 00048 #define unlikely(x) __builtin_expect((x),0) 00049 00050 /* calc padding to align data properly */ 00051 #define AW_DATA_ALIGNMENT (2*sizeof(int32_t)) 00052 #define AW_ALIGN_PADDING(size) (AW_DATA_ALIGNMENT - ((size) - (((size) / AW_DATA_ALIGNMENT ) * AW_DATA_ALIGNMENT))) 00053 00054 /* types */ 00055 typedef char byte_t; 00056 typedef float float32_t; 00057 typedef double float64_t; 00058 00059 00060 #endif