|
[ source navigation ] [ diff markup ] [ identifier search ] [ general search ] |
|||
|
001 /* Copyright (C) 2004 The KOS Team 002 003 This program is free software; you can redistribute it and/or 004 modify it under the terms of the GNU General Public License 005 as published by the Free Software Foundation; either version 2 006 of the License, or (at your option) any later version. 007 008 This program is distributed in the hope that it will be useful, 009 but WITHOUT ANY WARRANTY; without even the implied warranty of 010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 011 GNU General Public License for more details. 012 013 You should have received a copy of the GNU General Public License 014 along with this program; if not, write to the Free Software 015 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 016 USA. 017 */ 018 #ifndef _SOS_ASSERT_H_ 019 #define _SOS_ASSERT_H_ 020 021 022 void sos_display_fatal_error(const char *format, /* args */...) 023 __attribute__ ((format (printf, 1, 2), noreturn)); 024 025 026 /** 027 * If the expr is FALSE, print a message and halt the machine 028 */ 029 #define SOS_ASSERT_FATAL(expr) \ 030 ({ \ 031 int __res=(int)(expr); \ 032 if (! __res) \ 033 sos_display_fatal_error("%s@%s:%d Assertion " # expr " failed", \ 034 __PRETTY_FUNCTION__, __FILE__, __LINE__); \ 035 }) 036 037 038 #define SOS_FATAL_ERROR(fmt,args...) \ 039 ({ \ 040 sos_display_fatal_error("%s@%s:%d FATAL: " fmt, \ 041 __PRETTY_FUNCTION__, __FILE__, __LINE__, \ 042 ##args); \ 043 }) 044 045 #endif /* _SOS_ASSERT_H_ */
[ source navigation ] | [ diff markup ] | [ identifier search ] | [ general search ] |