DOKK / manpages / debian 11 / libx11-doc / XkbAllocNames.3.en
XkbAllocNames(3) XKB FUNCTIONS XkbAllocNames(3)

XkbAllocNames - Allocate symbolic names structures

Status XkbAllocNames (XkbDescPtr xkb, unsigned int which, int num_rg, int num_key_aliases);

keyboard description for which names are to be allocated
mask of names to be allocated
total number of radio group names needed
total number of key aliases needed

Most applications do not need to directly allocate symbolic names structures. Do not allocate a names structure directly using malloc or Xmalloc if your application changes the number of key aliases or radio groups or constructs a symbolic names structure without loading the necessary components from the X server. Instead use XkbAllocNames.

XkbAllocNames can return BadAlloc, BadMatch, and BadValue errors. The which parameter is the bitwise inclusive OR of the valid names mask bits defined in Table 1.

Table 1 Symbolic Names Masks
Mask Bit Value Keyboard Field
Component
XkbKeycodesNameMask (1<<0) Xkb->names keycodes
XkbGeometryNameMask (1<<1) Xkb->names geometry
XkbSymbolsNameMask (1<<2) Xkb->names symbols
XkbPhysSymbolsNameMask (1<<3) Xkb->names phys_symbols
XkbTypesNameMask (1<<4) Xkb->names type
XkbCompatNameMask (1<<5) Xkb->names compat
XkbKeyTypeNamesMask (1<<6) Xkb->map type[*].name
XkbKTLevelNamesMask (1<<7) Xkb->map type[*].lvl_names[*]
XkbIndicatorNamesMask (1<<8) Xkb->names indicators[*]
XkbKeyNamesMask (1<<9) Xkb->names keys[*], num_keys
XkbKeyAliasesMask (1<<10) Xkb->names key_aliases[*], num_key_aliases
XkbVirtualModNamesMask (1<<11) Xkb->names vmods[*]
XkbGroupNamesMask (1<<12) Xkb->names groups[*]
XkbRGNamesMask (1<<13) Xkb->names radio_groups[*], num_rg
XkbComponentNamesMask (0x3f) Xkb->names keycodes,
geometry,
symbols,
physical symbols,
types, and
compatibility map
XkbAllNamesMask (0x3fff) Xkb->names all name components

Do not free symbolic names structures directly using free or XFree. Use XkbFreeNames instead.

Unable to allocate storage
A compatible version of Xkb was not available in the server or an argument has correct type and range, but is otherwise invalid
An argument is out of range

XkbFreeNames(3)

libX11 1.7.2 X Version 11