I wrote the initial hal port code. there is no reason that I know of why it
is required. I was following what I saw in other hal code without really
knowing if it was needed.

Rip it out!

If the tests pass it's probably fine. I run components daily that depends
upon hal_port so I'll catch it (and help with fallout / fixing ) if
something goes wrong.

-Curt


On Fri, Nov 29, 2024, 10:53 AM Bertho Stultiens <l...@vagrearg.org> wrote:

> Hi,
>
> The C++20 standard has deprecated a lot of volatile use. Therefore, a
> lot of warnings pop-up in the compile, especially in hal/hal.h:
> warning: ‘volatile’-qualified parameter is deprecated [-Wvolatile]
>    in lines 869, 879, 890, 900, 905,910, 915, 921
> Same warning in hal/hal_priv.h:489.
>
> The warnings originate from the typedef of hal_port_t (an offset into
> shared memory) in hal/hal.h:323:
> typedef volatile int hal_port_t;
>
> The volatile modifier is used in the function prototypes' arguments,
> which now emits the warning.
>
>
> I do not understand /why/ volatile is used /at all/. The port,
> apparently, always gets converted to a pointer using SHMPTR(), which
> returns a *non-volatile* pointer-type. So there is no point in having
> the argument declared volatile when all subsequent use drops the
> modifier by forcefully having cast'ed it into something else.
>
> If there should be any use of volatile, then it would be the
> pointer-deref type returned by SHMPTR() because that addresses shared
> memory (which may be altered concurrently). But volatile isn't used for
> the actual target address and I cannot see how declaring the pre-cast
> variable as volatile can have any effect on a post-cast non-volatile
> dereference. Therefore, in my opinion, it does not work as intended.
>
> I think it should be fixed by removing the volatile modifier from the
> typedefs (hal/hal.h:318-323). Then the casts into shared memory should
> add the volatile modifier so that reads and writes to shared memory are
> performed when the code says it should be (non-cache'able in the program).
>
>
> Any thoughts or insights from hal code veterans?
>
>
> --
> Greetings Bertho
>
> (disclaimers are disclaimed)
>
>
> _______________________________________________
> Emc-developers mailing list
> Emc-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-developers
>

_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to