rpc_mkpipe — make an rpc_pipefs file for kernel<->userspace communication
struct dentry * rpc_mkpipe ( | struct dentry * parent, |
const char * name, | |
void * private, | |
const struct rpc_pipe_ops * ops, | |
int flags) ; |
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
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.