summaryrefslogtreecommitdiff
path: root/libpagemap
diff options
context:
space:
mode:
authorSandeep Patil <sspatil@google.com>2018-08-15 14:22:55 -0700
committerSandeep Patil <sspatil@google.com>2018-08-16 09:51:51 -0700
commitd796224ad2387c542f36983e609fffa7d78aaa92 (patch)
tree2b3bd9b6bb599fe603f2e045f70162ae4f66ee3c /libpagemap
parent9d3d54a4642c0b7047fda7555d1eec164b0fd052 (diff)
downloadextras-d796224ad2387c542f36983e609fffa7d78aaa92.tar.gz
libpagemap: make pm_kernel_* APIs consistently return negative errors.
pm_kernel_* APIs return errnos as error values, which works because almost all callers check if the return value is 'true' or 'false'. Most other APIs in libpagemap return negative errors however. Fix pm_kernel_* APIs to be consistent with other library functions. Bug: 111694435 Test: procrank; procmem 1; librank Change-Id: Ia5cbf6a5676bc797f7cf0843f8b90228bfc3eaec Signed-off-by: Sandeep Patil <sspatil@google.com>
Diffstat (limited to 'libpagemap')
-rw-r--r--libpagemap/pm_kernel.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/libpagemap/pm_kernel.c b/libpagemap/pm_kernel.c
index b9e4e698..760f7347 100644
--- a/libpagemap/pm_kernel.c
+++ b/libpagemap/pm_kernel.c
@@ -34,18 +34,18 @@ int pm_kernel_create(pm_kernel_t **ker_out) {
ker = calloc(1, sizeof(*ker));
if (!ker)
- return errno;
+ return -errno;
ker->kpagecount_fd = open("/proc/kpagecount", O_RDONLY);
if (ker->kpagecount_fd < 0) {
- error = errno;
+ error = -errno;
free(ker);
return error;
}
ker->kpageflags_fd = open("/proc/kpageflags", O_RDONLY);
if (ker->kpageflags_fd < 0) {
- error = errno;
+ error = -errno;
close(ker->kpagecount_fd);
free(ker);
return error;
@@ -68,12 +68,12 @@ int pm_kernel_pids(pm_kernel_t *ker, pid_t **pids_out, size_t *len) {
proc = opendir("/proc");
if (!proc)
- return errno;
+ return -errno;
pids = malloc(INIT_PIDS * sizeof(pid_t));
if (!pids) {
closedir(proc);
- return errno;
+ return -errno;
}
pids_count = 0; pids_size = INIT_PIDS;
@@ -84,7 +84,7 @@ int pm_kernel_pids(pm_kernel_t *ker, pid_t **pids_out, size_t *len) {
if (pids_count >= pids_size) {
new_pids = realloc(pids, 2 * pids_size * sizeof(pid_t));
if (!new_pids) {
- error = errno;
+ error = -errno;
free(pids);
closedir(proc);
return error;
@@ -102,7 +102,7 @@ int pm_kernel_pids(pm_kernel_t *ker, pid_t **pids_out, size_t *len) {
new_pids = realloc(pids, pids_count * sizeof(pid_t));
if (!new_pids) {
- error = errno;
+ error = -errno;
free(pids);
return error;
}
@@ -121,10 +121,10 @@ int pm_kernel_count(pm_kernel_t *ker, uint64_t pfn, uint64_t *count_out) {
off = lseek64(ker->kpagecount_fd, pfn * sizeof(uint64_t), SEEK_SET);
if (off == (off_t)-1)
- return errno;
+ return -errno;
if (read(ker->kpagecount_fd, count_out, sizeof(uint64_t)) <
(ssize_t)sizeof(uint64_t))
- return errno;
+ return -errno;
return 0;
}
@@ -137,10 +137,10 @@ int pm_kernel_flags(pm_kernel_t *ker, uint64_t pfn, uint64_t *flags_out) {
off = lseek64(ker->kpageflags_fd, pfn * sizeof(uint64_t), SEEK_SET);
if (off == (off_t)-1)
- return errno;
+ return -errno;
if (read(ker->kpageflags_fd, flags_out, sizeof(uint64_t)) <
(ssize_t)sizeof(uint64_t))
- return errno;
+ return -errno;
return 0;
}