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

# AR IDS

> GUID interpretation.

**Header:** `spf/api/ar_utils/ar_ids.h`

## Macros

### `AR_INVALID_INSTANCE_ID`

Zero is an invalid instance ID.

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

### `AR_SPF_STATIC_INSTANCE_ID_RANGE_BEGIN`

spf static instance ID range is from 1-0x2000 (including both ends) E.g.

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

### `AR_SPF_STATIC_INSTANCE_ID_RANGE_END`

```c theme={null}
#define AR_SPF_STATIC_INSTANCE_ID_RANGE_END AR_NON_GUID(0x2000)
```

### `AR_PLATFORM_DRIVER_STATIC_INSTANCE_ID_RANGE_BEGIN`

Static instance ID range for platform driver 0x2001-0x4000 (including both ends)

```c theme={null}
#define AR_PLATFORM_DRIVER_STATIC_INSTANCE_ID_RANGE_BEGIN AR_NON_GUID(0x2001)
```

### `AR_PLATFORM_DRIVER_STATIC_INSTANCE_ID_RANGE_END`

```c theme={null}
#define AR_PLATFORM_DRIVER_STATIC_INSTANCE_ID_RANGE_END AR_NON_GUID(0x4000)
```

### `AR_DYNAMIC_INSTANCE_ID_RANGE_BEGIN`

Dynamic instance IDs starts from 0x4001.

```c theme={null}
#define AR_DYNAMIC_INSTANCE_ID_RANGE_BEGIN AR_NON_GUID(0x4001)
```

### `AR_PORT_ID_INVALID`

Following masks apply to Port-IDs.

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

### `AR_PORT_DATA_TYPE_MASK`

Control ports have MSB set.

```c theme={null}
#define AR_PORT_DATA_TYPE_MASK AR_NON_GUID(0x80000000)
```

### `AR_PORT_DATA_TYPE_SHIFT`

```c theme={null}
#define AR_PORT_DATA_TYPE_SHIFT 31
```

### `AR_PORT_DATA_TYPE_DATA`

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

### `AR_PORT_DATA_TYPE_CONTROL`

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

### `AR_CONTROL_PORT_TYPE_MASK`

```c theme={null}
#define AR_CONTROL_PORT_TYPE_MASK AR_NON_GUID(0x40000000)
```

### `AR_CONTROL_PORT_TYPE_SHIFT`

```c theme={null}
#define AR_CONTROL_PORT_TYPE_SHIFT 30
```

### `AR_CONTROL_PORT_TYPE_STATIC`

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

### `AR_CONTROL_PORT_TYPE_DYNAMIC`

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

### `AR_PORT_DIR_TYPE_MASK`

LSB determines if a port id input (0) or output (1) input - even output - odd.

```c theme={null}
#define AR_PORT_DIR_TYPE_MASK AR_NON_GUID(0x00000001)
```

### `AR_PORT_DIR_TYPE_SHIFT`

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

### `AR_PORT_DIR_TYPE_INPUT`

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

### `AR_PORT_DIR_TYPE_OUTPUT`

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