summaryrefslogtreecommitdiff
path: root/src/lib/libast/comp/fmtmsg.h
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2012-06-24 22:28:35 +0000
committerIgor Pashev <pashev.igor@gmail.com>2012-06-24 22:28:35 +0000
commit3950ffe2a485479f6561c27364d3d7df5a21d124 (patch)
tree468c6e14449d1b1e279222ec32f676b0311917d2 /src/lib/libast/comp/fmtmsg.h
downloadksh-upstream.tar.gz
Imported Upstream version 93u+upstream
Diffstat (limited to 'src/lib/libast/comp/fmtmsg.h')
-rw-r--r--src/lib/libast/comp/fmtmsg.h141
1 files changed, 141 insertions, 0 deletions
diff --git a/src/lib/libast/comp/fmtmsg.h b/src/lib/libast/comp/fmtmsg.h
new file mode 100644
index 0000000..9360c41
--- /dev/null
+++ b/src/lib/libast/comp/fmtmsg.h
@@ -0,0 +1,141 @@
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1985-2011 AT&T Intellectual Property *
+* and is licensed under the *
+* Eclipse Public License, Version 1.0 *
+* by AT&T Intellectual Property *
+* *
+* A copy of the License is available at *
+* http://www.eclipse.org/org/documents/epl-v10.html *
+* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* Glenn Fowler <gsf@research.att.com> *
+* David Korn <dgk@research.att.com> *
+* Phong Vo <kpv@research.att.com> *
+* *
+***********************************************************************/
+#pragma prototyped
+/*
+ * fmtmsg interface definitions
+ */
+
+#ifndef _FMTMSG_H
+#define _FMTMSG_H
+
+#define MM_VERB_ENV "MSGVERB" /* keyword filter env var */
+#define MM_SEVERITY_ENV "SEV_LEVEL" /* alternate severity env var */
+
+/* max component length */
+
+#define MM_LABEL_1_MAX 10 /* label field 1 length */
+#define MM_LABEL_2_MAX 14 /* label field 2 length */
+
+/* classification type */
+
+#define MM_HARD 0x00000001L /* hardware */
+#define MM_SOFT 0x00000002L /* software */
+#define MM_FIRM 0x00000004L /* firmware */
+
+/* classification source */
+
+#define MM_APPL 0x00000010L /* application */
+#define MM_UTIL 0x00000020L /* utility */
+#define MM_OPSYS 0x00000040L /* kernel */
+
+/* classification display */
+
+#define MM_PRINT 0x00000100L /* stderr */
+#define MM_CONSOLE 0x00000200L /* console */
+
+/* classification status */
+
+#define MM_RECOVER 0x00001000L /* recoverable */
+#define MM_NRECOV 0x00002000L /* non-recoverable */
+
+/* severity */
+
+#define MM_NOSEV 0x0 /* no severity */
+#define MM_HALT 0x1 /* severe fault */
+#define MM_ERROR 0x2 /* fault */
+#define MM_WARNING 0x4 /* could be a problem */
+#define MM_INFO 0x8 /* not an error (noise?) */
+
+/* fmtmsg return value */
+
+#define MM_OK 0 /* succeeded */
+#define MM_NOTOK 3 /* failed completely */
+#define MM_NOMSG 1 /* stderr message failed */
+#define MM_NOCON 2 /* console message failed */
+
+/* null argument values -- 0 just doesn't get any respect */
+
+#define MM_NULLLBL (char*)0 /* label */
+#define MM_NULLSEV 0 /* severity */
+#define MM_NULLMC 0L /* class */
+#define MM_NULLTXT (char*)0 /* text */
+#define MM_NULLACT (char*)0 /* action */
+#define MM_NULLTAG (char*)0 /* tag */
+
+#ifdef MM_TABLES
+
+/* encoding support */
+
+typedef struct
+{
+ const char* name;
+ const char* display;
+ unsigned int value;
+} MM_table_t;
+
+#define mm_class _mm_class
+#define mm_severity _mm_severity()
+#define mm_verb _mm_verb
+
+#define MM_all 0xff
+#define MM_action 0x01
+#define MM_class 0x02
+#define MM_label 0x04
+#define MM_severity 0x08
+#define MM_source 0x10
+#define MM_status 0x20
+#define MM_tag 0x40
+#define MM_text 0x80
+
+#define MM_default (MM_action|MM_label|MM_severity|MM_tag|MM_text)
+
+#if _BLD_ast && defined(__EXPORT__)
+#define extern __EXPORT__
+#endif
+#if !_BLD_ast && defined(__IMPORT__)
+#define extern extern __IMPORT__
+#endif
+
+extern const MM_table_t mm_class[];
+extern const MM_table_t mm_verb[];
+
+#undef extern
+
+#if _BLD_ast && defined(__EXPORT__)
+#define extern __EXPORT__
+#endif
+
+extern const MM_table_t* mm_severity;
+
+#undef extern
+
+#endif
+
+#if _BLD_ast && defined(__EXPORT__)
+#define extern __EXPORT__
+#endif
+
+extern int fmtmsg(long, const char*, int, const char*, const char*, const char*);
+
+#undef extern
+
+#endif