mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-09 14:50:19 +00:00
selftest: move seek_to_smaps_entry() out of mlock2-tests.c
Function seek_to_smaps_entry() can be useful for other selftest functionalities, so move it out to header file. Link: http://lkml.kernel.org/r/1473325970-11393-3-git-send-email-wei.guo.simon@gmail.com Signed-off-by: Simon Guo <wei.guo.simon@gmail.com> Cc: Shuah Khan <shuah@kernel.org> Cc: Vlastimil Babka <vbabka@suse.cz> Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Eric B Munson <emunson@akamai.com> Cc: Simon Guo <wei.guo.simon@gmail.com> Cc: Mel Gorman <mgorman@techsingularity.net> Cc: Alexey Klimov <klimov.linux@gmail.com> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: Thierry Reding <treding@nvidia.com> Cc: Mike Kravetz <mike.kravetz@oracle.com> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
1448d4d893
commit
d5aed9c067
@ -1,8 +1,6 @@
|
||||
#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>
|
||||
@ -119,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)
|
||||
|
@ -1,5 +1,7 @@
|
||||
#include <syscall.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifndef MLOCK_ONFAULT
|
||||
#define MLOCK_ONFAULT 1
|
||||
@ -18,3 +20,43 @@ static int mlock2_(void *start, size_t len, int flags)
|
||||
return -1;
|
||||
#endif
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user