/** @file This file provide functions to communicate with mipi sys-T submodule. Copyright (c) 2023, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include #include "mipi_syst.h" /** Invoke initialization function in Mipi Sys-T module to initialize Mipi Sys-T handle. @param[in, out] MipiSystHandle A pointer to MIPI_SYST_HANDLE structure. @retval RETURN_SUCCESS MIPI_SYST_HANDLE instance was initialized. @retval Other MIPI_SYST_HANDLE instance was not initialized. **/ RETURN_STATUS EFIAPI InitMipiSystHandle ( IN OUT VOID *MipiSystHandle ) { MIPI_SYST_HANDLE *MipiSystH; MipiSystH = (MIPI_SYST_HANDLE *)MipiSystHandle; if (MipiSystH == NULL) { return RETURN_INVALID_PARAMETER; } mipi_syst_init (MipiSystH->systh_header, 0, NULL); return RETURN_SUCCESS; } /** Invoke write_debug_string function in Mipi Sys-T module. @param[in] MipiSystHandle A pointer to MIPI_SYST_HANDLE structure. @param[in] Severity Severity type of input message. @param[in] Len Length of data buffer. @param[in] Str A pointer to data buffer. @retval RETURN_SUCCESS Data in buffer was processed. @retval RETURN_ABORTED No data need to be written to Trace Hub. @retval RETURN_INVALID_PARAMETER On entry, MipiSystHandle or Str is a NULL pointer. **/ RETURN_STATUS EFIAPI MipiSystWriteDebug ( IN MIPI_SYST_HANDLE *MipiSystHandle, IN UINT32 Severity, IN UINT16 Len, IN CONST CHAR8 *Str ) { MIPI_SYST_HANDLE *MipiSystH; MipiSystH = (MIPI_SYST_HANDLE *)MipiSystHandle; if (MipiSystH == NULL) { return RETURN_INVALID_PARAMETER; } if (Len == 0) { // // No data need to be written to Trace Hub // return RETURN_ABORTED; } if (Str == NULL) { return RETURN_INVALID_PARAMETER; } mipi_syst_write_debug_string ( MipiSystH, MIPI_SYST_NOLOCATION, MIPI_SYST_STRING_GENERIC, Severity, Len, Str ); return RETURN_SUCCESS; } /** Invoke catalog_write_message function in Mipi Sys-T module. @param[in] MipiSystHandle A pointer to MIPI_SYST_HANDLE structure. @param[in] Severity Severity type of input message. @param[in] CatId Catalog Id. @retval RETURN_SUCCESS Data in buffer was processed. @retval RETURN_INVALID_PARAMETER On entry, MipiSystHandle is a NULL pointer. **/ RETURN_STATUS EFIAPI MipiSystWriteCatalog ( IN MIPI_SYST_HANDLE *MipiSystHandle, IN UINT32 Severity, IN UINT64 CatId ) { MIPI_SYST_HANDLE *MipiSystH; MipiSystH = (MIPI_SYST_HANDLE *)MipiSystHandle; if (MipiSystH == NULL) { return RETURN_INVALID_PARAMETER; } mipi_syst_write_catalog64_message ( MipiSystH, MIPI_SYST_NOLOCATION, Severity, CatId ); return RETURN_SUCCESS; }