Net-LibNFS
view release on metacpan or search on metacpan
libnfs/include/libnfs-private.h view on Meta::CPAN
uint32_t rpc_get_pdu_size(char *buf);
int rpc_process_pdu(struct rpc_context *rpc, char *buf, int size);
void rpc_error_all_pdus(struct rpc_context *rpc, const char *error);
void rpc_set_error(struct rpc_context *rpc, const char *error_string, ...)
#ifdef __GNUC__
__attribute__((format(printf, 2, 3)))
#endif
;
void nfs_set_error(struct nfs_context *nfs, char *error_string, ...)
#ifdef __GNUC__
__attribute__((format(printf, 2, 3)))
#endif
;
#if defined(PS2_EE)
#define RPC_LOG(rpc, level, format, ...) ;
#else
#define RPC_LOG(rpc, level, format, ...) \
do { \
if (level <= rpc->debug) { \
fprintf(stderr, "libnfs:%d " format "\n", level, ## __VA_ARGS__); \
} \
} while (0)
#endif
const char *nfs_get_server(struct nfs_context *nfs);
const char *nfs_get_export(struct nfs_context *nfs);
/* we dont want to expose UDP to normal applications/users this is private to libnfs to use exclusively for broadcast RPC */
int rpc_bind_udp(struct rpc_context *rpc, char *addr, int port);
int rpc_set_udp_destination(struct rpc_context *rpc, char *addr, int port, int is_broadcast);
struct rpc_context *rpc_init_udp_context(void);
struct sockaddr *rpc_get_recv_sockaddr(struct rpc_context *rpc);
void rpc_set_autoreconnect(struct rpc_context *rpc, int num_retries);
void rpc_set_interface(struct rpc_context *rpc, const char *ifname);
void rpc_set_tcp_syncnt(struct rpc_context *rpc, int v);
void rpc_set_pagecache(struct rpc_context *rpc, uint32_t v);
void rpc_set_pagecache_ttl(struct rpc_context *rpc, uint32_t v);
void rpc_set_readahead(struct rpc_context *rpc, uint32_t v);
void rpc_set_debug(struct rpc_context *rpc, int level);
void rpc_set_poll_timeout(struct rpc_context *rpc, int poll_timeout);
int rpc_get_poll_timeout(struct rpc_context *rpc);
void rpc_set_timeout(struct rpc_context *rpc, int timeout);
int rpc_get_timeout(struct rpc_context *rpc);
int rpc_add_fragment(struct rpc_context *rpc, char *data, uint32_t size);
void rpc_free_all_fragments(struct rpc_context *rpc);
int rpc_is_udp_socket(struct rpc_context *rpc);
uint64_t rpc_current_time(void);
void *zdr_malloc(ZDR *zdrs, uint32_t size);
struct nfs_cb_data;
void free_nfs_cb_data(struct nfs_cb_data *data);
struct nfs_specdata {
uint32_t specdata1;
uint32_t specdata2;
};
struct nfs_time {
uint32_t seconds;
uint32_t nseconds;
};
struct nfs_attr {
uint32_t type;
uint32_t mode;
uint32_t uid;
uint32_t gid;
uint32_t nlink;
uint64_t size;
uint64_t used;
uint64_t fsid;
struct nfs_specdata rdev;
struct nfs_time atime;
struct nfs_time mtime;
struct nfs_time ctime;
};
struct nfs_fh {
int len;
char *val;
};
struct nfs_context_internal {
char *server;
char *export;
char *cwd;
struct nfs_fh rootfh;
uint64_t readmax;
uint64_t writemax;
int auto_reconnect;
int dircache_enabled;
struct nfsdir *dircache;
uint16_t mask;
int auto_traverse_mounts;
struct nested_mounts *nested_mounts;
int version;
int nfsport;
int mountport;
uint32_t readdir_dircount;
uint32_t readdir_maxcount;
/* NFSv4 specific fields */
verifier4 verifier;
char *client_name;
uint64_t clientid;
verifier4 setclientid_confirm;
uint32_t open_counter;
int has_lock_owner;
#ifdef HAVE_MULTITHREADING
libnfs_thread_t service_thread;
libnfs_mutex_t nfs_mutex;
libnfs_mutex_t nfs4_open_counter_mutex;
libnfs_mutex_t nfs4_open_call_mutex;
struct nfs_thread_context *thread_ctx;
#endif /* HAVE_MULTITHREADING */
};
struct nfs_context {
struct rpc_context *rpc;
struct nfs_context_internal *nfsi;
char *error_string;
#ifdef HAVE_MULTITHREADING
struct nfs_context *master_ctx;
#endif /* HAVE_MULTITHREADING */
};
#ifdef HAVE_MULTITHREADING
struct nfs_thread_context {
struct nfs_thread_context *next;
nfs_tid_t tid;
struct nfs_context nfs;
( run in 1.228 second using v1.01-cache-2.11-cpan-995e09ba956 )