2005-09-09 13:04:22 -07:00
/*
2007-07-10 17:57:28 -05:00
* include / net / 9 p / conn . h
2005-09-09 13:04:22 -07:00
*
2007-07-10 17:57:28 -05:00
* Connection Definitions
2005-09-09 13:04:22 -07:00
*
2006-01-08 01:04:58 -08:00
* Copyright ( C ) 2005 by Latchesar Ionkov < lucho @ ionkov . net >
2005-09-09 13:04:22 -07:00
* Copyright ( C ) 2004 by Eric Van Hensbergen < ericvh @ gmail . com >
*
* This program is free software ; you can redistribute it and / or modify
2006-03-25 03:07:28 -08:00
* it under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation .
2005-09-09 13:04:22 -07:00
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to :
* Free Software Foundation
* 51 Franklin Street , Fifth Floor
* Boston , MA 02111 - 1301 USA
*
*/
2007-07-10 17:57:28 -05:00
# ifndef NET_9P_CONN_H
# define NET_9P_CONN_H
# undef P9_NONBLOCK
struct p9_conn ;
struct p9_req ;
2005-09-09 13:04:22 -07:00
2006-01-08 01:04:58 -08:00
/**
2007-07-10 17:57:28 -05:00
* p9_mux_req_callback - callback function that is called when the
2006-01-08 01:04:58 -08:00
* response of a request is received . The callback is called from
* a workqueue and shouldn ' t block .
*
2007-07-10 17:57:28 -05:00
* @ req - request
2006-01-08 01:04:58 -08:00
* @ a - the pointer that was specified when the request was send to be
* passed to the callback
*/
2007-07-10 17:57:28 -05:00
typedef void ( * p9_conn_req_callback ) ( struct p9_req * req , void * a ) ;
2006-01-08 01:04:58 -08:00
2007-10-17 14:31:07 -05:00
struct p9_conn * p9_conn_create ( struct p9_trans * trans , int msize ,
unsigned char * dotu ) ;
2007-07-10 17:57:28 -05:00
void p9_conn_destroy ( struct p9_conn * ) ;
int p9_conn_rpc ( struct p9_conn * m , struct p9_fcall * tc , struct p9_fcall * * rc ) ;
2005-09-09 13:04:22 -07:00
2007-07-10 17:57:28 -05:00
# ifdef P9_NONBLOCK
int p9_conn_rpcnb ( struct p9_conn * m , struct p9_fcall * tc ,
p9_conn_req_callback cb , void * a ) ;
# endif /* P9_NONBLOCK */
2005-09-09 13:04:22 -07:00
2007-07-10 17:57:28 -05:00
void p9_conn_cancel ( struct p9_conn * m , int err ) ;
2005-09-09 13:04:22 -07:00
2007-07-10 17:57:28 -05:00
# endif /* NET_9P_CONN_H */