#ifndef SP_MACRO_H_
#define SP_MACRO_H_
/*
* sophia database
* sphia.org
*
* Copyright (c) Dmitry Simonenko
* BSD License
*/
#define sppacked __attribute__((packed))
#define spunused __attribute__((unused))
#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 3
# define sphot __attribute__((hot))
#else
# define sphot
#endif
#define splikely(EXPR) __builtin_expect(!! (EXPR), 1)
#define spunlikely(EXPR) __builtin_expect(!! (EXPR), 0)
#define spdiv(a, b) ((a) + (b) - 1) / (b)
#define spcast(N, T, F) ((T*)((char*)(N) - __builtin_offsetof(T, F)))
#endif