.TH "intel::security::metee" 3 "metee" \" -*- nroff -*- .ad l .nh .SH NAME intel::security::metee \- C++ class to access CSE/CSME/GSC firmware via a mei interface\&. .SH SYNOPSIS .br .PP .PP \fR#include \fP .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBmetee\fP ()" .br .ti -1c .RI "\fBmetee\fP (const GUID &guid, uint32_t \fBlog_level\fP=\fBTEE_LOG_LEVEL_VERBOSE\fP, \fBTeeLogCallback\fP \fBlog_callback\fP=nullptr)" .br .ti -1c .RI "\fBmetee\fP (const GUID &guid, const struct \fBtee_device_address\fP &device, uint32_t \fBlog_level\fP=\fBTEE_LOG_LEVEL_VERBOSE\fP, \fBTeeLogCallback\fP \fBlog_callback\fP=nullptr)" .br .ti -1c .RI "\fBmetee\fP (const \fBmetee\fP &other)=delete" .br .ti -1c .RI "\fBmetee\fP (\fBmetee\fP &&other) noexcept" .br .ti -1c .RI "\fBmetee\fP & \fBoperator=\fP (const \fBmetee\fP &other)=delete" .br .ti -1c .RI "\fBmetee\fP & \fBoperator=\fP (\fBmetee\fP &&other) noexcept" .br .ti -1c .RI "virtual \fB~metee\fP ()" .br .ti -1c .RI "void \fBconnect\fP ()" .br .ti -1c .RI "std::vector< uint8_t > \fBread\fP (uint32_t timeout)" .br .ti -1c .RI "size_t \fBwrite\fP (const std::vector< uint8_t > &buffer, uint32_t timeout)" .br .ti -1c .RI "uint32_t \fBfw_status\fP (uint32_t fwStatusNum)" .br .ti -1c .RI "uint32_t \fBtrc\fP ()" .br .ti -1c .RI "std::string \fBkind\fP ()" .br .ti -1c .RI "uint32_t \fBlog_level\fP (uint32_t log_level)" .br .ti -1c .RI "uint32_t \fBlog_level\fP ()" .br .ti -1c .RI "void \fBlog_callback\fP (\fBTeeLogCallback\fP log_callback)" .br .ti -1c .RI "uint32_t \fBmax_msg_len\fP ()" .br .ti -1c .RI "uint8_t \fBprotocol_ver\fP ()" .br .ti -1c .RI "TEE_DEVICE_HANDLE \fBdevice_handle\fP ()" .br .ti -1c .RI "std::string \fBdriver_version\fP ()" .br .in -1c .SH "Detailed Description" .PP C++ class to access CSE/CSME/GSC firmware via a mei interface\&. Main interface class .PP Definition at line \fB84\fP of file \fBmeteepp\&.h\fP\&. .SH "Constructor & Destructor Documentation" .PP .SS "intel::security::metee::metee ()\fR [inline]\fP" Default constructor .PP Definition at line \fB88\fP of file \fBmeteepp\&.h\fP\&. .SS "intel::security::metee::metee (const GUID & guid, uint32_t log_level = \fR\fBTEE_LOG_LEVEL_VERBOSE\fP\fP, \fBTeeLogCallback\fP log_callback = \fRnullptr\fP)\fR [inline]\fP" Constructor .PP \fBParameters\fP .RS 4 \fIguid\fP GUID of the FW client that want to start a session .br \fIlog_level\fP log level to set (from enum \fBtee_log_level\fP) .br \fIlog_callback\fP pointer to function to run for log write, set NULL to use built-in function .RE .PP .PP Definition at line \fB101\fP of file \fBmeteepp\&.h\fP\&. .SS "intel::security::metee::metee (const GUID & guid, const struct \fBtee_device_address\fP & device, uint32_t log_level = \fR\fBTEE_LOG_LEVEL_VERBOSE\fP\fP, \fBTeeLogCallback\fP log_callback = \fRnullptr\fP)\fR [inline]\fP" Constructor .PP \fBParameters\fP .RS 4 \fIguid\fP GUID of the FW client that want to start a session .br \fIdevice\fP device address structure .br \fIlog_level\fP log level to set (from enum \fBtee_log_level\fP) .br \fIlog_callback\fP pointer to function to run for log write, set NULL to use built-in function .RE .PP .PP Definition at line \fB117\fP of file \fBmeteepp\&.h\fP\&. .SS "intel::security::metee::metee (const \fBmetee\fP & other)\fR [delete]\fP" Copy constructor - disabled .SS "intel::security::metee::metee (\fBmetee\fP && other)\fR [inline]\fP, \fR [noexcept]\fP" Move constructor .PP \fBParameters\fP .RS 4 \fIother\fP Object to move from .RE .PP .PP Definition at line \fB132\fP of file \fBmeteepp\&.h\fP\&. .SS "virtual intel::security::metee::~metee ()\fR [inline]\fP, \fR [virtual]\fP" Destructor, disconnects, if connected .PP Definition at line \fB152\fP of file \fBmeteepp\&.h\fP\&. .SH "Member Function Documentation" .PP .SS "void intel::security::metee::connect ()\fR [inline]\fP" Connects to the TEE driver and starts a session .PP Definition at line \fB158\fP of file \fBmeteepp\&.h\fP\&. .SS "TEE_DEVICE_HANDLE intel::security::metee::device_handle ()\fR [inline]\fP" Returns handle of TEE device Obtains HECI device handle on Windows and mei device file descriptor on Linux .PP \fBReturns\fP .RS 4 the handle of the session\&. .RE .PP .PP Definition at line \fB305\fP of file \fBmeteepp\&.h\fP\&. .SS "std::string intel::security::metee::driver_version ()\fR [inline]\fP" Obtains version of the TEE device driver Not implemented on Linux .PP \fBReturns\fP .RS 4 Driver version as dotted string\&. .RE .PP .PP Definition at line \fB314\fP of file \fBmeteepp\&.h\fP\&. .SS "uint32_t intel::security::metee::fw_status (uint32_t fwStatusNum)\fR [inline]\fP" Retrieves specified FW status register\&. .PP \fBParameters\fP .RS 4 \fIfwStatusNum\fP The FW status register number (0-5)\&. .RE .PP \fBReturns\fP .RS 4 obtained FW status\&. .RE .PP .PP Definition at line \fB209\fP of file \fBmeteepp\&.h\fP\&. .SS "std::string intel::security::metee::kind ()\fR [inline]\fP" Retrieves device kind\&. .PP \fBReturns\fP .RS 4 kind string value\&. .RE .PP .PP Definition at line \fB241\fP of file \fBmeteepp\&.h\fP\&. .SS "void intel::security::metee::log_callback (\fBTeeLogCallback\fP log_callback)\fR [inline]\fP" Set log callback .PP \fBParameters\fP .RS 4 \fIlog_callback\fP pointer to function to run for log write, set NULL to use built-in function .RE .PP .PP Definition at line \fB278\fP of file \fBmeteepp\&.h\fP\&. .SS "uint32_t intel::security::metee::log_level ()\fR [inline]\fP" Retrieve current log level .PP \fBReturns\fP .RS 4 current log level .RE .PP .PP Definition at line \fB269\fP of file \fBmeteepp\&.h\fP\&. .SS "uint32_t intel::security::metee::log_level (uint32_t log_level)\fR [inline]\fP" Set log level .PP \fBParameters\fP .RS 4 \fIlog_level\fP log level to set .RE .PP \fBReturns\fP .RS 4 previous log level .RE .PP .PP Definition at line \fB260\fP of file \fBmeteepp\&.h\fP\&. .SS "uint32_t intel::security::metee::max_msg_len ()\fR [inline]\fP" Retrieve client maximum message length (MTU) .PP \fBReturns\fP .RS 4 client maximum message length\&. .RE .PP .PP Definition at line \fB287\fP of file \fBmeteepp\&.h\fP\&. .SS "\fBmetee\fP & intel::security::metee::operator= (const \fBmetee\fP & other)\fR [delete]\fP" Copy operator - disabled .SS "\fBmetee\fP & intel::security::metee::operator= (\fBmetee\fP && other)\fR [inline]\fP, \fR [noexcept]\fP" Move operator .PP \fBParameters\fP .RS 4 \fIother\fP Object to move from .RE .PP .PP Definition at line \fB143\fP of file \fBmeteepp\&.h\fP\&. .SS "uint8_t intel::security::metee::protocol_ver ()\fR [inline]\fP" Retrieve client protocol version .PP \fBReturns\fP .RS 4 client protocol version\&. .RE .PP .PP Definition at line \fB296\fP of file \fBmeteepp\&.h\fP\&. .SS "std::vector< uint8_t > intel::security::metee::read (uint32_t timeout)\fR [inline]\fP" Read data from the TEE device synchronously\&. .PP \fBParameters\fP .RS 4 \fItimeout\fP The timeout to complete read in milliseconds, zero for infinite .RE .PP \fBReturns\fP .RS 4 vector with data read from the TEE device .RE .PP .PP Definition at line \fB172\fP of file \fBmeteepp\&.h\fP\&. .SS "uint32_t intel::security::metee::trc ()\fR [inline]\fP" Retrieves TRC register\&. .PP \fBReturns\fP .RS 4 TRC value\&. .RE .PP .PP Definition at line \fB225\fP of file \fBmeteepp\&.h\fP\&. .SS "size_t intel::security::metee::write (const std::vector< uint8_t > & buffer, uint32_t timeout)\fR [inline]\fP" Writes the specified buffer to the TEE device synchronously\&. .PP \fBParameters\fP .RS 4 \fIbuffer\fP vector containing the data to be written to the TEE device\&. .br \fItimeout\fP The timeout to complete write in milliseconds, zero for infinite .RE .PP \fBReturns\fP .RS 4 the number of bytes written .RE .PP .PP Definition at line \fB192\fP of file \fBmeteepp\&.h\fP\&. .SH "Author" .PP Generated automatically by Doxygen for metee from the source code\&.