On Mon, 18 Jan 2021, Mike Leach wrote:
Hi Michael,
OpenCSD will always track changes in the CoreSight trace protocols - which in turn track changes in the ARM cpu architecture - i.e. a new architecture feature can sometimes require a new trace protocol / updated protocol to represent this in trace. Some changes result in a visible change to the library in / out structures, some may be internal only changes, and many architecture changes require no change to the library.
The recent change from 0.14 to 1.0 represented a significant change as a new protocol was introduced. (all previous changes have been incremental changes - e.g. ETM4.x to ETM4.y, or plain old bugfixes!).
This change resulted in:-
- An update to the output decoded packet types - additional values to
the type enum in the header (which can have an effect on clients insisting on all enum values being covered when building), and additional fields in the bit mapped flags, and packet type specific union inside the output packet structure. 2) An update to the input / configuration side - a new protocol type is selectable, which has a specific configuration structure that must be supplied to the library.
What remains unchanged is the API function signatures - and has been the case for some time - hence moving to a 1.0 version designation.
There are likely to be further incremental changes as the ARM architecture develops - but the intent with this library is to contain the changes to the in / out data structures as described above.
I would never rule out adding new API functions, if we identify addition processing that the library could provide, be we will avoid changes to existing API function signatures.
The library is versioned - both in terms of the built .so files, and has a version API clients can use to check for compatibility.
Thank you very much for your answer and time Mike! Regards, Michael
Regards
Mike OpenCSD Maintainer.
On Mon, 18 Jan 2021 at 16:05, Michael Petlan mpetlan@redhat.com wrote:
Hello coresight-list!
I have a question about the future of OpenCSD library API. How stable is it going to be? I see there's currently v1.0, so I understand it as that there's already some API version which is considered to be "mature". Could anyone please help estimating whether major API changes are planned/to be expected in upcoming years?
Thank you!
Michael
CoreSight mailing list CoreSight@lists.linaro.org https://lists.linaro.org/mailman/listinfo/coresight
-- Mike Leach Principal Engineer, ARM Ltd. Manchester Design Centre. UK