Statistics
| Branch: | Revision:

root / drivers / tapdisk-syslog.h @ master

History | View | Annotate | Download (2.7 kB)

1 abdb293f Chrysostomos Nanakos
/*
2 abdb293f Chrysostomos Nanakos
 * Copyright (c) 2009, XenSource Inc.
3 abdb293f Chrysostomos Nanakos
 * All rights reserved.
4 abdb293f Chrysostomos Nanakos
 *
5 abdb293f Chrysostomos Nanakos
 * Redistribution and use in source and binary forms, with or without
6 abdb293f Chrysostomos Nanakos
 * modification, are permitted provided that the following conditions are met:
7 abdb293f Chrysostomos Nanakos
 *     * Redistributions of source code must retain the above copyright
8 abdb293f Chrysostomos Nanakos
 *       notice, this list of conditions and the following disclaimer.
9 abdb293f Chrysostomos Nanakos
 *     * Redistributions in binary form must reproduce the above copyright
10 abdb293f Chrysostomos Nanakos
 *       notice, this list of conditions and the following disclaimer in the
11 abdb293f Chrysostomos Nanakos
 *       documentation and/or other materials provided with the distribution.
12 abdb293f Chrysostomos Nanakos
 *     * Neither the name of XenSource Inc. nor the names of its contributors
13 abdb293f Chrysostomos Nanakos
 *       may be used to endorse or promote products derived from this software
14 abdb293f Chrysostomos Nanakos
 *       without specific prior written permission.
15 abdb293f Chrysostomos Nanakos
 *
16 abdb293f Chrysostomos Nanakos
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 abdb293f Chrysostomos Nanakos
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 abdb293f Chrysostomos Nanakos
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19 abdb293f Chrysostomos Nanakos
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
20 abdb293f Chrysostomos Nanakos
 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21 abdb293f Chrysostomos Nanakos
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22 abdb293f Chrysostomos Nanakos
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23 abdb293f Chrysostomos Nanakos
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24 abdb293f Chrysostomos Nanakos
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25 abdb293f Chrysostomos Nanakos
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26 abdb293f Chrysostomos Nanakos
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 abdb293f Chrysostomos Nanakos
 */
28 abdb293f Chrysostomos Nanakos
29 abdb293f Chrysostomos Nanakos
#ifndef __TAPDISK_SYSLOG_H__
30 abdb293f Chrysostomos Nanakos
#define __TAPDISK_SYSLOG_H__
31 abdb293f Chrysostomos Nanakos
32 abdb293f Chrysostomos Nanakos
#include <syslog.h>
33 abdb293f Chrysostomos Nanakos
#include <stdarg.h>
34 abdb293f Chrysostomos Nanakos
#include "scheduler.h"
35 abdb293f Chrysostomos Nanakos
36 abdb293f Chrysostomos Nanakos
typedef struct _td_syslog td_syslog_t;
37 abdb293f Chrysostomos Nanakos
38 abdb293f Chrysostomos Nanakos
#define TD_SYSLOG_PACKET_MAX  1024
39 abdb293f Chrysostomos Nanakos
40 abdb293f Chrysostomos Nanakos
struct _td_syslog_stats {
41 abdb293f Chrysostomos Nanakos
        unsigned long long count;
42 abdb293f Chrysostomos Nanakos
        unsigned long long bytes;
43 abdb293f Chrysostomos Nanakos
        unsigned long long xmits;
44 abdb293f Chrysostomos Nanakos
        unsigned long long fails;
45 abdb293f Chrysostomos Nanakos
        unsigned long long drops;
46 abdb293f Chrysostomos Nanakos
};
47 abdb293f Chrysostomos Nanakos
48 abdb293f Chrysostomos Nanakos
struct _td_syslog {
49 abdb293f Chrysostomos Nanakos
        char            *ident;
50 abdb293f Chrysostomos Nanakos
        int              facility;
51 abdb293f Chrysostomos Nanakos
52 abdb293f Chrysostomos Nanakos
        int              sock;
53 abdb293f Chrysostomos Nanakos
        event_id_t       event_id;
54 abdb293f Chrysostomos Nanakos
55 abdb293f Chrysostomos Nanakos
        void            *buf;
56 abdb293f Chrysostomos Nanakos
        size_t           bufsz;
57 abdb293f Chrysostomos Nanakos
58 abdb293f Chrysostomos Nanakos
        char            *msg;
59 abdb293f Chrysostomos Nanakos
60 abdb293f Chrysostomos Nanakos
        char            *ring;
61 abdb293f Chrysostomos Nanakos
        size_t           ringsz;
62 abdb293f Chrysostomos Nanakos
63 abdb293f Chrysostomos Nanakos
        size_t           prod;
64 abdb293f Chrysostomos Nanakos
        size_t           cons;
65 abdb293f Chrysostomos Nanakos
66 abdb293f Chrysostomos Nanakos
        int              oom;
67 abdb293f Chrysostomos Nanakos
        struct timeval   oom_tv;
68 abdb293f Chrysostomos Nanakos
69 abdb293f Chrysostomos Nanakos
        struct _td_syslog_stats stats;
70 abdb293f Chrysostomos Nanakos
};
71 abdb293f Chrysostomos Nanakos
72 abdb293f Chrysostomos Nanakos
int  tapdisk_syslog_open(td_syslog_t *,
73 abdb293f Chrysostomos Nanakos
                         const char *ident, int facility, size_t bufsz);
74 abdb293f Chrysostomos Nanakos
void tapdisk_syslog_close(td_syslog_t *);
75 abdb293f Chrysostomos Nanakos
void tapdisk_syslog_flush(td_syslog_t *);
76 abdb293f Chrysostomos Nanakos
void tapdisk_syslog_stats(td_syslog_t *, int prio);
77 abdb293f Chrysostomos Nanakos
78 abdb293f Chrysostomos Nanakos
int tapdisk_vsyslog(td_syslog_t *, int prio, const char *fmt, va_list ap);
79 abdb293f Chrysostomos Nanakos
int tapdisk_syslog(td_syslog_t *, int prio, const char *fmt, ...);
80 abdb293f Chrysostomos Nanakos
81 abdb293f Chrysostomos Nanakos
#endif /* __TAPDISK_SYSLOG_H__ */