xp_ops
(*(xprt)->xp_ops->xp_recv)((xprt), (msg))
(*(xprt)->xp_ops->xp_recv)((xprt), (msg))
(*(xprt)->xp_ops->xp_stat)(xprt)
(*(xprt)->xp_ops->xp_stat)(xprt)
(*(xprt)->xp_ops->xp_getargs)((xprt), (xargs), (argsp))
(*(xprt)->xp_ops->xp_getargs)((xprt), (xargs), (argsp))
(*(xprt)->xp_ops->xp_getargs_req)((xprt), (req), (xargs), (argsp))
(*(xprt)->xp_ops->xp_getargs_req)((xprt), (req), (xargs), (argsp))
(*(xprt)->xp_ops->xp_reply) ((xprt), (msg))
(*(xprt)->xp_ops->xp_reply) ((xprt), (msg))
(*(xprt)->xp_ops->xp_reply_req) ((xprt), (req), (msg))
(*(xprt)->xp_ops->xp_reply_req) ((xprt), (req), (msg))
(*(xprt)->xp_ops->xp_freeargs)((xprt), (xargs), (argsp))
(*(xprt)->xp_ops->xp_freeargs)((xprt), (xargs), (argsp))
(*(xprt)->xp_ops->xp_destroy)(xprt)
(*(xprt)->xp_ops->xp_destroy)(xprt)
struct xp_ops {
} *xp_ops;
static struct xp_ops server_ops = {
srp->server.xp_ops = &server_ops;
xprt->xp_ops = &svctcp_rendezvous_op;
xprt->xp_ops = &svctcp_op; /* truly deals with calls */
static struct xp_ops svctcp_op = {
static struct xp_ops svctcp_rendezvous_op = {
xprt->xp_ops = &svcudp_op;
static struct xp_ops svcudp_op = {
} *xp_ops;
(*(xprt)->xp_ops->xp_recv)((xprt), (msg))
(*(xprt)->xp_ops->xp_recv)((xprt), (msg))
(*(xprt)->xp_ops->xp_stat)(xprt)
(*(xprt)->xp_ops->xp_stat)(xprt)
(*(xprt)->xp_ops->xp_getargs)((xprt), (xargs), (argsp))
(*(xprt)->xp_ops->xp_getargs)((xprt), (xargs), (argsp))
(*(xprt)->xp_ops->xp_reply) ((xprt), (msg))
(*(xprt)->xp_ops->xp_reply) ((xprt), (msg))
(*(xprt)->xp_ops->xp_freeargs)((xprt), (xargs), (argsp))
(*(xprt)->xp_ops->xp_freeargs)((xprt), (xargs), (argsp))
(*(xprt)->xp_ops->xp_destroy)(xprt)
(*(xprt)->xp_ops->xp_destroy)(xprt)
const struct xp_ops {
static struct xp_ops ops;
xprt->xp_ops = &ops;
xprt->xp_ops = &nl_ops,
static struct xp_ops nl_ops = {
static struct xp_ops ops;
xprt->xp_ops = &ops;
static struct xp_ops ops;
xprt->xp_ops = &ops;
static struct xp_ops ops;
xprt->xp_ops = &ops;
if (xprt == NULL || xprt->xp_ops == NULL ||
xprt->xp_ops->xp_recv != svc_vc_recv)
const struct xp_ops *xp_ops;
(*(xprt)->xp_ops->xp_recv)((xprt), (msg), (addr), (args))
(*(xprt)->xp_ops->xp_stat)(xprt)
((xprt)->xp_ops->xp_ack == NULL ? FALSE : \
((ack) == NULL ? TRUE : (*(xprt)->xp_ops->xp_ack)((xprt), (ack))))
(*(xprt)->xp_ops->xp_reply) ((xprt), (msg), (addr), (m), (seq))
(*(xprt)->xp_ops->xp_destroy)(xprt)
(*(xprt)->xp_ops->xp_control)((xprt), (rq), (in))
xprt->xp_ops = &svc_dg_ops;
static const struct xp_ops svc_dg_ops = {
static const struct xp_ops svc_vc_rendezvous_ops = {
static const struct xp_ops svc_vc_ops = {
static const struct xp_ops svc_vc_backchannel_ops = {
xprt->xp_ops = &svc_vc_rendezvous_ops;
xprt->xp_ops = &svc_vc_ops;
xprt->xp_ops = &svc_vc_backchannel_ops;