diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2009-07-01 20:56:58 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2009-07-02 10:11:55 +0100 |
commit | 5186251f8f681f2ebb028423bb49a748861fd11e (patch) | |
tree | b95ea92a8ed1b9443dc04aaf7cdacc8191291bc0 /src/guestfs_protocol.c | |
parent | f20854ec61eef1aea313920f0cf193a78c1a9219 (diff) | |
download | libguestfs-5186251f8f681f2ebb028423bb49a748861fd11e.tar.gz libguestfs-5186251f8f681f2ebb028423bb49a748861fd11e.tar.xz libguestfs-5186251f8f681f2ebb028423bb49a748861fd11e.zip |
Add 'readdir' call.
This adds a readdir call (mostly intended for programs). The
return value is a list of guestfs_dirent structures.
This adds the new types 'struct guestfs_dirent' and
'struct guestfs_dirent_list', along with all the code to
return these in the different language bindings.
Also includes additional tests for OCaml and Perl bindings
to test this.
Diffstat (limited to 'src/guestfs_protocol.c')
-rw-r--r-- | src/guestfs_protocol.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/guestfs_protocol.c b/src/guestfs_protocol.c index ef0b8059..69ea4ae9 100644 --- a/src/guestfs_protocol.c +++ b/src/guestfs_protocol.c @@ -238,6 +238,31 @@ xdr_guestfs_int_statvfs (XDR *xdrs, guestfs_int_statvfs *objp) } bool_t +xdr_guestfs_int_dirent (XDR *xdrs, guestfs_int_dirent *objp) +{ + register int32_t *buf; + + if (!xdr_quad_t (xdrs, &objp->ino)) + return FALSE; + if (!xdr_char (xdrs, &objp->ftyp)) + return FALSE; + if (!xdr_string (xdrs, &objp->name, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_int_dirent_list (XDR *xdrs, guestfs_int_dirent_list *objp) +{ + register int32_t *buf; + + if (!xdr_array (xdrs, (char **)&objp->guestfs_int_dirent_list_val, (u_int *) &objp->guestfs_int_dirent_list_len, ~0, + sizeof (guestfs_int_dirent), (xdrproc_t) xdr_guestfs_int_dirent)) + return FALSE; + return TRUE; +} + +bool_t xdr_guestfs_mount_args (XDR *xdrs, guestfs_mount_args *objp) { register int32_t *buf; @@ -2435,6 +2460,26 @@ xdr_guestfs_umask_ret (XDR *xdrs, guestfs_umask_ret *objp) } bool_t +xdr_guestfs_readdir_args (XDR *xdrs, guestfs_readdir_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->dir, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_readdir_ret (XDR *xdrs, guestfs_readdir_ret *objp) +{ + register int32_t *buf; + + if (!xdr_guestfs_int_dirent_list (xdrs, &objp->entries)) + return FALSE; + return TRUE; +} + +bool_t xdr_guestfs_procedure (XDR *xdrs, guestfs_procedure *objp) { register int32_t *buf; |