diff options
Diffstat (limited to 'oslib/linux-dev-lookup.c')
-rw-r--r-- | oslib/linux-dev-lookup.c | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/oslib/linux-dev-lookup.c b/oslib/linux-dev-lookup.c deleted file mode 100644 index 5fbccd33..00000000 --- a/oslib/linux-dev-lookup.c +++ /dev/null @@ -1,66 +0,0 @@ -#include <sys/types.h> -#include <sys/stat.h> -#include <dirent.h> -#include <string.h> -#include <stdio.h> -#include <unistd.h> - -#include "linux-dev-lookup.h" - -int blktrace_lookup_device(const char *redirect, char *path, unsigned int maj, - unsigned int min) -{ - struct dirent *dir; - struct stat st; - int found = 0; - DIR *D; - - D = opendir(path); - if (!D) - return 0; - - while ((dir = readdir(D)) != NULL) { - char full_path[256]; - - if (!strcmp(dir->d_name, ".") || !strcmp(dir->d_name, "..")) - continue; - - sprintf(full_path, "%s/%s", path, dir->d_name); - if (lstat(full_path, &st) == -1) { - perror("lstat"); - break; - } - - if (S_ISDIR(st.st_mode)) { - found = blktrace_lookup_device(redirect, full_path, - maj, min); - if (found) { - strcpy(path, full_path); - break; - } - } - - if (!S_ISBLK(st.st_mode)) - continue; - - /* - * If replay_redirect is set then always return this device - * upon lookup which overrides the device lookup based on - * major minor in the actual blktrace - */ - if (redirect) { - strcpy(path, redirect); - found = 1; - break; - } - - if (maj == major(st.st_rdev) && min == minor(st.st_rdev)) { - strcpy(path, full_path); - found = 1; - break; - } - } - - closedir(D); - return found; -} |