+/* VLF_FILE configuration.
+ *
+ * All of the following is protected by 'log_file_mutex', which nests inside
+ * pattern_rwlock. */
+static struct ovs_mutex log_file_mutex = OVS_MUTEX_INITIALIZER;
+static char *log_file_name OVS_GUARDED_BY(log_file_mutex) = NULL;
+static int log_fd OVS_GUARDED_BY(log_file_mutex) = -1;
+static struct async_append *log_writer OVS_GUARDED_BY(log_file_mutex);
+static bool log_async OVS_GUARDED_BY(log_file_mutex);
+static struct syslogger *syslogger = NULL;
+
+/* Syslog export configuration. */
+static int syslog_fd OVS_GUARDED_BY(pattern_rwlock) = -1;
+
+/* Log facility configuration. */
+static atomic_int log_facility = ATOMIC_VAR_INIT(0);
+
+/* Facility name and its value. */
+struct vlog_facility {
+ char *name; /* Name. */
+ unsigned int value; /* Facility associated with 'name'. */
+};
+static struct vlog_facility vlog_facilities[] = {
+ {"kern", LOG_KERN},
+ {"user", LOG_USER},
+ {"mail", LOG_MAIL},
+ {"daemon", LOG_DAEMON},
+ {"auth", LOG_AUTH},
+ {"syslog", LOG_SYSLOG},
+ {"lpr", LOG_LPR},
+ {"news", LOG_NEWS},
+ {"uucp", LOG_UUCP},
+ {"clock", LOG_CRON},
+ {"ftp", LOG_FTP},
+ {"ntp", 12<<3},
+ {"audit", 13<<3},
+ {"alert", 14<<3},
+ {"clock2", 15<<3},
+ {"local0", LOG_LOCAL0},
+ {"local1", LOG_LOCAL1},
+ {"local2", LOG_LOCAL2},
+ {"local3", LOG_LOCAL3},
+ {"local4", LOG_LOCAL4},
+ {"local5", LOG_LOCAL5},
+ {"local6", LOG_LOCAL6},
+ {"local7", LOG_LOCAL7}
+};
+static bool vlog_facility_exists(const char* facility, int *value);