2005-09-09 13:04:22 -07:00
/*
2007-07-10 17:57:28 -05:00
* include / net / 9 p / transport . h
2005-09-09 13:04:22 -07:00
*
* Transport Definition
*
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_TRANSPORT_H
# define NET_9P_TRANSPORT_H
enum p9_transport_status {
2005-09-09 13:04:22 -07:00
Connected ,
Disconnected ,
Hung ,
} ;
2007-07-10 17:57:28 -05:00
struct p9_transport {
enum p9_transport_status status ;
2005-09-09 13:04:22 -07:00
void * priv ;
2007-07-10 17:57:28 -05:00
int ( * write ) ( struct p9_transport * , void * , int ) ;
int ( * read ) ( struct p9_transport * , void * , int ) ;
void ( * close ) ( struct p9_transport * ) ;
unsigned int ( * poll ) ( struct p9_transport * , struct poll_table_struct * ) ;
2005-09-09 13:04:22 -07:00
} ;
2007-07-10 17:57:28 -05:00
struct p9_transport * p9_trans_create_tcp ( const char * addr , int port ) ;
struct p9_transport * p9_trans_create_unix ( const char * addr ) ;
struct p9_transport * p9_trans_create_fd ( int rfd , int wfd ) ;
# endif /* NET_9P_TRANSPORT_H */