From 161e1b3f6a1a5b0b3a13c48579a3c3e74faff4a1 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 4 May 1998 12:41:07 +0000 Subject: Patch from Eric Norum to switch to termios callback structure, add support for device driver support on tcsetattr(), and hardware flow control callbacks. --- c/src/lib/include/rtems/libio.h | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'c/src/lib/include/rtems') diff --git a/c/src/lib/include/rtems/libio.h b/c/src/lib/include/rtems/libio.h index 2f4dedddf0..ec30cf0d08 100644 --- a/c/src/lib/include/rtems/libio.h +++ b/c/src/lib/include/rtems/libio.h @@ -128,20 +128,30 @@ void rtems_register_libio_handler(int handler_flag, #define RTEMS_IO_SET_ATTRIBUTES 2 /* - * Termios prototypes + * Callbacks from TERMIOS routines to device-dependent code + */ +#include +typedef struct rtems_termios_callbacks { + int (*firstOpen)(int major, int minor, void *arg); + int (*lastClose)(int major, int minor, void *arg); + int (*pollRead)(int minor); + int (*write)(int minor, const char *buf, int len); + int (*setAttributes)(int minor, const struct termios *t); + int (*stopRemoteTx)(int minor); + int (*startRemoteTx)(int minor); + int outputUsesInterrupts; +} rtems_termios_callbacks; + +/* + * Device-independent TERMIOS routines */ void rtems_termios_initialize (void); rtems_status_code rtems_termios_open ( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg, - int (*deviceFirstOpen)(int major, int minor, void *arg), - int (*deviceLastClose)(int major, int minor, void *arg), - int (*deviceRead)(int minor), - int (*deviceWrite)(int minor, const char *buf, int len), - int deviceOutputUsesInterrupts + rtems_device_major_number major, + rtems_device_minor_number minor, + void *arg, + const rtems_termios_callbacks *callbacks ); - rtems_status_code rtems_termios_close (void *arg); rtems_status_code rtems_termios_read (void *arg); rtems_status_code rtems_termios_write (void *arg); -- cgit v1.2.3