#6 Visibility control in I/O driver libraries

1.0
open
nobody
None
2025-02-28
2025-02-28
Strucc.c
No

This could be a huge topic, but now quickly some practical questions / wishes:

1. Coding / debuging with IoDrvBase

Most of the IoDrvBase library is hidden using {attribute 'conditionalshow'}, and that's very much reasonable. However, it is uncomfortable in my case, where I don't have the source library, therefore I can't see inherited items while coding, or debugging.

Typical invisible items are:
-m_info
-m_hInterface
-m_pConnector
-m_wModuleType
-m_dwInstance

But then there are all those _counter variables, and who knows, what else

So I ended up (temporarly) adding my own member variables as pointers to these elements like:

    _wModuleType  : REFERENCE TO UINT REF= m_wModuleType; 

Or...

    _pwModuleType  : POINTER TO UINT := ADR(m_wModuleType); 

I know, it is can be unsafe, especially with the rederences, but I never use them from the code, only to see these items in the debugger.

Is there a proper way to do this?

Maybe could use something like {attribute 'conditionalshow' := 'Library_Developer'} in IpDrvBase?

Or?

2. Counter variables defined and used in IoDrvBase

I might be totally wrong, but I have the impression that these variables are not just for debugging, but have importance in the behavior of IO manager as well? Is it something about detecting if a driver implements a specific call, and actually took action?

If it is so, would be great to highlight their importance, maybe describe them together with the expected return values of the IoDrv* calls

If they have no such importance, might be better to remove them from the template...

I'd be more than happy to do these updates, if I receive a short answer, and permission to modify the tickets...

Discussion


Log in to post a comment.