|  | # SMCCC and PSCI functions for bare-metal Rust on aarch64 | 
|  |  | 
|  | [](https://crates.io/crates/smccc) | 
|  | [](https://docs.rs/smccc) | 
|  |  | 
|  | This crate provides support for the Arm SMC Calling Convention version 1.4, including standard Arm | 
|  | Architecture Calls constants, and version 1.1 of the Arm Power State Coordination Interface (PSCI). | 
|  | It includes constants, functions to make the calls (on aarch64 targets), and error types. | 
|  |  | 
|  | Note that the PSCI and SMCCC arch calls may be made via either HVC or SMC. You can choose which one | 
|  | to use by passing either `Hvc` or `Smc` as a type parameter to the relevant function. | 
|  |  | 
|  | This crate currently only supports aarch64 and the SMC64 versions of the PSCI calls, in the cases | 
|  | that both SMC32 and SMC64 versions exist. | 
|  |  | 
|  | This is not an officially supported Google product. | 
|  |  | 
|  | ## License | 
|  |  | 
|  | Licensed under either of | 
|  |  | 
|  | - Apache License, Version 2.0 | 
|  | ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) | 
|  | - MIT license | 
|  | ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) | 
|  |  | 
|  | at your option. | 
|  |  | 
|  | ## Contributing | 
|  |  | 
|  | If you want to contribute to the project, see details of | 
|  | [how we accept contributions](CONTRIBUTING.md). |