libcros 0.6.6

A Rust library that provides easy-to-use functions for interacting with a Chrome device
Documentation
#![allow(non_snake_case)]

use crate::tlcl::tpm20::{
  constants::{
    TPM_SU_CLEAR, TPM_SU_STATE, TPM2_Shutdown, TPM2_Startup, tpm2_shutdown_cmd, tpm2_startup_cmd,
  },
  tpm_get_response_code,
};

pub fn TlclStartup() -> u32 {
  let startup = tpm2_startup_cmd {
    startup_type: TPM_SU_CLEAR,
  };

  return tpm_get_response_code(
    TPM2_Startup,
    &startup as *const tpm2_startup_cmd as *const core::ffi::c_void,
  );
}

pub fn TlclSaveState() -> u32 {
  let shutdown = tpm2_shutdown_cmd {
    shutdown_type: TPM_SU_STATE,
  };

  return tpm_get_response_code(
    TPM2_Shutdown,
    &shutdown as *const tpm2_shutdown_cmd as *const core::ffi::c_void,
  );
}

pub fn TlclResume() -> u32 {
  let startup = tpm2_startup_cmd {
    startup_type: TPM_SU_STATE,
  };

  return tpm_get_response_code(
    TPM2_Startup,
    &startup as *const tpm2_startup_cmd as *const core::ffi::c_void,
  );
}