Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
att
GitHub Repository: att/ast
Path: blob/master/src/lib/libast/comp/fmtmsg.h
1810 views
1
/***********************************************************************
2
* *
3
* This software is part of the ast package *
4
* Copyright (c) 1985-2011 AT&T Intellectual Property *
5
* and is licensed under the *
6
* Eclipse Public License, Version 1.0 *
7
* by AT&T Intellectual Property *
8
* *
9
* A copy of the License is available at *
10
* http://www.eclipse.org/org/documents/epl-v10.html *
11
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
12
* *
13
* Information and Software Systems Research *
14
* AT&T Research *
15
* Florham Park NJ *
16
* *
17
* Glenn Fowler <[email protected]> *
18
* David Korn <[email protected]> *
19
* Phong Vo <[email protected]> *
20
* *
21
***********************************************************************/
22
#pragma prototyped
23
/*
24
* fmtmsg interface definitions
25
*/
26
27
#ifndef _FMTMSG_H
28
#define _FMTMSG_H
29
30
#define MM_VERB_ENV "MSGVERB" /* keyword filter env var */
31
#define MM_SEVERITY_ENV "SEV_LEVEL" /* alternate severity env var */
32
33
/* max component length */
34
35
#define MM_LABEL_1_MAX 10 /* label field 1 length */
36
#define MM_LABEL_2_MAX 14 /* label field 2 length */
37
38
/* classification type */
39
40
#define MM_HARD 0x00000001L /* hardware */
41
#define MM_SOFT 0x00000002L /* software */
42
#define MM_FIRM 0x00000004L /* firmware */
43
44
/* classification source */
45
46
#define MM_APPL 0x00000010L /* application */
47
#define MM_UTIL 0x00000020L /* utility */
48
#define MM_OPSYS 0x00000040L /* kernel */
49
50
/* classification display */
51
52
#define MM_PRINT 0x00000100L /* stderr */
53
#define MM_CONSOLE 0x00000200L /* console */
54
55
/* classification status */
56
57
#define MM_RECOVER 0x00001000L /* recoverable */
58
#define MM_NRECOV 0x00002000L /* non-recoverable */
59
60
/* severity */
61
62
#define MM_NOSEV 0x0 /* no severity */
63
#define MM_HALT 0x1 /* severe fault */
64
#define MM_ERROR 0x2 /* fault */
65
#define MM_WARNING 0x4 /* could be a problem */
66
#define MM_INFO 0x8 /* not an error (noise?) */
67
68
/* fmtmsg return value */
69
70
#define MM_OK 0 /* succeeded */
71
#define MM_NOTOK 3 /* failed completely */
72
#define MM_NOMSG 1 /* stderr message failed */
73
#define MM_NOCON 2 /* console message failed */
74
75
/* null argument values -- 0 just doesn't get any respect */
76
77
#define MM_NULLLBL (char*)0 /* label */
78
#define MM_NULLSEV 0 /* severity */
79
#define MM_NULLMC 0L /* class */
80
#define MM_NULLTXT (char*)0 /* text */
81
#define MM_NULLACT (char*)0 /* action */
82
#define MM_NULLTAG (char*)0 /* tag */
83
84
#ifdef MM_TABLES
85
86
/* encoding support */
87
88
typedef struct
89
{
90
const char* name;
91
const char* display;
92
unsigned int value;
93
} MM_table_t;
94
95
#define mm_class _mm_class
96
#define mm_severity _mm_severity()
97
#define mm_verb _mm_verb
98
99
#define MM_all 0xff
100
#define MM_action 0x01
101
#define MM_class 0x02
102
#define MM_label 0x04
103
#define MM_severity 0x08
104
#define MM_source 0x10
105
#define MM_status 0x20
106
#define MM_tag 0x40
107
#define MM_text 0x80
108
109
#define MM_default (MM_action|MM_label|MM_severity|MM_tag|MM_text)
110
111
#if _BLD_ast && defined(__EXPORT__)
112
#define extern __EXPORT__
113
#endif
114
#if !_BLD_ast && defined(__IMPORT__)
115
#define extern extern __IMPORT__
116
#endif
117
118
extern const MM_table_t mm_class[];
119
extern const MM_table_t mm_verb[];
120
121
#undef extern
122
123
#if _BLD_ast && defined(__EXPORT__)
124
#define extern __EXPORT__
125
#endif
126
127
extern const MM_table_t* mm_severity;
128
129
#undef extern
130
131
#endif
132
133
#if _BLD_ast && defined(__EXPORT__)
134
#define extern __EXPORT__
135
#endif
136
137
extern int fmtmsg(long, const char*, int, const char*, const char*, const char*);
138
139
#undef extern
140
141
#endif
142
143