xref: /OK3568_Linux_fs/kernel/drivers/accessibility/speakup/spk_priv.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0+ */
2*4882a593Smuzhiyun /* spk_priv.h
3*4882a593Smuzhiyun  * review functions for the speakup screen review package.
4*4882a593Smuzhiyun  * originally written by: Kirk Reiser and Andy Berdan.
5*4882a593Smuzhiyun  *
6*4882a593Smuzhiyun  * extensively modified by David Borowski.
7*4882a593Smuzhiyun  *
8*4882a593Smuzhiyun  * Copyright (C) 1998  Kirk Reiser.
9*4882a593Smuzhiyun  * Copyright (C) 2003  David Borowski.
10*4882a593Smuzhiyun  */
11*4882a593Smuzhiyun #ifndef _SPEAKUP_PRIVATE_H
12*4882a593Smuzhiyun #define _SPEAKUP_PRIVATE_H
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun #include <linux/printk.h>
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun #include "spk_types.h"
17*4882a593Smuzhiyun #include "spk_priv_keyinfo.h"
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun #define V_LAST_VAR { MAXVARS }
20*4882a593Smuzhiyun #define SPACE 0x20
21*4882a593Smuzhiyun #define SYNTH_CHECK 20030716 /* today's date ought to do for check value */
22*4882a593Smuzhiyun /* synth flags, for odd synths */
23*4882a593Smuzhiyun #define SF_DEC 1 /* to fiddle puncs in alpha strings so it doesn't spell */
24*4882a593Smuzhiyun #ifdef MODULE
25*4882a593Smuzhiyun #define SYNTH_START 1
26*4882a593Smuzhiyun #else
27*4882a593Smuzhiyun #define SYNTH_START 0
28*4882a593Smuzhiyun #endif
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun #define KT_SPKUP 15
31*4882a593Smuzhiyun #define SPK_SYNTH_TIMEOUT 100000 /* in micro-seconds */
32*4882a593Smuzhiyun #define SYNTH_DEFAULT_DEV "ttyS0"
33*4882a593Smuzhiyun #define SYNTH_DEFAULT_SER 0
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun const struct old_serial_port *spk_serial_init(int index);
36*4882a593Smuzhiyun void spk_stop_serial_interrupt(void);
37*4882a593Smuzhiyun void spk_serial_release(void);
38*4882a593Smuzhiyun void spk_ttyio_release(void);
39*4882a593Smuzhiyun void spk_ttyio_register_ldisc(void);
40*4882a593Smuzhiyun void spk_ttyio_unregister_ldisc(void);
41*4882a593Smuzhiyun 
42*4882a593Smuzhiyun void synth_buffer_skip_nonlatin1(void);
43*4882a593Smuzhiyun u16 synth_buffer_getc(void);
44*4882a593Smuzhiyun u16 synth_buffer_peek(void);
45*4882a593Smuzhiyun int synth_buffer_empty(void);
46*4882a593Smuzhiyun struct var_t *spk_get_var(enum var_id_t var_id);
47*4882a593Smuzhiyun ssize_t spk_var_show(struct kobject *kobj, struct kobj_attribute *attr,
48*4882a593Smuzhiyun 		     char *buf);
49*4882a593Smuzhiyun ssize_t spk_var_store(struct kobject *kobj, struct kobj_attribute *attr,
50*4882a593Smuzhiyun 		      const char *buf, size_t count);
51*4882a593Smuzhiyun 
52*4882a593Smuzhiyun int spk_serial_synth_probe(struct spk_synth *synth);
53*4882a593Smuzhiyun int spk_ttyio_synth_probe(struct spk_synth *synth);
54*4882a593Smuzhiyun const char *spk_serial_synth_immediate(struct spk_synth *synth,
55*4882a593Smuzhiyun 				       const char *buff);
56*4882a593Smuzhiyun const char *spk_ttyio_synth_immediate(struct spk_synth *synth,
57*4882a593Smuzhiyun 				      const char *buff);
58*4882a593Smuzhiyun void spk_do_catch_up(struct spk_synth *synth);
59*4882a593Smuzhiyun void spk_do_catch_up_unicode(struct spk_synth *synth);
60*4882a593Smuzhiyun void spk_synth_flush(struct spk_synth *synth);
61*4882a593Smuzhiyun unsigned char spk_synth_get_index(struct spk_synth *synth);
62*4882a593Smuzhiyun int spk_synth_is_alive_nop(struct spk_synth *synth);
63*4882a593Smuzhiyun int spk_synth_is_alive_restart(struct spk_synth *synth);
64*4882a593Smuzhiyun __printf(1, 2)
65*4882a593Smuzhiyun void synth_printf(const char *buf, ...);
66*4882a593Smuzhiyun void synth_putwc(u16 wc);
67*4882a593Smuzhiyun void synth_putwc_s(u16 wc);
68*4882a593Smuzhiyun void synth_putws(const u16 *buf);
69*4882a593Smuzhiyun void synth_putws_s(const u16 *buf);
70*4882a593Smuzhiyun int synth_request_region(unsigned long start, unsigned long n);
71*4882a593Smuzhiyun int synth_release_region(unsigned long start, unsigned long n);
72*4882a593Smuzhiyun int synth_add(struct spk_synth *in_synth);
73*4882a593Smuzhiyun void synth_remove(struct spk_synth *in_synth);
74*4882a593Smuzhiyun struct spk_synth *synth_current(void);
75*4882a593Smuzhiyun 
76*4882a593Smuzhiyun extern struct speakup_info_t speakup_info;
77*4882a593Smuzhiyun 
78*4882a593Smuzhiyun extern struct var_t synth_time_vars[];
79*4882a593Smuzhiyun 
80*4882a593Smuzhiyun extern struct spk_io_ops spk_serial_io_ops;
81*4882a593Smuzhiyun extern struct spk_io_ops spk_ttyio_ops;
82*4882a593Smuzhiyun 
83*4882a593Smuzhiyun #endif
84