#include <linux/types.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/slab.h>
#include "speakup.h"
#include "spk_types.h"
#include "spk_priv.h"
struct spk_ldisc_data { … };
static struct tty_struct *speakup_tty;
static DEFINE_MUTEX(speakup_tty_mutex);
static int ser_to_dev(int ser, dev_t *dev_no)
{ … }
static int get_dev_to_use(struct spk_synth *synth, dev_t *dev_no)
{ … }
static int spk_ttyio_ldisc_open(struct tty_struct *tty)
{ … }
static void spk_ttyio_ldisc_close(struct tty_struct *tty)
{ … }
static size_t spk_ttyio_receive_buf2(struct tty_struct *tty, const u8 *cp,
const u8 *fp, size_t count)
{ … }
static struct tty_ldisc_ops spk_ttyio_ldisc_ops = …;
static int spk_ttyio_out(struct spk_synth *in_synth, const char ch);
static int spk_ttyio_out_unicode(struct spk_synth *in_synth, u16 ch);
static void spk_ttyio_send_xchar(struct spk_synth *in_synth, char ch);
static void spk_ttyio_tiocmset(struct spk_synth *in_synth, unsigned int set, unsigned int clear);
static unsigned char spk_ttyio_in(struct spk_synth *in_synth);
static unsigned char spk_ttyio_in_nowait(struct spk_synth *in_synth);
static void spk_ttyio_flush_buffer(struct spk_synth *in_synth);
static int spk_ttyio_wait_for_xmitr(struct spk_synth *in_synth);
struct spk_io_ops spk_ttyio_ops = …;
EXPORT_SYMBOL_GPL(…);
static inline void get_termios(struct tty_struct *tty,
struct ktermios *out_termios)
{ … }
static int spk_ttyio_initialise_ldisc(struct spk_synth *synth)
{ … }
void spk_ttyio_register_ldisc(void)
{ … }
void spk_ttyio_unregister_ldisc(void)
{ … }
static int spk_ttyio_out(struct spk_synth *in_synth, const char ch)
{ … }
static int spk_ttyio_out_unicode(struct spk_synth *in_synth, u16 ch)
{ … }
static void spk_ttyio_send_xchar(struct spk_synth *in_synth, char ch)
{ … }
static void spk_ttyio_tiocmset(struct spk_synth *in_synth, unsigned int set, unsigned int clear)
{ … }
static int spk_ttyio_wait_for_xmitr(struct spk_synth *in_synth)
{ … }
static unsigned char ttyio_in(struct spk_synth *in_synth, int timeout)
{ … }
static unsigned char spk_ttyio_in(struct spk_synth *in_synth)
{ … }
static unsigned char spk_ttyio_in_nowait(struct spk_synth *in_synth)
{ … }
static void spk_ttyio_flush_buffer(struct spk_synth *in_synth)
{ … }
int spk_ttyio_synth_probe(struct spk_synth *synth)
{ … }
EXPORT_SYMBOL_GPL(…);
void spk_ttyio_release(struct spk_synth *in_synth)
{ … }
EXPORT_SYMBOL_GPL(…);
const char *spk_ttyio_synth_immediate(struct spk_synth *in_synth, const char *buff)
{ … }
EXPORT_SYMBOL_GPL(…);