blob: 75444438548b109c7a44e3364f0e9c8b44fcbd40 [file] [log] [blame]
Thomas Wood804e11f2015-08-17 17:57:43 +01001#include "igt.h"
Chris Wilson4bd9fe62014-05-05 10:57:12 +01002#include <sys/ioctl.h>
3#include <fcntl.h>
4#include <errno.h>
5#include <string.h>
6#include <signal.h>
7#include <i915_drm.h>
8
Chris Wilson4bd9fe62014-05-05 10:57:12 +01009
10int main(void)
11{
12 struct drm_i915_gem_sw_finish arg = { 0 };
13 int fd;
14
15 signal(SIGALRM, SIG_IGN);
16
Micah Fedkec81d2932015-07-22 21:54:02 +000017 fd = __drm_open_driver(DRIVER_INTEL);
Chris Wilsona29f28e2015-01-19 09:42:25 +000018 if (fd < 0)
19 return IGT_EXIT_SKIP;
Chris Wilson4bd9fe62014-05-05 10:57:12 +010020
21 alarm(1);
22 if (ioctl(fd, DRM_IOCTL_I915_GEM_SW_FINISH, &arg) == 0)
Thomas Wood17eb0622014-05-13 15:22:52 +010023 return IGT_EXIT_SKIP;
Chris Wilson4bd9fe62014-05-05 10:57:12 +010024
25 switch (errno) {
26 case ENOENT:
27 return 0;
28 case EIO:
29 return 1;
30 case EINTR:
31 return 2;
32 default:
33 return 3;
34 }
35}