gem5  v22.0.0.1
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Static Private Attributes | List of all members
gem5::scmi::BaseProtocol Class Reference

This protocol describes the properties of the implementation and provides generic error management. More...

#include <scmi_protocols.hh>

Inheritance diagram for gem5::scmi::BaseProtocol:
gem5::scmi::Protocol

Public Types

enum  Commands {
  Commands::VERSION = 0x0, Commands::ATTRIBUTES = 0x1, Commands::MESSAGE_ATTRIBUTES = 0x2, Commands::DISCOVER_VENDOR = 0x3,
  Commands::DISCOVER_SUB_VENDOR = 0x4, Commands::DISCOVER_IMPLEMENTATION_VERSION = 0x5, Commands::DISCOVER_LIST_PROTOCOLS = 0x6, Commands::DISCOVER_AGENT = 0x7,
  Commands::NOTIFY_ERRORS = 0x8, Commands::SET_DEVICE_PERMISSIONS = 0x9, Commands::SET_PROTOCOL_PERMISSIONS = 0xa, Commands::RESET_AGENT_CONFIGURATION = 0xb
}
 

Public Member Functions

 BaseProtocol (Platform &_platform)
 
void handleMessage (Message &msg) override
 
void version (Message &msg) override
 
void attributes (Message &msg) override
 
void messageAttributes (Message &msg) override
 
void discoverVendor (Message &msg)
 
void discoverSubVendor (Message &msg)
 
void discoverImplVersion (Message &msg)
 
void discoverListProtocols (Message &msg)
 
void discoverAgent (Message &msg)
 
void invalidCommand (Message &msg)
 
- Public Member Functions inherited from gem5::scmi::Protocol
 Protocol (Platform &_platform)
 
virtual ~Protocol ()
 
const std::string name () const
 

Protected Member Functions

bool implementedProtocol (Commands message_id) const
 

Protected Attributes

const std::string vendor
 
const std::string subvendor
 
const uint32_t implementationVersion
 
- Protected Attributes inherited from gem5::scmi::Protocol
Platformplatform
 

Static Private Attributes

static const uint32_t PROTOCOL_VERSION = 0x10000
 

Additional Inherited Members

- Static Public Attributes inherited from gem5::scmi::Protocol
static const uint32_t MAX_STRING_SIZE = 15
 

Detailed Description

This protocol describes the properties of the implementation and provides generic error management.

The Base protocol provides commands to:

Definition at line 111 of file scmi_protocols.hh.

Member Enumeration Documentation

◆ Commands

Enumerator
VERSION 
ATTRIBUTES 
MESSAGE_ATTRIBUTES 
DISCOVER_VENDOR 
DISCOVER_SUB_VENDOR 
DISCOVER_IMPLEMENTATION_VERSION 
DISCOVER_LIST_PROTOCOLS 
DISCOVER_AGENT 
NOTIFY_ERRORS 
SET_DEVICE_PERMISSIONS 
SET_PROTOCOL_PERMISSIONS 
RESET_AGENT_CONFIGURATION 

Definition at line 118 of file scmi_protocols.hh.

Constructor & Destructor Documentation

◆ BaseProtocol()

gem5::BaseProtocol::BaseProtocol ( Platform _platform)
explicit

Definition at line 54 of file scmi_protocols.cc.

References fatal_if, gem5::scmi::Protocol::MAX_STRING_SIZE, subvendor, and vendor.

Member Function Documentation

◆ attributes()

void gem5::BaseProtocol::attributes ( Message msg)
overridevirtual

◆ discoverAgent()

void gem5::BaseProtocol::discoverAgent ( Message msg)

◆ discoverImplVersion()

void gem5::BaseProtocol::discoverImplVersion ( Message msg)

◆ discoverListProtocols()

void gem5::BaseProtocol::discoverListProtocols ( Message msg)

◆ discoverSubVendor()

void gem5::BaseProtocol::discoverSubVendor ( Message msg)

◆ discoverVendor()

void gem5::BaseProtocol::discoverVendor ( Message msg)

◆ handleMessage()

void gem5::BaseProtocol::handleMessage ( Message msg)
overridevirtual

◆ implementedProtocol()

bool gem5::BaseProtocol::implementedProtocol ( Commands  message_id) const
protected

◆ invalidCommand()

void gem5::BaseProtocol::invalidCommand ( Message msg)

◆ messageAttributes()

void gem5::BaseProtocol::messageAttributes ( Message msg)
overridevirtual

◆ version()

void gem5::BaseProtocol::version ( Message msg)
overridevirtual

Member Data Documentation

◆ implementationVersion

const uint32_t gem5::scmi::BaseProtocol::implementationVersion
protected

Definition at line 153 of file scmi_protocols.hh.

Referenced by discoverImplVersion().

◆ PROTOCOL_VERSION

const uint32_t gem5::scmi::BaseProtocol::PROTOCOL_VERSION = 0x10000
staticprivate

Definition at line 113 of file scmi_protocols.hh.

Referenced by version().

◆ subvendor

const std::string gem5::scmi::BaseProtocol::subvendor
protected

Definition at line 152 of file scmi_protocols.hh.

Referenced by BaseProtocol(), and discoverSubVendor().

◆ vendor

const std::string gem5::scmi::BaseProtocol::vendor
protected

Definition at line 151 of file scmi_protocols.hh.

Referenced by BaseProtocol(), and discoverVendor().


The documentation for this class was generated from the following files:

Generated on Sat Jun 18 2022 08:14:34 for gem5 by doxygen 1.8.17