Changeset 3621 in MondoRescue for branches/3.3/mindi-busybox/console-tools


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:
5 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;
  • branches/3.3/mindi-busybox/console-tools/loadkmap.c

    r3232 r3621  
    1111//usage:       "< keymap"
    1212//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"
    1516//usage:
    1617//usage:#define loadkmap_example_usage
     
    4950        bb_show_usage();
    5051/* bb_warn_ignoring_args(argv[1]); */
     52
    5153    fd = get_console_fd_or_die();
    5254/* or maybe:
     
    5658
    5759    xread(STDIN_FILENO, flags, 7);
    58     if (strncmp(flags, BINARY_KEYMAP_MAGIC, 7))
     60    if (!is_prefixed_with(flags, BINARY_KEYMAP_MAGIC))
    5961        bb_error_msg_and_die("not a valid binary keymap");
    6062
     
    6264
    6365    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);
    7284        }
    7385    }
  • branches/3.3/mindi-busybox/console-tools/resize.c

    r3232 r3621  
    1515
    1616#include "libbb.h"
     17#include "common_bufsiz.h"
    1718
    1819#define ESC "\033"
    1920
    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)
    2123
    2224static void
     
    3335    struct winsize w = { 0, 0, 0, 0 };
    3436    int ret;
     37
     38    INIT_G();
    3539
    3640    /* We use _stderr_ in order to make resize usable
  • branches/3.3/mindi-busybox/console-tools/setlogcons.c

    r3232 r3621  
    1111
    1212//usage:#define setlogcons_trivial_usage
    13 //usage:       "N"
     13//usage:       "[N]"
    1414//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)"
    1616
    1717#include "libbb.h"
  • branches/3.3/mindi-busybox/console-tools/showkey.c

    r3232 r3621  
    8484                break;
    8585        }
    86 
    8786    } else {
    8887        // we assume a PC keyboard
Note: See TracChangeset for help on using the changeset viewer.