tty: The big operations rework
- Operations are now a shared const function block as with most other Linux objects - Introduce wrappers for some optional functions to get consistent behaviour - Wrap put_char which used to be patched by the tty layer - Document which functions are needed/optional - Make put_char report success/fail - Cache the driver->ops pointer in the tty as tty->ops - Remove various surplus lock calls we no longer need - Remove proc_write method as noted by Alexey Dobriyan - Introduce some missing sanity checks where certain driver/ldisc combinations would oops as they didn't check needed methods were present [akpm@linux-foundation.org: fix fs/compat_ioctl.c build] [akpm@linux-foundation.org: fix isicom] [akpm@linux-foundation.org: fix arch/ia64/hp/sim/simserial.c build] [akpm@linux-foundation.org: fix kgdb] Signed-off-by: Alan Cox <alan@redhat.com> Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Cc: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
251b8dd7ee
commit
f34d7a5b70
30 changed files with 539 additions and 666 deletions
|
@ -177,9 +177,13 @@ struct signal_struct;
|
|||
* size each time the window is created or resized anyway.
|
||||
* - TYT, 9/14/92
|
||||
*/
|
||||
|
||||
struct tty_operations;
|
||||
|
||||
struct tty_struct {
|
||||
int magic;
|
||||
struct tty_driver *driver;
|
||||
const struct tty_operations *ops;
|
||||
int index;
|
||||
struct tty_ldisc ldisc;
|
||||
struct mutex termios_mutex;
|
||||
|
@ -295,6 +299,10 @@ extern void tty_unregister_device(struct tty_driver *driver, unsigned index);
|
|||
extern int tty_read_raw_data(struct tty_struct *tty, unsigned char *bufp,
|
||||
int buflen);
|
||||
extern void tty_write_message(struct tty_struct *tty, char *msg);
|
||||
extern int tty_put_char(struct tty_struct *tty, unsigned char c);
|
||||
extern int tty_chars_in_buffer(struct tty_struct *tty);
|
||||
extern int tty_write_room(struct tty_struct *tty);
|
||||
extern void tty_driver_flush_buffer(struct tty_struct *tty);
|
||||
|
||||
extern int is_current_pgrp_orphaned(void);
|
||||
extern struct pid *tty_get_pgrp(struct tty_struct *tty);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue