aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/tty.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/tty.h')
-rw-r--r--include/linux/tty.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 1437da3ddc62..2a754748dd5f 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -50,6 +50,7 @@
50#define N_V253 19 /* Codec control over voice modem */ 50#define N_V253 19 /* Codec control over voice modem */
51#define N_CAIF 20 /* CAIF protocol for talking to modems */ 51#define N_CAIF 20 /* CAIF protocol for talking to modems */
52#define N_GSM0710 21 /* GSM 0710 Mux */ 52#define N_GSM0710 21 /* GSM 0710 Mux */
53#define N_TI_WL 22 /* for TI's WL BT, FM, GPS combo chips */
53 54
54/* 55/*
55 * This character is the same as _POSIX_VDISABLE: it cannot be used as 56 * This character is the same as _POSIX_VDISABLE: it cannot be used as
@@ -256,6 +257,7 @@ struct tty_operations;
256struct tty_struct { 257struct tty_struct {
257 int magic; 258 int magic;
258 struct kref kref; 259 struct kref kref;
260 struct device *dev;
259 struct tty_driver *driver; 261 struct tty_driver *driver;
260 const struct tty_operations *ops; 262 const struct tty_operations *ops;
261 int index; 263 int index;
@@ -329,6 +331,13 @@ struct tty_struct {
329 struct tty_port *port; 331 struct tty_port *port;
330}; 332};
331 333
334/* Each of a tty's open files has private_data pointing to tty_file_private */
335struct tty_file_private {
336 struct tty_struct *tty;
337 struct file *file;
338 struct list_head list;
339};
340
332/* tty magic number */ 341/* tty magic number */
333#define TTY_MAGIC 0x5401 342#define TTY_MAGIC 0x5401
334 343
@@ -458,6 +467,7 @@ extern void proc_clear_tty(struct task_struct *p);
458extern struct tty_struct *get_current_tty(void); 467extern struct tty_struct *get_current_tty(void);
459extern void tty_default_fops(struct file_operations *fops); 468extern void tty_default_fops(struct file_operations *fops);
460extern struct tty_struct *alloc_tty_struct(void); 469extern struct tty_struct *alloc_tty_struct(void);
470extern int tty_add_file(struct tty_struct *tty, struct file *file);
461extern void free_tty_struct(struct tty_struct *tty); 471extern void free_tty_struct(struct tty_struct *tty);
462extern void initialize_tty_struct(struct tty_struct *tty, 472extern void initialize_tty_struct(struct tty_struct *tty,
463 struct tty_driver *driver, int idx); 473 struct tty_driver *driver, int idx);
@@ -470,6 +480,7 @@ extern struct tty_struct *tty_pair_get_tty(struct tty_struct *tty);
470extern struct tty_struct *tty_pair_get_pty(struct tty_struct *tty); 480extern struct tty_struct *tty_pair_get_pty(struct tty_struct *tty);
471 481
472extern struct mutex tty_mutex; 482extern struct mutex tty_mutex;
483extern spinlock_t tty_files_lock;
473 484
474extern void tty_write_unlock(struct tty_struct *tty); 485extern void tty_write_unlock(struct tty_struct *tty);
475extern int tty_write_lock(struct tty_struct *tty, int ndelay); 486extern int tty_write_lock(struct tty_struct *tty, int ndelay);
@@ -530,8 +541,8 @@ extern void tty_audit_exit(void);
530extern void tty_audit_fork(struct signal_struct *sig); 541extern void tty_audit_fork(struct signal_struct *sig);
531extern void tty_audit_tiocsti(struct tty_struct *tty, char ch); 542extern void tty_audit_tiocsti(struct tty_struct *tty, char ch);
532extern void tty_audit_push(struct tty_struct *tty); 543extern void tty_audit_push(struct tty_struct *tty);
533extern void tty_audit_push_task(struct task_struct *tsk, 544extern int tty_audit_push_task(struct task_struct *tsk,
534 uid_t loginuid, u32 sessionid); 545 uid_t loginuid, u32 sessionid);
535#else 546#else
536static inline void tty_audit_add_data(struct tty_struct *tty, 547static inline void tty_audit_add_data(struct tty_struct *tty,
537 unsigned char *data, size_t size) 548 unsigned char *data, size_t size)
@@ -549,9 +560,10 @@ static inline void tty_audit_fork(struct signal_struct *sig)
549static inline void tty_audit_push(struct tty_struct *tty) 560static inline void tty_audit_push(struct tty_struct *tty)
550{ 561{
551} 562}
552static inline void tty_audit_push_task(struct task_struct *tsk, 563static inline int tty_audit_push_task(struct task_struct *tsk,
553 uid_t loginuid, u32 sessionid) 564 uid_t loginuid, u32 sessionid)
554{ 565{
566 return 0;
555} 567}
556#endif 568#endif
557 569