# gizhw

Devices: GPUs, NPUs, cameras, audio, video codecs, sensors and the platform. Import a module by name, for example `import * as Store from "gizdb:store";`. Each page lists the module's public declarations exactly as an installed toolchain provides them.

| Module | Purpose |
| --- | --- |
| [gizhw:alsa](/docs/reference/gizhw/alsa) | the Linux backend of gizhw:audio. |
| [gizhw:amdxdna](/docs/reference/gizhw/amdxdna) | AMD XDNA (the Ryzen AI NPU, driver amdxdna): its GET_INFO queries (the layouts of drm/amdxdna_accel.h) and the run of a kernel: a hardware context, a device heap that holds the buffers, a firmware image and control code loaded into it, and an ERT START_NPU packet (amdxdna_ctx.h) that starts one run. |
| [gizhw:audio](/docs/reference/gizhw/audio) | PCM sound on any platform. |
| [gizhw:block](/docs/reference/gizhw/block) | NVMe controllers through the kernel's passthrough ioctls (NVME_IOCTL_ADMIN_CMD and NVME_IOCTL_IO_CMD on the controller's node, /dev/nvmeN): Identify (the controller), the SMART health log, and a read of blocks by passthrough. |
| [gizhw:bus](/docs/reference/gizhw/bus) | the buses a board exposes: a serial port's speed (termios2, any rate through BOTHER), GPIO lines (the character device's chardev v2 interface: a line request, then its values), I2C transfers (I2C_RDWR), SPI transfers (SPI_IOC_MESSAGE), USB control transfers (usbfs), and CAN frames (SocketCAN, raw). |
| [gizhw:camera](/docs/reference/gizhw/camera) | video capture on any platform. |
| [gizhw:codec](/docs/reference/gizhw/codec) | the GPU's video codecs. |
| [gizhw:device](/docs/reference/gizhw/device) | the devices the machine has, as the program opens and drives them. |
| [gizhw:drm](/docs/reference/gizhw/drm) | The DRM requests every DRM-based accelerator of the accel class answers (drm/drm.h): the version request, which names the driver bound to a node, and the wait on a timeline syncobj. |
| [gizhw:evdev](/docs/reference/gizhw/evdev) | the Linux backend of gizhw:input. |
| [gizhw:gpu](/docs/reference/gizhw/gpu) | a GPU found at run time through its vendor's driver library, opened with gizlang:native (nothing is linked or required at build time). |
| [gizhw:input](/docs/reference/gizhw/input) | keyboards, mice and other input devices on any platform. |
| [gizhw:kernel](/docs/reference/gizhw/kernel) | GPU kernels written once and printed for every GPU. |
| [gizhw:metal](/docs/reference/gizhw/metal) | an Apple GPU through Metal, driven with Objective-C's runtime and gizlang:native (nothing links at build time). |
| [gizhw:npu](/docs/reference/gizhw/npu) | the NPUs of the machine, whatever their driver, and the runs of kernels on them. |
| [gizhw:rdma](/docs/reference/gizhw/rdma) | RDMA devices through libibverbs (libibverbs.so.1, loaded at run time): each device's name, firmware, node GUID and ids, and each port's state, MTU, LID, link width and speed, and link layer. |
| [gizhw:tpm](/docs/reference/gizhw/tpm) | a TPM 2.0 through the kernel's resource manager (/dev/tpmrm0): commands are built as bytes (big-endian, the TPM's wire format) and replies are checked and parsed. |
| [gizhw:v4l2](/docs/reference/gizhw/v4l2) | the Linux backend of gizhw:camera. |
