#ifndef GANESHA_RPC_H
#define GANESHA_RPC_H
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include "config.h"
#include <rpc/types.h>
#include <rpc/xdr.h>
#include <rpc/xdr_inline.h>
#include <rpc/rpc_msg.h>
#include <rpc/auth_unix.h>
#define XDR_ARRAY_MAXLEN 1024
#define XDR_BYTES_MAXLEN (1024 * 1024)
#define XDR_STRING_MAXLEN (8 * 1024)
typedef enum rpc_gss_svc {
RPC_GSS_SVC_NONE = 1,
RPC_GSS_SVC_INTEGRITY = 2,
RPC_GSS_SVC_PRIVACY = 3
} rpc_gss_svc_t;
typedef struct __rpc_svcxprt SVCXPRT;
typedef struct rpc_client CLIENT;
#define NFS_LOOKAHEAD_NONE 0x0000
#define NFS_LOOKAHEAD_MOUNT 0x0001
#define NFS_LOOKAHEAD_OPEN 0x0002
#define NFS_LOOKAHEAD_CLOSE 0x0004
#define NFS_LOOKAHEAD_READ 0x0008
#define NFS_LOOKAHEAD_WRITE 0x0010
#define NFS_LOOKAHEAD_COMMIT 0x0020
#define NFS_LOOKAHEAD_CREATE 0x0040
#define NFS_LOOKAHEAD_REMOVE 0x0080
#define NFS_LOOKAHEAD_RENAME 0x0100
#define NFS_LOOKAHEAD_LOCK 0x0200
#define NFS_LOOKAHEAD_READDIR 0x0400
#define NFS_LOOKAHEAD_LAYOUTCOMMIT 0x0040
#define NFS_LOOKAHEAD_SETATTR 0x0080
#define NFS_LOOKAHEAD_SETCLIENTID 0x0100
#define NFS_LOOKAHEAD_SETCLIENTID_CONFIRM 0x0200
#define NFS_LOOKAHEAD_LOOKUP 0x0400
#define NFS_LOOKAHEAD_READLINK 0x0800
struct nfs_request_lookahead {
uint32_t flags;
uint16_t read;
uint16_t write;
};
#define NFS_LOOKAHEAD_HIGH_LATENCY(lkhd) \
(((lkhd).flags & (NFS_LOOKAHEAD_READ | NFS_LOOKAHEAD_WRITE | \
NFS_LOOKAHEAD_COMMIT | NFS_LOOKAHEAD_LAYOUTCOMMIT | \
NFS_LOOKAHEAD_READDIR)))
#endif