---
title: DG_InitPirOpts
description: "初始化PIR函数组。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/tee/kcal/kunpeng_kcal_16_0035.html
sourcePath: /source/zh/kunpengcctrustzone/tee/kcal/kunpeng_kcal_16_0035.html
indexId: 9421c1489712626ab0c69b05803982a7e481fb10017262081abfe4de6b487f5164
---
# DG_InitPirOpts

初始化PIR函数组。

```
DG_PIR_Opts DG_InitPirOpts();
```

#### 参数

无


**表1 DG_PIR_Opts结构体**

| 名称 | 类型 | 说明 |
| --- | --- | --- |
| initTeeCtx | 函数指针 | int (\*initTeeCtx)(DG\_Cfg dgCfg, DG\_TeeCtx \*\*dgTeeCtx); 初始化KCAL对象 |
| releaseTeeCtx | 函数指针 | void (\*releaseTeeCtx)(DG\_TeeCtx \*\*dgTeeCtx); 释放KCAL对象 |
| setTeeNodeInfos | 函数指针 | int (\*setTeeNodeInfos)(DG\_TeeCtx \*dgTeeCtx, struct TeeNodeInfos \*teeNodeInfos); 设置所有节点信息 |
| offlineCalculate | 函数指针 | int (\*offlineCalculate)(DG\_TeeCtx \*dgTeeCtx, DG\_PairList \*pairList, DG\_BucketMap \*\*bucketMap); 服务端执行离线计算 |
| clientCalculate | 函数指针 | int (\*clientCalculate)(DG\_TeeCtx \*dgTeeCtx, DG\_DummyMode dummyMode, DG\_TeeInput \*input, DG\_TeeOutput \*\*output); 客户端执行线上操作 |
| serverCalculate | 函数指针 | int (\*serverCalculate)(DG\_TeeCtx \*dgTeeCtx, DG\_BucketMap \*bucketMap); 服务端执行线上操作 |
| releaseOutput | 函数指针 | void (\*releaseOutput)(DG\_TeeOutput \*\*output); 释放输出资源 |
| releaseBucketMap | 函数指针 | void (\*releaseBucketMap)(DG\_BucketMap \*\*bucketMap); 释放服务端线下操作生成的分桶数据 |


#### 返回值

DG_PIR_Opts：PIR类操作集合对象。


#### 错误码

无


#### 依赖

#include "data_guard_mpc.h" ：该接口声明所在的头文件。


#### 示例

此函数用于创建并初始化PIR类算子的函数组，PIR类算子的所有对外函数都在DG_PIR_Opts中。


```
#include  "data_guard_mpc.h"
DG_PIR_Opts pirOpts = DG_InitPirOpts();
```
