X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=daemon%2Fdaemon.h;h=6e9788a32427cb7532a179b31929b0d981ad07e1;hp=55f7b08ab85f8ac51796adcfa74379abb86ccb03;hb=428a45c3e15f03e9861e1b551e1ae8da821dba5f;hpb=0606cb54671e10f104b4eba1c70378ef8725322b diff --git a/daemon/daemon.h b/daemon/daemon.h index 55f7b08..6e9788a 100644 --- a/daemon/daemon.h +++ b/daemon/daemon.h @@ -21,13 +21,14 @@ #include #include +#include #include #include #include #include -#include "../src/guestfs_protocol.h" +#include "guestfs_protocol.h" /*-- in guestfsd.c --*/ extern int verbose; @@ -37,6 +38,8 @@ extern int sysroot_len; extern char *sysroot_path (const char *path); +extern int is_root_device (const char *device); + extern int xwrite (int sock, const void *buf, size_t len) __attribute__((__warn_unused_result__)); extern int xread (int sock, void *buf, size_t len) @@ -121,6 +124,9 @@ extern struct optgroup optgroups[]; /* Use this as a replacement for sync(2). */ extern int sync_disks (void); +/*-- in lvm.c --*/ +extern int lv_canonical (const char *device, char **ret); + /*-- in proto.c --*/ extern void main_loop (int sock) __attribute__((noreturn)); @@ -159,6 +165,12 @@ extern int send_file_end (int cancel); /* only call this if there is a FileOut parameter */ extern void reply (xdrproc_t xdrp, char *ret); +/* Notify progress to caller. This function is self-rate-limiting so + * you can call it as often as necessary. Actions which call this + * should add 'Progress' note in generator. + */ +extern void notify_progress (uint64_t position, uint64_t total); + /* Helper for functions that need a root filesystem mounted. * NB. Cannot be used for FileIn functions. */ @@ -198,6 +210,8 @@ extern void reply (xdrproc_t xdrp, char *ret); reply_with_error ("%s: %s: expecting a device name", __func__, (path)); \ fail_stmt; \ } \ + if (is_root_device (path)) \ + reply_with_error ("%s: %s: device not found", __func__, path); \ if (device_name_translation ((path)) == -1) { \ int err = errno; \ int r = cancel_stmt; \