1/* 2 * linux/fs/9p/transport.h 3 * 4 * Transport Definition 5 * 6 * Copyright (C) 2005 by Latchesar Ionkov <lucho@ionkov.net> 7 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com> 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License version 2 11 * as published by the Free Software Foundation. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to: 20 * Free Software Foundation 21 * 51 Franklin Street, Fifth Floor 22 * Boston, MA 02111-1301 USA 23 * 24 */ 25 26enum v9fs_transport_status { 27 Connected, 28 Disconnected, 29 Hung, 30}; 31 32struct v9fs_transport { 33 enum v9fs_transport_status status; 34 void *priv; 35 36 int (*init) (struct v9fs_session_info *, const char *, char *); 37 int (*write) (struct v9fs_transport *, void *, int); 38 int (*read) (struct v9fs_transport *, void *, int); 39 void (*close) (struct v9fs_transport *); 40 unsigned int (*poll)(struct v9fs_transport *, struct poll_table_struct *); 41}; 42 43extern struct v9fs_transport v9fs_trans_tcp; 44extern struct v9fs_transport v9fs_trans_unix; 45extern struct v9fs_transport v9fs_trans_fd; 46