1/* $Id: sunserial.h,v 1.1.1.1 2008/10/15 03:26:47 james26_jang Exp $
2 * sunserial.h: SUN serial driver infrastructure (including keyboards).
3 *
4 * Copyright (C) 1997  Eddie C. Dost  (ecd@skynet.be)
5 */
6
7#ifndef _SPARC_SUNSERIAL_H
8#define _SPARC_SUNSERIAL_H 1
9
10#include <linux/config.h>
11#include <linux/tty.h>
12#include <linux/kd.h>
13#include <linux/kbd_kern.h>
14#include <linux/console.h>
15
16struct initfunc {
17	int		(*init) (void);
18	struct initfunc *next;
19};
20
21struct sunserial_operations {
22	struct initfunc	*rs_init;
23	void		(*rs_kgdb_hook) (int);
24	void		(*rs_change_mouse_baud) (int);
25	int		(*rs_read_proc) (char *, char **, off_t, int, int *, void *);
26};
27
28struct sunkbd_operations {
29	struct initfunc	*kbd_init;
30	void		(*compute_shiftstate) (void);
31	void		(*setledstate) (struct kbd_struct *, unsigned int);
32	unsigned char	(*getledstate) (void);
33	int		(*setkeycode) (unsigned int, unsigned int);
34	int		(*getkeycode) (unsigned int);
35};
36
37extern struct sunserial_operations rs_ops;
38extern struct sunkbd_operations kbd_ops;
39
40extern void sunserial_setinitfunc(int (*) (void));
41extern void sunkbd_setinitfunc(int (*) (void));
42
43extern int serial_console;
44extern int stop_a_enabled;
45extern void sunserial_console_termios(struct console *);
46
47#ifdef CONFIG_PCI
48extern void sunkbd_install_keymaps(ushort **, unsigned int, char *,
49				   char **, int, int, struct kbdiacr *,
50				   unsigned int);
51#endif
52
53#endif /* !(_SPARC_SUNSERIAL_H) */
54