Ignore:
Timestamp:
Dec 20, 2016, 4:07:32 PM (7 years ago)
Author:
Bruno Cornec
Message:

New 3?3 banch for incorporation of latest busybox 1.25. Changing minor version to handle potential incompatibilities.

Location:
branches/3.3
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/3.3/mindi-busybox/console-tools/dumpkmap.c

    r3232 r3621  
    1919
    2020#include "libbb.h"
     21#include "common_bufsiz.h"
    2122
    2223/* From <linux/kd.h> */
     
    3738    struct kbentry ke;
    3839    int i, j, fd;
    39     RESERVE_CONFIG_BUFFER(flags, MAX_NR_KEYMAPS);
     40#define flags bb_common_bufsiz1
     41    setup_common_bufsiz();
    4042
    4143    /* When user accidentally runs "dumpkmap FILE"
    4244     * instead of "dumpkmap >FILE", we'd dump binary stuff to tty.
    43      * Let's prevent it: */
     45     * Let's prevent it:
     46     */
    4447    if (argv[1])
    4548        bb_show_usage();
     
    4851    fd = get_console_fd_or_die();
    4952
     53#if 0
    5054    write(STDOUT_FILENO, "bkeymap", 7);
    51 
    5255    /* 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 */
    5559    memset(flags, 0x01, 13);
    5660    flags[3] = flags[7] = flags[11] = 0;
    57 
    5861    /* dump flags */
    5962    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
    6074
    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]) {
    6377            for (j = 0; j < NR_KEYS; j++) {
    6478                ke.kb_index = j;
    6579                ke.kb_table = i;
    6680                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)
    7183                ) {
    72                     write(STDOUT_FILENO, (void*)&ke.kb_value, 2);
     84                    write(STDOUT_FILENO, &ke.kb_value, 2);
    7385                }
    7486            }
     
    7789    if (ENABLE_FEATURE_CLEAN_UP) {
    7890        close(fd);
    79         RELEASE_CONFIG_BUFFER(flags);
    8091    }
    8192    return EXIT_SUCCESS;
Note: See TracChangeset for help on using the changeset viewer.