5 stable releases

1.1.2 Aug 26, 2024
1.1.1 Mar 15, 2024
1.1.0 Mar 14, 2024
1.0.1 Feb 7, 2024

#197 in Hardware support

25 downloads per month

MIT/Apache

29KB
499 lines

aci-registry-rs

This crate provides programmatic interfaces to represent the types of Device Classes, Device Subclasses, Device Vendors, and Device Products. for the ACI Specification.

Additionally, this crate provides information about device classes, vendors, and well-known subclasses

Features

The following crate features are provided:

  • fixed-repr: Causes each well-known subclass enum, DeviceClass, DeviceVendor, SubclassId, and ProductId to all be represented as a native-endian u16, which is suitable for encoding/decoding for transport, specifically as the Device Class/Subclass and Device Vendor/Product fields
  • extended-info: Provides information that is generally unneeded by drivers or firmware for ACI Devices for well-known subclass enums, DeviceClass, and DeviceVendor
  • non-authorative: Provides enums in the non_authorative module for known product ID and subclass ID registrations.

Use

There are three primary uses for this crate:

  • The development of firmware for ACI Compliant Devices, or low-level components of an ACI Host
  • The development of drivers for ACI Complaint Devices, or generic portions of ACI Host System Software
  • The development of tools which provide information about ACI devices

To Faciliate the first two use cases, the crate is no_std and does not require the alloc crate. This allows it to be used in bare metal freestanding systems without issue

Other Subclasses/Product Ids

Subclasses of non-well known classes, and Product IDs are provided in the non_authorative module, which is enabled by the non-authorative feature.

This information is not owned by the Clever-ISA Project, nor is its updates coordinated, so it's accuracy is not warrantied and the types are provided on an AS IS basis only.

Enums provided in the module are affected as usual by the fixed-repr and extended-info features.

Out of Date Registries

The registry associated with this crate is kept in sync by periodic updates within a few hours of modifications to the registry. If newer registriations are not available, you may need to use a later version of this crate.

It is considered a semver patch to update the copy of the registry associated with a version of this crate.

License

Copyright (C) 2024 Clever-ISA Project

This project is released under the terms of the Apache 2.0 or MIT License, at your option.

Unless you state otherwise, any contribution intentionally submitted by you to this repository will be released under the above dual license.

No runtime deps

~225KB