diff --git a/tests/.gitignore b/tests/.gitignore
index 714d82b..6cc56cc 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -37,6 +37,7 @@
 ipc_msgbuf
 ipc_sem
 ipc_shm
+ksysent
 llseek
 lseek
 lstat
diff --git a/tests/Makefile.am b/tests/Makefile.am
index a13dc30..fdeb5ec 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -5,6 +5,7 @@
 ARCH_MFLAGS =
 AM_CFLAGS = $(WARN_CFLAGS)
 AM_CPPFLAGS = $(ARCH_MFLAGS) \
+	      -I$(builddir) \
 	      -I$(top_builddir)/$(OS)/$(ARCH) \
 	      -I$(top_srcdir)/$(OS)/$(ARCH) \
 	      -I$(top_builddir)/$(OS) \
@@ -46,6 +47,7 @@
 	ipc_msgbuf \
 	ipc_sem \
 	ipc_shm \
+	ksysent \
 	llseek \
 	lseek \
 	lstat \
@@ -136,6 +138,7 @@
 TESTS = \
 	strace-f.test \
 	qual_syscall.test \
+	ksysent.test \
 	\
 	_newselect.test \
 	adjtimex.test \
@@ -264,6 +267,7 @@
 	     ip_mreq.expected \
 	     ipc.sh \
 	     ipc_msgbuf.expected \
+	     ksysent.sed \
 	     lstatx.c \
 	     memfd_create.expected \
 	     mmsg.expected \
@@ -294,4 +298,12 @@
 	     xstatx.c \
 	     $(TESTS)
 
-CLEANFILES = $(TESTS:=.tmp)
+ksysent.h: $(srcdir)/ksysent.sed
+	echo '#include <asm/unistd.h>' | \
+		$(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dD - > $@.t1
+	LC_COLLATE=C sed -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2
+	mv -f $@.t2 $@
+	rm -f $@.t1
+
+BUILT_SOURCES = ksysent.h
+CLEANFILES = ksysent.h $(TESTS:=.tmp)
diff --git a/tests/ksysent.c b/tests/ksysent.c
new file mode 100644
index 0000000..1d09917
--- /dev/null
+++ b/tests/ksysent.c
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 2015 Dmitry V. Levin <ldv@altlinux.org>
+ * 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. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+ */
+
+#include "defs.h"
+#include "syscall.h"
+
+#define TD 0
+#define TF 0
+#define TI 0
+#define TN 0
+#define TP 0
+#define TS 0
+#define TM 0
+#define NF 0
+#define MA 0
+#define SI 0
+#define SE 0
+#define SEN(arg) 0,0
+
+static const struct_sysent syscallent[] = {
+#include "syscallent.h"
+};
+
+typedef const char const *pstr_t;
+static const pstr_t ksyslist[] = {
+#include "ksysent.h"
+};
+
+int
+main(void)
+{
+	int rc = 0;
+	unsigned int i;
+
+	for (i = 0; i < ARRAY_SIZE(ksyslist); ++i) {
+		if (!ksyslist[i])
+			continue;
+		if (i >= ARRAY_SIZE(syscallent) || !syscallent[i].sys_name) {
+			fprintf(stderr, "warning: \"%s\" syscall #%u"
+				" is missing in syscallent.h\n",
+				ksyslist[i], i);
+			continue;
+		}
+#ifdef SYS_socket_nsubcalls
+		if (i >= SYS_socket_subcall &&
+		    i < SYS_socket_subcall + SYS_socket_nsubcalls) {
+			fprintf(stderr, "error: \"%s\" syscall #%u"
+				" is a socket subcall in syscallent.h\n",
+				ksyslist[i], i);
+			rc = 1;
+			continue;
+		}
+#endif
+#ifdef SYS_ipc_nsubcalls
+		if (i >= SYS_ipc_subcall &&
+		    i < SYS_ipc_subcall + SYS_ipc_nsubcalls) {
+			fprintf(stderr, "error: \"%s\" syscall #%u"
+				" is an ipc subcall in syscallent.h\n",
+				ksyslist[i], i);
+			rc = 1;
+			continue;
+		}
+#endif
+		if (strcmp(ksyslist[i], syscallent[i].sys_name)) {
+			fprintf(stderr, "error: \"%s\" syscall #%u"
+				" is \"%s\" in syscallent.h\n",
+				ksyslist[i], i, syscallent[i].sys_name);
+			rc = 1;
+			continue;
+		}
+	}
+
+	for (i = 0; i < ARRAY_SIZE(syscallent); ++i) {
+		if (!syscallent[i].sys_name
+#ifdef SYS_socket_nsubcalls
+		    || (i >= SYS_socket_subcall &&
+			i < SYS_socket_subcall + SYS_socket_nsubcalls)
+#endif
+#ifdef SYS_ipc_nsubcalls
+		    || (i >= SYS_ipc_subcall &&
+			i < SYS_ipc_subcall + SYS_ipc_nsubcalls)
+#endif
+#ifdef ARM_FIRST_SHUFFLED_SYSCALL
+		    || (i >= ARM_FIRST_SHUFFLED_SYSCALL &&
+			i <= ARM_FIRST_SHUFFLED_SYSCALL +
+			    ARM_LAST_SPECIAL_SYSCALL + 1)
+#endif
+		   )
+			continue;
+		if (i >= ARRAY_SIZE(ksyslist) || !ksyslist[i]) {
+			fprintf(stderr, "note: unknown syscall #%u"
+				" is \"%s\" in syscallent.h\n",
+				i, syscallent[i].sys_name);
+		}
+	}
+
+	return rc;
+}
diff --git a/tests/ksysent.sed b/tests/ksysent.sed
new file mode 100644
index 0000000..56fe042
--- /dev/null
+++ b/tests/ksysent.sed
@@ -0,0 +1,15 @@
+#!/bin/sed -nf
+
+# should not have been exported at all
+/#define[[:space:]]\+__NR_\(sys_epoll_\|arch_specific_syscall\|syscalls\|syscall_count\|syscall_max\|available\|reserved\|unused\)/d
+
+# should not be named this way
+s/__NR_\(arm\|xtensa\)_fadvise64_64/__NR_fadvise64_64/
+
+# legacy names
+s/__NR_get_cpu/__NR_getcpu/
+s/__NR_madvise1/__NR_madvise/
+s/__NR_paccept/__NR_accept4/
+
+# generate
+s/#define[[:space:]]\+__NR_\([a-z_][^[:space:]]\+\)\([[:space:]].*\)\?$/#ifdef __NR_\1\n[__NR_\1 \& 0xffff] = "\1",\n#endif/p
diff --git a/tests/ksysent.test b/tests/ksysent.test
new file mode 100755
index 0000000..8026648
--- /dev/null
+++ b/tests/ksysent.test
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+# Validate syscallent.h
+
+./ksysent
