| .. | .. |
|---|
| 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 */ |
|---|