cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

braille.c (1058B)


      1// SPDX-License-Identifier: GPL-2.0
      2#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
      3
      4#include <linux/kernel.h>
      5#include <linux/console.h>
      6#include <linux/errno.h>
      7#include <linux/string.h>
      8
      9#include "console_cmdline.h"
     10#include "braille.h"
     11
     12int _braille_console_setup(char **str, char **brl_options)
     13{
     14	size_t len;
     15
     16	len = str_has_prefix(*str, "brl,");
     17	if (len) {
     18		*brl_options = "";
     19		*str += len;
     20		return 0;
     21	}
     22
     23	len = str_has_prefix(*str, "brl=");
     24	if (len) {
     25		*brl_options = *str + len;
     26		*str = strchr(*brl_options, ',');
     27		if (!*str) {
     28			pr_err("need port name after brl=\n");
     29			return -EINVAL;
     30		}
     31		*((*str)++) = 0;
     32	}
     33
     34	return 0;
     35}
     36
     37int
     38_braille_register_console(struct console *console, struct console_cmdline *c)
     39{
     40	int rtn = 0;
     41
     42	if (c->brl_options) {
     43		console->flags |= CON_BRL;
     44		rtn = braille_register_console(console, c->index, c->options,
     45					       c->brl_options);
     46	}
     47
     48	return rtn;
     49}
     50
     51int
     52_braille_unregister_console(struct console *console)
     53{
     54	if (console->flags & CON_BRL)
     55		return braille_unregister_console(console);
     56
     57	return 0;
     58}