mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
tty: Compute flip buffer ptrs
The char_buf_ptr and flag_buf_ptr values are trivially derived from the .data field offset; compute values as needed. Fixes a long-standing type-mismatch with the char and flag ptrs. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
f0f947c124
commit
1fc359fc3e
3 changed files with 22 additions and 16 deletions
|
@ -71,8 +71,6 @@ static struct tty_buffer *tty_buffer_alloc(struct tty_port *port, size_t size)
|
|||
p->next = NULL;
|
||||
p->commit = 0;
|
||||
p->read = 0;
|
||||
p->char_buf_ptr = (char *)(p->data);
|
||||
p->flag_buf_ptr = (unsigned char *)p->char_buf_ptr + size;
|
||||
port->buf.memory_used += size;
|
||||
return p;
|
||||
}
|
||||
|
@ -265,8 +263,8 @@ int tty_insert_flip_string_fixed_flag(struct tty_port *port,
|
|||
if (unlikely(space == 0)) {
|
||||
break;
|
||||
}
|
||||
memcpy(tb->char_buf_ptr + tb->used, chars, space);
|
||||
memset(tb->flag_buf_ptr + tb->used, flag, space);
|
||||
memcpy(char_buf_ptr(tb, tb->used), chars, space);
|
||||
memset(flag_buf_ptr(tb, tb->used), flag, space);
|
||||
tb->used += space;
|
||||
copied += space;
|
||||
chars += space;
|
||||
|
@ -303,8 +301,8 @@ int tty_insert_flip_string_flags(struct tty_port *port,
|
|||
if (unlikely(space == 0)) {
|
||||
break;
|
||||
}
|
||||
memcpy(tb->char_buf_ptr + tb->used, chars, space);
|
||||
memcpy(tb->flag_buf_ptr + tb->used, flags, space);
|
||||
memcpy(char_buf_ptr(tb, tb->used), chars, space);
|
||||
memcpy(flag_buf_ptr(tb, tb->used), flags, space);
|
||||
tb->used += space;
|
||||
copied += space;
|
||||
chars += space;
|
||||
|
@ -364,8 +362,8 @@ int tty_prepare_flip_string(struct tty_port *port, unsigned char **chars,
|
|||
int space = tty_buffer_request_room(port, size);
|
||||
if (likely(space)) {
|
||||
struct tty_buffer *tb = port->buf.tail;
|
||||
*chars = tb->char_buf_ptr + tb->used;
|
||||
memset(tb->flag_buf_ptr + tb->used, TTY_NORMAL, space);
|
||||
*chars = char_buf_ptr(tb, tb->used);
|
||||
memset(flag_buf_ptr(tb, tb->used), TTY_NORMAL, space);
|
||||
tb->used += space;
|
||||
}
|
||||
return space;
|
||||
|
@ -394,8 +392,8 @@ int tty_prepare_flip_string_flags(struct tty_port *port,
|
|||
int space = tty_buffer_request_room(port, size);
|
||||
if (likely(space)) {
|
||||
struct tty_buffer *tb = port->buf.tail;
|
||||
*chars = tb->char_buf_ptr + tb->used;
|
||||
*flags = tb->flag_buf_ptr + tb->used;
|
||||
*chars = char_buf_ptr(tb, tb->used);
|
||||
*flags = flag_buf_ptr(tb, tb->used);
|
||||
tb->used += space;
|
||||
}
|
||||
return space;
|
||||
|
@ -407,8 +405,8 @@ static int
|
|||
receive_buf(struct tty_struct *tty, struct tty_buffer *head, int count)
|
||||
{
|
||||
struct tty_ldisc *disc = tty->ldisc;
|
||||
char *p = head->char_buf_ptr + head->read;
|
||||
unsigned char *f = head->flag_buf_ptr + head->read;
|
||||
unsigned char *p = char_buf_ptr(head, head->read);
|
||||
char *f = flag_buf_ptr(head, head->read);
|
||||
|
||||
if (disc->ops->receive_buf2)
|
||||
count = disc->ops->receive_buf2(tty, p, f, count);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue