Import upstream 2.3.14
[packages/xinetd.git] / libs / src / xlog / xlog.h
1 /*
2  * (c) Copyright 1992, 1993 by Panagiotis Tsirigotis
3  * All rights reserved.  The file named COPYRIGHT specifies the terms 
4  * and conditions for redistribution.
5  */
6
7 #ifndef __XLOG_H
8 #define __XLOG_H
9
10 /*
11  * $Id: xlog.h,v 1.2 2003/03/09 19:30:08 steveg Exp $
12  */
13
14 /*
15  * Flags
16  */
17 #define XLOG_NOFLAGS                                    0x0
18 #define XLOG_SET_LEVEL                          0x1
19 #define XLOG_NO_SIZECHECK                       0x2
20 #define XLOG_NO_ERRNO                           0x4
21 /* #define XLOG_PRINT_TIMESTAMP         0x8 */
22 #define XLOG_PRINT_ID                           0x10
23 #define XLOG_PRINT_PID                          0x20
24
25 /*
26  * Errors
27  */
28 #define XLOG_ENOERROR                           0
29 #define XLOG_ESIZE                                      1
30 #define XLOG_EOPEN                                      2
31 #define XLOG_EFSTAT                                     3
32 #define XLOG_ENOMEM                                     4
33 #define XLOG_EWRITE                                     5
34
35 /*
36  * Interface
37  */
38
39 typedef enum { XLOG_SYSLOG, XLOG_FILELOG } xlog_e ;
40
41 typedef enum
42         {
43                 XLOG_LINK,                              /* generic: link this log to another log                        */
44                 XLOG_CALLBACK,                  /* generic: call this function in case of error */
45                 XLOG_GETFLAG,                   /* generic:     get value of specified flag                     */
46                 XLOG_SETFLAG,                   /* generic:     set value of specified flag                     */
47                 XLOG_LEVEL,                             /* syslog:  set the default syslog level                        */
48                 XLOG_FACILITY,                  /* syslog:  set the default syslog facility             */
49                 XLOG_PREEXEC,                   /* syslog:      prepare the log for an exec(2)          */
50                 XLOG_POSTEXEC,                  /* syslog:      exec(2) failed                                                          */
51                 XLOG_SIZECHECK,         /* filelog: check file size                                                     */
52                 XLOG_GETFD,                             /* filelog: get file descriptor of log file             */
53                 XLOG_LIMITS                     /* filelog: set (new) soft/hard limits                          */
54         } xlog_cmd_e ;
55
56 typedef void *xlog_h ;
57
58 xlog_h xlog_create      ( xlog_e type, const char *id, int flags, ... ) ;
59 void xlog_destroy               ( xlog_h ) ;
60 void xlog_write         ( xlog_h, const char *buf, int len, int flags, ... ) ;
61 int xlog_control                ( xlog_h, xlog_cmd_e, ... ) ;
62 int xlog_parms                  ( xlog_e type, ... ) ;
63
64 #endif  /* __XLOG_H */