selftest: move seek_to_smaps_entry() out of mlock2-tests.c
[cascardo/linux.git] / tools / testing / selftests / vm / mlock2-tests.c
index 02ca5e0..ff0cda2 100644 (file)
@@ -1,33 +1,12 @@
 #define _GNU_SOURCE
 #include <sys/mman.h>
 #include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
 #include <unistd.h>
 #include <string.h>
 #include <sys/time.h>
 #include <sys/resource.h>
-#include <syscall.h>
-#include <errno.h>
 #include <stdbool.h>
-
-#ifndef MLOCK_ONFAULT
-#define MLOCK_ONFAULT 1
-#endif
-
-#ifndef MCL_ONFAULT
-#define MCL_ONFAULT (MCL_FUTURE << 1)
-#endif
-
-static int mlock2_(void *start, size_t len, int flags)
-{
-#ifdef __NR_mlock2
-       return syscall(__NR_mlock2, start, len, flags);
-#else
-       errno = ENOSYS;
-       return -1;
-#endif
-}
+#include "mlock2.h"
 
 struct vm_boundaries {
        unsigned long start;
@@ -138,46 +117,6 @@ static uint64_t get_kpageflags(unsigned long pfn)
        return flags;
 }
 
-static FILE *seek_to_smaps_entry(unsigned long addr)
-{
-       FILE *file;
-       char *line = NULL;
-       size_t size = 0;
-       unsigned long start, end;
-       char perms[5];
-       unsigned long offset;
-       char dev[32];
-       unsigned long inode;
-       char path[BUFSIZ];
-
-       file = fopen("/proc/self/smaps", "r");
-       if (!file) {
-               perror("fopen smaps");
-               _exit(1);
-       }
-
-       while (getline(&line, &size, file) > 0) {
-               if (sscanf(line, "%lx-%lx %s %lx %s %lu %s\n",
-                          &start, &end, perms, &offset, dev, &inode, path) < 6)
-                       goto next;
-
-               if (start <= addr && addr < end)
-                       goto out;
-
-next:
-               free(line);
-               line = NULL;
-               size = 0;
-       }
-
-       fclose(file);
-       file = NULL;
-
-out:
-       free(line);
-       return file;
-}
-
 #define VMFLAGS "VmFlags:"
 
 static bool is_vmflag_set(unsigned long addr, const char *vmflag)