2007-02-10 12:44:07 +03:00
/*
2005-04-17 02:20:36 +04:00
* Copyright ( C ) 2000 , 2001 Jeff Dike ( jdike @ karaya . com )
* Licensed under the GPL
*/
# ifndef __CHAN_USER_H__
# define __CHAN_USER_H__
2012-10-08 06:27:32 +04:00
# include <init.h>
2005-04-17 02:20:36 +04:00
struct chan_opts {
2007-02-10 12:44:06 +03:00
void ( * const announce ) ( char * dev_name , int dev ) ;
2005-04-17 02:20:36 +04:00
char * xterm_title ;
2007-02-10 12:44:06 +03:00
const int raw ;
2005-04-17 02:20:36 +04:00
} ;
struct chan_ops {
char * type ;
2006-09-27 12:50:33 +04:00
void * ( * init ) ( char * , int , const struct chan_opts * ) ;
2005-04-17 02:20:36 +04:00
int ( * open ) ( int , int , int , void * , char * * ) ;
void ( * close ) ( int , void * ) ;
int ( * read ) ( int , char * , void * ) ;
int ( * write ) ( int , const char * , int , void * ) ;
2005-11-14 03:07:11 +03:00
int ( * console_write ) ( int , const char * , int ) ;
2005-04-17 02:20:36 +04:00
int ( * window_size ) ( int , void * , unsigned short * , unsigned short * ) ;
void ( * free ) ( void * ) ;
int winch ;
} ;
2006-09-27 12:50:33 +04:00
extern const struct chan_ops fd_ops , null_ops , port_ops , pts_ops , pty_ops ,
tty_ops , xterm_ops ;
2005-04-17 02:20:36 +04:00
extern void generic_close ( int fd , void * unused ) ;
extern int generic_read ( int fd , char * c_out , void * unused ) ;
extern int generic_write ( int fd , const char * buf , int n , void * unused ) ;
2005-11-14 03:07:11 +03:00
extern int generic_console_write ( int fd , const char * buf , int n ) ;
2005-04-17 02:20:36 +04:00
extern int generic_window_size ( int fd , void * unused , unsigned short * rows_out ,
unsigned short * cols_out ) ;
extern void generic_free ( void * data ) ;
2013-03-11 13:05:45 +04:00
struct tty_port ;
extern void register_winch ( int fd , struct tty_port * port ) ;
2007-07-16 10:38:55 +04:00
extern void register_winch_irq ( int fd , int tty_fd , int pid ,
2013-03-11 13:05:45 +04:00
struct tty_port * port , unsigned long stack ) ;
2005-04-17 02:20:36 +04:00
# define __channel_help(fn, prefix) \
__uml_help ( fn , prefix " [0-9]*=<channel description> \n " \
" Attach a console or serial line to a host channel. See \n " \
2008-02-05 09:30:38 +03:00
" http://user-mode-linux.sourceforge.net/old/input.html for a complete \n " \
2005-04-17 02:20:36 +04:00
" description of this switch. \n \n " \
) ;
# endif