提交 d711ea8f 编写于 作者: J Jiri Slaby 提交者: Greg Kroah-Hartman

tty: vt, get rid of ugly FLUSH macro

It's a macro accessing and changing some local variables. And the code
uses it without appending semicolon which confuses everybody too.

Switch from this bad guy to a sane standard function.
Signed-off-by: NJiri Slaby <jslaby@suse.cz>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 6af39ed3
...@@ -2163,14 +2163,20 @@ static int is_double_width(uint32_t ucs) ...@@ -2163,14 +2163,20 @@ static int is_double_width(uint32_t ucs)
return bisearch(ucs, double_width, ARRAY_SIZE(double_width) - 1); return bisearch(ucs, double_width, ARRAY_SIZE(double_width) - 1);
} }
static void con_flush(struct vc_data *vc, unsigned long draw_from,
unsigned long draw_to, int *draw_x)
{
if (*draw_x < 0)
return;
vc->vc_sw->con_putcs(vc, (u16 *)draw_from,
(u16 *)draw_to - (u16 *)draw_from, vc->vc_y, *draw_x);
*draw_x = -1;
}
/* acquires console_lock */ /* acquires console_lock */
static int do_con_write(struct tty_struct *tty, const unsigned char *buf, int count) static int do_con_write(struct tty_struct *tty, const unsigned char *buf, int count)
{ {
#define FLUSH if (draw_x >= 0) { \
vc->vc_sw->con_putcs(vc, (u16 *)draw_from, (u16 *)draw_to - (u16 *)draw_from, vc->vc_y, draw_x); \
draw_x = -1; \
}
int c, tc, ok, n = 0, draw_x = -1; int c, tc, ok, n = 0, draw_x = -1;
unsigned int currcons; unsigned int currcons;
unsigned long draw_from = 0, draw_to = 0; unsigned long draw_from = 0, draw_to = 0;
...@@ -2362,12 +2368,13 @@ static int do_con_write(struct tty_struct *tty, const unsigned char *buf, int co ...@@ -2362,12 +2368,13 @@ static int do_con_write(struct tty_struct *tty, const unsigned char *buf, int co
} else { } else {
vc_attr = ((vc->vc_attr) & 0x88) | (((vc->vc_attr) & 0x70) >> 4) | (((vc->vc_attr) & 0x07) << 4); vc_attr = ((vc->vc_attr) & 0x88) | (((vc->vc_attr) & 0x70) >> 4) | (((vc->vc_attr) & 0x07) << 4);
} }
FLUSH con_flush(vc, draw_from, draw_to, &draw_x);
} }
while (1) { while (1) {
if (vc->vc_need_wrap || vc->vc_decim) if (vc->vc_need_wrap || vc->vc_decim)
FLUSH con_flush(vc, draw_from, draw_to,
&draw_x);
if (vc->vc_need_wrap) { if (vc->vc_need_wrap) {
cr(vc); cr(vc);
lf(vc); lf(vc);
...@@ -2397,9 +2404,8 @@ static int do_con_write(struct tty_struct *tty, const unsigned char *buf, int co ...@@ -2397,9 +2404,8 @@ static int do_con_write(struct tty_struct *tty, const unsigned char *buf, int co
} }
notify_write(vc, c); notify_write(vc, c);
if (inverse) { if (inverse)
FLUSH con_flush(vc, draw_from, draw_to, &draw_x);
}
if (rescan) { if (rescan) {
rescan = 0; rescan = 0;
...@@ -2410,15 +2416,14 @@ static int do_con_write(struct tty_struct *tty, const unsigned char *buf, int co ...@@ -2410,15 +2416,14 @@ static int do_con_write(struct tty_struct *tty, const unsigned char *buf, int co
} }
continue; continue;
} }
FLUSH con_flush(vc, draw_from, draw_to, &draw_x);
do_con_trol(tty, vc, orig); do_con_trol(tty, vc, orig);
} }
FLUSH con_flush(vc, draw_from, draw_to, &draw_x);
console_conditional_schedule(); console_conditional_schedule();
console_unlock(); console_unlock();
notify_update(vc); notify_update(vc);
return n; return n;
#undef FLUSH
} }
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册