|
QDMI v1.4.0-dev
Quantum Device Management Interface
|
Describes the functions accessible to clients or users of QDMI.
This is an interface between the QDMI driver and the client. It includes functions to establish sessions between a QDMI driver and a client, as well as to interact with the devices managed by the driver.
A process uses one implementation of this interface and can allocate many independent sessions from it. A dynamic loader must first resolve and call QDMI_driver_get_client_abi_version. A returned ABI is compatible if and only if its major and minor fields equal those of QDMI_CLIENT_ABI_VERSION. The loader must ignore the patch field for compatibility. It must then resolve the complete Client Interface declared in this header before it calls QDMI_session_alloc. The driver library must remain loaded until every session and every handle obtained from those sessions is freed.
The client interface is split into three parts:
Interfaces | |
| QDMI Client Session Interface | |
| Provides functions to manage sessions between the client and driver. | |
| QDMI Client Query Interface | |
| Provides functions to query properties of devices. | |
| QDMI Client Job Interface | |
| Provides functions to manage client-side jobs. | |
Macros | |
| #define | QDMI_CLIENT_ABI_VERSION QDMI_MAKE_VERSION(1, 4, 0) |
| Client Interface ABI implemented by compatible QDMI drivers. | |
Typedefs | |
| typedef struct QDMI_Device_impl_d * | QDMI_Device |
| A handle for a device implementing the QDMI Device Interface. | |
Functions | |
| uint32_t | QDMI_driver_get_client_abi_version (void) |
| Return the Client Interface ABI implemented by the driver. | |
| #define QDMI_CLIENT_ABI_VERSION QDMI_MAKE_VERSION(1, 4, 0) |
Client Interface ABI implemented by compatible QDMI drivers.
CMake derives this value from the QDMI release version.
| typedef struct QDMI_Device_impl_d* QDMI_Device |
A handle for a device implementing the QDMI Device Interface.
An opaque pointer to a type defined by the driver that encapsulates an implementation of the QDMI Device Interface. The handle belongs to the session that returned it and becomes invalid when that session is freed.
| uint32_t QDMI_driver_get_client_abi_version | ( | void | ) |
Return the Client Interface ABI implemented by the driver.
This function has no side effects, is safe to call concurrently, and does not initialize global driver state. A returned ABI is compatible with QDMI_CLIENT_ABI_VERSION if and only if both versions have the same major and minor fields. A loader must ignore the patch field when it decides compatibility. A different major or minor field is incompatible. Device library versions remain independent of this version.