/** @file | |
This file provide functions to communicate with mipi sys-T submodule. | |
Copyright (c) 2023, Intel Corporation. All rights reserved.<BR> | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
**/ | |
#include <Base.h> | |
#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; | |
} |