| .. | .. |
|---|
| 224 | 224 | * line). See tty_do_resize() if you need to wrap the standard method |
|---|
| 225 | 225 | * in your own logic - the usual case. |
|---|
| 226 | 226 | * |
|---|
| 227 | | - * void (*set_termiox)(struct tty_struct *tty, struct termiox *new); |
|---|
| 228 | | - * |
|---|
| 229 | | - * Called when the device receives a termiox based ioctl. Passes down |
|---|
| 230 | | - * the requested data from user space. This method will not be invoked |
|---|
| 231 | | - * unless the tty also has a valid tty->termiox pointer. |
|---|
| 232 | | - * |
|---|
| 233 | | - * Optional: Called under the termios lock |
|---|
| 234 | | - * |
|---|
| 235 | 227 | * int (*get_icount)(struct tty_struct *tty, struct serial_icounter *icount); |
|---|
| 236 | 228 | * |
|---|
| 237 | 229 | * Called when the device receives a TIOCGICOUNT ioctl. Passed a kernel |
|---|
| .. | .. |
|---|
| 245 | 237 | #include <linux/cdev.h> |
|---|
| 246 | 238 | #include <linux/termios.h> |
|---|
| 247 | 239 | #include <linux/seq_file.h> |
|---|
| 240 | +#include <linux/android_kabi.h> |
|---|
| 248 | 241 | |
|---|
| 249 | 242 | struct tty_struct; |
|---|
| 250 | 243 | struct tty_driver; |
|---|
| 251 | 244 | struct serial_icounter_struct; |
|---|
| 245 | +struct serial_struct; |
|---|
| 252 | 246 | |
|---|
| 253 | 247 | struct tty_operations { |
|---|
| 254 | 248 | struct tty_struct * (*lookup)(struct tty_driver *driver, |
|---|
| .. | .. |
|---|
| 284 | 278 | int (*tiocmset)(struct tty_struct *tty, |
|---|
| 285 | 279 | unsigned int set, unsigned int clear); |
|---|
| 286 | 280 | int (*resize)(struct tty_struct *tty, struct winsize *ws); |
|---|
| 281 | + |
|---|
| 282 | + /* only for abi preservation */ |
|---|
| 287 | 283 | int (*set_termiox)(struct tty_struct *tty, struct termiox *tnew); |
|---|
| 284 | + |
|---|
| 288 | 285 | int (*get_icount)(struct tty_struct *tty, |
|---|
| 289 | 286 | struct serial_icounter_struct *icount); |
|---|
| 287 | + int (*get_serial)(struct tty_struct *tty, struct serial_struct *p); |
|---|
| 288 | + int (*set_serial)(struct tty_struct *tty, struct serial_struct *p); |
|---|
| 290 | 289 | void (*show_fdinfo)(struct tty_struct *tty, struct seq_file *m); |
|---|
| 291 | 290 | #ifdef CONFIG_CONSOLE_POLL |
|---|
| 292 | 291 | int (*poll_init)(struct tty_driver *driver, int line, char *options); |
|---|
| .. | .. |
|---|
| 294 | 293 | void (*poll_put_char)(struct tty_driver *driver, int line, char ch); |
|---|
| 295 | 294 | #endif |
|---|
| 296 | 295 | int (*proc_show)(struct seq_file *, void *); |
|---|
| 296 | + |
|---|
| 297 | + ANDROID_KABI_RESERVE(1); |
|---|
| 298 | + ANDROID_KABI_RESERVE(2); |
|---|
| 297 | 299 | } __randomize_layout; |
|---|
| 298 | 300 | |
|---|
| 299 | 301 | struct tty_driver { |
|---|
| .. | .. |
|---|
| 328 | 330 | |
|---|
| 329 | 331 | const struct tty_operations *ops; |
|---|
| 330 | 332 | struct list_head tty_drivers; |
|---|
| 333 | + |
|---|
| 334 | + ANDROID_KABI_RESERVE(1); |
|---|
| 335 | + ANDROID_KABI_RESERVE(2); |
|---|
| 331 | 336 | } __randomize_layout; |
|---|
| 332 | 337 | |
|---|
| 333 | 338 | extern struct list_head tty_drivers; |
|---|