00001 // ===================================================================== 00021 // ===================================================================== 00022 #ifndef __TSOFTWAREINTERRUPTREGISTERMODULE_HH 00023 #define __TSOFTWAREINTERRUPTREGISTERMODULE_HH 00024 00025 #include "Tglobals.h" 00026 #include "TSoftwareModule.hh" 00027 00028 class TDataSegment; 00029 class TDataElement; 00030 00031 00051 class TSoftwareInterruptRegisterModule 00052 : public TSoftwareModule 00053 { 00054 00055 private: 00056 Tint theInterruptRegister; 00057 Tint theInterruptMaskRegister; 00058 Tint theFrequency; 00059 00060 public: 00061 TSoftwareInterruptRegisterModule( Tint nch = 2, Tint frequency = 1 ); 00062 TSoftwareInterruptRegisterModule( const TSoftwareInterruptRegisterModule& right ); 00063 ~TSoftwareInterruptRegisterModule(); 00064 00065 public: 00066 const TSoftwareInterruptRegisterModule& operator=( const TSoftwareInterruptRegisterModule& right ); 00067 Tbool operator==( const TSoftwareInterruptRegisterModule& right ) const; 00068 Tbool operator!=( const TSoftwareInterruptRegisterModule& right ) const; 00069 00070 public: 00071 Tint Clear(); 00072 Tint Update(); 00073 Tint Initialize(); 00074 Tint ReadInterruptRegister(); 00075 Tvoid FillData( TDataElement& element, Tint channel ); 00076 00077 public: 00078 Tint GetInterruptRegister() const; 00079 Tint GetInterruptMaskRegister() const; 00080 Tint GetFrequency() const; 00081 Tvoid SetInterruptRegister( Tint val ); 00082 Tvoid SetInterruptMaskRegister( Tint val ); 00083 Tvoid SetFrequency( Tint frequency ); 00084 00085 }; 00086 00087 inline Tint TSoftwareInterruptRegisterModule::GetInterruptRegister() const 00088 { 00089 return theInterruptRegister; 00090 } 00091 00092 inline Tint TSoftwareInterruptRegisterModule::GetInterruptMaskRegister() const 00093 { 00094 return theInterruptMaskRegister; 00095 } 00096 00097 inline Tint TSoftwareInterruptRegisterModule::GetFrequency() const 00098 { 00099 return theFrequency; 00100 } 00101 00102 inline Tvoid TSoftwareInterruptRegisterModule::SetInterruptRegister( Tint val ) 00103 { 00104 theInterruptRegister = val; 00105 return; 00106 } 00107 00108 inline Tvoid TSoftwareInterruptRegisterModule::SetInterruptMaskRegister( Tint val ) 00109 { 00110 theInterruptMaskRegister = val; 00111 return; 00112 } 00113 00114 inline Tvoid TSoftwareInterruptRegisterModule::SetFrequency( Tint frequency ) 00115 { 00116 theFrequency = frequency; 00117 return; 00118 } 00119 00120 #endif