// ----------------------------------------------------------------------------------------
//
//  avr/device/int_helpers.h
//    
//  Bob Cook Development, Robotics Library
//  http://www.bobcookdev.com/rl/
//    
//  This file provides support routines for dealing with interrupts.
//
//  Copyright (C) 2007 Bob Cook
//
//      This program is free software; you can redistribute it and/or modify it
//      under the terms of the GNU General Public License as published by the
//      Free Software Foundation; either version 2 of the License, or (at your
//      option) any later version.
//    
//      This program is distributed in the hope that it will be useful, but 
//      WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
//      or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License 
//      for more details.
//    
//      You should have received a copy of the GNU General Public License along
//      with this program; if not, write to the Free Software Foundation, Inc., 
//      51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
//
// ----------------------------------------------------------------------------------------


#if !defined( BCDRL_AVR_DEVICE_INT_HELPERS_H )
#define BCDRL_AVR_DEVICE_INT_HELPERS_H


#include <stdint.h>


// ----------------------------------------------------------------------------------------
//  interrupts_clear_all
//
//      Reset all the enable bits for all possible interrupts.
//

void interrupts_clear_all();


// ----------------------------------------------------------------------------------------
//  guard_disable_interrupts
//

class guard_disable_interrupts
{
    public:
    
        guard_disable_interrupts();
        ~guard_disable_interrupts();
    
    private:
    
        guard_disable_interrupts( const guard_disable_interrupts& copy );
        guard_disable_interrupts& operator=( const guard_disable_interrupts& copy );

        uint8_t m_sreg;
};


// ----------------------------------------------------------------------------------------

#include "int_helpers.inl"


#endif  // #if !defined( BCDRL_AVR_DEVICE_INT_HELPERS_H )
// ----------------------------------------------------------------------------------------
//  end of int_helpers.h
// ----------------------------------------------------------------------------------------

