xref: /aosp_15_r20/external/igt-gpu-tools/tools/intel_gem_info.c (revision d83cc019efdc2edc6c4b16e9034a3ceb8d35d77c)
1*d83cc019SAndroid Build Coastguard Worker #include "igt.h"
2*d83cc019SAndroid Build Coastguard Worker #include <sys/ioctl.h>
3*d83cc019SAndroid Build Coastguard Worker #include <fcntl.h>
4*d83cc019SAndroid Build Coastguard Worker #include <errno.h>
5*d83cc019SAndroid Build Coastguard Worker #include <string.h>
6*d83cc019SAndroid Build Coastguard Worker #include <signal.h>
7*d83cc019SAndroid Build Coastguard Worker #include <i915_drm.h>
8*d83cc019SAndroid Build Coastguard Worker 
9*d83cc019SAndroid Build Coastguard Worker 
main(void)10*d83cc019SAndroid Build Coastguard Worker int main(void)
11*d83cc019SAndroid Build Coastguard Worker {
12*d83cc019SAndroid Build Coastguard Worker 	struct drm_i915_gem_sw_finish arg = { 0 };
13*d83cc019SAndroid Build Coastguard Worker 	int fd;
14*d83cc019SAndroid Build Coastguard Worker 
15*d83cc019SAndroid Build Coastguard Worker 	signal(SIGALRM, SIG_IGN);
16*d83cc019SAndroid Build Coastguard Worker 
17*d83cc019SAndroid Build Coastguard Worker 	fd = __drm_open_driver(DRIVER_INTEL);
18*d83cc019SAndroid Build Coastguard Worker 	if (fd < 0)
19*d83cc019SAndroid Build Coastguard Worker 		return IGT_EXIT_SKIP;
20*d83cc019SAndroid Build Coastguard Worker 
21*d83cc019SAndroid Build Coastguard Worker 	alarm(1);
22*d83cc019SAndroid Build Coastguard Worker 	if (ioctl(fd, DRM_IOCTL_I915_GEM_SW_FINISH, &arg) == 0)
23*d83cc019SAndroid Build Coastguard Worker 		return IGT_EXIT_SKIP;
24*d83cc019SAndroid Build Coastguard Worker 
25*d83cc019SAndroid Build Coastguard Worker 	switch (errno) {
26*d83cc019SAndroid Build Coastguard Worker 	case ENOENT:
27*d83cc019SAndroid Build Coastguard Worker 		return 0;
28*d83cc019SAndroid Build Coastguard Worker 	case EIO:
29*d83cc019SAndroid Build Coastguard Worker 		return 1;
30*d83cc019SAndroid Build Coastguard Worker 	case EINTR:
31*d83cc019SAndroid Build Coastguard Worker 		return 2;
32*d83cc019SAndroid Build Coastguard Worker 	default:
33*d83cc019SAndroid Build Coastguard Worker 		return 3;
34*d83cc019SAndroid Build Coastguard Worker 	}
35*d83cc019SAndroid Build Coastguard Worker }
36