summaryrefslogtreecommitdiff
path: root/lib/ckkv.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ckkv.c')
-rw-r--r--lib/ckkv.c93
1 files changed, 93 insertions, 0 deletions
diff --git a/lib/ckkv.c b/lib/ckkv.c
new file mode 100644
index 0000000..876758a
--- /dev/null
+++ b/lib/ckkv.c
@@ -0,0 +1,93 @@
+/*
+ * cvfs.c -- ckkv() function for lsof library
+ */
+
+
+/*
+ * Copyright 1998 Purdue Research Foundation, West Lafayette, Indiana
+ * 47907. All rights reserved.
+ *
+ * Written by Victor A. Abell
+ *
+ * This software is not subject to any license of the American Telephone
+ * and Telegraph Company or the Regents of the University of California.
+ *
+ * Permission is granted to anyone to use this software for any purpose on
+ * any computer system, and to alter it and redistribute it freely, subject
+ * to the following restrictions:
+ *
+ * 1. Neither the authors nor Purdue University are responsible for any
+ * consequences of the use of this software.
+ *
+ * 2. The origin of this software must not be misrepresented, either by
+ * explicit claim or by omission. Credit to the authors and Purdue
+ * University must appear in documentation and sources.
+ *
+ * 3. Altered versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ *
+ * 4. This notice may not be removed or altered.
+ */
+
+
+#include "../machine.h"
+
+#if defined(USE_LIB_CKKV)
+
+# if !defined(lint)
+static char copyright[] =
+"@(#) Copyright 1998 Purdue Research Foundation.\nAll rights reserved.\n";
+static char *rcsid = "$Id: ckkv.c,v 1.3 2008/10/21 16:12:36 abe Exp $";
+# endif /* !defined(lint) */
+
+#include "../lsof.h"
+#include <sys/utsname.h>
+
+
+/*
+ * ckkv() - check kernel version
+ */
+
+void
+ckkv(d, er, ev, ea)
+ char *d; /* dialect */
+ char *er; /* expected revision; NULL, no test */
+ char *ev; /* expected version; NULL, no test */
+ char *ea; /* expected architecture; NULL, no
+ * test */
+{
+
+# if defined(HASKERNIDCK)
+ struct utsname u;
+
+ if (Fwarn)
+ return;
+/*
+ * Read the system information via uname(2).
+ */
+ if (uname(&u) < 0) {
+ (void) fprintf(stderr, "%s: uname error: %s\n",
+ Pn, strerror(errno));
+ Exit(1);
+ }
+ if (er && strcmp(er, u.release)) {
+ (void) fprintf(stderr,
+ "%s: WARNING: compiled for %s release %s; this is %s.\n",
+ Pn, d, er, u.release);
+ }
+ if (ev && strcmp(ev, u.version)) {
+ (void) fprintf(stderr,
+ "%s: WARNING: compiled for %s version %s; this is %s.\n",
+ Pn, d, ev, u.version);
+ }
+ if (ea && strcmp(ea, u.machine)) {
+ (void) fprintf(stderr,
+ "%s: WARNING: compiled for %s architecture %s; this is %s.\n",
+ Pn, d, ea, u.machine);
+ }
+# endif /* defined(HASKERNIDCK) */
+
+}
+#else /* !defined(USE_LIB_CKKV) */
+char ckkv_d1[] = "d"; char *ckkv_d2 = ckkv_d1;
+#endif /* defined(USE_LIB_CKKV) */