Re: [PATCH] Codeshrink: dumpkmod

2013-09-17 Thread Denys Vlasenko
On Tue, Sep 17, 2013 at 2:53 AM, John Spencer
 wrote:
> bb_common_bufsiz1 is already zeroed i hope?

yes
___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox


Re: [PATCH] Codeshrink: dumpkmod

2013-09-16 Thread John Spencer

On 09/17/2013 02:18 AM, Denys Vlasenko wrote:

On Monday 16 September 2013 14:22, John Spencer wrote:

saves 9 bytes.

Signed-off-by: John Spencer


How about this?

function old new   delta
dumpkmap_main223 160 -63



nice, this is of course a much better result.
it's probably also a bit faster since it doesnt need to do the 256-13 
write(1).


bb_common_bufsiz1 is already zeroed i hope?

___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox


Re: [PATCH] Codeshrink: dumpkmod

2013-09-16 Thread Denys Vlasenko
On Monday 16 September 2013 14:22, John Spencer wrote:
> saves 9 bytes.
> 
> Signed-off-by: John Spencer 

How about this?

function old new   delta
dumpkmap_main223 160 -63
 
diff -ad -urpN busybox.1/console-tools/dumpkmap.c busybox.2/console-tools/dumpkmap.c
--- busybox.1/console-tools/dumpkmap.c	2013-07-25 03:48:30.0 +0200
+++ busybox.2/console-tools/dumpkmap.c	2013-09-17 02:17:26.0 +0200
@@ -36,47 +36,53 @@ int dumpkmap_main(int argc UNUSED_PARAM,
 {
 	struct kbentry ke;
 	int i, j, fd;
-	RESERVE_CONFIG_BUFFER(flags, MAX_NR_KEYMAPS);
+#define flags bb_common_bufsiz1
 
 	/* When user accidentally runs "dumpkmap FILE"
 	 * instead of "dumpkmap >FILE", we'd dump binary stuff to tty.
-	 * Let's prevent it: */
+	 * Let's prevent it:
+	 */
 	if (argv[1])
 		bb_show_usage();
 /*	bb_warn_ignoring_args(argv[1]);*/
 
 	fd = get_console_fd_or_die();
 
+#if 0
 	write(STDOUT_FILENO, "bkeymap", 7);
-
 	/* Here we want to set everything to 0 except for indexes:
-	 * [0-2] [4-6] [8-10] [12] */
-	memset(flags, 0x00, MAX_NR_KEYMAPS);
+	 * [0-2] [4-6] [8-10] [12]
+	 */
+	/*memset(flags, 0x00, MAX_NR_KEYMAPS); - already is */
 	memset(flags, 0x01, 13);
 	flags[3] = flags[7] = flags[11] = 0;
-
 	/* dump flags */
 	write(STDOUT_FILENO, flags, MAX_NR_KEYMAPS);
+#else
+	/* Same effect */
+	/* 0 1 2 3 4 5 6 7 8 9 a b c=12 */
+	memcpy(flags, "bkeymap\1\1\1\0\1\1\1\0\1\1\1\0\1",
+	/*/sizeof("bkeymap\1\1\1\0\1\1\1\0\1\1\1\0\1")-1
+	);
+	write(STDOUT_FILENO, flags, 7 + MAX_NR_KEYMAPS);
+#endif
 
-	for (i = 0; i < MAX_NR_KEYMAPS; i++) {
-		if (flags[i] == 1) {
+	for (i = 0; i < 13; i++) {
+		if (flags[7 + i]) {
 			for (j = 0; j < NR_KEYS; j++) {
 ke.kb_index = j;
 ke.kb_table = i;
 if (!ioctl_or_perror(fd, KDGKBENT, &ke,
-		"ioctl failed with %s, %s, %p",
-		(char *)&ke.kb_index,
-		(char *)&ke.kb_table,
-		&ke.kb_value)
+		"ioctl(KDGKBENT{%d,%d}) failed",
+		j, i)
 ) {
-	write(STDOUT_FILENO, (void*)&ke.kb_value, 2);
+	write(STDOUT_FILENO, &ke.kb_value, 2);
 }
 			}
 		}
 	}
 	if (ENABLE_FEATURE_CLEAN_UP) {
 		close(fd);
-		RELEASE_CONFIG_BUFFER(flags);
 	}
 	return EXIT_SUCCESS;
 }
___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox