---
name: "XkbAllocServerMap"
section: "3"
platform: "linux"
package: "libx11"
version: "1.8.14-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XkbAllocServerMap"
---

# XkbAllocServerMap(3)

Allocate and initialize an empty server map description record

## NAME

XkbAllocServerMap - Allocate and initialize an empty server map description record

## SYNOPSIS

**Status XkbAllocServerMap** **(XkbDescPtr** *xkb***,** **unsigned int** *which***,** **unsigned int** *count\_acts***);**

## ARGUMENTS

- *xkb*

  keyboard description in which to allocate server map

- *which*

  mask selecting map components to allocate

- *count\_acts*

  value of num\_acts field in map to be allocated

## DESCRIPTION

*XkbAllocServerMap* allocates and initializes an empty server map in the *server* field of the keyboard description specified by *xkb.* The *which* parameter specifies the particular components of the server map structure to allocate, as specified in Table 1.

| | |
| --- | --- |
| Table 1 XkbAllocServerMap Masks |
| Mask | Effect |
| XkbExplicitComponentsMask | The min\_key\_code and max\_key\_code fields of the xkb parameter are used to allocate the explicit field of the server map. |
| XkbKeyActionsMask | The min\_key\_code and max\_key\_code fields of the xkb parameter are used to allocate the key\_acts field of the server map. The count\_acts parameter is used to allocate the acts field of the server map. |
| XkbKeyBehaviorsMask | The min\_key\_code and max\_key\_code fields of the xkb parameter are used to allocate the behaviors field of the server map. |
| XkbVirtualModMapMask | The min\_key\_code and max\_key\_code fields of the xkb parameter are used to allocate the vmodmap field of the server map. |
|  |

If the server map of the keyboard description is not NULL and any fields are already allocated in the server map, *XkbAllocServerMap* does not overwrite the existing values. The only exception is with the *acts* array. If the *count\_acts* parameter is greater than the current *num\_acts* field of the server map, *XkbAllocServerMap* resizes the *acts* array and resets the *num\_acts* field accordingly.

If *XkbAllocServerMap* is successful, it returns Success. Otherwise, it can return either BadMatch or BadAlloc errors.

## DIAGNOSTICS

- **BadAlloc**

  Unable to allocate storage

- **BadMatch**

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

- **BadValue**

  An argument is out of range

## NOTES

The *min\_key\_code* and *max\_key\_code* fields of the *xkb* parameter must be legal values. If they are not valid, *XkbAllocServerMap* returns BadValue.
