Linux Audio

Check our new training course

Loading...
 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}