diff --git a/libc/include/syslog.h b/libc/include/syslog.h
index 90ea76e..1e2fcc4 100644
--- a/libc/include/syslog.h
+++ b/libc/include/syslog.h
@@ -25,6 +25,34 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+/*
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
 
 #pragma once
 
@@ -129,6 +157,60 @@
  */
 #define LOG_PERROR 0x20
 
+#if defined(SYSLOG_NAMES)
+/** A mapping from name to value, used by `facilitynames` and `prioritynames`. */
+typedef struct _code {
+  char* c_name;
+  int c_val;
+} CODE;
+/* A bogus facility value for "mark". */
+#define INTERNAL_MARK LOG_MAKEPRI((LOG_NFACILITIES<<3), 0)
+/** A table mapping facility names to values. */
+static const CODE facilitynames[] = {
+  { "auth", LOG_AUTH, },
+  { "authpriv", LOG_AUTHPRIV, },
+  { "cron", LOG_CRON, },
+  { "daemon", LOG_DAEMON, },
+  { "ftp", LOG_FTP, },
+  { "kern", LOG_KERN, },
+  { "lpr", LOG_LPR, },
+  { "mail", LOG_MAIL, },
+  { "mark", INTERNAL_MARK, },
+  { "news", LOG_NEWS, },
+  { "security", LOG_AUTH, },
+  { "syslog", LOG_SYSLOG, },
+  { "user", LOG_USER, },
+  { "uucp", LOG_UUCP, },
+  { "local0", LOG_LOCAL0, },
+  { "local1", LOG_LOCAL1, },
+  { "local2", LOG_LOCAL2, },
+  { "local3", LOG_LOCAL3, },
+  { "local4", LOG_LOCAL4, },
+  { "local5", LOG_LOCAL5, },
+  { "local6", LOG_LOCAL6, },
+  { "local7", LOG_LOCAL7, },
+  { NULL, -1, },
+};
+/* A bogus priority value for "none". */
+#define INTERNAL_NOPRI 8
+/** A table mapping priority names to values. */
+static const CODE prioritynames[] = {
+  { "alert", LOG_ALERT, },
+  { "crit", LOG_CRIT, },
+  { "debug", LOG_DEBUG, },
+  { "emerg", LOG_EMERG, },
+  { "err", LOG_ERR, },
+  { "error", LOG_ERR, },
+  { "info", LOG_INFO, },
+  { "none", INTERNAL_NOPRI, },
+  { "notice", LOG_NOTICE, },
+  { "panic", LOG_EMERG, },
+  { "warn", LOG_WARNING, },
+  { "warning", LOG_WARNING, },
+  { NULL, -1, },
+};
+#endif
+
 /**
  * [closelog(3)](http://man7.org/linux/man-pages/man3/closelog.3.html) does
  * nothing on Android.
