> ## 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.

# APM Container API

> This file contains APM container commands and events structures definitions.

**Header:** `spf/api/apm/apm_container_api.h`

## Structures

### `apm_param_id_container_cfg_t`

**Members**

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

### `apm_container_cfg_t`

**Members**

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

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

### `apm_container_type_t`

**Members**

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

### `apm_cont_prop_id_type_t`

**Members**

<ParamField path="version" type="uint32_t">
  version can never be incremented to 2 because it will change below var length array.
</ParamField>

<ParamField path="type_id" type="apm_container_type_t">
  This is not meant to be a variable size array, but due to backward compatibility with previous struct, which based based on container capability ID, we had to do this.
</ParamField>

### `apm_cont_prop_id_graph_pos_t`

**Members**

<ParamField path="graph_pos" type="uint32_t">
  }
</ParamField>

### `apm_cont_prop_id_stack_size_t`

**Members**

<ParamField path="stack_size" type="uint32_t">
  }
</ParamField>

### `apm_cont_prop_id_proc_domain_t`

**Members**

<ParamField path="proc_domain" type="uint32_t">
  }
</ParamField>

### `apm_cont_prop_id_parent_container_t`

**Members**

<ParamField path="parent_container_id" type="uint32_t">
  }
</ParamField>

### `apm_cont_prop_id_heap_id_t`

**Members**

<ParamField path="heap_id" type="uint32_t">
  The container re-maps this id to the actual heap id}
</ParamField>

### `apm_cont_prop_id_peer_heap_id_t`

**Members**

<ParamField path="heap_id" type="uint32_t">
  }
</ParamField>

## Type Definitions

### `apm_cont_prop_id_type_t`

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

### `apm_cont_prop_id_graph_pos_t`

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

### `apm_cont_prop_id_stack_size_t`

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

### `apm_cont_prop_id_proc_domain_t`

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

### `apm_cont_prop_id_parent_container_t`

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

### `apm_cont_prop_id_heap_id_t`

Enumeration for container property Peer-Heap ID

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

### `apm_cont_prop_id_peer_heap_id_t`

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

### `apm_param_id_container_cfg_t`

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

### `apm_container_cfg_t`

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

### `apm_container_type_t`

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

## Macros

### `APM_CONTAINER_PROP_ID_CONTAINER_TYPE`

\< Start of container\_cfg -->

```c theme={null}
#define APM_CONTAINER_PROP_ID_CONTAINER_TYPE 0x08001011
```

### `APM_CONTAINER_PROP_ID_GRAPH_POS`

```c theme={null}
#define APM_CONTAINER_PROP_ID_GRAPH_POS 0x08001012
```

### `APM_CONT_GRAPH_POS_STREAM`

```c theme={null}
#define APM_CONT_GRAPH_POS_STREAM 0x1
```

### `APM_CONT_GRAPH_POS_PER_STR_PER_DEV`

Enumeration for container graph position Stream-Device.

```c theme={null}
#define APM_CONT_GRAPH_POS_PER_STR_PER_DEV 0x2
```

### `APM_CONT_GRAPH_POS_STR_DEV`

Enumeration for container graph position Global Device.

```c theme={null}
#define APM_CONT_GRAPH_POS_STR_DEV 0x3
```

### `APM_CONT_GRAPH_POS_GLOBAL_DEV`

```c theme={null}
#define APM_CONT_GRAPH_POS_GLOBAL_DEV 0x4
```

### `APM_CONTAINER_PROP_ID_STACK_SIZE`

```c theme={null}
#define APM_CONTAINER_PROP_ID_STACK_SIZE 0x08001013
```

### `APM_CONTAINER_PROP_ID_PROC_DOMAIN`

Enumeration for container property ID Processor Domain

```c theme={null}
#define APM_CONTAINER_PROP_ID_PROC_DOMAIN 0x08001014
```

### `APM_CONTAINER_PROP_ID_PARENT_CONTAINER_ID`

Enumeration for parent container property ID

```c theme={null}
#define APM_CONTAINER_PROP_ID_PARENT_CONTAINER_ID 0x080010CB
```

### `APM_CONTAINER_PROP_ID_HEAP_ID`

Enumeration for container property Heap ID

```c theme={null}
#define APM_CONTAINER_PROP_ID_HEAP_ID 0x08001174
```

### `APM_CONT_HEAP_DEFAULT`

```c theme={null}
#define APM_CONT_HEAP_DEFAULT 0x1
```

### `APM_CONT_HEAP_LOW_POWER`

```c theme={null}
#define APM_CONT_HEAP_LOW_POWER 0x2
```

### `APM_CONTAINER_PROP_ID_PEER_HEAP_ID`

```c theme={null}
#define APM_CONTAINER_PROP_ID_PEER_HEAP_ID 0x0800124D
```

### `APM_PARAM_ID_CONTAINER_CONFIG`

```c theme={null}
#define APM_PARAM_ID_CONTAINER_CONFIG 0x08001000
```
