+
+ /* Information gathered by inspect_os. Must be freed by calling
+ * guestfs___free_inspect_info.
+ */
+ struct inspect_fs *fses;
+ size_t nr_fses;
+
+ /* Private data area. */
+ struct hash_table *pda;
+};
+
+/* Per-filesystem data stored for inspect_os. */
+enum inspect_fs_content {
+ FS_CONTENT_UNKNOWN = 0,
+ FS_CONTENT_LINUX_ROOT,
+ FS_CONTENT_WINDOWS_ROOT,
+ FS_CONTENT_LINUX_BOOT,
+ FS_CONTENT_LINUX_USR,
+ FS_CONTENT_LINUX_USR_LOCAL,
+ FS_CONTENT_LINUX_VAR,
+};
+
+enum inspect_os_type {
+ OS_TYPE_UNKNOWN = 0,
+ OS_TYPE_LINUX,
+ OS_TYPE_WINDOWS,
+};
+
+enum inspect_os_distro {
+ OS_DISTRO_UNKNOWN = 0,
+ OS_DISTRO_DEBIAN,
+ OS_DISTRO_FEDORA,
+ OS_DISTRO_REDHAT_BASED,
+ OS_DISTRO_RHEL,
+ OS_DISTRO_WINDOWS,
+};
+
+struct inspect_fs {
+ int is_root;
+ char *device;
+ int is_mountable;
+ int is_swap;
+ enum inspect_fs_content content;
+ enum inspect_os_type type;
+ enum inspect_os_distro distro;
+ char *product_name;
+ int major_version;
+ int minor_version;
+ char *arch;
+ struct inspect_fstab_entry *fstab;
+ size_t nr_fstab;
+};
+
+struct inspect_fstab_entry {
+ char *device;
+ char *mountpoint;