/** @file
 *
 * "fi" keyboard mapping
 *
 * This file is automatically generated; do not edit
 *
 */

FILE_LICENCE ( PUBLIC_DOMAIN );

#include <ipxe/keymap.h>

/** "fi" basic remapping */
static struct keymap_key fi_basic[] = {
	{ 0x26, 0x2f },	/* '&' => '/' */
	{ 0x28, 0x29 },	/* '(' => ')' */
	{ 0x29, 0x3d },	/* ')' => '=' */
	{ 0x2a, 0x28 },	/* '*' => '(' */
	{ 0x2b, 0x60 },	/* '+' => '`' */
	{ 0x2d, 0x2b },	/* '-' => '+' */
	{ 0x2f, 0x2d },	/* '/' => '-' */
	{ 0x3c, 0x3b },	/* '<' => ';' */
	{ 0x3e, 0x3a },	/* '>' => ':' */
	{ 0x3f, 0x5f },	/* '?' => '_' */
	{ 0x40, 0x22 },	/* '@' => '"' */
	{ 0x5c, 0x27 },	/* '\\' => '\'' */
	{ 0x5e, 0x26 },	/* '^' => '&' */
	{ 0x5f, 0x3f },	/* '_' => '?' */
	{ 0x7c, 0x2a },	/* '|' => '*' */
	{ 0x7d, 0x5e },	/* '}' => '^' */
	{ 0xdc, 0x3c },	/* Pseudo-'\\' => '<' */
	{ 0xfc, 0x3e },	/* Pseudo-'|' => '>' */
	{ 0, 0 }
};

/** "fi" AltGr remapping */
static struct keymap_key fi_altgr[] = {
	{ 0x26, 0x7b },	/* '&' => '{' */
	{ 0x29, 0x7d },	/* ')' => '}' */
	{ 0x2d, 0x5c },	/* '-' => '\\' */
	{ 0x30, 0x7d },	/* '0' => '}' */
	{ 0x32, 0x40 },	/* '2' => '@' */
	{ 0x34, 0x24 },	/* '4' => '$' */
	{ 0x37, 0x7b },	/* '7' => '{' */
	{ 0x38, 0x5b },	/* '8' => '[' */
	{ 0x39, 0x5d },	/* '9' => ']' */
	{ 0x49, 0x7c },	/* 'I' => '|' */
	{ 0x5d, 0x7e },	/* ']' => '~' */
	{ 0x5f, 0x5c },	/* '_' => '\\' */
	{ 0x7d, 0x7e },	/* '}' => '~' */
	{ 0xdc, 0x7c },	/* Pseudo-'\\' => '|' */
	{ 0, 0 }
};

/** "fi" keyboard map */
struct keymap fi_keymap __keymap = {
	.name = "fi",
	.basic = fi_basic,
	.altgr = fi_altgr,
};
