inspect: Abstract the wrapper that sets up Augeas.
[libguestfs.git] / src / guestfs-internal.h
index 6dbbeec..abcd456 100644 (file)
@@ -159,12 +159,14 @@ enum inspect_fs_content {
   FS_CONTENT_LINUX_USR,
   FS_CONTENT_LINUX_USR_LOCAL,
   FS_CONTENT_LINUX_VAR,
+  FS_CONTENT_FREEBSD_ROOT,
 };
 
 enum inspect_os_type {
   OS_TYPE_UNKNOWN = 0,
   OS_TYPE_LINUX,
   OS_TYPE_WINDOWS,
+  OS_TYPE_FREEBSD,
 };
 
 enum inspect_os_distro {
@@ -179,6 +181,28 @@ enum inspect_os_distro {
   OS_DISTRO_GENTOO,
   OS_DISTRO_UBUNTU,
   OS_DISTRO_MEEGO,
+  OS_DISTRO_LINUX_MINT,
+  OS_DISTRO_MANDRIVA,
+};
+
+enum inspect_os_package_format {
+  OS_PACKAGE_FORMAT_UNKNOWN = 0,
+  OS_PACKAGE_FORMAT_RPM,
+  OS_PACKAGE_FORMAT_DEB,
+  OS_PACKAGE_FORMAT_PACMAN,
+  OS_PACKAGE_FORMAT_EBUILD,
+  OS_PACKAGE_FORMAT_PISI
+};
+
+enum inspect_os_package_management {
+  OS_PACKAGE_MANAGEMENT_UNKNOWN = 0,
+  OS_PACKAGE_MANAGEMENT_YUM,
+  OS_PACKAGE_MANAGEMENT_UP2DATE,
+  OS_PACKAGE_MANAGEMENT_APT,
+  OS_PACKAGE_MANAGEMENT_PACMAN,
+  OS_PACKAGE_MANAGEMENT_PORTAGE,
+  OS_PACKAGE_MANAGEMENT_PISI,
+  OS_PACKAGE_MANAGEMENT_URPMI,
 };
 
 struct inspect_fs {
@@ -189,6 +213,8 @@ struct inspect_fs {
   enum inspect_fs_content content;
   enum inspect_os_type type;
   enum inspect_os_distro distro;
+  enum inspect_os_package_format package_format;
+  enum inspect_os_package_management package_management;
   char *product_name;
   int major_version;
   int minor_version;
@@ -216,6 +242,8 @@ extern void *guestfs_safe_realloc (guestfs_h *g, void *ptr, int nbytes);
 extern char *guestfs_safe_strdup (guestfs_h *g, const char *str);
 extern char *guestfs_safe_strndup (guestfs_h *g, const char *str, size_t n);
 extern void *guestfs_safe_memdup (guestfs_h *g, void *ptr, size_t size);
+extern char *guestfs_safe_asprintf (guestfs_h *g, const char *fs, ...)
+  __attribute__((format (printf,2,3)));
 extern void guestfs___print_timestamped_argv (guestfs_h *g, const char *argv[]);
 extern void guestfs___print_timestamped_message (guestfs_h *g, const char *fs, ...);
 extern void guestfs___free_inspect_info (guestfs_h *g);
@@ -234,6 +262,7 @@ extern void guestfs___print_BufferIn (FILE *out, const char *buf, size_t buf_siz
 extern int guestfs___match (guestfs_h *g, const char *str, const pcre *re);
 extern char *guestfs___match1 (guestfs_h *g, const char *str, const pcre *re);
 extern int guestfs___match2 (guestfs_h *g, const char *str, const pcre *re, char **ret1, char **ret2);
+extern int guestfs___match3 (guestfs_h *g, const char *str, const pcre *re, char **ret1, char **ret2, char **ret3);
 #endif
 extern int guestfs___feature_available (guestfs_h *g, const char *feature);
 extern void guestfs___free_string_list (char **);
@@ -248,10 +277,12 @@ extern void guestfs___rollback_cmdline (guestfs_h *g, int pos);
 #define safe_strdup guestfs_safe_strdup
 #define safe_strndup guestfs_safe_strndup
 #define safe_memdup guestfs_safe_memdup
+#define safe_asprintf guestfs_safe_asprintf
 #ifdef HAVE_PCRE
 #define match guestfs___match
 #define match1 guestfs___match1
 #define match2 guestfs___match2
+#define match3 guestfs___match3
 #endif
 
 #endif /* GUESTFS_INTERNAL_H_ */