.. | .. |
---|
14 | 14 | #include <uapi/linux/tty.h> |
---|
15 | 15 | #include <linux/rwsem.h> |
---|
16 | 16 | #include <linux/llist.h> |
---|
| 17 | +#include <linux/android_kabi.h> |
---|
17 | 18 | |
---|
18 | 19 | |
---|
19 | 20 | /* |
---|
.. | .. |
---|
218 | 219 | int (*activate)(struct tty_port *port, struct tty_struct *tty); |
---|
219 | 220 | /* Called on the final put of a port */ |
---|
220 | 221 | void (*destruct)(struct tty_port *port); |
---|
| 222 | + |
---|
| 223 | + ANDROID_KABI_RESERVE(1); |
---|
221 | 224 | }; |
---|
222 | 225 | |
---|
223 | 226 | struct tty_port_client_operations { |
---|
.. | .. |
---|
252 | 255 | set to size of fifo */ |
---|
253 | 256 | struct kref kref; /* Ref counter */ |
---|
254 | 257 | void *client_data; |
---|
| 258 | + |
---|
| 259 | + ANDROID_KABI_RESERVE(1); |
---|
255 | 260 | }; |
---|
256 | 261 | |
---|
257 | 262 | /* tty_port::iflags bits -- use atomic bit ops */ |
---|
.. | .. |
---|
303 | 308 | spinlock_t flow_lock; |
---|
304 | 309 | /* Termios values are protected by the termios rwsem */ |
---|
305 | 310 | struct ktermios termios, termios_locked; |
---|
306 | | - struct termiox *termiox; /* May be NULL for unsupported */ |
---|
| 311 | + |
---|
| 312 | + /* termiox is estored only for ABI preservation, do not use */ |
---|
| 313 | + struct termiox *termiox; |
---|
| 314 | + |
---|
307 | 315 | char name[64]; |
---|
308 | 316 | struct pid *pgrp; /* Protected by ctrl lock */ |
---|
309 | 317 | /* |
---|
.. | .. |
---|
342 | 350 | /* If the tty has a pending do_SAK, queue it here - akpm */ |
---|
343 | 351 | struct work_struct SAK_work; |
---|
344 | 352 | struct tty_port *port; |
---|
| 353 | + |
---|
| 354 | + ANDROID_KABI_RESERVE(1); |
---|
| 355 | + ANDROID_KABI_RESERVE(2); |
---|
345 | 356 | } __randomize_layout; |
---|
346 | 357 | |
---|
347 | 358 | /* Each of a tty's open files has private_data pointing to tty_file_private */ |
---|
.. | .. |
---|
422 | 433 | extern int tty_dev_name_to_number(const char *name, dev_t *number); |
---|
423 | 434 | extern int tty_ldisc_lock(struct tty_struct *tty, unsigned long timeout); |
---|
424 | 435 | extern void tty_ldisc_unlock(struct tty_struct *tty); |
---|
| 436 | +extern ssize_t redirected_tty_write(struct kiocb *, struct iov_iter *); |
---|
425 | 437 | #else |
---|
426 | 438 | static inline void tty_kref_put(struct tty_struct *tty) |
---|
427 | 439 | { } |
---|
.. | .. |
---|
759 | 771 | |
---|
760 | 772 | /* tty_ioctl.c */ |
---|
761 | 773 | extern int n_tty_ioctl_helper(struct tty_struct *tty, struct file *file, |
---|
762 | | - unsigned int cmd, unsigned long arg); |
---|
763 | | -extern long n_tty_compat_ioctl_helper(struct tty_struct *tty, struct file *file, |
---|
764 | 774 | unsigned int cmd, unsigned long arg); |
---|
765 | 775 | |
---|
766 | 776 | /* vt.c */ |
---|