//software_interrupts.h
#ifndef SOFTWARE_INTERRUPT_H
#define SOFTWARE_INTERRUPT_H

#pragma SWI_ALIAS (swi_single_entry, 0)
void swi_single_entry(Uint32 arg1, Uint32 arg2, Uint32 arg3, Uint8 swi_number);

//software interrupt wrapper functions - used to be direct swi calls
void erase_data_flash_segment(Uint8 segment);
void erase_dflash_segment_no_delay(Uint8 segment);
void write_data_flash_word(Uint32 address,unsigned long data);
void enable_fast_interrupt(void);
void disable_fast_interrupt(void);
void enable_interrupt(void);
void disable_interrupt(void);
void write_firqpr(unsigned long value);
void write_reqmask(unsigned long value);
void set_supervisor_mode(void);
void set_user_mode(void);
void clear_integrity_word();
void write_data_flash_block( Uint32 dest_ptr, Uint32  src_ptr, Uint32 byte_count);
void erase_pflash(Uint32 block);

#endif //SOFTWARE_INTERRUPT_H
