X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=perl%2FGuestfs.xs;h=3c5f7138669ee995b2309d0a2f63eda39b384fb8;hb=2dc9e8a858b62830d15a8186fe575eb7903d2171;hp=12c6cbbc2e90876507095acbc4c67c8d97621c43;hpb=b03ee3675bed8d739ae722ed8c030ae02b3cb0ed;p=libguestfs.git diff --git a/perl/Guestfs.xs b/perl/Guestfs.xs index 12c6cbb..3c5f713 100644 --- a/perl/Guestfs.xs +++ b/perl/Guestfs.xs @@ -64,12 +64,13 @@ XS_unpack_charPtrPtr (SV *arg) { AV *av; I32 i; - if (!arg || !SvOK (arg) || !SvROK (arg) || SvTYPE (SvRV (arg)) != SVt_PVAV) { + if (!arg || !SvOK (arg) || !SvROK (arg) || SvTYPE (SvRV (arg)) != SVt_PVAV) croak ("array reference expected"); - } av = (AV *)SvRV (arg); - ret = (char **)malloc (av_len (av) + 1 + 1); + ret = malloc (av_len (av) + 1 + 1); + if (!ret) + croak ("malloc failed"); for (i = 0; i <= av_len (av); i++) { SV **elem = av_fetch (av, i, 0); @@ -1572,3 +1573,77 @@ PREINIT: OUTPUT: RETVAL +SV * +fsck (g, fstype, device) + guestfs_h *g; + char *fstype; + char *device; +PREINIT: + int status; + CODE: + status = guestfs_fsck (g, fstype, device); + if (status == -1) + croak ("fsck: %s", guestfs_last_error (g)); + RETVAL = newSViv (status); + OUTPUT: + RETVAL + +void +zero (g, device) + guestfs_h *g; + char *device; +PREINIT: + int r; + PPCODE: + r = guestfs_zero (g, device); + if (r == -1) + croak ("zero: %s", guestfs_last_error (g)); + +void +grub_install (g, root, device) + guestfs_h *g; + char *root; + char *device; +PREINIT: + int r; + PPCODE: + r = guestfs_grub_install (g, root, device); + if (r == -1) + croak ("grub_install: %s", guestfs_last_error (g)); + +void +cp (g, src, dest) + guestfs_h *g; + char *src; + char *dest; +PREINIT: + int r; + PPCODE: + r = guestfs_cp (g, src, dest); + if (r == -1) + croak ("cp: %s", guestfs_last_error (g)); + +void +cp_a (g, src, dest) + guestfs_h *g; + char *src; + char *dest; +PREINIT: + int r; + PPCODE: + r = guestfs_cp_a (g, src, dest); + if (r == -1) + croak ("cp_a: %s", guestfs_last_error (g)); + +void +mv (g, src, dest) + guestfs_h *g; + char *src; + char *dest; +PREINIT: + int r; + PPCODE: + r = guestfs_mv (g, src, dest); + if (r == -1) + croak ("mv: %s", guestfs_last_error (g)); +