|
QDMI v1.3.4-dev
Quantum Device Management Interface
|
One optional feature guarantee for an exact program format. More...
#include <constants.h>
Data Fields | |
| char | id [QDMI_PROGRAM_FEATURE_ID_SIZE] |
| NUL-terminated feature ID. | |
| uint64_t | value |
| Feature-specific value. | |
| char | constraint_id [QDMI_PROGRAM_CONSTRAINT_ID_SIZE] |
| NUL-terminated constraint ID, or empty for no constraint. | |
| uint64_t | constraint_value |
| Constraint-specific value. | |
One optional feature guarantee for an exact program format.
id and constraint_id must be NUL-terminated, and every byte after the first NUL must be zero. QDMI reserves unqualified IDs for standard features and constraints. Vendor-defined IDs must be namespaced.
Records with the same id and value describe one feature group. An empty constraint_id means that the group is unrestricted and constraint_value must be zero. An unrestricted group contains exactly one record. Otherwise, every record in the group is one constraint and all constraints are conjunctive. A constrained group must not repeat a constraint ID. Different values for the same feature ID are alternatives, such as supported integer widths.
A client that does not understand a feature ignores it. A client that understands a feature must treat a group as unusable if it contains an unknown constraint or if any record violates a representation or grouping rule above. A group is also unusable if it applies a known constraint to a feature for which that constraint is not defined, or if a constraint documented as positive has value zero. Future QDMI revisions can add new typed constraints without weakening this fail-closed rule.