I like this idea, but I took it one step further in the attached patch and made the registry entry struct flexible enough to store any type of entry. Specifically, I've added a new "type" enum followed by a union of the different structs used to store the entry data. I was originally trying to avoid this kind of invasive change, but it's not nearly as complicated as I feared, and there are benefits such as fewer shared memory things to juggle and better sanity checking. It should also be easy to extend in the future. WDYT?
Thank you for implementing these changes. The improvements look good and enhance the feature's utility. I have already started incorporating GetNamedDSA into my code to display memory context statistics.
A potential future enhancement could be allowing GetNamedDSHASH to accept an existing DSA name. This would enable the DSHASH to reuse a DSA area instead of creating a new one each time. I plan to use this registry to store DSA pointers that all belong to the same DSA area, and this enhancement would be particularly beneficial. If you find this idea useful, I would be interested in working on it.