iPXE
Macros | Functions | Variables
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_OBJECT ( keymap_ ## name )
 Require a keyboard map. More...
 

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 
 FILE_SECBOOT (PERMITTED)
 
const struct setting keymap_setting __setting (SETTING_MISC, keymap)
 Keyboard map setting. More...
 
static int keymap_apply (void)
 Apply keyboard map settings. More...
 
 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. More...
 

Detailed Description

Dynamic keyboard mappings.

Definition in file dynkeymap.c.

Macro Definition Documentation

◆ REQUIRE_KEYMAP

#define REQUIRE_KEYMAP (   name)    REQUIRE_OBJECT ( keymap_ ## name )

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.

◆ keymap_apply()

static 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 */
68  keymap = keymap_find ( name );
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 */
81  keymap_set ( keymap );
82 
83  /* Success */
84  rc = 0;
85 
86  err_unknown:
87  free ( name );
88  return rc;
89 }
struct arbelprm_rc_send_wqe rc
Definition: arbel.h:14
const char * name
Definition: ath9k_hw.c:1986
#define DBGC(...)
Definition: compiler.h:505
#define ENOENT
No such file or directory.
Definition: errno.h:515
int fetch_string_setting_copy(struct settings *settings, const struct setting *setting, char **data)
Fetch value of string setting.
Definition: settings.c:874
static void(* free)(struct refcnt *refcnt))
Definition: refcnt.h:55
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
A keyboard mapping.
Definition: keymap.h:31
#define NULL
NULL pointer (VOID *)
Definition: Base.h:322

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  )

◆ 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  )

◆ 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  )

◆ 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.