|
|
1.1 root 1: #ifndef __SYS_STRLOG_H__
2: #define __SYS_STRLOG_H__
3:
4: /*
5: * Structures and constants for streams log driver log (7).
6: */
7: /*
8: *-IMPORTS:
9: * <common/_clock.h>
10: * clock_t
11: * <common/_time.h>
12: * time_t
13: */
14:
15: #include <common/_clock.h>
16: #include <common/_time.h>
17:
18:
19: /*
20: * It is not possible to achieve cross-system binary compatibility with any
21: * System V program which uses device-dependent ioctl ()'s with the current
22: * level of documentation published by USL. The contents and names of fields
23: * in the structures defined below are not defined in any published document,
24: * so in order to emulate the System V facilities we would have to have used
25: * knowledge gained from examination of the System V header files, which are
26: * described as unpublished proprietary works.
27: *
28: * Indeed, since it is not possible to use such facilities without recourse to
29: * this proprietary information, we are presented with an interesting
30: * conundrum. Not only can we not provide binary compatibility, we cannot even
31: * provide source-level compatibility.
32: *
33: * Field names whose names are known from publically available information are
34: * given in that forms. Field names which we known exist, but for which we do
35: * not know the names have been assigned names with a special prefix. The
36: * data types of these values has been inferred from the published
37: * descriptions, and thus may not match System V types, and also may be given
38: * in a different order.
39: *
40: * Caveat utilitor!
41: */
42:
43: struct log_ctl {
44: short mwc_mid;
45: short mwc_sid;
46: char level;
47: unsigned short flags;
48: clock_t mwc_ticks; /* time logged in ticks */
49: time_t mwc_time; /* time logged in POSIX format */
50: unsigned long mwc_seqno;
51: unsigned short mwc_pri;
52: };
53:
54:
55: #define SL_ERROR 0x0001
56: #define SL_TRACE 0x0002
57: #define SL_CONSOLE 0x0004
58: #define SL_NOTIFY 0x0008
59: #define SL_FATAL 0x0010
60: #define SL_WARN 0x0020
61: #define SL_NOTE 0x0040
62:
63:
64: /*
65: * Maximum number of arguments that may be passed with a log message. It is
66: * not absolutely clear how much space this specifies, but we assume that
67: * this many longwords can be passed. Floating-point arguments are not valid,
68: * nor are pointers.
69: */
70:
71: enum { NLOGARGS = 3 };
72:
73:
74: /*
75: * Priority and facility code information derived from the flags.
76: */
77:
78: enum {
79: LOG_NOTICE = 0,
80: LOG_INFO,
81: LOG_DEBUG,
82: LOG_WARNING,
83: LOG_ERR,
84: LOG_CRIT,
85:
86: LOG_KERN = 0,
87: LOG_USER = 256
88: };
89:
90: #endif /* ! defined (__SYS_STRLOG_H__) */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.