diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2012-06-24 22:28:35 +0000 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2012-06-24 22:28:35 +0000 |
commit | 3950ffe2a485479f6561c27364d3d7df5a21d124 (patch) | |
tree | 468c6e14449d1b1e279222ec32f676b0311917d2 /src/lib/libast/comp/fmtmsg.h | |
download | ksh-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.h | 141 |
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 |