iPXE
dynkeymap.c File Reference

Dynamic keyboard mappings. More...

#include <stdlib.h>
#include <errno.h>
#include <ipxe/settings.h>
#include <ipxe/keymap.h>

Go to the source code of this file.

Macros

#define REQUIRE_KEYMAP(name)
 Require a keyboard map.

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 FILE_SECBOOT (PERMITTED)
const struct setting keymap_setting __setting (SETTING_MISC, keymap)
 Keyboard map setting.
static int keymap_apply (void)
 Apply keyboard map settings.
 PROVIDE_SYMBOL (obj_keymap_dynamic)
 REQUIRING_SYMBOL (keymap_setting)
 REQUIRE_KEYMAP (al)
 REQUIRE_KEYMAP (by)
 REQUIRE_KEYMAP (cf)
 REQUIRE_KEYMAP (cz)
 REQUIRE_KEYMAP (de)
 REQUIRE_KEYMAP (dk)
 REQUIRE_KEYMAP (es)
 REQUIRE_KEYMAP (et)
 REQUIRE_KEYMAP (fi)
 REQUIRE_KEYMAP (fr)
 REQUIRE_KEYMAP (gr)
 REQUIRE_KEYMAP (hu)
 REQUIRE_KEYMAP (il)
 REQUIRE_KEYMAP (it)
 REQUIRE_KEYMAP (lt)
 REQUIRE_KEYMAP (mk)
 REQUIRE_KEYMAP (mt)
 REQUIRE_KEYMAP (nl)
 REQUIRE_KEYMAP (no)
 REQUIRE_KEYMAP (no_latin1)
 REQUIRE_KEYMAP (pl)
 REQUIRE_KEYMAP (pt)
 REQUIRE_KEYMAP (ro)
 REQUIRE_KEYMAP (ru)
 REQUIRE_KEYMAP (se)
 REQUIRE_KEYMAP (sg)
 REQUIRE_KEYMAP (sr_latin)
 REQUIRE_KEYMAP (ua)
 REQUIRE_KEYMAP (uk)
 REQUIRE_KEYMAP (us)

Variables

struct settings_applicator keymap_applicator __settings_applicator
 Keyboard map setting applicator.

Detailed Description

Dynamic keyboard mappings.

Definition in file dynkeymap.c.

Macro Definition Documentation

◆ REQUIRE_KEYMAP

#define REQUIRE_KEYMAP ( name)
Value:
REQUIRE_OBJECT ( keymap_ ## name )
const char * name
Definition ath9k_hw.c:1986
#define REQUIRE_OBJECT(object)
Require an object.
Definition compiler.h:202

Require a keyboard map.

Parameters
nameKeyboard map name

Definition at line 43 of file dynkeymap.c.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )

◆ __setting()

const struct setting keymap_setting __setting ( SETTING_MISC ,
keymap  )

Keyboard map setting.

References __setting, and SETTING_MISC.

◆ keymap_apply()

int keymap_apply ( void )
static

Apply keyboard map settings.

Return values
rcReturn status code

Definition at line 57 of file dynkeymap.c.

57 {
58 struct keymap *keymap;
59 char *name;
60 int rc;
61
62 /* Fetch keyboard map name */
63 fetch_string_setting_copy ( NULL, &keymap_setting, &name );
64
65 /* Identify keyboard map */
66 if ( name ) {
67 /* Identify named keyboard map */
69 if ( ! keymap ) {
70 DBGC ( &keymap_setting, "KEYMAP could not identify "
71 "\"%s\"\n", name );
72 rc = -ENOENT;
73 goto err_unknown;
74 }
75 } else {
76 /* Use default keyboard map */
77 keymap = NULL;
78 }
79
80 /* Set keyboard map */
82
83 /* Success */
84 rc = 0;
85
86 err_unknown:
87 free ( name );
88 return rc;
89}
#define NULL
NULL pointer (VOID *)
Definition Base.h:322
struct arbelprm_rc_send_wqe rc
Definition arbel.h:3
#define DBGC(...)
Definition compiler.h:505
#define ENOENT
No such file or directory.
Definition errno.h:515
void keymap_set(struct keymap *keymap)
Set keyboard map.
Definition keymap.c:122
struct keymap * keymap_find(const char *name)
Find keyboard map by name.
Definition keymap.c:105
static void(* free)(struct refcnt *refcnt))
Definition refcnt.h:55
int fetch_string_setting_copy(struct settings *settings, const struct setting *setting, char **data)
Fetch value of string setting.
Definition settings.c:874
A keyboard mapping.
Definition keymap.h:31

References DBGC, ENOENT, fetch_string_setting_copy(), free, keymap_find(), keymap_set(), name, NULL, and rc.

◆ PROVIDE_SYMBOL()

PROVIDE_SYMBOL ( obj_keymap_dynamic )

◆ REQUIRING_SYMBOL()

REQUIRING_SYMBOL ( keymap_setting )

◆ REQUIRE_KEYMAP() [1/30]

REQUIRE_KEYMAP ( al )

References al.

◆ REQUIRE_KEYMAP() [2/30]

REQUIRE_KEYMAP ( by )

◆ REQUIRE_KEYMAP() [3/30]

REQUIRE_KEYMAP ( cf )

◆ REQUIRE_KEYMAP() [4/30]

REQUIRE_KEYMAP ( cz )

◆ REQUIRE_KEYMAP() [5/30]

REQUIRE_KEYMAP ( de )

◆ REQUIRE_KEYMAP() [6/30]

REQUIRE_KEYMAP ( dk )

◆ REQUIRE_KEYMAP() [7/30]

REQUIRE_KEYMAP ( es )

References es.

◆ REQUIRE_KEYMAP() [8/30]

REQUIRE_KEYMAP ( et )

◆ REQUIRE_KEYMAP() [9/30]

REQUIRE_KEYMAP ( fi )

◆ REQUIRE_KEYMAP() [10/30]

REQUIRE_KEYMAP ( fr )

◆ REQUIRE_KEYMAP() [11/30]

REQUIRE_KEYMAP ( gr )

◆ REQUIRE_KEYMAP() [12/30]

REQUIRE_KEYMAP ( hu )

◆ REQUIRE_KEYMAP() [13/30]

REQUIRE_KEYMAP ( il )

◆ REQUIRE_KEYMAP() [14/30]

REQUIRE_KEYMAP ( it )

◆ REQUIRE_KEYMAP() [15/30]

REQUIRE_KEYMAP ( lt )

◆ REQUIRE_KEYMAP() [16/30]

REQUIRE_KEYMAP ( mk )

◆ REQUIRE_KEYMAP() [17/30]

REQUIRE_KEYMAP ( mt )

◆ REQUIRE_KEYMAP() [18/30]

REQUIRE_KEYMAP ( nl )

References nl().

◆ REQUIRE_KEYMAP() [19/30]

REQUIRE_KEYMAP ( no )

◆ REQUIRE_KEYMAP() [20/30]

REQUIRE_KEYMAP ( no_latin1 )

◆ REQUIRE_KEYMAP() [21/30]

REQUIRE_KEYMAP ( pl )

◆ REQUIRE_KEYMAP() [22/30]

REQUIRE_KEYMAP ( pt )

◆ REQUIRE_KEYMAP() [23/30]

REQUIRE_KEYMAP ( ro )

◆ REQUIRE_KEYMAP() [24/30]

REQUIRE_KEYMAP ( ru )

◆ REQUIRE_KEYMAP() [25/30]

REQUIRE_KEYMAP ( se )

◆ REQUIRE_KEYMAP() [26/30]

REQUIRE_KEYMAP ( sg )

◆ REQUIRE_KEYMAP() [27/30]

REQUIRE_KEYMAP ( sr_latin )

◆ REQUIRE_KEYMAP() [28/30]

REQUIRE_KEYMAP ( ua )

◆ REQUIRE_KEYMAP() [29/30]

REQUIRE_KEYMAP ( uk )

◆ REQUIRE_KEYMAP() [30/30]

REQUIRE_KEYMAP ( us )

Variable Documentation

◆ __settings_applicator

struct settings_applicator keymap_applicator __settings_applicator
Initial value:
= {
.apply = keymap_apply,
}
static int keymap_apply(void)
Apply keyboard map settings.
Definition dynkeymap.c:57

Keyboard map setting applicator.

Definition at line 92 of file dynkeymap.c.

92 {
93 .apply = keymap_apply,
94};