cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

proc.h (846B)


      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}