cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

trace.c (1853B)


      1// SPDX-License-Identifier: GPL-2.0
      2#define CREATE_TRACE_POINTS
      3#include "ucsi.h"
      4#include "trace.h"
      5
      6static const char * const ucsi_cmd_strs[] = {
      7	[0]				= "Unknown command",
      8	[UCSI_PPM_RESET]		= "PPM_RESET",
      9	[UCSI_CANCEL]			= "CANCEL",
     10	[UCSI_CONNECTOR_RESET]		= "CONNECTOR_RESET",
     11	[UCSI_ACK_CC_CI]		= "ACK_CC_CI",
     12	[UCSI_SET_NOTIFICATION_ENABLE]	= "SET_NOTIFICATION_ENABLE",
     13	[UCSI_GET_CAPABILITY]		= "GET_CAPABILITY",
     14	[UCSI_GET_CONNECTOR_CAPABILITY]	= "GET_CONNECTOR_CAPABILITY",
     15	[UCSI_SET_UOM]			= "SET_UOM",
     16	[UCSI_SET_UOR]			= "SET_UOR",
     17	[UCSI_SET_PDM]			= "SET_PDM",
     18	[UCSI_SET_PDR]			= "SET_PDR",
     19	[UCSI_GET_ALTERNATE_MODES]	= "GET_ALTERNATE_MODES",
     20	[UCSI_GET_CAM_SUPPORTED]	= "GET_CAM_SUPPORTED",
     21	[UCSI_GET_CURRENT_CAM]		= "GET_CURRENT_CAM",
     22	[UCSI_SET_NEW_CAM]		= "SET_NEW_CAM",
     23	[UCSI_GET_PDOS]			= "GET_PDOS",
     24	[UCSI_GET_CABLE_PROPERTY]	= "GET_CABLE_PROPERTY",
     25	[UCSI_GET_CONNECTOR_STATUS]	= "GET_CONNECTOR_STATUS",
     26	[UCSI_GET_ERROR_STATUS]		= "GET_ERROR_STATUS",
     27};
     28
     29const char *ucsi_cmd_str(u64 raw_cmd)
     30{
     31	u8 cmd = raw_cmd & GENMASK(7, 0);
     32
     33	return ucsi_cmd_strs[(cmd >= ARRAY_SIZE(ucsi_cmd_strs)) ? 0 : cmd];
     34}
     35
     36const char *ucsi_cci_str(u32 cci)
     37{
     38	if (UCSI_CCI_CONNECTOR(cci)) {
     39		if (cci & UCSI_CCI_ACK_COMPLETE)
     40			return "Event pending (ACK completed)";
     41		if (cci & UCSI_CCI_COMMAND_COMPLETE)
     42			return "Event pending (command completed)";
     43		return "Connector Change";
     44	}
     45	if (cci & UCSI_CCI_ACK_COMPLETE)
     46		return "ACK completed";
     47	if (cci & UCSI_CCI_COMMAND_COMPLETE)
     48		return "Command completed";
     49
     50	return "";
     51}
     52
     53static const char * const ucsi_recipient_strs[] = {
     54	[UCSI_RECIPIENT_CON]		= "port",
     55	[UCSI_RECIPIENT_SOP]		= "partner",
     56	[UCSI_RECIPIENT_SOP_P]		= "plug (prime)",
     57	[UCSI_RECIPIENT_SOP_PP]		= "plug (double prime)",
     58};
     59
     60const char *ucsi_recipient_str(u8 recipient)
     61{
     62	return ucsi_recipient_strs[recipient];
     63}