.. | .. |
---|
54 | 54 | * low-level driver can "grab" an ioctl request before the line |
---|
55 | 55 | * discpline has a chance to see it. |
---|
56 | 56 | * |
---|
57 | | - * long (*compat_ioctl)(struct tty_struct * tty, struct file * file, |
---|
| 57 | + * int (*compat_ioctl)(struct tty_struct * tty, struct file * file, |
---|
58 | 58 | * unsigned int cmd, unsigned long arg); |
---|
59 | 59 | * |
---|
60 | 60 | * Process ioctl calls from 32-bit process on 64-bit system |
---|
| 61 | + * |
---|
| 62 | + * NOTE: only ioctls that are neither "pointer to compatible |
---|
| 63 | + * structure" nor tty-generic. Something private that takes |
---|
| 64 | + * an integer or a pointer to wordsize-sensitive structure |
---|
| 65 | + * belongs here, but most of ldiscs will happily leave |
---|
| 66 | + * it NULL. |
---|
61 | 67 | * |
---|
62 | 68 | * void (*set_termios)(struct tty_struct *tty, struct ktermios * old); |
---|
63 | 69 | * |
---|
.. | .. |
---|
120 | 126 | #include <linux/fs.h> |
---|
121 | 127 | #include <linux/wait.h> |
---|
122 | 128 | #include <linux/atomic.h> |
---|
| 129 | +#include <linux/android_kabi.h> |
---|
123 | 130 | |
---|
124 | 131 | /* |
---|
125 | 132 | * the semaphore definition |
---|
.. | .. |
---|
179 | 186 | void (*close)(struct tty_struct *); |
---|
180 | 187 | void (*flush_buffer)(struct tty_struct *tty); |
---|
181 | 188 | ssize_t (*read)(struct tty_struct *tty, struct file *file, |
---|
182 | | - unsigned char __user *buf, size_t nr); |
---|
| 189 | + unsigned char *buf, size_t nr, |
---|
| 190 | + void **cookie, unsigned long offset); |
---|
183 | 191 | ssize_t (*write)(struct tty_struct *tty, struct file *file, |
---|
184 | 192 | const unsigned char *buf, size_t nr); |
---|
185 | 193 | int (*ioctl)(struct tty_struct *tty, struct file *file, |
---|
186 | 194 | unsigned int cmd, unsigned long arg); |
---|
187 | | - long (*compat_ioctl)(struct tty_struct *tty, struct file *file, |
---|
| 195 | + int (*compat_ioctl)(struct tty_struct *tty, struct file *file, |
---|
188 | 196 | unsigned int cmd, unsigned long arg); |
---|
189 | 197 | void (*set_termios)(struct tty_struct *tty, struct ktermios *old); |
---|
190 | 198 | __poll_t (*poll)(struct tty_struct *, struct file *, |
---|
.. | .. |
---|
204 | 212 | struct module *owner; |
---|
205 | 213 | |
---|
206 | 214 | int refcount; |
---|
| 215 | + |
---|
| 216 | + ANDROID_KABI_RESERVE(1); |
---|
| 217 | + ANDROID_KABI_RESERVE(2); |
---|
207 | 218 | }; |
---|
208 | 219 | |
---|
209 | 220 | struct tty_ldisc { |
---|