check the pid is > 0 before calling waitpid()
[libguestfs.git] / src / guestfs-internal.h
index 5ac4dcf..0eb395b 100644 (file)
@@ -84,6 +84,9 @@
 /* GuestFS handle and connection. */
 enum state { CONFIG, LAUNCHING, READY, BUSY, NO_HANDLE };
 
+/* Attach method. */
+enum attach_method { ATTACH_METHOD_APPLIANCE = 0, ATTACH_METHOD_UNIX };
+
 struct guestfs_h
 {
   struct guestfs_h *next;      /* Linked list of open handles. */
@@ -116,6 +119,9 @@ struct guestfs_h
   char *qemu;                  /* Qemu binary. */
   char *append;                        /* Append to kernel command line. */
 
+  enum attach_method attach_method;
+  char *attach_method_arg;
+
   int memsize;                 /* Size of RAM (megabytes). */
 
   int selinux;                  /* selinux enabled? */
@@ -159,12 +165,22 @@ enum inspect_fs_content {
   FS_CONTENT_LINUX_USR,
   FS_CONTENT_LINUX_USR_LOCAL,
   FS_CONTENT_LINUX_VAR,
+  FS_CONTENT_FREEBSD_ROOT,
+  FS_CONTENT_INSTALLER,
+};
+
+enum inspect_os_format {
+  OS_FORMAT_UNKNOWN = 0,
+  OS_FORMAT_INSTALLED,
+  OS_FORMAT_INSTALLER,
+  /* in future: supplemental disks */
 };
 
 enum inspect_os_type {
   OS_TYPE_UNKNOWN = 0,
   OS_TYPE_LINUX,
   OS_TYPE_WINDOWS,
+  OS_TYPE_FREEBSD,
 };
 
 enum inspect_os_distro {
@@ -179,6 +195,8 @@ 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 {
@@ -198,6 +216,7 @@ enum inspect_os_package_management {
   OS_PACKAGE_MANAGEMENT_PACMAN,
   OS_PACKAGE_MANAGEMENT_PORTAGE,
   OS_PACKAGE_MANAGEMENT_PISI,
+  OS_PACKAGE_MANAGEMENT_URPMI,
 };
 
 struct inspect_fs {
@@ -214,7 +233,12 @@ struct inspect_fs {
   int major_version;
   int minor_version;
   char *arch;
+  char *hostname;
   char *windows_systemroot;
+  enum inspect_os_format format;
+  int is_live_disk;
+  int is_netinst_disk;
+  int is_multipart_disk;
   struct inspect_fstab_entry *fstab;
   size_t nr_fstab;
 };
@@ -239,12 +263,13 @@ 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 const char *guestfs___persistent_tmpdir (void);
 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);
 extern int guestfs___set_busy (guestfs_h *g);
 extern int guestfs___end_busy (guestfs_h *g);
-extern int guestfs___send (guestfs_h *g, int proc_nr, xdrproc_t xdrp, char *args);
+extern int guestfs___send (guestfs_h *g, int proc_nr, uint64_t progress_hint, uint64_t optargs_bitmask, xdrproc_t xdrp, char *args);
 extern int guestfs___recv (guestfs_h *g, const char *fn, struct guestfs_message_header *hdr, struct guestfs_message_error *err, xdrproc_t xdrp, char *ret);
 extern int guestfs___send_file (guestfs_h *g, const char *filename);
 extern int guestfs___recv_file (guestfs_h *g, const char *filename);
@@ -253,10 +278,12 @@ extern int guestfs___recv_from_daemon (guestfs_h *g, uint32_t *size_rtn, void **
 extern int guestfs___accept_from_daemon (guestfs_h *g);
 extern int guestfs___build_appliance (guestfs_h *g, char **kernel, char **initrd, char **appliance);
 extern void guestfs___print_BufferIn (FILE *out, const char *buf, size_t buf_size);
+extern void guestfs___print_BufferOut (FILE *out, const char *buf, size_t buf_size);
 #ifdef HAVE_PCRE
 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 **);
@@ -276,6 +303,7 @@ extern void guestfs___rollback_cmdline (guestfs_h *g, int pos);
 #define match guestfs___match
 #define match1 guestfs___match1
 #define match2 guestfs___match2
+#define match3 guestfs___match3
 #endif
 
 #endif /* GUESTFS_INTERNAL_H_ */