1 #ifndef _LINUX_TTY_FLIP_H
2 #define _LINUX_TTY_FLIP_H
4 extern int tty_buffer_request_room(struct tty_struct
*tty
, size_t size
);
5 extern int tty_insert_flip_string(struct tty_struct
*tty
, unsigned char *chars
, size_t size
);
6 extern int tty_insert_flip_string_flags(struct tty_struct
*tty
, unsigned char *chars
, char *flags
, size_t size
);
7 extern int tty_prepare_flip_string(struct tty_struct
*tty
, unsigned char **chars
, size_t size
);
8 extern int tty_prepare_flip_string_flags(struct tty_struct
*tty
, unsigned char **chars
, char **flags
, size_t size
);
10 static inline int tty_insert_flip_char(struct tty_struct
*tty
,
11 unsigned char ch
, char flag
)
13 struct tty_buffer
*tb
= tty
->buf
.tail
;
14 if (tb
&& tb
->active
&& tb
->used
< tb
->size
) {
15 tb
->flag_buf_ptr
[tb
->used
] = flag
;
16 tb
->char_buf_ptr
[tb
->used
++] = ch
;
19 return tty_insert_flip_string_flags(tty
, &ch
, &flag
, 1);
22 static inline void tty_schedule_flip(struct tty_struct
*tty
)
25 spin_lock_irqsave(&tty
->buf
.lock
, flags
);
26 if (tty
->buf
.tail
!= NULL
) {
27 tty
->buf
.tail
->active
= 0;
28 tty
->buf
.tail
->commit
= tty
->buf
.tail
->used
;
30 spin_unlock_irqrestore(&tty
->buf
.lock
, flags
);
31 schedule_delayed_work(&tty
->buf
.work
, 1);
37 #endif /* _LINUX_TTY_FLIP_H */