With this struct versioning, it is possible to add new options without breaking the ABI, as long as all additions are made to the end of a struct and nothing existing is modified or removed. When things are added, the structure's size will increase, and we'll use this size as our minor version number. If existing things need to be changed, then the major version, struct_version, is incremented to indicate the ABI break. From our call sites in main these major and minor version will be recorded as struct_version and struct_size. Each backend will then verify these against its own assumptions. So long as the backend's struct is equal or larger than what was passed in and the major versions are equal, we're good; but if it is larger, then this is a fatal error. Signed-off-by: Bryce Harrington <bryce@osg.samsung.com> v6: - Document refs for alternatives/assumptions for backend configs v5: - Move the header changes to a pre-requisite patch from the drm backend Signed-off-by: Bryce Harrington <bryce@osg.samsung.com> [Pekka: bring back the archive links Bryce looked up.] Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>dev
parent
e9b8a2b853
commit
20b66c3004
Loading…
Reference in new issue