## drmtest drmtest — Base library for drm tests and tools |

## Functions

#define | ARRAY_SIZE()
#define | ALIGN()
int | drm_get_card ()
int | drm_open_any ()
int | drm_open_any_master ()
int | drm_open_any_render ()
void | gem_quiescent_gpu ()
#define | do_or_die()
#define | do_ioctl()

## Types and Values

#define | mmap64

## Includes

    #include <drmtest.h>

## Description

This library contains the basic support for writing tests, with the most important part being the helper function to open drm device nodes.

But there's also a bit of other assorted stuff here.

Note that this library's header pulls in the i-g-t core and batchbuffer libraries as dependencies.

## Functions

### ARRAY_SIZE()

    #define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr[0]))

Macro to compute the size of the static array `arr` .

#### Parameters

arr | static array |

### ALIGN()

    #define ALIGN(v, a) (((v) + (a)-1) & ~((a)-1))

Macro to align a value `v` to a specified unit `a` .

#### Parameters

v | value to be aligned |
a | alignment unit in bytes |

### drm_get_card ()

    int
    drm_get_card (void);

Get an i915 drm card index number for use in /dev or /sys. The minor index of the legacy node is returned, not of the control or render node.

#### Returns

The i915 drm index or -1 on error

### drm_open_any ()

    int
    drm_open_any (void);

Open an i915 drm legacy device node.

#### Returns

The i915 drm file descriptor or -1 on error

### drm_open_any_master ()

    int
    drm_open_any_master (void);

Open an i915 drm legacy device node and ensure that it is drm master.

#### Returns

The i915 drm file descriptor or -1 on error

### drm_open_any_render ()

    int
    drm_open_any_render (void);

Open an i915 drm render device node.

#### Returns

The i915 drm file descriptor or -1 on error

### gem_quiescent_gpu ()

    void
    gem_quiescent_gpu (int fd);

Ensure the gpu is idle by launching a nop execbuf and stalling for it. This is automatically run when opening a drm device node and is also installed as an exit handler to have the best assurance that the test is run in a pristine and controlled environment.

This function simply allows tests to make additional calls in-between, if so desired.

#### Parameters

fd | open i915 drm file descriptor |

### do_or_die()

    #define do_or_die(x) igt_assert((x) == 0)

Simple macro to execute x and check that it's return value is 0. Presumes that in any failure case the return value is non-zero and a precise error is logged into errno. Uses `igt_assert()` internally.

#### Parameters

x | command |

### do_ioctl()

    #define             do_ioctl(fd, ioc, ioc_data)

This macro wraps `drmIoctl()` and uses igt_assert to check that it has been successfully executed.

#### Parameters

fd | open i915 drm file descriptor |
ioc | ioctl op definition from drm headers |
ioc_data | data pointer for the ioctl operation |

## Types and Values

### mmap64

    #define mmap64 igt_mmap64