]> git.proxmox.com Git - mirror_ovs.git/blame - lib/syslog-provider.h
netdev-offload-tc: Use single 'once' variable for probing tc features
[mirror_ovs.git] / lib / syslog-provider.h
CommitLineData
fe089c0d
AA
1/*
2 * Copyright (c) 2015 Nicira, Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at:
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef SYSLOG_PROVIDER_H
18#define SYSLOG_PROVIDER_H 1
19
20
21/* Open vSwitch interface to syslog daemon's interface.
22 *
23 * 'syslogger' is the base class that provides abstraction. */
24struct syslogger {
25 const struct syslog_class *class; /* Virtual functions for concrete
26 * syslogger implementations. */
27 const char *prefix; /* Prefix that is enforced by concrete
28 * syslogger implementation. Used
29 * in vlog/list-pattern function. */
30};
31
32/* Each concrete syslogger implementation must define it's own table with
33 * following functions. These functions must never call any other VLOG_
34 * function to prevent deadlocks. */
35struct syslog_class {
36 /* openlog() function should be called before syslog() function. It
37 * should initialize all system resources needed to perform logging. */
38 void (*openlog)(struct syslogger *this, int facility);
39
40 /* syslog() function sends message 'msg' to syslog daemon. */
41 void (*syslog)(struct syslogger *this, int pri, const char *msg);
42};
43
44static inline const char *
45syslog_get_prefix(struct syslogger *this)
46{
47 return this->prefix;
48}
49
50#endif /* syslog-provider.h */