diff options
author | Richard Jones <rjones@redhat.com> | 2009-04-15 17:48:54 +0100 |
---|---|---|
committer | Richard Jones <rjones@redhat.com> | 2009-04-15 17:48:54 +0100 |
commit | b348eacbc4d84337856cf7cca518d61c63e92631 (patch) | |
tree | ad6cefaf75e05e6a4da9c9b18061222a3ba98727 /src | |
parent | e038597ebd1e43c83a8ddde21c4f1898eb7a9a98 (diff) | |
download | libguestfs-b348eacbc4d84337856cf7cca518d61c63e92631.tar.gz libguestfs-b348eacbc4d84337856cf7cca518d61c63e92631.tar.xz libguestfs-b348eacbc4d84337856cf7cca518d61c63e92631.zip |
Generated code for blockdev_* calls, RInt64, enhanced tests.
Diffstat (limited to 'src')
-rw-r--r-- | src/guestfs-actions.c | 717 | ||||
-rw-r--r-- | src/guestfs-actions.h | 10 | ||||
-rw-r--r-- | src/guestfs_protocol.c | 152 | ||||
-rw-r--r-- | src/guestfs_protocol.h | 118 | ||||
-rw-r--r-- | src/guestfs_protocol.x | 71 |
5 files changed, 1067 insertions, 1 deletions
diff --git a/src/guestfs-actions.c b/src/guestfs-actions.c index 0961df69..f516979f 100644 --- a/src/guestfs-actions.c +++ b/src/guestfs-actions.c @@ -4002,3 +4002,720 @@ char **guestfs_tune2fs_l (guestfs_h *g, return rv.ret.superblock.superblock_val; } +struct blockdev_setro_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; +}; + +static void blockdev_setro_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct blockdev_setro_rv *rv = (struct blockdev_setro_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_blockdev_setro: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_blockdev_setro: failed to parse reply error"); + return; + } + goto done; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_blockdev_setro (guestfs_h *g, + const char *device) +{ + struct guestfs_blockdev_setro_args args; + struct blockdev_setro_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_blockdev_setro called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.device = (char *) device; + serial = dispatch (g, GUESTFS_PROC_BLOCKDEV_SETRO, + (xdrproc_t) xdr_guestfs_blockdev_setro_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = blockdev_setro_cb; + g->reply_cb_internal_data = &rv; + main_loop.main_loop_run (g); + g->reply_cb_internal = NULL; + g->reply_cb_internal_data = NULL; + if (!rv.cb_done) { + error (g, "guestfs_blockdev_setro failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_BLOCKDEV_SETRO, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return 0; +} + +struct blockdev_setrw_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; +}; + +static void blockdev_setrw_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct blockdev_setrw_rv *rv = (struct blockdev_setrw_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_blockdev_setrw: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_blockdev_setrw: failed to parse reply error"); + return; + } + goto done; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_blockdev_setrw (guestfs_h *g, + const char *device) +{ + struct guestfs_blockdev_setrw_args args; + struct blockdev_setrw_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_blockdev_setrw called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.device = (char *) device; + serial = dispatch (g, GUESTFS_PROC_BLOCKDEV_SETRW, + (xdrproc_t) xdr_guestfs_blockdev_setrw_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = blockdev_setrw_cb; + g->reply_cb_internal_data = &rv; + main_loop.main_loop_run (g); + g->reply_cb_internal = NULL; + g->reply_cb_internal_data = NULL; + if (!rv.cb_done) { + error (g, "guestfs_blockdev_setrw failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_BLOCKDEV_SETRW, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return 0; +} + +struct blockdev_getro_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; + struct guestfs_blockdev_getro_ret ret; +}; + +static void blockdev_getro_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct blockdev_getro_rv *rv = (struct blockdev_getro_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_blockdev_getro: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_blockdev_getro: failed to parse reply error"); + return; + } + goto done; + } + if (!xdr_guestfs_blockdev_getro_ret (xdr, &rv->ret)) { + error (g, "guestfs_blockdev_getro: failed to parse reply"); + return; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_blockdev_getro (guestfs_h *g, + const char *device) +{ + struct guestfs_blockdev_getro_args args; + struct blockdev_getro_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_blockdev_getro called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.device = (char *) device; + serial = dispatch (g, GUESTFS_PROC_BLOCKDEV_GETRO, + (xdrproc_t) xdr_guestfs_blockdev_getro_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = blockdev_getro_cb; + g->reply_cb_internal_data = &rv; + main_loop.main_loop_run (g); + g->reply_cb_internal = NULL; + g->reply_cb_internal_data = NULL; + if (!rv.cb_done) { + error (g, "guestfs_blockdev_getro failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_BLOCKDEV_GETRO, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return rv.ret.ro; +} + +struct blockdev_getss_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; + struct guestfs_blockdev_getss_ret ret; +}; + +static void blockdev_getss_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct blockdev_getss_rv *rv = (struct blockdev_getss_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_blockdev_getss: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_blockdev_getss: failed to parse reply error"); + return; + } + goto done; + } + if (!xdr_guestfs_blockdev_getss_ret (xdr, &rv->ret)) { + error (g, "guestfs_blockdev_getss: failed to parse reply"); + return; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_blockdev_getss (guestfs_h *g, + const char *device) +{ + struct guestfs_blockdev_getss_args args; + struct blockdev_getss_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_blockdev_getss called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.device = (char *) device; + serial = dispatch (g, GUESTFS_PROC_BLOCKDEV_GETSS, + (xdrproc_t) xdr_guestfs_blockdev_getss_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = blockdev_getss_cb; + g->reply_cb_internal_data = &rv; + main_loop.main_loop_run (g); + g->reply_cb_internal = NULL; + g->reply_cb_internal_data = NULL; + if (!rv.cb_done) { + error (g, "guestfs_blockdev_getss failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_BLOCKDEV_GETSS, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return rv.ret.sectorsize; +} + +struct blockdev_getbsz_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; + struct guestfs_blockdev_getbsz_ret ret; +}; + +static void blockdev_getbsz_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct blockdev_getbsz_rv *rv = (struct blockdev_getbsz_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_blockdev_getbsz: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_blockdev_getbsz: failed to parse reply error"); + return; + } + goto done; + } + if (!xdr_guestfs_blockdev_getbsz_ret (xdr, &rv->ret)) { + error (g, "guestfs_blockdev_getbsz: failed to parse reply"); + return; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_blockdev_getbsz (guestfs_h *g, + const char *device) +{ + struct guestfs_blockdev_getbsz_args args; + struct blockdev_getbsz_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_blockdev_getbsz called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.device = (char *) device; + serial = dispatch (g, GUESTFS_PROC_BLOCKDEV_GETBSZ, + (xdrproc_t) xdr_guestfs_blockdev_getbsz_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = blockdev_getbsz_cb; + g->reply_cb_internal_data = &rv; + main_loop.main_loop_run (g); + g->reply_cb_internal = NULL; + g->reply_cb_internal_data = NULL; + if (!rv.cb_done) { + error (g, "guestfs_blockdev_getbsz failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_BLOCKDEV_GETBSZ, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return rv.ret.blocksize; +} + +struct blockdev_setbsz_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; +}; + +static void blockdev_setbsz_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct blockdev_setbsz_rv *rv = (struct blockdev_setbsz_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_blockdev_setbsz: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_blockdev_setbsz: failed to parse reply error"); + return; + } + goto done; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_blockdev_setbsz (guestfs_h *g, + const char *device, + int blocksize) +{ + struct guestfs_blockdev_setbsz_args args; + struct blockdev_setbsz_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_blockdev_setbsz called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.device = (char *) device; + args.blocksize = blocksize; + serial = dispatch (g, GUESTFS_PROC_BLOCKDEV_SETBSZ, + (xdrproc_t) xdr_guestfs_blockdev_setbsz_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = blockdev_setbsz_cb; + g->reply_cb_internal_data = &rv; + main_loop.main_loop_run (g); + g->reply_cb_internal = NULL; + g->reply_cb_internal_data = NULL; + if (!rv.cb_done) { + error (g, "guestfs_blockdev_setbsz failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_BLOCKDEV_SETBSZ, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return 0; +} + +struct blockdev_getsz_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; + struct guestfs_blockdev_getsz_ret ret; +}; + +static void blockdev_getsz_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct blockdev_getsz_rv *rv = (struct blockdev_getsz_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_blockdev_getsz: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_blockdev_getsz: failed to parse reply error"); + return; + } + goto done; + } + if (!xdr_guestfs_blockdev_getsz_ret (xdr, &rv->ret)) { + error (g, "guestfs_blockdev_getsz: failed to parse reply"); + return; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int64_t guestfs_blockdev_getsz (guestfs_h *g, + const char *device) +{ + struct guestfs_blockdev_getsz_args args; + struct blockdev_getsz_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_blockdev_getsz called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.device = (char *) device; + serial = dispatch (g, GUESTFS_PROC_BLOCKDEV_GETSZ, + (xdrproc_t) xdr_guestfs_blockdev_getsz_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = blockdev_getsz_cb; + g->reply_cb_internal_data = &rv; + main_loop.main_loop_run (g); + g->reply_cb_internal = NULL; + g->reply_cb_internal_data = NULL; + if (!rv.cb_done) { + error (g, "guestfs_blockdev_getsz failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_BLOCKDEV_GETSZ, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return rv.ret.sizeinsectors; +} + +struct blockdev_getsize64_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; + struct guestfs_blockdev_getsize64_ret ret; +}; + +static void blockdev_getsize64_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct blockdev_getsize64_rv *rv = (struct blockdev_getsize64_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_blockdev_getsize64: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_blockdev_getsize64: failed to parse reply error"); + return; + } + goto done; + } + if (!xdr_guestfs_blockdev_getsize64_ret (xdr, &rv->ret)) { + error (g, "guestfs_blockdev_getsize64: failed to parse reply"); + return; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int64_t guestfs_blockdev_getsize64 (guestfs_h *g, + const char *device) +{ + struct guestfs_blockdev_getsize64_args args; + struct blockdev_getsize64_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_blockdev_getsize64 called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.device = (char *) device; + serial = dispatch (g, GUESTFS_PROC_BLOCKDEV_GETSIZE64, + (xdrproc_t) xdr_guestfs_blockdev_getsize64_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = blockdev_getsize64_cb; + g->reply_cb_internal_data = &rv; + main_loop.main_loop_run (g); + g->reply_cb_internal = NULL; + g->reply_cb_internal_data = NULL; + if (!rv.cb_done) { + error (g, "guestfs_blockdev_getsize64 failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_BLOCKDEV_GETSIZE64, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return rv.ret.sizeinbytes; +} + +struct blockdev_flushbufs_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; +}; + +static void blockdev_flushbufs_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct blockdev_flushbufs_rv *rv = (struct blockdev_flushbufs_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_blockdev_flushbufs: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_blockdev_flushbufs: failed to parse reply error"); + return; + } + goto done; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_blockdev_flushbufs (guestfs_h *g, + const char *device) +{ + struct guestfs_blockdev_flushbufs_args args; + struct blockdev_flushbufs_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_blockdev_flushbufs called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.device = (char *) device; + serial = dispatch (g, GUESTFS_PROC_BLOCKDEV_FLUSHBUFS, + (xdrproc_t) xdr_guestfs_blockdev_flushbufs_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = blockdev_flushbufs_cb; + g->reply_cb_internal_data = &rv; + main_loop.main_loop_run (g); + g->reply_cb_internal = NULL; + g->reply_cb_internal_data = NULL; + if (!rv.cb_done) { + error (g, "guestfs_blockdev_flushbufs failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_BLOCKDEV_FLUSHBUFS, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return 0; +} + +struct blockdev_rereadpt_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; +}; + +static void blockdev_rereadpt_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct blockdev_rereadpt_rv *rv = (struct blockdev_rereadpt_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_blockdev_rereadpt: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_blockdev_rereadpt: failed to parse reply error"); + return; + } + goto done; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_blockdev_rereadpt (guestfs_h *g, + const char *device) +{ + struct guestfs_blockdev_rereadpt_args args; + struct blockdev_rereadpt_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_blockdev_rereadpt called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.device = (char *) device; + serial = dispatch (g, GUESTFS_PROC_BLOCKDEV_REREADPT, + (xdrproc_t) xdr_guestfs_blockdev_rereadpt_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = blockdev_rereadpt_cb; + g->reply_cb_internal_data = &rv; + main_loop.main_loop_run (g); + g->reply_cb_internal = NULL; + g->reply_cb_internal_data = NULL; + if (!rv.cb_done) { + error (g, "guestfs_blockdev_rereadpt failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_BLOCKDEV_REREADPT, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return 0; +} + diff --git a/src/guestfs-actions.h b/src/guestfs-actions.h index 5f523c34..14ca54fc 100644 --- a/src/guestfs-actions.h +++ b/src/guestfs-actions.h @@ -86,3 +86,13 @@ extern struct guestfs_stat *guestfs_stat (guestfs_h *handle, const char *path); extern struct guestfs_stat *guestfs_lstat (guestfs_h *handle, const char *path); extern struct guestfs_statvfs *guestfs_statvfs (guestfs_h *handle, const char *path); extern char **guestfs_tune2fs_l (guestfs_h *handle, const char *device); +extern int guestfs_blockdev_setro (guestfs_h *handle, const char *device); +extern int guestfs_blockdev_setrw (guestfs_h *handle, const char *device); +extern int guestfs_blockdev_getro (guestfs_h *handle, const char *device); +extern int guestfs_blockdev_getss (guestfs_h *handle, const char *device); +extern int guestfs_blockdev_getbsz (guestfs_h *handle, const char *device); +extern int guestfs_blockdev_setbsz (guestfs_h *handle, const char *device, int blocksize); +extern int64_t guestfs_blockdev_getsz (guestfs_h *handle, const char *device); +extern int64_t guestfs_blockdev_getsize64 (guestfs_h *handle, const char *device); +extern int guestfs_blockdev_flushbufs (guestfs_h *handle, const char *device); +extern int guestfs_blockdev_rereadpt (guestfs_h *handle, const char *device); diff --git a/src/guestfs_protocol.c b/src/guestfs_protocol.c index 33de1dc1..eb90d756 100644 --- a/src/guestfs_protocol.c +++ b/src/guestfs_protocol.c @@ -1035,6 +1035,158 @@ xdr_guestfs_tune2fs_l_ret (XDR *xdrs, guestfs_tune2fs_l_ret *objp) } bool_t +xdr_guestfs_blockdev_setro_args (XDR *xdrs, guestfs_blockdev_setro_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_blockdev_setrw_args (XDR *xdrs, guestfs_blockdev_setrw_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_blockdev_getro_args (XDR *xdrs, guestfs_blockdev_getro_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_blockdev_getro_ret (XDR *xdrs, guestfs_blockdev_getro_ret *objp) +{ + register int32_t *buf; + + if (!xdr_bool (xdrs, &objp->ro)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_blockdev_getss_args (XDR *xdrs, guestfs_blockdev_getss_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_blockdev_getss_ret (XDR *xdrs, guestfs_blockdev_getss_ret *objp) +{ + register int32_t *buf; + + if (!xdr_int (xdrs, &objp->sectorsize)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_blockdev_getbsz_args (XDR *xdrs, guestfs_blockdev_getbsz_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_blockdev_getbsz_ret (XDR *xdrs, guestfs_blockdev_getbsz_ret *objp) +{ + register int32_t *buf; + + if (!xdr_int (xdrs, &objp->blocksize)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_blockdev_setbsz_args (XDR *xdrs, guestfs_blockdev_setbsz_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + if (!xdr_int (xdrs, &objp->blocksize)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_blockdev_getsz_args (XDR *xdrs, guestfs_blockdev_getsz_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_blockdev_getsz_ret (XDR *xdrs, guestfs_blockdev_getsz_ret *objp) +{ + register int32_t *buf; + + if (!xdr_quad_t (xdrs, &objp->sizeinsectors)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_blockdev_getsize64_args (XDR *xdrs, guestfs_blockdev_getsize64_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_blockdev_getsize64_ret (XDR *xdrs, guestfs_blockdev_getsize64_ret *objp) +{ + register int32_t *buf; + + if (!xdr_quad_t (xdrs, &objp->sizeinbytes)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_blockdev_flushbufs_args (XDR *xdrs, guestfs_blockdev_flushbufs_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_blockdev_rereadpt_args (XDR *xdrs, guestfs_blockdev_rereadpt_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + return TRUE; +} + +bool_t xdr_guestfs_procedure (XDR *xdrs, guestfs_procedure *objp) { register int32_t *buf; diff --git a/src/guestfs_protocol.h b/src/guestfs_protocol.h index 270571e5..822d9600 100644 --- a/src/guestfs_protocol.h +++ b/src/guestfs_protocol.h @@ -540,6 +540,82 @@ struct guestfs_tune2fs_l_ret { }; typedef struct guestfs_tune2fs_l_ret guestfs_tune2fs_l_ret; +struct guestfs_blockdev_setro_args { + char *device; +}; +typedef struct guestfs_blockdev_setro_args guestfs_blockdev_setro_args; + +struct guestfs_blockdev_setrw_args { + char *device; +}; +typedef struct guestfs_blockdev_setrw_args guestfs_blockdev_setrw_args; + +struct guestfs_blockdev_getro_args { + char *device; +}; +typedef struct guestfs_blockdev_getro_args guestfs_blockdev_getro_args; + +struct guestfs_blockdev_getro_ret { + bool_t ro; +}; +typedef struct guestfs_blockdev_getro_ret guestfs_blockdev_getro_ret; + +struct guestfs_blockdev_getss_args { + char *device; +}; +typedef struct guestfs_blockdev_getss_args guestfs_blockdev_getss_args; + +struct guestfs_blockdev_getss_ret { + int sectorsize; +}; +typedef struct guestfs_blockdev_getss_ret guestfs_blockdev_getss_ret; + +struct guestfs_blockdev_getbsz_args { + char *device; +}; +typedef struct guestfs_blockdev_getbsz_args guestfs_blockdev_getbsz_args; + +struct guestfs_blockdev_getbsz_ret { + int blocksize; +}; +typedef struct guestfs_blockdev_getbsz_ret guestfs_blockdev_getbsz_ret; + +struct guestfs_blockdev_setbsz_args { + char *device; + int blocksize; +}; +typedef struct guestfs_blockdev_setbsz_args guestfs_blockdev_setbsz_args; + +struct guestfs_blockdev_getsz_args { + char *device; +}; +typedef struct guestfs_blockdev_getsz_args guestfs_blockdev_getsz_args; + +struct guestfs_blockdev_getsz_ret { + quad_t sizeinsectors; +}; +typedef struct guestfs_blockdev_getsz_ret guestfs_blockdev_getsz_ret; + +struct guestfs_blockdev_getsize64_args { + char *device; +}; +typedef struct guestfs_blockdev_getsize64_args guestfs_blockdev_getsize64_args; + +struct guestfs_blockdev_getsize64_ret { + quad_t sizeinbytes; +}; +typedef struct guestfs_blockdev_getsize64_ret guestfs_blockdev_getsize64_ret; + +struct guestfs_blockdev_flushbufs_args { + char *device; +}; +typedef struct guestfs_blockdev_flushbufs_args guestfs_blockdev_flushbufs_args; + +struct guestfs_blockdev_rereadpt_args { + char *device; +}; +typedef struct guestfs_blockdev_rereadpt_args guestfs_blockdev_rereadpt_args; + enum guestfs_procedure { GUESTFS_PROC_MOUNT = 1, GUESTFS_PROC_SYNC = 2, @@ -596,7 +672,17 @@ enum guestfs_procedure { GUESTFS_PROC_LSTAT = 53, GUESTFS_PROC_STATVFS = 54, GUESTFS_PROC_TUNE2FS_L = 55, - GUESTFS_PROC_dummy = 55 + 1, + GUESTFS_PROC_BLOCKDEV_SETRO = 56, + GUESTFS_PROC_BLOCKDEV_SETRW = 57, + GUESTFS_PROC_BLOCKDEV_GETRO = 58, + GUESTFS_PROC_BLOCKDEV_GETSS = 59, + GUESTFS_PROC_BLOCKDEV_GETBSZ = 60, + GUESTFS_PROC_BLOCKDEV_SETBSZ = 61, + GUESTFS_PROC_BLOCKDEV_GETSZ = 62, + GUESTFS_PROC_BLOCKDEV_GETSIZE64 = 63, + GUESTFS_PROC_BLOCKDEV_FLUSHBUFS = 64, + GUESTFS_PROC_BLOCKDEV_REREADPT = 65, + GUESTFS_PROC_dummy = 65 + 1, }; typedef enum guestfs_procedure guestfs_procedure; #define GUESTFS_MESSAGE_MAX 4194304 @@ -712,6 +798,21 @@ extern bool_t xdr_guestfs_statvfs_args (XDR *, guestfs_statvfs_args*); extern bool_t xdr_guestfs_statvfs_ret (XDR *, guestfs_statvfs_ret*); extern bool_t xdr_guestfs_tune2fs_l_args (XDR *, guestfs_tune2fs_l_args*); extern bool_t xdr_guestfs_tune2fs_l_ret (XDR *, guestfs_tune2fs_l_ret*); +extern bool_t xdr_guestfs_blockdev_setro_args (XDR *, guestfs_blockdev_setro_args*); +extern bool_t xdr_guestfs_blockdev_setrw_args (XDR *, guestfs_blockdev_setrw_args*); +extern bool_t xdr_guestfs_blockdev_getro_args (XDR *, guestfs_blockdev_getro_args*); +extern bool_t xdr_guestfs_blockdev_getro_ret (XDR *, guestfs_blockdev_getro_ret*); +extern bool_t xdr_guestfs_blockdev_getss_args (XDR *, guestfs_blockdev_getss_args*); +extern bool_t xdr_guestfs_blockdev_getss_ret (XDR *, guestfs_blockdev_getss_ret*); +extern bool_t xdr_guestfs_blockdev_getbsz_args (XDR *, guestfs_blockdev_getbsz_args*); +extern bool_t xdr_guestfs_blockdev_getbsz_ret (XDR *, guestfs_blockdev_getbsz_ret*); +extern bool_t xdr_guestfs_blockdev_setbsz_args (XDR *, guestfs_blockdev_setbsz_args*); +extern bool_t xdr_guestfs_blockdev_getsz_args (XDR *, guestfs_blockdev_getsz_args*); +extern bool_t xdr_guestfs_blockdev_getsz_ret (XDR *, guestfs_blockdev_getsz_ret*); +extern bool_t xdr_guestfs_blockdev_getsize64_args (XDR *, guestfs_blockdev_getsize64_args*); +extern bool_t xdr_guestfs_blockdev_getsize64_ret (XDR *, guestfs_blockdev_getsize64_ret*); +extern bool_t xdr_guestfs_blockdev_flushbufs_args (XDR *, guestfs_blockdev_flushbufs_args*); +extern bool_t xdr_guestfs_blockdev_rereadpt_args (XDR *, guestfs_blockdev_rereadpt_args*); extern bool_t xdr_guestfs_procedure (XDR *, guestfs_procedure*); extern bool_t xdr_guestfs_message_direction (XDR *, guestfs_message_direction*); extern bool_t xdr_guestfs_message_status (XDR *, guestfs_message_status*); @@ -797,6 +898,21 @@ extern bool_t xdr_guestfs_statvfs_args (); extern bool_t xdr_guestfs_statvfs_ret (); extern bool_t xdr_guestfs_tune2fs_l_args (); extern bool_t xdr_guestfs_tune2fs_l_ret (); +extern bool_t xdr_guestfs_blockdev_setro_args (); +extern bool_t xdr_guestfs_blockdev_setrw_args (); +extern bool_t xdr_guestfs_blockdev_getro_args (); +extern bool_t xdr_guestfs_blockdev_getro_ret (); +extern bool_t xdr_guestfs_blockdev_getss_args (); +extern bool_t xdr_guestfs_blockdev_getss_ret (); +extern bool_t xdr_guestfs_blockdev_getbsz_args (); +extern bool_t xdr_guestfs_blockdev_getbsz_ret (); +extern bool_t xdr_guestfs_blockdev_setbsz_args (); +extern bool_t xdr_guestfs_blockdev_getsz_args (); +extern bool_t xdr_guestfs_blockdev_getsz_ret (); +extern bool_t xdr_guestfs_blockdev_getsize64_args (); +extern bool_t xdr_guestfs_blockdev_getsize64_ret (); +extern bool_t xdr_guestfs_blockdev_flushbufs_args (); +extern bool_t xdr_guestfs_blockdev_rereadpt_args (); extern bool_t xdr_guestfs_procedure (); extern bool_t xdr_guestfs_message_direction (); extern bool_t xdr_guestfs_message_status (); diff --git a/src/guestfs_protocol.x b/src/guestfs_protocol.x index 1b6e7175..ba5d70cb 100644 --- a/src/guestfs_protocol.x +++ b/src/guestfs_protocol.x @@ -414,6 +414,67 @@ struct guestfs_tune2fs_l_ret { str superblock<>; }; +struct guestfs_blockdev_setro_args { + string device<>; +}; + +struct guestfs_blockdev_setrw_args { + string device<>; +}; + +struct guestfs_blockdev_getro_args { + string device<>; +}; + +struct guestfs_blockdev_getro_ret { + bool ro; +}; + +struct guestfs_blockdev_getss_args { + string device<>; +}; + +struct guestfs_blockdev_getss_ret { + int sectorsize; +}; + +struct guestfs_blockdev_getbsz_args { + string device<>; +}; + +struct guestfs_blockdev_getbsz_ret { + int blocksize; +}; + +struct guestfs_blockdev_setbsz_args { + string device<>; + int blocksize; +}; + +struct guestfs_blockdev_getsz_args { + string device<>; +}; + +struct guestfs_blockdev_getsz_ret { + hyper sizeinsectors; +}; + +struct guestfs_blockdev_getsize64_args { + string device<>; +}; + +struct guestfs_blockdev_getsize64_ret { + hyper sizeinbytes; +}; + +struct guestfs_blockdev_flushbufs_args { + string device<>; +}; + +struct guestfs_blockdev_rereadpt_args { + string device<>; +}; + enum guestfs_procedure { GUESTFS_PROC_MOUNT = 1, GUESTFS_PROC_SYNC = 2, @@ -470,6 +531,16 @@ enum guestfs_procedure { GUESTFS_PROC_LSTAT = 53, GUESTFS_PROC_STATVFS = 54, GUESTFS_PROC_TUNE2FS_L = 55, + GUESTFS_PROC_BLOCKDEV_SETRO = 56, + GUESTFS_PROC_BLOCKDEV_SETRW = 57, + GUESTFS_PROC_BLOCKDEV_GETRO = 58, + GUESTFS_PROC_BLOCKDEV_GETSS = 59, + GUESTFS_PROC_BLOCKDEV_GETBSZ = 60, + GUESTFS_PROC_BLOCKDEV_SETBSZ = 61, + GUESTFS_PROC_BLOCKDEV_GETSZ = 62, + GUESTFS_PROC_BLOCKDEV_GETSIZE64 = 63, + GUESTFS_PROC_BLOCKDEV_FLUSHBUFS = 64, + GUESTFS_PROC_BLOCKDEV_REREADPT = 65, GUESTFS_PROC_dummy }; |