servers/hgfs/hgfs_server => servers/hgfs servers/hgfs/libhgfs => lib/libhgfs servers/rs/service => commands/service drivers/memory/memory_driver => drivers/memory drivers/memory/ramdisk => drivers/ramdisk
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Part of libhgfs - (c) 2009, D.C. van Moolenbroek */
 | 
						|
 | 
						|
#include "inc.h"
 | 
						|
 | 
						|
/*===========================================================================*
 | 
						|
 *				hgfs_init				     *
 | 
						|
 *===========================================================================*/
 | 
						|
PUBLIC int hgfs_init()
 | 
						|
{
 | 
						|
/* Initialize the library. Return OK on success, or a negative error code
 | 
						|
 * otherwise. If EAGAIN is returned, shared folders are disabled; in that
 | 
						|
 * case, other operations may be tried (and possibly succeed).
 | 
						|
 */
 | 
						|
 | 
						|
  time_init();
 | 
						|
 | 
						|
  return rpc_open();
 | 
						|
}
 | 
						|
 | 
						|
/*===========================================================================*
 | 
						|
 *				hgfs_cleanup				     *
 | 
						|
 *===========================================================================*/
 | 
						|
PUBLIC void hgfs_cleanup()
 | 
						|
{
 | 
						|
/* Clean up state.
 | 
						|
 */
 | 
						|
 | 
						|
  rpc_close();
 | 
						|
}
 | 
						|
 | 
						|
/*===========================================================================*
 | 
						|
 *				hgfs_enabled				     *
 | 
						|
 *===========================================================================*/
 | 
						|
PUBLIC int hgfs_enabled()
 | 
						|
{
 | 
						|
/* Check if shared folders are enabled. Return OK if so, EAGAIN if not, and
 | 
						|
 * another negative error code on error.
 | 
						|
 */
 | 
						|
 | 
						|
  return rpc_test();
 | 
						|
}
 | 
						|
 | 
						|
/*===========================================================================*
 | 
						|
 *				hgfs_queryvol				     *
 | 
						|
 *===========================================================================*/
 | 
						|
PUBLIC int hgfs_queryvol(path, free, total)
 | 
						|
char *path;
 | 
						|
u64_t *free;
 | 
						|
u64_t *total;
 | 
						|
{
 | 
						|
/* 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);
 | 
						|
 | 
						|
  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;
 | 
						|
}
 |