summaryrefslogtreecommitdiff
path: root/usr/src/cmd/lofiadm/utils.c
diff options
context:
space:
mode:
authoraalok <none@none>2007-12-19 07:47:40 -0800
committeraalok <none@none>2007-12-19 07:47:40 -0800
commit579df0ad79cbf73b8473820d721b202c79d12d34 (patch)
tree75d7e2b46a39e622a68ff0c010860b91e86860e9 /usr/src/cmd/lofiadm/utils.c
parent06c5a6e8d0ba25e2009cb7ff92667f3f6e930992 (diff)
downloadillumos-joyent-579df0ad79cbf73b8473820d721b202c79d12d34.tar.gz
6640490 lofiadm should not include zlib.h
Diffstat (limited to 'usr/src/cmd/lofiadm/utils.c')
-rw-r--r--usr/src/cmd/lofiadm/utils.c32
1 files changed, 27 insertions, 5 deletions
diff --git a/usr/src/cmd/lofiadm/utils.c b/usr/src/cmd/lofiadm/utils.c
index eee1e5b5d8..349fab1c2b 100644
--- a/usr/src/cmd/lofiadm/utils.c
+++ b/usr/src/cmd/lofiadm/utils.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,8 +19,8 @@
* CDDL HEADER END
*/
/*
- * Copyright (c) 1999-2000 by Sun Microsystems, Inc.
- * All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
@@ -37,9 +36,13 @@
#include <stdarg.h>
#include <stdio.h>
#include <errno.h>
+#include <dlfcn.h>
+#include <link.h>
#include "utils.h"
+static void *lib_hdl = NULL;
+
static const char PNAME_FMT[] = "%s: ";
static const char ERRNO_FMT[] = ": %s\n";
@@ -112,3 +115,22 @@ valid_abspath(const char *p)
return (1);
}
+
+/*
+ * Wrapper for dlopen'ing a library.
+ * The caller must call closelib() once
+ * access to the library is no longer needed.
+ */
+void *
+openlib(const char *lib)
+{
+ lib_hdl = dlopen(lib, RTLD_LAZY);
+ return (lib_hdl);
+}
+
+void
+closelib()
+{
+ if (lib_hdl != NULL)
+ (void) dlclose(lib_hdl);
+}