Imported Upstream version 1.05
[hcoop/zz_old/debian/djbdns.git] / strerr.h
CommitLineData
dc0d77d7
CE
1#ifndef STRERR_H
2#define STRERR_H
3
4struct strerr {
5 struct strerr *who;
6 const char *x;
7 const char *y;
8 const char *z;
9} ;
10
11extern struct strerr strerr_sys;
12extern void strerr_sysinit(void);
13
14extern const char *strerr(const struct strerr *);
15extern void strerr_warn(const char *,const char *,const char *,const char *,const char *,const char *,const struct strerr *);
16extern void strerr_die(int,const char *,const char *,const char *,const char *,const char *,const char *,const struct strerr *);
17
18#define STRERR(r,se,a) \
19{ se.who = 0; se.x = a; se.y = 0; se.z = 0; return r; }
20
21#define STRERR_SYS(r,se,a) \
22{ se.who = &strerr_sys; se.x = a; se.y = 0; se.z = 0; return r; }
23#define STRERR_SYS3(r,se,a,b,c) \
24{ se.who = &strerr_sys; se.x = a; se.y = b; se.z = c; return r; }
25
26#define strerr_warn6(x1,x2,x3,x4,x5,x6,se) \
27strerr_warn((x1),(x2),(x3),(x4),(x5),(x6),(se))
28#define strerr_warn5(x1,x2,x3,x4,x5,se) \
29strerr_warn((x1),(x2),(x3),(x4),(x5),0,(se))
30#define strerr_warn4(x1,x2,x3,x4,se) \
31strerr_warn((x1),(x2),(x3),(x4),0,0,(se))
32#define strerr_warn3(x1,x2,x3,se) \
33strerr_warn((x1),(x2),(x3),0,0,0,(se))
34#define strerr_warn2(x1,x2,se) \
35strerr_warn((x1),(x2),0,0,0,0,(se))
36#define strerr_warn1(x1,se) \
37strerr_warn((x1),0,0,0,0,0,(se))
38
39#define strerr_die6(e,x1,x2,x3,x4,x5,x6,se) \
40strerr_die((e),(x1),(x2),(x3),(x4),(x5),(x6),(se))
41#define strerr_die5(e,x1,x2,x3,x4,x5,se) \
42strerr_die((e),(x1),(x2),(x3),(x4),(x5),0,(se))
43#define strerr_die4(e,x1,x2,x3,x4,se) \
44strerr_die((e),(x1),(x2),(x3),(x4),0,0,(se))
45#define strerr_die3(e,x1,x2,x3,se) \
46strerr_die((e),(x1),(x2),(x3),0,0,0,(se))
47#define strerr_die2(e,x1,x2,se) \
48strerr_die((e),(x1),(x2),0,0,0,0,(se))
49#define strerr_die1(e,x1,se) \
50strerr_die((e),(x1),0,0,0,0,0,(se))
51
52#define strerr_die6sys(e,x1,x2,x3,x4,x5,x6) \
53strerr_die((e),(x1),(x2),(x3),(x4),(x5),(x6),&strerr_sys)
54#define strerr_die5sys(e,x1,x2,x3,x4,x5) \
55strerr_die((e),(x1),(x2),(x3),(x4),(x5),0,&strerr_sys)
56#define strerr_die4sys(e,x1,x2,x3,x4) \
57strerr_die((e),(x1),(x2),(x3),(x4),0,0,&strerr_sys)
58#define strerr_die3sys(e,x1,x2,x3) \
59strerr_die((e),(x1),(x2),(x3),0,0,0,&strerr_sys)
60#define strerr_die2sys(e,x1,x2) \
61strerr_die((e),(x1),(x2),0,0,0,0,&strerr_sys)
62#define strerr_die1sys(e,x1) \
63strerr_die((e),(x1),0,0,0,0,0,&strerr_sys)
64
65#define strerr_die6x(e,x1,x2,x3,x4,x5,x6) \
66strerr_die((e),(x1),(x2),(x3),(x4),(x5),(x6),0)
67#define strerr_die5x(e,x1,x2,x3,x4,x5) \
68strerr_die((e),(x1),(x2),(x3),(x4),(x5),0,0)
69#define strerr_die4x(e,x1,x2,x3,x4) \
70strerr_die((e),(x1),(x2),(x3),(x4),0,0,0)
71#define strerr_die3x(e,x1,x2,x3) \
72strerr_die((e),(x1),(x2),(x3),0,0,0,0)
73#define strerr_die2x(e,x1,x2) \
74strerr_die((e),(x1),(x2),0,0,0,0,0)
75#define strerr_die1x(e,x1) \
76strerr_die((e),(x1),0,0,0,0,0,0)
77
78#endif