Changeset 3621 in MondoRescue for branches/3.3/mindi-busybox/console-tools/dumpkmap.c
- Timestamp:
- Dec 20, 2016, 4:07:32 PM (7 years ago)
- Location:
- branches/3.3
- Files:
-
- 1 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;
Note:
See TracChangeset
for help on using the changeset viewer.