smccc 0.2.2

Functions and constants for the Arm SMC Calling Convention (SMCCC) 1.4 and Arm Power State Coordination Interface (PSCI) 1.1 on aarch32 and aarch64.
Documentation
name: Rust

on:
  push:
    branches: [main]
  pull_request:

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      checks: write
    steps:
      - uses: actions/checkout@v4
      - name: Install aarch64 toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: aarch64-unknown-none
      - name: Install aarch32 toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: armv7a-none-eabi
      - name: Build
        run: cargo build
      - name: Build for aarch64
        run: cargo build --target=aarch64-unknown-none
      - name: Build for aarch32
        run: RUSTFLAGS="-Ctarget-feature=+trustzone,+virtualization" cargo build --target armv7a-none-eabi
      - name: Run tests
        run: cargo test
      - name: Run clippy
        uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
      - name: Run clippy on aarch64
        uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --target=aarch64-unknown-none

  format:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Format Rust code
        run: cargo fmt --all -- --check