diff options
Diffstat (limited to 'drivers/tty/vt')
-rw-r--r-- | drivers/tty/vt/Makefile | 4 | ||||
-rw-r--r-- | drivers/tty/vt/keyboard.c | 25 | ||||
-rw-r--r-- | drivers/tty/vt/vt.c | 16 |
3 files changed, 15 insertions, 30 deletions
diff --git a/drivers/tty/vt/Makefile b/drivers/tty/vt/Makefile index 14a51c9960df..17ae94cb29f8 100644 --- a/drivers/tty/vt/Makefile +++ b/drivers/tty/vt/Makefile | |||
@@ -27,8 +27,6 @@ $(obj)/defkeymap.o: $(obj)/defkeymap.c | |||
27 | ifdef GENERATE_KEYMAP | 27 | ifdef GENERATE_KEYMAP |
28 | 28 | ||
29 | $(obj)/defkeymap.c: $(obj)/%.c: $(src)/%.map | 29 | $(obj)/defkeymap.c: $(obj)/%.c: $(src)/%.map |
30 | loadkeys --mktable $< > $@.tmp | 30 | loadkeys --mktable $< > $@ |
31 | sed -e 's/^static *//' $@.tmp > $@ | ||
32 | rm $@.tmp | ||
33 | 31 | ||
34 | endif | 32 | endif |
diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c index 681765baef69..a9af1b9ae160 100644 --- a/drivers/tty/vt/keyboard.c +++ b/drivers/tty/vt/keyboard.c | |||
@@ -307,26 +307,17 @@ int kbd_rate(struct kbd_repeat *rep) | |||
307 | */ | 307 | */ |
308 | static void put_queue(struct vc_data *vc, int ch) | 308 | static void put_queue(struct vc_data *vc, int ch) |
309 | { | 309 | { |
310 | struct tty_struct *tty = vc->port.tty; | 310 | tty_insert_flip_char(&vc->port, ch, 0); |
311 | 311 | tty_schedule_flip(&vc->port); | |
312 | if (tty) { | ||
313 | tty_insert_flip_char(tty, ch, 0); | ||
314 | tty_schedule_flip(tty); | ||
315 | } | ||
316 | } | 312 | } |
317 | 313 | ||
318 | static void puts_queue(struct vc_data *vc, char *cp) | 314 | static void puts_queue(struct vc_data *vc, char *cp) |
319 | { | 315 | { |
320 | struct tty_struct *tty = vc->port.tty; | ||
321 | |||
322 | if (!tty) | ||
323 | return; | ||
324 | |||
325 | while (*cp) { | 316 | while (*cp) { |
326 | tty_insert_flip_char(tty, *cp, 0); | 317 | tty_insert_flip_char(&vc->port, *cp, 0); |
327 | cp++; | 318 | cp++; |
328 | } | 319 | } |
329 | tty_schedule_flip(tty); | 320 | tty_schedule_flip(&vc->port); |
330 | } | 321 | } |
331 | 322 | ||
332 | static void applkey(struct vc_data *vc, int key, char mode) | 323 | static void applkey(struct vc_data *vc, int key, char mode) |
@@ -582,12 +573,8 @@ static void fn_inc_console(struct vc_data *vc) | |||
582 | 573 | ||
583 | static void fn_send_intr(struct vc_data *vc) | 574 | static void fn_send_intr(struct vc_data *vc) |
584 | { | 575 | { |
585 | struct tty_struct *tty = vc->port.tty; | 576 | tty_insert_flip_char(&vc->port, 0, TTY_BREAK); |
586 | 577 | tty_schedule_flip(&vc->port); | |
587 | if (!tty) | ||
588 | return; | ||
589 | tty_insert_flip_char(tty, 0, TTY_BREAK); | ||
590 | tty_schedule_flip(tty); | ||
591 | } | 578 | } |
592 | 579 | ||
593 | static void fn_scroll_forw(struct vc_data *vc) | 580 | static void fn_scroll_forw(struct vc_data *vc) |
diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c index 8fd89687d068..1a2728034599 100644 --- a/drivers/tty/vt/vt.c +++ b/drivers/tty/vt/vt.c | |||
@@ -1333,13 +1333,13 @@ static void csi_m(struct vc_data *vc) | |||
1333 | update_attr(vc); | 1333 | update_attr(vc); |
1334 | } | 1334 | } |
1335 | 1335 | ||
1336 | static void respond_string(const char *p, struct tty_struct *tty) | 1336 | static void respond_string(const char *p, struct tty_port *port) |
1337 | { | 1337 | { |
1338 | while (*p) { | 1338 | while (*p) { |
1339 | tty_insert_flip_char(tty, *p, 0); | 1339 | tty_insert_flip_char(port, *p, 0); |
1340 | p++; | 1340 | p++; |
1341 | } | 1341 | } |
1342 | tty_schedule_flip(tty); | 1342 | tty_schedule_flip(port); |
1343 | } | 1343 | } |
1344 | 1344 | ||
1345 | static void cursor_report(struct vc_data *vc, struct tty_struct *tty) | 1345 | static void cursor_report(struct vc_data *vc, struct tty_struct *tty) |
@@ -1347,17 +1347,17 @@ static void cursor_report(struct vc_data *vc, struct tty_struct *tty) | |||
1347 | char buf[40]; | 1347 | char buf[40]; |
1348 | 1348 | ||
1349 | sprintf(buf, "\033[%d;%dR", vc->vc_y + (vc->vc_decom ? vc->vc_top + 1 : 1), vc->vc_x + 1); | 1349 | sprintf(buf, "\033[%d;%dR", vc->vc_y + (vc->vc_decom ? vc->vc_top + 1 : 1), vc->vc_x + 1); |
1350 | respond_string(buf, tty); | 1350 | respond_string(buf, tty->port); |
1351 | } | 1351 | } |
1352 | 1352 | ||
1353 | static inline void status_report(struct tty_struct *tty) | 1353 | static inline void status_report(struct tty_struct *tty) |
1354 | { | 1354 | { |
1355 | respond_string("\033[0n", tty); /* Terminal ok */ | 1355 | respond_string("\033[0n", tty->port); /* Terminal ok */ |
1356 | } | 1356 | } |
1357 | 1357 | ||
1358 | static inline void respond_ID(struct tty_struct * tty) | 1358 | static inline void respond_ID(struct tty_struct *tty) |
1359 | { | 1359 | { |
1360 | respond_string(VT102ID, tty); | 1360 | respond_string(VT102ID, tty->port); |
1361 | } | 1361 | } |
1362 | 1362 | ||
1363 | void mouse_report(struct tty_struct *tty, int butt, int mrx, int mry) | 1363 | void mouse_report(struct tty_struct *tty, int butt, int mrx, int mry) |
@@ -1366,7 +1366,7 @@ void mouse_report(struct tty_struct *tty, int butt, int mrx, int mry) | |||
1366 | 1366 | ||
1367 | sprintf(buf, "\033[M%c%c%c", (char)(' ' + butt), (char)('!' + mrx), | 1367 | sprintf(buf, "\033[M%c%c%c", (char)(' ' + butt), (char)('!' + mrx), |
1368 | (char)('!' + mry)); | 1368 | (char)('!' + mry)); |
1369 | respond_string(buf, tty); | 1369 | respond_string(buf, tty->port); |
1370 | } | 1370 | } |
1371 | 1371 | ||
1372 | /* invoked via ioctl(TIOCLINUX) and through set_selection */ | 1372 | /* invoked via ioctl(TIOCLINUX) and through set_selection */ |