1 /* Message display handling.
2    Copyright (C) 1997-2022 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, see
17    <https://www.gnu.org/licenses/>.  */
18 
19 #ifndef __FMTMSG_H
20 #define __FMTMSG_H	1
21 
22 #include <features.h>
23 
24 
25 __BEGIN_DECLS
26 
27 /* Values to control `fmtmsg' function.  */
28 enum
29 {
30   MM_HARD = 0x001,	/* Source of the condition is hardware.  */
31 #define MM_HARD MM_HARD
32   MM_SOFT = 0x002,	/* Source of the condition is software.  */
33 #define MM_SOFT MM_SOFT
34   MM_FIRM = 0x004,	/* Source of the condition is firmware.  */
35 #define MM_FIRM MM_FIRM
36   MM_APPL = 0x008,	/* Condition detected by application.  */
37 #define MM_APPL MM_APPL
38   MM_UTIL = 0x010,	/* Condition detected by utility.  */
39 #define MM_UTIL MM_UTIL
40   MM_OPSYS = 0x020,	/* Condition detected by operating system.  */
41 #define MM_OPSYS MM_OPSYS
42   MM_RECOVER = 0x040,	/* Recoverable error.  */
43 #define MM_RECOVER MM_RECOVER
44   MM_NRECOV = 0x080,	/* Non-recoverable error.  */
45 #define MM_NRECOV MM_NRECOV
46   MM_PRINT = 0x100,	/* Display message in standard error.  */
47 #define MM_PRINT MM_PRINT
48   MM_CONSOLE = 0x200	/* Display message on system console.  */
49 #define MM_CONSOLE MM_CONSOLE
50 };
51 
52 /* Values to be for SEVERITY parameter of `fmtmsg'.  */
53 enum
54 {
55   MM_NOSEV = 0,		/* No severity level provided for the message.  */
56 #define MM_NOSEV MM_NOSEV
57   MM_HALT,		/* Error causing application to halt.  */
58 #define MM_HALT MM_HALT
59   MM_ERROR,		/* Application has encountered a non-fatal fault.  */
60 #define MM_ERROR MM_ERROR
61   MM_WARNING,		/* Application has detected unusual non-error
62 			   condition.  */
63 #define MM_WARNING MM_WARNING
64   MM_INFO		/* Informative message.  */
65 #define MM_INFO MM_INFO
66 };
67 
68 
69 /* Macros which can be used as null values for the arguments of `fmtmsg'.  */
70 #define MM_NULLLBL	((char *) 0)
71 #define MM_NULLSEV	0
72 #define MM_NULLMC	((long int) 0)
73 #define MM_NULLTXT	((char *) 0)
74 #define MM_NULLACT	((char *) 0)
75 #define MM_NULLTAG	((char *) 0)
76 
77 
78 /* Possible return values of `fmtmsg'.  */
79 enum
80 {
81   MM_NOTOK = -1,
82 #define MM_NOTOK MM_NOTOK
83   MM_OK = 0,
84 #define MM_OK MM_OK
85   MM_NOMSG = 1,
86 #define MM_NOMSG MM_NOMSG
87   MM_NOCON = 4
88 #define MM_NOCON MM_NOCON
89 };
90 
91 
92 /* Print message with given CLASSIFICATION, LABEL, SEVERITY, TEXT, ACTION
93    and TAG to console or standard error.  */
94 extern int fmtmsg (long int __classification, const char *__label,
95 		   int __severity, const char *__text,
96 		   const char *__action, const char *__tag);
97 
98 #ifdef __USE_MISC
99 /* Add or remove severity level.  */
100 extern int addseverity (int __severity, const char *__string) __THROW;
101 #endif
102 
103 __END_DECLS
104 
105 #endif /* fmtmsg.h */
106