root/tools/testing/selftests/proc/proc.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. sys_getpid
  2. sys_gettid
  3. streq
  4. xstrtoull
  5. xreaddir

   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 
  12 static inline pid_t sys_getpid(void)
  13 {
  14         return syscall(SYS_getpid);
  15 }
  16 
  17 static inline pid_t sys_gettid(void)
  18 {
  19         return syscall(SYS_gettid);
  20 }
  21 
  22 static inline bool streq(const char *s1, const char *s2)
  23 {
  24         return strcmp(s1, s2) == 0;
  25 }
  26 
  27 static 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 
  43 static 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 }

/* [<][>][^][v][top][bottom][index][help] */