> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Spf_mods_irm

## Structures

### `irm_metric_id_q6_hw_info_t`

**Members**

<ParamField path="num_hw_threads" type="uint32_t" />

<ParamField path="q6_arch_version" type="uint32_t" />

### `irm_metric_id_timestamp_t`

**Members**

<ParamField path="timestamp_ms" type="uint64_t" />

## Type Definitions

### `irm_metric_id_processor_cycles_t`

```cpp theme={null}
typedef struct irm_metric_id_processor_cycles_t irm_metric_id_processor_cycles_t
```

### `irm_metric_id_current_clock_t`

```cpp theme={null}
typedef struct irm_metric_id_current_clock_t irm_metric_id_current_clock_t
```

### `irm_metric_id_heap_info_t`

```cpp theme={null}
typedef struct irm_metric_id_heap_info_t irm_metric_id_heap_info_t
```

### `irm_per_heap_id_info_payload_t`

```cpp theme={null}
typedef struct irm_per_heap_id_info_payload_t irm_per_heap_id_info_payload_t
```

### `irm_metric_id_packet_count_t`

```cpp theme={null}
typedef struct irm_metric_id_packet_count_t irm_metric_id_packet_count_t
```

### `irm_metric_id_mem_transactions_t`

```cpp theme={null}
typedef struct irm_metric_id_mem_transactions_t irm_metric_id_mem_transactions_t
```

### `param_id_irm_version_t`

```cpp theme={null}
typedef struct param_id_irm_version_t param_id_irm_version_t
```

### `irm_metric_id_q6_hw_info_t`

```cpp theme={null}
typedef struct irm_metric_id_q6_hw_info_t irm_metric_id_q6_hw_info_t
```

### `irm_metric_id_timestamp_t`

```cpp theme={null}
typedef struct irm_metric_id_timestamp_t irm_metric_id_timestamp_t
```

### `param_id_irm_system_capabilities_t`

```cpp theme={null}
typedef struct param_id_irm_system_capabilities_t param_id_irm_system_capabilities_t
```

### `irm_system_capabilities_t`

```cpp theme={null}
typedef struct irm_system_capabilities_t irm_system_capabilities_t
```

### `param_id_irm_metric_capabilities_t`

```cpp theme={null}
typedef struct param_id_irm_metric_capabilities_t param_id_irm_metric_capabilities_t
```

### `irm_metric_capabilities_t`

```cpp theme={null}
typedef struct irm_metric_capabilities_t irm_metric_capabilities_t
```

### `irm_metric_capability_block_t`

```cpp theme={null}
typedef struct irm_metric_capability_block_t irm_metric_capability_block_t
```

### `param_id_irm_profiling_params_t`

```cpp theme={null}
typedef struct param_id_irm_profiling_params_t param_id_irm_profiling_params_t
```

### `param_id_enable_disable_metrics_t`

```cpp theme={null}
typedef struct param_id_enable_disable_metrics_t param_id_enable_disable_metrics_t
```

### `irm_enable_disable_block_t`

```cpp theme={null}
typedef struct irm_enable_disable_block_t irm_enable_disable_block_t
```

### `param_id_report_metrics_t`

```cpp theme={null}
typedef struct param_id_report_metrics_t param_id_report_metrics_t
```

### `irm_report_metrics_block_t`

```cpp theme={null}
typedef struct irm_report_metrics_block_t irm_report_metrics_block_t
```

### `irm_report_metric_t`

```cpp theme={null}
typedef struct irm_report_metric_t irm_report_metric_t
```

### `irm_report_metric_payload_t`

```cpp theme={null}
typedef struct irm_report_metric_payload_t irm_report_metric_payload_t
```

## Macros

### `IRM_MINOR_VERSION`

Minor version of the Integrated Resource Monitor (IRM) module.

```c theme={null}
#define IRM_MINOR_VERSION 1
```

### `IRM_PROCESSOR_TYPE_UNSUPPORTED`

Type of IRM processor is invalid or unknown.

```c theme={null}
#define IRM_PROCESSOR_TYPE_UNSUPPORTED 0
```

### `IRM_PROCESSOR_TYPE_HEXAGON`

IRM processor type is a Hexagon processor.

```c theme={null}
#define IRM_PROCESSOR_TYPE_HEXAGON 1
```

### `IRM_PROCESSOR_TYPE_ARM`

IRM processor type is an Arm processor.

```c theme={null}
#define IRM_PROCESSOR_TYPE_ARM 2
```

### `IRM_PROCESSOR_TYPE_x86`

IRM processor type is an x86 processor.

```c theme={null}
#define IRM_PROCESSOR_TYPE_x86 3
```

### `IRM_BLOCK_ID_UNSUPPORTED`

ID for the IRM block is invalid or unknown.

```c theme={null}
#define IRM_BLOCK_ID_UNSUPPORTED 0
```

### `IRM_BLOCK_ID_PROCESSOR`

IRM block is a processor.

```c theme={null}
#define IRM_BLOCK_ID_PROCESSOR 1
```

### `IRM_BLOCK_ID_CONTAINER`

IRM block is a container.

```c theme={null}
#define IRM_BLOCK_ID_CONTAINER 2
```

### `IRM_BLOCK_ID_MODULE`

IRM block is a module.

```c theme={null}
#define IRM_BLOCK_ID_MODULE 3
```

### `IRM_MODULE_INSTANCE_ID`

Identifier for the Integrated Resource Monitor (IRM) module.

```c theme={null}
#define IRM_MODULE_INSTANCE_ID 6
```

### `IRM_METRIC_ID_PROCESSOR_CYCLES`

Number of elapsed processor cycles during the given frame period (frame\_size\_ms).

```c theme={null}
#define IRM_METRIC_ID_PROCESSOR_CYCLES 0x0800120B
```

### `IRM_BASIC_METRIC_ID_CURRENT_CLOCK`

Current system clock rate.

```c theme={null}
#define IRM_BASIC_METRIC_ID_CURRENT_CLOCK 0x0800120C
```

### `IRM_METRIC_ID_HEAP_INFO`

Information related to the heap memory usage during the frame size period (irm\_report\_metric\_payload\_t::frame\_size\_ms), including:

```c theme={null}
#define IRM_METRIC_ID_HEAP_INFO 0x0800120D
```

### `IRM_METRIC_ID_PACKET_COUNT`

Number of packets executed during the frame size period.

```c theme={null}
#define IRM_METRIC_ID_PACKET_COUNT 0x0800120E
```

### `IRM_METRIC_ID_MEM_TRANSACTIONS`

Number of memory read and writes that occurred during the frame size period (irm\_report\_metric\_payload\_t::frame\_size\_ms).

```c theme={null}
#define IRM_METRIC_ID_MEM_TRANSACTIONS 0x0800120F
```

### `PARAM_ID_IRM_VERSION`

Identifier for the parameter that gets the IRM version.

```c theme={null}
#define PARAM_ID_IRM_VERSION 0x0800119E
```

### `IRM_METRIC_ID_Q6_HW_INFO`

```c theme={null}
#define IRM_METRIC_ID_Q6_HW_INFO 0x08001322
```

### `IRM_METRIC_ID_TIMESTAMP`

```c theme={null}
#define IRM_METRIC_ID_TIMESTAMP 0x08001323
```

### `PARAM_ID_IRM_SYSTEM_CAPABILITIES`

Identifier for the parameter that gets the IRM system capabilities.

```c theme={null}
#define PARAM_ID_IRM_SYSTEM_CAPABILITIES 0x0800108B
```

### `PARAM_ID_IRM_METRIC_CAPABILITIES`

Identifier for the parameter that gets IRM metric capabilities.

```c theme={null}
#define PARAM_ID_IRM_METRIC_CAPABILITIES 0x080010BC
```

### `PARAM_ID_IRM_PROFILING_PARAMS`

Identifier for the parameter that gets the IRM profiling parameters.

```c theme={null}
#define PARAM_ID_IRM_PROFILING_PARAMS 0x0800119A
```

### `PARAM_ID_IRM_ENABLE_DISABLE_PROFILING`

Identifier for the parameter that enables or disables profiling metrics on specific IRM blocks and instances.

```c theme={null}
#define PARAM_ID_IRM_ENABLE_DISABLE_PROFILING 0x080011AA
```

### `PARAM_ID_IRM_REPORT_METRICS`

Identifier for the parameter that reports the profiled information of all enabled metrics for each instance of provided block IDs.

```c theme={null}
#define PARAM_ID_IRM_REPORT_METRICS 0x08001210
```
