linux/tools/testing/selftests/proc/proc.h
<<
>>
Prefs
   1#pragma once
   2#undef NDEBUG
   3#include <assert.h>
   4#include <dirent.h>
   5#include <errno.h>
   6#include <stdbool.h>
   7#include <stdlib.h>
   8#include <string.h>
   9#include <unistd.h>
  10#include <sys/syscall.h>
  11
  12static inline pid_t sys_getpid(void)
  13{
  14        return syscall(SYS_getpid);
  15}
  16
  17static inline pid_t sys_gettid(void)
  18{
  19        return syscall(SYS_gettid);
  20}
  21
  22static inline bool streq(const char *s1, const char *s2)
  23{
  24        return strcmp(s1, s2) == 0;
  25}
  26
  27static unsigned long long xstrtoull(const char *p, char **end)
  28{
  29        if (*p == '0') {
  30                *end = (char *)p + 1;
  31                return 0;
  32        } else if ('1' <= *p && *p <= '9') {
  33                unsigned long long val;
  34
  35                errno = 0;
  36                val = strtoull(p, end, 10);
  37                assert(errno == 0);
  38                return val;
  39        } else
  40                assert(0);
  41}
  42
  43static struct dirent *xreaddir(DIR *d)
  44{
  45        struct dirent *de;
  46
  47        errno = 0;
  48        de = readdir(d);
  49        assert(de || errno == 0);
  50        return de;
  51}
  52