X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=src%2Fguestfs-internal.h;h=d9e1264d0e5dc16ac0d02fd1f04e06837a3136c5;hp=eacf502125ce39d48642004ffa509329f6b8bfc2;hb=f5172902bc9d92451c83dc3c1a85b5aeb975b43a;hpb=8f6eed00da59614184090e56edef6884f187b436 diff --git a/src/guestfs-internal.h b/src/guestfs-internal.h index eacf502..d9e1264 100644 --- a/src/guestfs-internal.h +++ b/src/guestfs-internal.h @@ -149,6 +149,19 @@ struct event { void *opaque2; }; +/* Linked list of drives added to the handle. */ +struct drive { + struct drive *next; + + char *path; + + int readonly; + char *format; + char *iface; + char *name; + int use_cache_off; +}; + struct guestfs_h { struct guestfs_h *next; /* Linked list of open handles. */ @@ -156,6 +169,8 @@ struct guestfs_h /* State: see the state machine diagram in the man page guestfs(3). */ enum state state; + struct drive *drives; /* Drives added by add-drive* APIs. */ + int fd[2]; /* Stdin/stdout of qemu. */ int sock; /* Daemon communications socket. */ pid_t pid; /* Qemu PID. */ @@ -239,6 +254,7 @@ enum inspect_fs_content { FS_CONTENT_LINUX_USR_LOCAL, FS_CONTENT_LINUX_VAR, FS_CONTENT_FREEBSD_ROOT, + FS_CONTENT_NETBSD_ROOT, FS_CONTENT_INSTALLER, }; @@ -254,6 +270,7 @@ enum inspect_os_type { OS_TYPE_LINUX, OS_TYPE_WINDOWS, OS_TYPE_FREEBSD, + OS_TYPE_NETBSD, }; enum inspect_os_distro { @@ -357,6 +374,7 @@ extern void guestfs___trace (guestfs_h *g, const char *fs, ...) extern const char *guestfs___persistent_tmpdir (void); extern void guestfs___print_timestamped_message (guestfs_h *g, const char *fs, ...); extern void guestfs___free_inspect_info (guestfs_h *g); +extern void guestfs___free_drives (struct drive **drives); 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, uint64_t progress_hint, uint64_t optargs_bitmask, xdrproc_t xdrp, char *args); @@ -378,18 +396,19 @@ extern int guestfs___match2 (guestfs_h *g, const char *str, const pcre *re, char extern int guestfs___match3 (guestfs_h *g, const char *str, const pcre *re, char **ret1, char **ret2, char **ret3); extern int guestfs___feature_available (guestfs_h *g, const char *feature); extern void guestfs___free_string_list (char **); -extern size_t guestfs___checkpoint_cmdline (guestfs_h *g); -extern void guestfs___rollback_cmdline (guestfs_h *g, size_t pos); +extern struct drive ** guestfs___checkpoint_drives (guestfs_h *g); +extern void guestfs___rollback_drives (guestfs_h *g, struct drive **i); extern void guestfs___call_callbacks_void (guestfs_h *g, uint64_t event); extern void guestfs___call_callbacks_message (guestfs_h *g, uint64_t event, const char *buf, size_t buf_len); extern void guestfs___call_callbacks_array (guestfs_h *g, uint64_t event, const uint64_t *array, size_t array_len); extern int guestfs___is_file_nocase (guestfs_h *g, const char *); extern int guestfs___is_dir_nocase (guestfs_h *g, const char *); -#if defined(HAVE_HIVEX) -extern int guestfs___check_for_filesystem_on (guestfs_h *g, const char *device, int is_block, int is_partnum); extern char *guestfs___download_to_tmp (guestfs_h *g, struct inspect_fs *fs, const char *filename, const char *basename, int64_t max_size); extern char *guestfs___case_sensitive_path_silently (guestfs_h *g, const char *); extern struct inspect_fs *guestfs___search_for_root (guestfs_h *g, const char *root); + +#if defined(HAVE_HIVEX) +extern int guestfs___check_for_filesystem_on (guestfs_h *g, const char *device, int is_block, int is_partnum); extern int guestfs___parse_unsigned_int (guestfs_h *g, const char *str); extern int guestfs___parse_unsigned_int_ignore_trailing (guestfs_h *g, const char *str); extern int guestfs___parse_major_minor (guestfs_h *g, struct inspect_fs *fs); @@ -400,6 +419,7 @@ extern int guestfs___read_db_dump (guestfs_h *g, const char *dumpfile, void *opa extern int guestfs___check_installer_root (guestfs_h *g, struct inspect_fs *fs); extern int guestfs___check_linux_root (guestfs_h *g, struct inspect_fs *fs); extern int guestfs___check_freebsd_root (guestfs_h *g, struct inspect_fs *fs); +extern int guestfs___check_netbsd_root (guestfs_h *g, struct inspect_fs *fs); extern int guestfs___has_windows_systemroot (guestfs_h *g); extern int guestfs___check_windows_root (guestfs_h *g, struct inspect_fs *fs); #endif