---
name: "intel_security_metee"
section: "3"
platform: "linux"
package: "intel-metee"
version: "6.2.6-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/intel_security_metee"
---

# intel\_security\_metee(3)

C++ class to access CSE/CSME/GSC firmware via a mei interface.

## NAME

intel::security::metee - C++ class to access CSE/CSME/GSC firmware via a mei interface.

## SYNOPSIS

\#include \<meteepp.h\>

### Public Member Functions

**metee** ()\
 **metee** (uint32\_t log\_level, **TeeLogCallback2** log\_callback)\
 **metee** (const GUID &guid)\
 **metee** (const GUID &guid, uint32\_t log\_level)\
 **metee** (const GUID &guid, uint32\_t log\_level, **TeeLogCallback** log\_callback)\
 **metee** (const GUID &guid, uint32\_t log\_level, **TeeLogCallback2** log\_callback)\
 **metee** (const GUID &guid, const struct **tee\_device\_address** &device, uint32\_t log\_level)\
 **metee** (const GUID &guid, const struct **tee\_device\_address** &device, uint32\_t log\_level, **TeeLogCallback** log\_callback)\
 **metee** (const GUID &guid, const struct **tee\_device\_address** &device, uint32\_t log\_level, **TeeLogCallback2** log\_callback)\
 **metee** (const metee &other)=delete\
 **metee** (metee &&other) noexcept\
 **metee** & **operator=** (const **metee** &other)=delete\
 **metee** & **operator=** (**metee** &&other) noexcept\
 virtual **~metee** ()\
 void **cancel\_io** ()\
 void **connect** ()\
 std::vector\< uint8\_t \> **read** (uint32\_t timeout)\
 size\_t **write** (const std::vector\< uint8\_t \> &buffer, uint32\_t timeout)\
 uint32\_t **fw\_status** (uint32\_t fwStatusNum)\
 uint32\_t **trc** ()\
 std::string **kind** ()\
 uint32\_t **log\_level** (uint32\_t log\_level)\
 uint32\_t **log\_level** ()\
 void **log\_callback** (**TeeLogCallback** log\_callback)\
 uint32\_t **max\_msg\_len** ()\
 uint8\_t **protocol\_ver** ()\
 TEE\_DEVICE\_HANDLE **device\_handle** ()\
 std::string **driver\_version** ()\

## Detailed Description

C++ class to access CSE/CSME/GSC firmware via a mei interface.

Main interface class

Definition at line **84** of file **meteepp.h**.

## Constructor & Destructor Documentation

### intel::security::metee::metee () \[inline\]

Default constructor, when connection to specific client is not required

Definition at line **88** of file **meteepp.h**.

### intel::security::metee::metee (uint32\_t log\_level, TeeLogCallback2 log\_callback) \[inline\]

Constructor without client GUID, when connection to specific client is not required

**Parameters**

*log\_level* log level to set (from enum **tee\_log\_level**) \
 *log\_callback* pointer to function to run for log write (type 2)

Definition at line **94** of file **meteepp.h**.

### intel::security::metee::metee (const GUID & guid) \[inline\]

Constructor

**Parameters**

*guid* GUID of the FW client that want to start a session

Definition at line **99** of file **meteepp.h**.

### intel::security::metee::metee (const GUID & guid, uint32\_t log\_level) \[inline\]

Constructor

**Parameters**

*guid* GUID of the FW client that want to start a session \
 *log\_level* log level to set (from enum **tee\_log\_level**)

Definition at line **110** of file **meteepp.h**.

### intel::security::metee::metee (const GUID & guid, uint32\_t log\_level, TeeLogCallback log\_callback) \[inline\]

Constructor

**Parameters**

*guid* GUID of the FW client that want to start a session \
 *log\_level* log level to set (from enum **tee\_log\_level**) \
 *log\_callback* pointer to function to run for log write

Definition at line **117** of file **meteepp.h**.

### intel::security::metee::metee (const GUID & guid, uint32\_t log\_level, TeeLogCallback2 log\_callback) \[inline\]

Constructor

**Parameters**

*guid* GUID of the FW client that want to start a session \
 *log\_level* log level to set (from enum **tee\_log\_level**) \
 *log\_callback* pointer to function to run for log write (type 2)

Definition at line **125** of file **meteepp.h**.

### intel::security::metee::metee (const GUID & guid, const struct tee\_device\_address & device, uint32\_t log\_level) \[inline\]

Constructor

**Parameters**

*guid* GUID of the FW client that want to start a session \
 *device* device address structure \
 *log\_level* log level to set (from enum **tee\_log\_level**)

Definition at line **133** of file **meteepp.h**.

### intel::security::metee::metee (const GUID & guid, const struct tee\_device\_address & device, uint32\_t log\_level, TeeLogCallback log\_callback) \[inline\]

Constructor

**Parameters**

*guid* GUID of the FW client that want to start a session \
 *device* device address structure \
 *log\_level* log level to set (from enum **tee\_log\_level**) \
 *log\_callback* pointer to function to run for log write

Definition at line **142** of file **meteepp.h**.

### intel::security::metee::metee (const GUID & guid, const struct tee\_device\_address & device, uint32\_t log\_level, TeeLogCallback2 log\_callback) \[inline\]

Constructor

**Parameters**

*guid* GUID of the FW client that want to start a session \
 *device* device address structure \
 *log\_level* log level to set (from enum **tee\_log\_level**) \
 *log\_callback* pointer to function to run for log write (type 2)

Definition at line **156** of file **meteepp.h**.

### intel::security::metee::metee (const metee & other) \[delete\]

Copy constructor - disabled

### intel::security::metee::metee (metee && other) \[inline\], \[noexcept\]

Move constructor

**Parameters**

*other* Object to move from

Definition at line **170** of file **meteepp.h**.

### virtual intel::security::metee::~metee () \[inline\], \[virtual\]

Destructor, disconnects, if connected

Definition at line **190** of file **meteepp.h**.

## Member Function Documentation

### void intel::security::metee::cancel\_io () \[inline\]

Try to stop all in-process reads and writes

Definition at line **196** of file **meteepp.h**.

### void intel::security::metee::connect () \[inline\]

Connects to the TEE driver and starts a session

Definition at line **202** of file **meteepp.h**.

### TEE\_DEVICE\_HANDLE intel::security::metee::device\_handle () \[inline\]

Returns handle of TEE device Obtains HECI device handle on Windows and mei device file descriptor on Linux

**Returns**

the handle of the session.

Definition at line **349** of file **meteepp.h**.

### std::string intel::security::metee::driver\_version () \[inline\]

Obtains version of the TEE device driver Not implemented on Linux

**Returns**

Driver version as dotted string.

Definition at line **358** of file **meteepp.h**.

### uint32\_t intel::security::metee::fw\_status (uint32\_t fwStatusNum) \[inline\]

Retrieves specified FW status register.

**Parameters**

*fwStatusNum* The FW status register number (0-5).

**Returns**

obtained FW status.

Definition at line **253** of file **meteepp.h**.

### std::string intel::security::metee::kind () \[inline\]

Retrieves device kind.

**Returns**

kind string value.

Definition at line **285** of file **meteepp.h**.

### void intel::security::metee::log\_callback (TeeLogCallback log\_callback) \[inline\]

Set log callback

**Parameters**

*log\_callback* pointer to function to run for log write, set NULL to use built-in function

Definition at line **322** of file **meteepp.h**.

### uint32\_t intel::security::metee::log\_level () \[inline\]

Retrieve current log level

**Returns**

current log level

Definition at line **313** of file **meteepp.h**.

### uint32\_t intel::security::metee::log\_level (uint32\_t log\_level) \[inline\]

Set log level

**Parameters**

*log\_level* log level to set

**Returns**

previous log level

Definition at line **304** of file **meteepp.h**.

### uint32\_t intel::security::metee::max\_msg\_len () \[inline\]

Retrieve client maximum message length (MTU)

**Returns**

client maximum message length.

Definition at line **331** of file **meteepp.h**.

### metee & intel::security::metee::operator= (const metee & other) \[delete\]

Copy operator - disabled

### metee & intel::security::metee::operator= (metee && other) \[inline\], \[noexcept\]

Move operator

**Parameters**

*other* Object to move from

Definition at line **181** of file **meteepp.h**.

### uint8\_t intel::security::metee::protocol\_ver () \[inline\]

Retrieve client protocol version

**Returns**

client protocol version.

Definition at line **340** of file **meteepp.h**.

### std::vector\< uint8\_t \> intel::security::metee::read (uint32\_t timeout) \[inline\]

Read data from the TEE device synchronously.

**Parameters**

*timeout* The timeout to complete read in milliseconds, zero for infinite

**Returns**

vector with data read from the TEE device

Definition at line **216** of file **meteepp.h**.

### uint32\_t intel::security::metee::trc () \[inline\]

Retrieves TRC register.

**Returns**

TRC value.

Definition at line **269** of file **meteepp.h**.

### size\_t intel::security::metee::write (const std::vector\< uint8\_t \> & buffer, uint32\_t timeout) \[inline\]

Writes the specified buffer to the TEE device synchronously.

**Parameters**

*buffer* vector containing the data to be written to the TEE device. \
 *timeout* The timeout to complete write in milliseconds, zero for infinite

**Returns**

the number of bytes written

Definition at line **236** of file **meteepp.h**.

## Author

Generated automatically by Doxygen for metee from the source code.
