diff options
author | Richard Jones <rjones@redhat.com> | 2009-04-10 12:53:28 +0100 |
---|---|---|
committer | Richard Jones <rjones@redhat.com> | 2009-04-10 12:55:04 +0100 |
commit | 286841877f4223d67ec00b83e5a2aabfbb9e19ed (patch) | |
tree | 17ac4dec06100bc6d6396c1080fa5490e255e9b5 /src | |
parent | 44da812b424f5e10e268d47149d012d49edf858b (diff) | |
download | libguestfs-286841877f4223d67ec00b83e5a2aabfbb9e19ed.tar.gz libguestfs-286841877f4223d67ec00b83e5a2aabfbb9e19ed.tar.xz libguestfs-286841877f4223d67ec00b83e5a2aabfbb9e19ed.zip |
Generated files for previous commands.
Diffstat (limited to 'src')
-rw-r--r-- | src/guestfs-actions.c | 489 | ||||
-rw-r--r-- | src/guestfs-actions.h | 7 | ||||
-rw-r--r-- | src/guestfs_protocol.c | 76 | ||||
-rw-r--r-- | src/guestfs_protocol.h | 61 | ||||
-rw-r--r-- | src/guestfs_protocol.x | 38 |
5 files changed, 670 insertions, 1 deletions
diff --git a/src/guestfs-actions.c b/src/guestfs-actions.c index 9b9749a1..25892cd0 100644 --- a/src/guestfs-actions.c +++ b/src/guestfs-actions.c @@ -2051,3 +2051,492 @@ char **guestfs_aug_ls (guestfs_h *g, return rv.ret.matches.matches_val; } +struct rm_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; +}; + +static void rm_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct rm_rv *rv = (struct rm_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_rm: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_rm: failed to parse reply error"); + return; + } + goto done; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_rm (guestfs_h *g, + const char *path) +{ + struct guestfs_rm_args args; + struct rm_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_rm called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.path = (char *) path; + serial = dispatch (g, GUESTFS_PROC_RM, + (xdrproc_t) xdr_guestfs_rm_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = rm_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_rm failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_RM, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return 0; +} + +struct rmdir_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; +}; + +static void rmdir_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct rmdir_rv *rv = (struct rmdir_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_rmdir: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_rmdir: failed to parse reply error"); + return; + } + goto done; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_rmdir (guestfs_h *g, + const char *path) +{ + struct guestfs_rmdir_args args; + struct rmdir_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_rmdir called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.path = (char *) path; + serial = dispatch (g, GUESTFS_PROC_RMDIR, + (xdrproc_t) xdr_guestfs_rmdir_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = rmdir_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_rmdir failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_RMDIR, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return 0; +} + +struct rm_rf_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; +}; + +static void rm_rf_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct rm_rf_rv *rv = (struct rm_rf_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_rm_rf: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_rm_rf: failed to parse reply error"); + return; + } + goto done; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_rm_rf (guestfs_h *g, + const char *path) +{ + struct guestfs_rm_rf_args args; + struct rm_rf_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_rm_rf called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.path = (char *) path; + serial = dispatch (g, GUESTFS_PROC_RM_RF, + (xdrproc_t) xdr_guestfs_rm_rf_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = rm_rf_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_rm_rf failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_RM_RF, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return 0; +} + +struct mkdir_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; +}; + +static void mkdir_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct mkdir_rv *rv = (struct mkdir_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_mkdir: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_mkdir: failed to parse reply error"); + return; + } + goto done; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_mkdir (guestfs_h *g, + const char *path) +{ + struct guestfs_mkdir_args args; + struct mkdir_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_mkdir called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.path = (char *) path; + serial = dispatch (g, GUESTFS_PROC_MKDIR, + (xdrproc_t) xdr_guestfs_mkdir_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = mkdir_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_mkdir failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_MKDIR, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return 0; +} + +struct mkdir_p_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; +}; + +static void mkdir_p_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct mkdir_p_rv *rv = (struct mkdir_p_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_mkdir_p: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_mkdir_p: failed to parse reply error"); + return; + } + goto done; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_mkdir_p (guestfs_h *g, + const char *path) +{ + struct guestfs_mkdir_p_args args; + struct mkdir_p_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_mkdir_p called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.path = (char *) path; + serial = dispatch (g, GUESTFS_PROC_MKDIR_P, + (xdrproc_t) xdr_guestfs_mkdir_p_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = mkdir_p_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_mkdir_p failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_MKDIR_P, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return 0; +} + +struct chmod_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; +}; + +static void chmod_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct chmod_rv *rv = (struct chmod_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_chmod: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_chmod: failed to parse reply error"); + return; + } + goto done; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_chmod (guestfs_h *g, + int mode, + const char *path) +{ + struct guestfs_chmod_args args; + struct chmod_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_chmod called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.mode = mode; + args.path = (char *) path; + serial = dispatch (g, GUESTFS_PROC_CHMOD, + (xdrproc_t) xdr_guestfs_chmod_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = chmod_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_chmod failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_CHMOD, serial) == -1) + return -1; + + if (rv.hdr.status == GUESTFS_STATUS_ERROR) { + error (g, "%s", rv.err.error); + return -1; + } + + return 0; +} + +struct chown_rv { + int cb_done; /* flag to indicate callback was called */ + struct guestfs_message_header hdr; + struct guestfs_message_error err; +}; + +static void chown_cb (guestfs_h *g, void *data, XDR *xdr) +{ + struct chown_rv *rv = (struct chown_rv *) data; + + if (!xdr_guestfs_message_header (xdr, &rv->hdr)) { + error (g, "guestfs_chown: failed to parse reply header"); + return; + } + if (rv->hdr.status == GUESTFS_STATUS_ERROR) { + if (!xdr_guestfs_message_error (xdr, &rv->err)) { + error (g, "guestfs_chown: failed to parse reply error"); + return; + } + goto done; + } + done: + rv->cb_done = 1; + main_loop.main_loop_quit (g); +} + +int guestfs_chown (guestfs_h *g, + int owner, + int group, + const char *path) +{ + struct guestfs_chown_args args; + struct chown_rv rv; + int serial; + + if (g->state != READY) { + error (g, "guestfs_chown called from the wrong state, %d != READY", + g->state); + return -1; + } + + memset (&rv, 0, sizeof rv); + + args.owner = owner; + args.group = group; + args.path = (char *) path; + serial = dispatch (g, GUESTFS_PROC_CHOWN, + (xdrproc_t) xdr_guestfs_chown_args, (char *) &args); + if (serial == -1) + return -1; + + rv.cb_done = 0; + g->reply_cb_internal = chown_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_chown failed, see earlier error messages"); + return -1; + } + + if (check_reply_header (g, &rv.hdr, GUESTFS_PROC_CHOWN, 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 497e36bb..06f1485b 100644 --- a/src/guestfs-actions.h +++ b/src/guestfs-actions.h @@ -59,3 +59,10 @@ extern char **guestfs_aug_match (guestfs_h *handle, const char *path); extern int guestfs_aug_save (guestfs_h *handle); extern int guestfs_aug_load (guestfs_h *handle); extern char **guestfs_aug_ls (guestfs_h *handle, const char *path); +extern int guestfs_rm (guestfs_h *handle, const char *path); +extern int guestfs_rmdir (guestfs_h *handle, const char *path); +extern int guestfs_rm_rf (guestfs_h *handle, const char *path); +extern int guestfs_mkdir (guestfs_h *handle, const char *path); +extern int guestfs_mkdir_p (guestfs_h *handle, const char *path); +extern int guestfs_chmod (guestfs_h *handle, int mode, const char *path); +extern int guestfs_chown (guestfs_h *handle, int owner, int group, const char *path); diff --git a/src/guestfs_protocol.c b/src/guestfs_protocol.c index ed38a8d2..781c2daf 100644 --- a/src/guestfs_protocol.c +++ b/src/guestfs_protocol.c @@ -543,6 +543,82 @@ xdr_guestfs_aug_ls_ret (XDR *xdrs, guestfs_aug_ls_ret *objp) } bool_t +xdr_guestfs_rm_args (XDR *xdrs, guestfs_rm_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_rmdir_args (XDR *xdrs, guestfs_rmdir_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_rm_rf_args (XDR *xdrs, guestfs_rm_rf_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_mkdir_args (XDR *xdrs, guestfs_mkdir_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_mkdir_p_args (XDR *xdrs, guestfs_mkdir_p_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_chmod_args (XDR *xdrs, guestfs_chmod_args *objp) +{ + register int32_t *buf; + + if (!xdr_int (xdrs, &objp->mode)) + return FALSE; + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_chown_args (XDR *xdrs, guestfs_chown_args *objp) +{ + register int32_t *buf; + + if (!xdr_int (xdrs, &objp->owner)) + return FALSE; + if (!xdr_int (xdrs, &objp->group)) + return FALSE; + if (!xdr_string (xdrs, &objp->path, ~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 a0943554..508bc4e3 100644 --- a/src/guestfs_protocol.h +++ b/src/guestfs_protocol.h @@ -299,6 +299,44 @@ struct guestfs_aug_ls_ret { }; typedef struct guestfs_aug_ls_ret guestfs_aug_ls_ret; +struct guestfs_rm_args { + char *path; +}; +typedef struct guestfs_rm_args guestfs_rm_args; + +struct guestfs_rmdir_args { + char *path; +}; +typedef struct guestfs_rmdir_args guestfs_rmdir_args; + +struct guestfs_rm_rf_args { + char *path; +}; +typedef struct guestfs_rm_rf_args guestfs_rm_rf_args; + +struct guestfs_mkdir_args { + char *path; +}; +typedef struct guestfs_mkdir_args guestfs_mkdir_args; + +struct guestfs_mkdir_p_args { + char *path; +}; +typedef struct guestfs_mkdir_p_args guestfs_mkdir_p_args; + +struct guestfs_chmod_args { + int mode; + char *path; +}; +typedef struct guestfs_chmod_args guestfs_chmod_args; + +struct guestfs_chown_args { + int owner; + int group; + char *path; +}; +typedef struct guestfs_chown_args guestfs_chown_args; + enum guestfs_procedure { GUESTFS_PROC_MOUNT = 1, GUESTFS_PROC_SYNC = 2, @@ -328,7 +366,14 @@ enum guestfs_procedure { GUESTFS_PROC_AUG_SAVE = 25, GUESTFS_PROC_AUG_LOAD = 27, GUESTFS_PROC_AUG_LS = 28, - GUESTFS_PROC_dummy = 28 + 1, + GUESTFS_PROC_RM = 29, + GUESTFS_PROC_RMDIR = 30, + GUESTFS_PROC_RM_RF = 31, + GUESTFS_PROC_MKDIR = 32, + GUESTFS_PROC_MKDIR_P = 33, + GUESTFS_PROC_CHMOD = 34, + GUESTFS_PROC_CHOWN = 35, + GUESTFS_PROC_dummy = 35 + 1, }; typedef enum guestfs_procedure guestfs_procedure; #define GUESTFS_MESSAGE_MAX 4194304 @@ -407,6 +452,13 @@ extern bool_t xdr_guestfs_aug_match_args (XDR *, guestfs_aug_match_args*); extern bool_t xdr_guestfs_aug_match_ret (XDR *, guestfs_aug_match_ret*); extern bool_t xdr_guestfs_aug_ls_args (XDR *, guestfs_aug_ls_args*); extern bool_t xdr_guestfs_aug_ls_ret (XDR *, guestfs_aug_ls_ret*); +extern bool_t xdr_guestfs_rm_args (XDR *, guestfs_rm_args*); +extern bool_t xdr_guestfs_rmdir_args (XDR *, guestfs_rmdir_args*); +extern bool_t xdr_guestfs_rm_rf_args (XDR *, guestfs_rm_rf_args*); +extern bool_t xdr_guestfs_mkdir_args (XDR *, guestfs_mkdir_args*); +extern bool_t xdr_guestfs_mkdir_p_args (XDR *, guestfs_mkdir_p_args*); +extern bool_t xdr_guestfs_chmod_args (XDR *, guestfs_chmod_args*); +extern bool_t xdr_guestfs_chown_args (XDR *, guestfs_chown_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*); @@ -455,6 +507,13 @@ extern bool_t xdr_guestfs_aug_match_args (); extern bool_t xdr_guestfs_aug_match_ret (); extern bool_t xdr_guestfs_aug_ls_args (); extern bool_t xdr_guestfs_aug_ls_ret (); +extern bool_t xdr_guestfs_rm_args (); +extern bool_t xdr_guestfs_rmdir_args (); +extern bool_t xdr_guestfs_rm_rf_args (); +extern bool_t xdr_guestfs_mkdir_args (); +extern bool_t xdr_guestfs_mkdir_p_args (); +extern bool_t xdr_guestfs_chmod_args (); +extern bool_t xdr_guestfs_chown_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 8e3d2a95..41116b53 100644 --- a/src/guestfs_protocol.x +++ b/src/guestfs_protocol.x @@ -231,6 +231,37 @@ struct guestfs_aug_ls_ret { str matches<>; }; +struct guestfs_rm_args { + string path<>; +}; + +struct guestfs_rmdir_args { + string path<>; +}; + +struct guestfs_rm_rf_args { + string path<>; +}; + +struct guestfs_mkdir_args { + string path<>; +}; + +struct guestfs_mkdir_p_args { + string path<>; +}; + +struct guestfs_chmod_args { + int mode; + string path<>; +}; + +struct guestfs_chown_args { + int owner; + int group; + string path<>; +}; + enum guestfs_procedure { GUESTFS_PROC_MOUNT = 1, GUESTFS_PROC_SYNC = 2, @@ -260,6 +291,13 @@ enum guestfs_procedure { GUESTFS_PROC_AUG_SAVE = 25, GUESTFS_PROC_AUG_LOAD = 27, GUESTFS_PROC_AUG_LS = 28, + GUESTFS_PROC_RM = 29, + GUESTFS_PROC_RMDIR = 30, + GUESTFS_PROC_RM_RF = 31, + GUESTFS_PROC_MKDIR = 32, + GUESTFS_PROC_MKDIR_P = 33, + GUESTFS_PROC_CHMOD = 34, + GUESTFS_PROC_CHOWN = 35, GUESTFS_PROC_dummy }; |