172445Sassar/*
2233294Sstas * Copyright (c) 1995 - 2004 Kungliga Tekniska H��gskolan 
372445Sassar * (Royal Institute of Technology, Stockholm, Sweden).  
472445Sassar * All rights reserved.
572445Sassar * 
672445Sassar * Redistribution and use in source and binary forms, with or without
772445Sassar * modification, are permitted provided that the following conditions
872445Sassar * are met:
972445Sassar * 
1072445Sassar * 1. Redistributions of source code must retain the above copyright
1172445Sassar *    notice, this list of conditions and the following disclaimer.
1272445Sassar * 
1372445Sassar * 2. Redistributions in binary form must reproduce the above copyright
1472445Sassar *    notice, this list of conditions and the following disclaimer in the
1572445Sassar *    documentation and/or other materials provided with the distribution.
1672445Sassar * 
1772445Sassar * 3. Neither the name of the Institute nor the names of its contributors
1872445Sassar *    may be used to endorse or promote products derived from this software
1972445Sassar *    without specific prior written permission.
2072445Sassar * 
2172445Sassar * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
2272445Sassar * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2372445Sassar * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2472445Sassar * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
2572445Sassar * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2672445Sassar * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2772445Sassar * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2872445Sassar * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2972445Sassar * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3072445Sassar * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3172445Sassar * SUCH DAMAGE.
3272445Sassar */
3372445Sassar
34233294Sstas/* $Id$ */
3572445Sassar
3672445Sassar#ifndef __ERR_H__
3772445Sassar#define __ERR_H__
3872445Sassar
3972445Sassar#include <errno.h>
4072445Sassar#include <stdio.h>
4172445Sassar#include <stdlib.h>
4272445Sassar#include <string.h>
4372445Sassar#include <stdarg.h>
4472445Sassar
4572445Sassar#if !defined(__GNUC__) && !defined(__attribute__)
4672445Sassar#define __attribute__(x)
4772445Sassar#endif
4872445Sassar
49178825Sdfr#ifndef ROKEN_LIB_FUNCTION
50178825Sdfr#ifdef _WIN32
51233294Sstas#define ROKEN_LIB_FUNCTION
52233294Sstas#define ROKEN_LIB_CALL     __cdecl
53178825Sdfr#else
54178825Sdfr#define ROKEN_LIB_FUNCTION
55233294Sstas#define ROKEN_LIB_CALL
56178825Sdfr#endif
57178825Sdfr#endif
58178825Sdfr
59233294SstasROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
60178825Sdfrverr(int eval, const char *fmt, va_list ap)
6172445Sassar     __attribute__ ((noreturn, format (printf, 2, 0)));
62178825Sdfr
63233294SstasROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
64178825Sdfrerr(int eval, const char *fmt, ...)
6572445Sassar     __attribute__ ((noreturn, format (printf, 2, 3)));
66178825Sdfr
67233294SstasROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
68178825Sdfrverrx(int eval, const char *fmt, va_list ap)
6972445Sassar     __attribute__ ((noreturn, format (printf, 2, 0)));
70178825Sdfr
71233294SstasROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
72178825Sdfrerrx(int eval, const char *fmt, ...)
7372445Sassar     __attribute__ ((noreturn, format (printf, 2, 3)));
74233294SstasROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
75178825Sdfrvwarn(const char *fmt, va_list ap)
7672445Sassar     __attribute__ ((format (printf, 1, 0)));
77178825Sdfr
78233294SstasROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
79178825Sdfrwarn(const char *fmt, ...)
8072445Sassar     __attribute__ ((format (printf, 1, 2)));
81178825Sdfr
82233294SstasROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
83178825Sdfrvwarnx(const char *fmt, va_list ap)
8472445Sassar     __attribute__ ((format (printf, 1, 0)));
85178825Sdfr
86233294SstasROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
87178825Sdfrwarnx(const char *fmt, ...)
8872445Sassar     __attribute__ ((format (printf, 1, 2)));
8972445Sassar
9072445Sassar#endif /* __ERR_H__ */
91