X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=perl%2FGuestfs.xs;h=ce697c54d0581cd703c79bb272942ed2a9805fed;hb=0faa5dde7b992ba11bb88f77b3424676c7c492e4;hp=1a45c796e351b0157f6be37a4ee2812b4de3bcb2;hpb=9222136ac9b2e404dba128b1ac74dacaa8bf1038;p=libguestfs.git diff --git a/perl/Guestfs.xs b/perl/Guestfs.xs index 1a45c79..ce697c5 100644 --- a/perl/Guestfs.xs +++ b/perl/Guestfs.xs @@ -88,6 +88,8 @@ XS_unpack_charPtrPtr (SV *arg) { MODULE = Sys::Guestfs PACKAGE = Sys::Guestfs +PROTOTYPES: ENABLE + guestfs_h * _create () CODE: @@ -1658,3 +1660,96 @@ PREINIT: if (r == -1) croak ("drop_caches: %s", guestfs_last_error (g)); +SV * +dmesg (g) + guestfs_h *g; +PREINIT: + char *kmsgs; + CODE: + kmsgs = guestfs_dmesg (g); + if (kmsgs == NULL) + croak ("dmesg: %s", guestfs_last_error (g)); + RETVAL = newSVpv (kmsgs, 0); + free (kmsgs); + OUTPUT: + RETVAL + +void +ping_daemon (g) + guestfs_h *g; +PREINIT: + int r; + PPCODE: + r = guestfs_ping_daemon (g); + if (r == -1) + croak ("ping_daemon: %s", guestfs_last_error (g)); + +SV * +equal (g, file1, file2) + guestfs_h *g; + char *file1; + char *file2; +PREINIT: + int equality; + CODE: + equality = guestfs_equal (g, file1, file2); + if (equality == -1) + croak ("equal: %s", guestfs_last_error (g)); + RETVAL = newSViv (equality); + OUTPUT: + RETVAL + +void +strings (g, path) + guestfs_h *g; + char *path; +PREINIT: + char **stringsout; + int i, n; + PPCODE: + stringsout = guestfs_strings (g, path); + if (stringsout == NULL) + croak ("strings: %s", guestfs_last_error (g)); + for (n = 0; stringsout[n] != NULL; ++n) /**/; + EXTEND (SP, n); + for (i = 0; i < n; ++i) { + PUSHs (sv_2mortal (newSVpv (stringsout[i], 0))); + free (stringsout[i]); + } + free (stringsout); + +void +strings_e (g, encoding, path) + guestfs_h *g; + char *encoding; + char *path; +PREINIT: + char **stringsout; + int i, n; + PPCODE: + stringsout = guestfs_strings_e (g, encoding, path); + if (stringsout == NULL) + croak ("strings_e: %s", guestfs_last_error (g)); + for (n = 0; stringsout[n] != NULL; ++n) /**/; + EXTEND (SP, n); + for (i = 0; i < n; ++i) { + PUSHs (sv_2mortal (newSVpv (stringsout[i], 0))); + free (stringsout[i]); + } + free (stringsout); + +SV * +hexdump (g, path) + guestfs_h *g; + char *path; +PREINIT: + char *dump; + CODE: + dump = guestfs_hexdump (g, path); + if (dump == NULL) + croak ("hexdump: %s", guestfs_last_error (g)); + RETVAL = newSVpv (dump, 0); + free (dump); + OUTPUT: + RETVAL +