2012-04-09 17:17:42 +02:00
|
|
|
/* Part of libhgfs - (c) 2009, D.C. van Moolenbroek */
|
|
|
|
|
|
|
|
#include "inc.h"
|
|
|
|
|
|
|
|
/*===========================================================================*
|
|
|
|
* hgfs_queryvol *
|
|
|
|
*===========================================================================*/
|
2014-02-24 14:00:17 +01:00
|
|
|
int hgfs_queryvol(char *path, u64_t *free, u64_t *total)
|
2012-04-09 17:17:42 +02:00
|
|
|
{
|
|
|
|
/* Retrieve information about available and total volume space associated with
|
|
|
|
* a given path.
|
|
|
|
*/
|
|
|
|
u32_t lo, hi;
|
|
|
|
int r;
|
|
|
|
|
|
|
|
RPC_REQUEST(HGFS_REQ_QUERYVOL);
|
|
|
|
|
|
|
|
path_put(path);
|
|
|
|
|
|
|
|
/* It appears that this call always fails with EACCES ("permission denied")
|
|
|
|
* on read-only folders. As far as I can tell, this is a VMware bug.
|
|
|
|
*/
|
|
|
|
if ((r = rpc_query()) != OK)
|
|
|
|
return r;
|
|
|
|
|
|
|
|
lo = RPC_NEXT32;
|
|
|
|
hi = RPC_NEXT32;
|
|
|
|
*free = make64(lo, hi);
|
|
|
|
|
|
|
|
lo = RPC_NEXT32;
|
|
|
|
hi = RPC_NEXT32;
|
|
|
|
*total = make64(lo, hi);
|
|
|
|
|
|
|
|
return OK;
|
|
|
|
}
|