.. | .. |
---|
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; |
---|