summaryrefslogtreecommitdiffstats
path: root/src/canonical-name.c
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2012-11-12 12:56:39 +0000
committerRichard W.M. Jones <rjones@redhat.com>2012-11-12 13:40:25 +0000
commit02ecd048d3caf7804361bb0f5dca071f97aefaa1 (patch)
tree2b17e6b2037297bc1bc93b4371be15a3b9d3aef6 /src/canonical-name.c
parentf9ab256f0e4c1197b505b0249e66e7614644bd0b (diff)
downloadlibguestfs-02ecd048d3caf7804361bb0f5dca071f97aefaa1.tar.gz
libguestfs-02ecd048d3caf7804361bb0f5dca071f97aefaa1.tar.xz
libguestfs-02ecd048d3caf7804361bb0f5dca071f97aefaa1.zip
lib: Split up huge src/guestfs.c into logical compilation units.
This file had grown by accretion to include: - code related to handles (now in src/handle.c) - safe allocation (src/alloc.c) - debug, errors, warnings (src/errors.c) - private data (src/private-data.c) - miscellaneous functions (src/canonical-name.c, src/utils.c) This commit also removes about a dozen #include files which were probably not really used. This is just code motion.
Diffstat (limited to 'src/canonical-name.c')
-rw-r--r--src/canonical-name.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/canonical-name.c b/src/canonical-name.c
new file mode 100644
index 00000000..b7176072
--- /dev/null
+++ b/src/canonical-name.c
@@ -0,0 +1,50 @@
+/* libguestfs
+ * Copyright (C) 2009-2012 Red Hat Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "guestfs.h"
+#include "guestfs-internal.h"
+#include "guestfs-internal-actions.h"
+
+char *
+guestfs__canonical_device_name (guestfs_h *g, const char *device)
+{
+ char *ret;
+
+ if (STRPREFIX (device, "/dev/hd") ||
+ STRPREFIX (device, "/dev/vd")) {
+ ret = safe_strdup (g, device);
+ ret[5] = 's';
+ }
+ else if (STRPREFIX (device, "/dev/mapper/") ||
+ STRPREFIX (device, "/dev/dm-")) {
+ /* XXX hide errors */
+ ret = guestfs_lvm_canonical_lv_name (g, device);
+ if (ret == NULL)
+ ret = safe_strdup (g, device);
+ }
+ else
+ ret = safe_strdup (g, device);
+
+ return ret; /* caller frees */
+}