1/* Message display handling.
2   Copyright (C) 1997, 1999, 2000, 2003 Free Software Foundation, Inc.
3   This file is part of the GNU C Library.
4
5   The GNU C Library is free software; you can redistribute it and/or
6   modify it under the terms of the GNU Lesser General Public
7   License as published by the Free Software Foundation; either
8   version 2.1 of the License, or (at your option) any later version.
9
10   The GNU C Library is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13   Lesser General Public License for more details.
14
15   You should have received a copy of the GNU Lesser General Public
16   License along with the GNU C Library; if not, write to the Free
17   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18   02111-1307 USA.  */
19
20#ifndef __FMTMSG_H
21#define __FMTMSG_H	1
22
23#include <features.h>
24
25
26__BEGIN_DECLS
27
28/* Values to control `fmtmsg' function.  */
29enum
30{
31  MM_HARD = 0x001,	/* Source of the condition is hardware.  */
32#define MM_HARD MM_HARD
33  MM_SOFT = 0x002,	/* Source of the condition is software.  */
34#define MM_SOFT MM_SOFT
35  MM_FIRM = 0x004,	/* Source of the condition is firmware.  */
36#define MM_FIRM MM_FIRM
37  MM_APPL = 0x008,	/* Condition detected by application.  */
38#define MM_APPL MM_APPL
39  MM_UTIL = 0x010,	/* Condition detected by utility.  */
40#define MM_UTIL MM_UTIL
41  MM_OPSYS = 0x020,	/* Condition detected by operating system.  */
42#define MM_OPSYS MM_OPSYS
43  MM_RECOVER = 0x040,	/* Recoverable error.  */
44#define MM_RECOVER MM_RECOVER
45  MM_NRECOV = 0x080,	/* Non-recoverable error.  */
46#define MM_NRECOV MM_NRECOV
47  MM_PRINT = 0x100,	/* Display message in standard error.  */
48#define MM_PRINT MM_PRINT
49  MM_CONSOLE = 0x200	/* Display message on system console.  */
50#define MM_CONSOLE MM_CONSOLE
51};
52
53/* Values to be for SEVERITY parameter of `fmtmsg'.  */
54enum
55{
56  MM_NOSEV = 0,		/* No severity level provided for the message.  */
57#define MM_NOSEV MM_NOSEV
58  MM_HALT,		/* Error causing application to halt.  */
59#define MM_HALT MM_HALT
60  MM_ERROR,		/* Application has encountered a non-fatal fault.  */
61#define MM_ERROR MM_ERROR
62  MM_WARNING,		/* Application has detected unusual non-error
63			   condition.  */
64#define MM_WARNING MM_WARNING
65  MM_INFO		/* Informative message.  */
66#define MM_INFO MM_INFO
67};
68
69
70/* Macros which can be used as null values for the arguments of `fmtmsg'.  */
71#define MM_NULLLBL	((char *) 0)
72#define MM_NULLSEV	0
73#define MM_NULLMC	((long int) 0)
74#define MM_NULLTXT	((char *) 0)
75#define MM_NULLACT	((char *) 0)
76#define MM_NULLTAG	((char *) 0)
77
78
79/* Possible return values of `fmtmsg'.  */
80enum
81{
82  MM_NOTOK = -1,
83#define MM_NOTOK MM_NOTOK
84  MM_OK = 0,
85#define MM_OK MM_OK
86  MM_NOMSG = 1,
87#define MM_NOMSG MM_NOMSG
88  MM_NOCON = 4
89#define MM_NOCON MM_NOCON
90};
91
92
93/* Print message with given CLASSIFICATION, LABEL, SEVERITY, TEXT, ACTION
94   and TAG to console or standard error.  */
95extern int fmtmsg (long int __classification, __const char *__label,
96		   int __severity, __const char *__text,
97		   __const char *__action, __const char *__tag);
98
99#ifdef __USE_SVID
100/* Add or remove severity level.  */
101extern int addseverity (int __severity, __const char *__string) __THROW;
102#endif
103
104__END_DECLS
105
106#endif /* fmtmsg.h */
107