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

# Gpr_core_routines

## Functions

### `gpr_init`

Performs external initialization of the GPR infrastructure.

Each supported domain calls this function once during system bring-up or during runtime to initialize the GPR infrastructure for that domain. The GPR infrastructure must be initialized before any other GPR APIs can be called.

@codeexample @lstlisting #include "gpr\_api.h"

int32\_t rc = gpr\_init(); if ( rc )  @endlstlisting @newpage

```cpp theme={null}
GPR_EXTERNAL uint32_t gpr_init(void)
```

**Returns**

AR\_EOK  When successful.

### `gpr_init_domain`

To initialize GPR with particular domain.

```cpp theme={null}
GPR_EXTERNAL uint32_t gpr_init_domain(uint32_t domain_id)
```

**Returns**

AR\_EOK  When successful.

### `gpr_deinit`

Performs external deinitialization of the GPR infrastructure.

Each supported domain calls this function once during system shutdown or during runtime to deinitialize the GPR infrastructure for that domain. No functions except for gpr\_init() can be called after the GPR infrastructure is deinitialized.

@codeexample @lstlisting #include "gpr\_api.h"

int32\_t rc = gpr\_deinit(); if ( rc )  @endlstlisting @newpage

```cpp theme={null}
GPR_EXTERNAL uint32_t gpr_deinit(void)
```

**Returns**

AR\_EOK  When successful.
