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)
 
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 42 of file dynkeymap.c.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL  )

◆ __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 56 of file dynkeymap.c.

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

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:56

Keyboard map setting applicator.

Definition at line 91 of file dynkeymap.c.