diff options
Diffstat (limited to 'c/src/lib/libbsp/powerpc/ppcn_60x/console/console.h')
-rw-r--r-- | c/src/lib/libbsp/powerpc/ppcn_60x/console/console.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/ppcn_60x/console/console.h b/c/src/lib/libbsp/powerpc/ppcn_60x/console/console.h new file mode 100644 index 0000000000..1d6b6fc2b1 --- /dev/null +++ b/c/src/lib/libbsp/powerpc/ppcn_60x/console/console.h @@ -0,0 +1,67 @@ +/* + * This file contains the TTY driver table definition for the PPCn_60x + * + * This driver uses the termios pseudo driver. + * + * COPYRIGHT (c) 1998 by Radstone Technology + * + * + * THIS FILE IS PROVIDED TO YOU, THE USER, "AS IS", WITHOUT WARRANTY OF ANY + * KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK + * AS TO THE QUALITY AND PERFORMANCE OF ALL CODE IN THIS FILE IS WITH YOU. + * + * You are hereby granted permission to use, copy, modify, and distribute + * this file, provided that this notice, plus the above copyright notice + * and disclaimer, appears in all copies. Radstone Technology will provide + * no support for this code. + * + * $Id$ + */ + +#include <ringbuf.h> + +typedef struct _console_fns { + boolean (*deviceProbe)(int minor); + 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); + void (*deviceInitialize)(int minor); + int (*deviceSetAttributes)(int minor, const struct termios *); + void (*deviceWritePolled)(int minor, char cChar); + int deviceOutputUsesInterrupts; +} console_fns; + +typedef struct _console_flow { + int (*deviceStopRemoteTx)(int minor); + int (*deviceStartRemoteTx)(int minor); +} console_flow; + +typedef struct _console_tbl { + char *sDeviceName; + console_fns *pDeviceFns; + boolean (*deviceProbe)(int minor); + console_flow *pDeviceFlow; + unsigned32 ulMargin; + unsigned32 ulHysteresis; + void *pDeviceParams; + unsigned32 ulCtrlPort1; + unsigned32 ulCtrlPort2; + unsigned32 ulDataPort; + unsigned int ulIntVector; +} console_tbl; + +typedef struct _console_data { + void *termios_data; + volatile boolean bActive; + volatile Ring_buffer_t TxBuffer; + /* + * This field may be used for any purpose required by the driver + */ + void *pDeviceContext; +} console_data; + +extern console_tbl Console_Port_Tbl[]; +extern console_data Console_Port_Data[]; +extern unsigned long Console_Port_Count; |