SPLAY_RIGHT
SPLAY_RIGHT(tmp, field) = (head)->sph_root; \
(head)->sph_root = SPLAY_RIGHT((head)->sph_root, field); \
SPLAY_RIGHT(left, field) = SPLAY_LEFT((head)->sph_root, field); \
SPLAY_LEFT(right, field) = SPLAY_RIGHT((head)->sph_root, field);\
SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(node, field); \
SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(node, field); \
if (SPLAY_RIGHT(elm, field) != NULL) { \
elm = SPLAY_RIGHT(elm, field); \
SPLAY_LEFT(elm, field) = SPLAY_RIGHT(elm, field) = NULL; \
SPLAY_RIGHT(elm, field) = (head)->sph_root; \
SPLAY_RIGHT(elm, field) = SPLAY_RIGHT((head)->sph_root, field);\
SPLAY_RIGHT((head)->sph_root, field) = NULL; \
(head)->sph_root = SPLAY_RIGHT((head)->sph_root, field);\
__tmp = SPLAY_RIGHT((head)->sph_root, field); \
SPLAY_RIGHT((head)->sph_root, field) = __tmp; \
SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\
__tmp = SPLAY_RIGHT((head)->sph_root, field); \
if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\
SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL;\
__tmp = SPLAY_RIGHT((head)->sph_root, field); \
if (SPLAY_RIGHT((head)->sph_root, field) == NULL)\
SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(tmp, field); \
SPLAY_RIGHT(tmp, field) = (head)->sph_root; \
SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(tmp, field); \