diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2011-08-27 09:43:54 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2011-08-27 10:06:11 -0400 |
commit | 7b1bb388bc879ffcc6c69b567816d5c354afe42b (patch) | |
tree | 5a217fdfb0b5e5a327bdcd624506337c1ae1fe32 /include/linux/tty_driver.h | |
parent | 7d754596756240fa918b94cd0c3011c77a638987 (diff) | |
parent | 02f8c6aee8df3cdc935e9bdd4f2d020306035dbe (diff) |
Merge 'Linux v3.0' into Litmus
Some notes:
* Litmus^RT scheduling class is the topmost scheduling class
(above stop_sched_class).
* scheduler_ipi() function (e.g., in smp_reschedule_interrupt())
may increase IPI latencies.
* Added path into schedule() to quickly re-evaluate scheduling
decision without becoming preemptive again. This used to be
a standard path before the removal of BKL.
Conflicts:
Makefile
arch/arm/kernel/calls.S
arch/arm/kernel/smp.c
arch/x86/include/asm/unistd_32.h
arch/x86/kernel/smp.c
arch/x86/kernel/syscall_table_32.S
include/linux/hrtimer.h
kernel/printk.c
kernel/sched.c
kernel/sched_fair.c
Diffstat (limited to 'include/linux/tty_driver.h')
-rw-r--r-- | include/linux/tty_driver.h | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h index b08677982525..9deeac855240 100644 --- a/include/linux/tty_driver.h +++ b/include/linux/tty_driver.h | |||
@@ -98,16 +98,15 @@ | |||
98 | * | 98 | * |
99 | * Note: Do not call this function directly, call tty_write_room | 99 | * Note: Do not call this function directly, call tty_write_room |
100 | * | 100 | * |
101 | * int (*ioctl)(struct tty_struct *tty, struct file * file, | 101 | * int (*ioctl)(struct tty_struct *tty, unsigned int cmd, unsigned long arg); |
102 | * unsigned int cmd, unsigned long arg); | ||
103 | * | 102 | * |
104 | * This routine allows the tty driver to implement | 103 | * This routine allows the tty driver to implement |
105 | * device-specific ioctl's. If the ioctl number passed in cmd | 104 | * device-specific ioctls. If the ioctl number passed in cmd |
106 | * is not recognized by the driver, it should return ENOIOCTLCMD. | 105 | * is not recognized by the driver, it should return ENOIOCTLCMD. |
107 | * | 106 | * |
108 | * Optional | 107 | * Optional |
109 | * | 108 | * |
110 | * long (*compat_ioctl)(struct tty_struct *tty, struct file * file, | 109 | * long (*compat_ioctl)(struct tty_struct *tty,, |
111 | * unsigned int cmd, unsigned long arg); | 110 | * unsigned int cmd, unsigned long arg); |
112 | * | 111 | * |
113 | * implement ioctl processing for 32 bit process on 64 bit system | 112 | * implement ioctl processing for 32 bit process on 64 bit system |
@@ -167,12 +166,12 @@ | |||
167 | * | 166 | * |
168 | * void (*hangup)(struct tty_struct *tty); | 167 | * void (*hangup)(struct tty_struct *tty); |
169 | * | 168 | * |
170 | * This routine notifies the tty driver that it should hangup the | 169 | * This routine notifies the tty driver that it should hang up the |
171 | * tty device. | 170 | * tty device. |
172 | * | 171 | * |
173 | * Optional: | 172 | * Optional: |
174 | * | 173 | * |
175 | * int (*break_ctl)(struct tty_stuct *tty, int state); | 174 | * int (*break_ctl)(struct tty_struct *tty, int state); |
176 | * | 175 | * |
177 | * This optional routine requests the tty driver to turn on or | 176 | * This optional routine requests the tty driver to turn on or |
178 | * off BREAK status on the RS-232 port. If state is -1, | 177 | * off BREAK status on the RS-232 port. If state is -1, |
@@ -224,14 +223,22 @@ | |||
224 | * unless the tty also has a valid tty->termiox pointer. | 223 | * unless the tty also has a valid tty->termiox pointer. |
225 | * | 224 | * |
226 | * Optional: Called under the termios lock | 225 | * Optional: Called under the termios lock |
226 | * | ||
227 | * int (*get_icount)(struct tty_struct *tty, struct serial_icounter *icount); | ||
228 | * | ||
229 | * Called when the device receives a TIOCGICOUNT ioctl. Passed a kernel | ||
230 | * structure to complete. This method is optional and will only be called | ||
231 | * if provided (otherwise EINVAL will be returned). | ||
227 | */ | 232 | */ |
228 | 233 | ||
229 | #include <linux/fs.h> | 234 | #include <linux/fs.h> |
230 | #include <linux/list.h> | 235 | #include <linux/list.h> |
231 | #include <linux/cdev.h> | 236 | #include <linux/cdev.h> |
237 | #include <linux/termios.h> | ||
232 | 238 | ||
233 | struct tty_struct; | 239 | struct tty_struct; |
234 | struct tty_driver; | 240 | struct tty_driver; |
241 | struct serial_icounter_struct; | ||
235 | 242 | ||
236 | struct tty_operations { | 243 | struct tty_operations { |
237 | struct tty_struct * (*lookup)(struct tty_driver *driver, | 244 | struct tty_struct * (*lookup)(struct tty_driver *driver, |
@@ -248,9 +255,9 @@ struct tty_operations { | |||
248 | void (*flush_chars)(struct tty_struct *tty); | 255 | void (*flush_chars)(struct tty_struct *tty); |
249 | int (*write_room)(struct tty_struct *tty); | 256 | int (*write_room)(struct tty_struct *tty); |
250 | int (*chars_in_buffer)(struct tty_struct *tty); | 257 | int (*chars_in_buffer)(struct tty_struct *tty); |
251 | int (*ioctl)(struct tty_struct *tty, struct file * file, | 258 | int (*ioctl)(struct tty_struct *tty, |
252 | unsigned int cmd, unsigned long arg); | 259 | unsigned int cmd, unsigned long arg); |
253 | long (*compat_ioctl)(struct tty_struct *tty, struct file * file, | 260 | long (*compat_ioctl)(struct tty_struct *tty, |
254 | unsigned int cmd, unsigned long arg); | 261 | unsigned int cmd, unsigned long arg); |
255 | void (*set_termios)(struct tty_struct *tty, struct ktermios * old); | 262 | void (*set_termios)(struct tty_struct *tty, struct ktermios * old); |
256 | void (*throttle)(struct tty_struct * tty); | 263 | void (*throttle)(struct tty_struct * tty); |
@@ -263,11 +270,13 @@ struct tty_operations { | |||
263 | void (*set_ldisc)(struct tty_struct *tty); | 270 | void (*set_ldisc)(struct tty_struct *tty); |
264 | void (*wait_until_sent)(struct tty_struct *tty, int timeout); | 271 | void (*wait_until_sent)(struct tty_struct *tty, int timeout); |
265 | void (*send_xchar)(struct tty_struct *tty, char ch); | 272 | void (*send_xchar)(struct tty_struct *tty, char ch); |
266 | int (*tiocmget)(struct tty_struct *tty, struct file *file); | 273 | int (*tiocmget)(struct tty_struct *tty); |
267 | int (*tiocmset)(struct tty_struct *tty, struct file *file, | 274 | int (*tiocmset)(struct tty_struct *tty, |
268 | unsigned int set, unsigned int clear); | 275 | unsigned int set, unsigned int clear); |
269 | int (*resize)(struct tty_struct *tty, struct winsize *ws); | 276 | int (*resize)(struct tty_struct *tty, struct winsize *ws); |
270 | int (*set_termiox)(struct tty_struct *tty, struct termiox *tnew); | 277 | int (*set_termiox)(struct tty_struct *tty, struct termiox *tnew); |
278 | int (*get_icount)(struct tty_struct *tty, | ||
279 | struct serial_icounter_struct *icount); | ||
271 | #ifdef CONFIG_CONSOLE_POLL | 280 | #ifdef CONFIG_CONSOLE_POLL |
272 | int (*poll_init)(struct tty_driver *driver, int line, char *options); | 281 | int (*poll_init)(struct tty_driver *driver, int line, char *options); |
273 | int (*poll_get_char)(struct tty_driver *driver, int line); | 282 | int (*poll_get_char)(struct tty_driver *driver, int line); |
@@ -348,7 +357,7 @@ static inline struct tty_driver *tty_driver_kref_get(struct tty_driver *d) | |||
348 | * overruns, either.) | 357 | * overruns, either.) |
349 | * | 358 | * |
350 | * TTY_DRIVER_DYNAMIC_DEV --- if set, the individual tty devices need | 359 | * TTY_DRIVER_DYNAMIC_DEV --- if set, the individual tty devices need |
351 | * to be registered with a call to tty_register_driver() when the | 360 | * to be registered with a call to tty_register_device() when the |
352 | * device is found in the system and unregistered with a call to | 361 | * device is found in the system and unregistered with a call to |
353 | * tty_unregister_device() so the devices will be show up | 362 | * tty_unregister_device() so the devices will be show up |
354 | * properly in sysfs. If not set, driver->num entries will be | 363 | * properly in sysfs. If not set, driver->num entries will be |