Changeset 3621 in MondoRescue for branches/3.3/mindi-busybox/console-tools
- Timestamp:
- Dec 20, 2016, 4:07:32 PM (7 years ago)
- Location:
- branches/3.3
- Files:
-
- 5 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/3.3/mindi-busybox/console-tools/dumpkmap.c
r3232 r3621 19 19 20 20 #include "libbb.h" 21 #include "common_bufsiz.h" 21 22 22 23 /* From <linux/kd.h> */ … … 37 38 struct kbentry ke; 38 39 int i, j, fd; 39 RESERVE_CONFIG_BUFFER(flags, MAX_NR_KEYMAPS); 40 #define flags bb_common_bufsiz1 41 setup_common_bufsiz(); 40 42 41 43 /* When user accidentally runs "dumpkmap FILE" 42 44 * instead of "dumpkmap >FILE", we'd dump binary stuff to tty. 43 * Let's prevent it: */ 45 * Let's prevent it: 46 */ 44 47 if (argv[1]) 45 48 bb_show_usage(); … … 48 51 fd = get_console_fd_or_die(); 49 52 53 #if 0 50 54 write(STDOUT_FILENO, "bkeymap", 7); 51 52 55 /* Here we want to set everything to 0 except for indexes: 53 * [0-2] [4-6] [8-10] [12] */ 54 memset(flags, 0x00, MAX_NR_KEYMAPS); 56 * [0-2] [4-6] [8-10] [12] 57 */ 58 /*memset(flags, 0x00, MAX_NR_KEYMAPS); - already is */ 55 59 memset(flags, 0x01, 13); 56 60 flags[3] = flags[7] = flags[11] = 0; 57 58 61 /* dump flags */ 59 62 write(STDOUT_FILENO, flags, MAX_NR_KEYMAPS); 63 #define flags7 flags 64 #else 65 /* Same effect */ 66 /* 0 1 2 3 4 5 6 7 8 9 a b c=12 */ 67 memcpy(flags, "bkeymap\1\1\1\0\1\1\1\0\1\1\1\0\1", 68 /* Can use sizeof, or sizeof-1. sizeof is even, using that */ 69 /****/ sizeof("bkeymap\1\1\1\0\1\1\1\0\1\1\1\0\1") 70 ); 71 write(STDOUT_FILENO, flags, 7 + MAX_NR_KEYMAPS); 72 #define flags7 (flags + 7) 73 #endif 60 74 61 for (i = 0; i < MAX_NR_KEYMAPS; i++) {62 if (flags [i] == 1) {75 for (i = 0; i < 13; i++) { 76 if (flags7[i]) { 63 77 for (j = 0; j < NR_KEYS; j++) { 64 78 ke.kb_index = j; 65 79 ke.kb_table = i; 66 80 if (!ioctl_or_perror(fd, KDGKBENT, &ke, 67 "ioctl failed with %s, %s, %p", 68 (char *)&ke.kb_index, 69 (char *)&ke.kb_table, 70 &ke.kb_value) 81 "ioctl(KDGKBENT{%d,%d}) failed", 82 j, i) 71 83 ) { 72 write(STDOUT_FILENO, (void*)&ke.kb_value, 2);84 write(STDOUT_FILENO, &ke.kb_value, 2); 73 85 } 74 86 } … … 77 89 if (ENABLE_FEATURE_CLEAN_UP) { 78 90 close(fd); 79 RELEASE_CONFIG_BUFFER(flags);80 91 } 81 92 return EXIT_SUCCESS; -
branches/3.3/mindi-busybox/console-tools/loadkmap.c
r3232 r3621 11 11 //usage: "< keymap" 12 12 //usage:#define loadkmap_full_usage "\n\n" 13 //usage: "Load a binary keyboard translation table from stdin\n" 14 /* //usage: "\n -C TTY Affect TTY instead of /dev/tty" */ 13 //usage: "Load a binary keyboard translation table from stdin" 14 ////usage: "\n" 15 ////usage: "\n -C TTY Affect TTY instead of /dev/tty" 15 16 //usage: 16 17 //usage:#define loadkmap_example_usage … … 49 50 bb_show_usage(); 50 51 /* bb_warn_ignoring_args(argv[1]); */ 52 51 53 fd = get_console_fd_or_die(); 52 54 /* or maybe: … … 56 58 57 59 xread(STDIN_FILENO, flags, 7); 58 if ( strncmp(flags, BINARY_KEYMAP_MAGIC, 7))60 if (!is_prefixed_with(flags, BINARY_KEYMAP_MAGIC)) 59 61 bb_error_msg_and_die("not a valid binary keymap"); 60 62 … … 62 64 63 65 for (i = 0; i < MAX_NR_KEYMAPS; i++) { 64 if (flags[i] == 1) { 65 xread(STDIN_FILENO, ibuff, NR_KEYS * sizeof(uint16_t)); 66 for (j = 0; j < NR_KEYS; j++) { 67 ke.kb_index = j; 68 ke.kb_table = i; 69 ke.kb_value = ibuff[j]; 70 ioctl(fd, KDSKBENT, &ke); 71 } 66 if (flags[i] != 1) 67 continue; 68 xread(STDIN_FILENO, ibuff, NR_KEYS * sizeof(uint16_t)); 69 for (j = 0; j < NR_KEYS; j++) { 70 ke.kb_index = j; 71 ke.kb_table = i; 72 ke.kb_value = ibuff[j]; 73 /* 74 * Note: table[idx:0] can contain special value 75 * K_ALLOCATED (marks allocated tables in kernel). 76 * dumpkmap saves the value as-is; but attempts 77 * to load it here fail, since it isn't a valid 78 * key value: it is K(KT_SPEC,126) == 2<<8 + 126, 79 * whereas last valid KT_SPEC is 80 * K_BARENUMLOCK == K(KT_SPEC,19). 81 * So far we just ignore these errors: 82 */ 83 ioctl(fd, KDSKBENT, &ke); 72 84 } 73 85 } -
branches/3.3/mindi-busybox/console-tools/resize.c
r3232 r3621 15 15 16 16 #include "libbb.h" 17 #include "common_bufsiz.h" 17 18 18 19 #define ESC "\033" 19 20 20 #define old_termios_p ((struct termios*)&bb_common_bufsiz1) 21 #define old_termios_p ((struct termios*)bb_common_bufsiz1) 22 #define INIT_G() do { setup_common_bufsiz(); } while (0) 21 23 22 24 static void … … 33 35 struct winsize w = { 0, 0, 0, 0 }; 34 36 int ret; 37 38 INIT_G(); 35 39 36 40 /* We use _stderr_ in order to make resize usable -
branches/3.3/mindi-busybox/console-tools/setlogcons.c
r3232 r3621 11 11 12 12 //usage:#define setlogcons_trivial_usage 13 //usage: " N"13 //usage: "[N]" 14 14 //usage:#define setlogcons_full_usage "\n\n" 15 //usage: "Redirect the kernel output to console N (0 for current)"15 //usage: "Redirect the kernel output to console N. Default:0 (current console)" 16 16 17 17 #include "libbb.h" -
branches/3.3/mindi-busybox/console-tools/showkey.c
r3232 r3621 84 84 break; 85 85 } 86 87 86 } else { 88 87 // we assume a PC keyboard
Note:
See TracChangeset
for help on using the changeset viewer.