| 115 | } |
| 116 | |
| 117 | static char * |
| 118 | dev_kernel_driver_name(const char *dev_name) |
| 119 | { |
| 120 | char path[PATH_MAX], buf[BUFSIZ] = { }; |
| 121 | char *kdrv; |
| 122 | int ret; |
| 123 | |
| 124 | snprintf(path, sizeof(path), PLATFORM_BUS_DEVICES_PATH "/%s/driver", dev_name); |
| 125 | /* save space for NUL */ |
| 126 | ret = readlink(path, buf, sizeof(buf) - 1); |
| 127 | if (ret <= 0) |
| 128 | return NULL; |
| 129 | |
| 130 | /* last token is kernel driver name */ |
| 131 | kdrv = strrchr(buf, '/'); |
| 132 | if (kdrv != NULL) |
| 133 | return strdup(kdrv + 1); |
| 134 | |
| 135 | return NULL; |
| 136 | } |
| 137 | |
| 138 | static bool |
| 139 | dev_is_bound_vfio_platform(const char *dev_name) |
no test coverage detected