#pragma once

#ifdef __ros__

#include <parlib/timing.h>

#define pthread_id() (pthread_self()->id)

#else

#include <stdbool.h>
#ifndef TRUE
#define TRUE	1
#endif

#ifndef FALSE
#define FALSE	0
#endif

#include <sys/param.h> /* MIN/MAX */
#include <unistd.h>

/* not quite, since akaros udelay is a busy wait */
#define udelay(usec) usleep(usec)
#define ndelay(nsec)                                                           \
{                                                                              \
	struct timespec ts = {0, 0};                                           \
	ts.tv_nsec = (nsec);                                                   \
	nanosleep(&ts, 0);                                                     \
}

/* not quite a normal relax, which also pauses, but this works for all archs */
static inline void cpu_relax(void)
{
	asm volatile("" : : : "memory");
}

#define pthread_id() (pthread_self())

#define vcore_id() (-1)

#define num_vcores() ((int)sysconf(_SC_NPROCESSORS_ONLN))

#define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x))

typedef void* atomic_t;

static void uth_disable_notifs(void)
{
}

static void uth_enable_notifs(void)
{
}

static int get_pcoreid(void)
{
	return -1;
}

#define printd(args...) {}

#define COUNT_OF(x) (sizeof((x))/sizeof((x)[0]))

#ifdef __x86_64__

#define mb() ({ asm volatile("mfence" ::: "memory"); })
#define cmb() ({ asm volatile("" ::: "memory"); })
#define rmb() cmb()
#define wmb() cmb()
#define wrmb() mb()
#define rwmb() cmb()

#endif /* __x86_64__ */

#endif /* __ros__ */
