Coherent4.2.10/include/sys/strlog.h

/* (-lgl
 *	Coherent 386 release 4.2
 *	Copyright (c) 1982, 1993 by Mark Williams Company.
 *	All rights reserved. May not be copied without permission.
 *	For copying permission and licensing info, write licensing@mwc.com
 -lgl) */

#ifndef	__SYS_STRLOG_H__
#define	__SYS_STRLOG_H__

/*
 * Structures and constants for streams log driver log (7).
 */

#include <common/_clock.h>
#include <common/_time.h>


/*
 * It is not possible to achieve cross-system binary compatibility with any
 * System V program which uses device-dependent ioctl ()'s with the current
 * level of documentation published by USL. The contents and names of fields
 * in the structures defined below are not defined in any published document,
 * so in order to emulate the System V facilities we would have to have used
 * knowledge gained from examination of the System V header files, which are
 * described as unpublished proprietary works.
 *
 * Indeed, since it is not possible to use such facilities without recourse to
 * this proprietary information, we are presented with an interesting
 * conundrum. Not only can we not provide binary compatibility, we cannot even
 * provide source-level compatibility.
 *
 * Field names whose names are known from publically available information are
 * given in that form.  Field names that we known exist but whose names we do
 * not know been assigned names with a special prefix. The data types of
 * these values has been inferred from the published descriptions, and thus
 * may not match System V types, and also may be given in a different order.
 *
 * Caveat utilitor!
 */

struct log_ctl {
	short		mwc_mid;
	short		mwc_sid;
	char		level;
	unsigned short	flags;
	clock_t		mwc_ticks;	/* time logged in ticks */
	time_t		mwc_time;	/* time logged in POSIX format */
	unsigned long	mwc_seqno;
	unsigned short	mwc_pri;
};


#define	SL_ERROR		0x0001
#define	SL_TRACE		0x0002
#define	SL_CONSOLE		0x0004
#define	SL_NOTIFY		0x0008
#define	SL_FATAL		0x0010
#define	SL_WARN			0x0020
#define	SL_NOTE			0x0040


/*
 * Maximum number of arguments that may be passed with a log message. It is
 * not absolutely clear how much space this specifies, but we assume that
 * this many longwords can be passed. Floating-point arguments are not valid,
 * nor are pointers.
 */

enum {	NLOGARGS = 3 };


/*
 * Priority and facility code information derived from the flags.
 */

enum {
	LOG_NOTICE = 0,
	LOG_INFO,
	LOG_DEBUG,
	LOG_WARNING,
	LOG_ERR,
	LOG_CRIT,

	LOG_KERN = 0,
	LOG_USER = 256
};

#endif	/* ! defined (__SYS_STRLOG_H__) */