81 virtual void Set(uint16 auNumber, real64 arValue)
84 virtual real64 Get(uint16 auNumber)
85 {
return REAL64(0.0);};
88 #if defined(INOS_PROCESSIMAGE_OVERWRITE)
89 virtual void SetOverwrite(
bool abValue)=0;
92 virtual bool GetOverwrite()=0;
94 virtual void SetOverwrite(uint16 auNumber,
bool abValue)=0;
97 virtual bool GetOverwrite(uint16 auNumber)=0;
101 virtual void SetEnabled(
bool abValue);
103 virtual bool GetEnabled();
105 virtual void SetEnabled(uint16 auNumber,
bool abValue);
107 virtual bool GetEnabled(uint16 auNumber);
110 virtual void SetSimulated(uint16 auNumber,
bool abValue)=0;
112 virtual bool GetSimulated(uint16 auNumber)=0;
115 virtual void SetConfig(uint16 auNumber, uint32 auConfig, uint32 auMask,
119 virtual uint32 GetConfig(uint16 auNumber, uint32 auOffset=0);
121 virtual void* GetConfigAdr(uint16 auNumber, uint32 auOffset=0);
124 virtual void* GetBaseAddress();
128 virtual void* GetConfigBaseAddress();
133 if (m_pDesc[auNumber]<=1){
135 return &m_pImage[auNumber];
139 return (
void*) ((uint64(m_pUpper[auNumber])<<32) + m_pImage[auNumber]);
142 return (
void*)m_pImage[auNumber];
147 virtual uint16 GetArrayLength(uint16 auNumber);
154 virtual void Remove(uint32 auChannel);
175 virtual uint16 GetCycleNumber(uint16 auNumber)
179 virtual void SetCycleNumber(uint16 auNumber, uint16 auCycleNumber,
184 virtual uint16 GetCycleId(uint16 auNumber)
188 virtual void SetCycleId(uint16 auNumber, uint16 auCycleId, uint8 auBusId,
189 class CINOSBusPortHandler* apBusPortHandler){};
193 virtual void UpdateCycleId(uint16 auNumber, uint16 auCycleId){};
197 virtual uint8 GetBusId(uint16 auNumber)
201 virtual CINOSBusJob* GetBusJob(uint16 auNumber)
204 virtual class CINOSBusPortHandler* GetBusPortHandler(uint16 auNumber)
207 virtual CINCOObject* GetRegister()
208 {
return m_pRegister;};
223 ICACHE
virtual void Get(uint16 auChannel,
void* apValue);
225 ICACHE
virtual void Get64(uint16 auChannel,
void* apValue);
227 #if defined(INOS_PROCESSIMAGE_OVERWRITE)
228 virtual void Set(uint16 auChannel,
void* apValue,
229 bool abOverwrite =
false)=0;
234 virtual void Set(uint16 auChannel,
void* apValue)=0;
237 virtual void Set(uint16 auChannel,
void* apValue, uint32 auMask);
240 static bool SimulationRequested(uint32 auSimulate = DF_INOS_IMAGE_CHN_SIM_DEF);
242 virtual uint32 FindFreeNumber(
bool ab32BitBased =
false,
bool abFromEnd =
false);
245 static char* CreateUniqueName(uint16 auNumber);
248 virtual void MoveChannel(uint16 auOldNumber, uint16 auNewNumber);
258 static CINCOObject* Register(
char* apName,
void* apAddress=0);
266 static bool MatchName(
const char* apName,
const char* apPattern);
274 CINCOObject* m_pRegister{};
287 #if defined(INOS_PROCESSIMAGE_CHANNELNUMBER_FREE)
296 uint32 RequestChn(
const char* apName, uint16 auBase, uint8 auChannels, uint16& aoChannel);
303 uint32 ReleaseChn(uint16 auChannel);
305 friend class CINOSBusChannelHandler;
310 std::map<std::string, uint16> m_mChnMap;
312 uint32 m_uChannelsActive{};
314 uint32* m_pChannelsActive{};