diff options
author | Sandeep Patil <sspatil@google.com> | 2018-08-15 14:22:55 -0700 |
---|---|---|
committer | Sandeep Patil <sspatil@google.com> | 2018-08-16 09:51:51 -0700 |
commit | d796224ad2387c542f36983e609fffa7d78aaa92 (patch) | |
tree | 2b3bd9b6bb599fe603f2e045f70162ae4f66ee3c /libpagemap | |
parent | 9d3d54a4642c0b7047fda7555d1eec164b0fd052 (diff) | |
download | extras-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.c | 22 |
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; } |