Name

rpc_mkpipe — make an rpc_pipefs file for kernel<->userspace communication

Synopsis

struct dentry * rpc_mkpipe (struct dentry * parent,
 const char * name,
 void * private,
 const struct rpc_pipe_ops * ops,
 int flags);
 

Arguments

parent

dentry of directory to create new pipe in

name

name of pipe

private

private data to associate with the pipe, for the caller's use

ops

operations defining the behavior of the pipe: upcall, downcall, release_pipe, open_pipe, and destroy_msg.

flags

rpc_inode flags

Description

Data is made available for userspace to read by calls to rpc_queue_upcall. The actual reads will result in calls to ops->upcall, which will be called with the file pointer, message, and userspace buffer to copy to.

Writes can come at any time, and do not necessarily have to be responses to upcalls. They will result in calls to msg->downcall.

The private argument passed here will be available to all these methods from the file pointer, via RPC_I(file->f_dentry->d_inode)->private.