/*
 * Copyright (C) 1999 FSM Labs (http://www.fsmlabs.com/)
 *  Written by Cort Dougan <cort@fsmlabs.com>
 *  and Victor Yodaiken <yodaiken@fsmlabs.com>
 */
#ifndef __ARCH_RTL_SYNC__
#define __ARCH_RTL_SYNC__

#include <arch/XtratuM_API.h>

typedef unsigned long rtl_irqstate_t;

#define __rtl_hard_save_flags(x) do {   \
                 if (xm_are_events_enabled()) \
		         x=1; \
                 else    x=0; \
		 } while (0);
#define __rtl_hard_restore_flags(x) do { \
                                 if (x==1) xm_enable_events(); \
				 else xm_disable_events(); \
				 } while (0);
#define __rtl_hard_cli() 		xm_disable_events();
#define __rtl_hard_sti()		xm_enable_events();

#define __rtl_hard_savef_and_cli(x)     do {__rtl_hard_save_flags(x);__rtl_hard_cli();} while (0);

#endif

