|
@@ -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)
|