接口设计
5 Nov 2024
Read time: 1 minute(s)
| 函数原型 | int aic_spienc_alg_init(struct crypto_skcipher *tfm) |
| 功能说明 | 对称密钥算法的初始化函数 |
| 参数定义 | struct crypto_skcipher *tfm 算法实例指针 |
| 返回值 | 0: 成功 其他: 失败 |
| 注意事项 | - |
| 函数原型 | int aic_spienc_probe(struct platform_device *pdev) |
| 功能说明 | 驱动的初始化函数 |
| 参数定义 | struct platform_device *pdev 设备指针 |
| 返回值 | 0: 成功 其他: 失败 |
| 注意事项 | - |
| 函数原型 | int aic_spienc_attach_bus(struct aic_spienc_drvdata *drvdata, u32 bus) |
| 功能说明 | 将 SPI ENC 连接到指定的 SPI 控制器 |
| 参数定义 | struct aic_spienc_drvdata *drvdata 设备驱动数据指针 busSPI 控制器 ID |
| 返回值 | 0: 成功 其他: 失败 |
| 注意事项 | - |
| 函数原型 | int aic_spienc_encrypt(struct skcipher_request *req) |
| 功能说明 | 配置 SPI_ENC 启动数据加密 |
| 参数定义 | struct skcipher_request *req 加密请求指针 |
| 返回值 | 0: 成功 其他: 失败 |
| 注意事项 | - |
| 函数原型 | int aic_spienc_decrypt(struct skcipher_request *req) |
| 功能说明 | 配置 SPI_ENC 启动数据解密 |
| 参数定义 | struct skcipher_request *req 解密请求指针 |
| 返回值 | 0: 成功 其他: 失败 |
| 注意事项 | - |
Driver 层接口设计
| 函数原型 | void drv_spienc_set_cfg(u32 spi_bus, u32 addr, u32 cpos, u32 clen) |
|---|---|
| 功能说明 | 配置加密数据信息 |
| 参数定义 |
|
| 返回值 | 无 |
| 注意事项 | - |
| 函数原型 | void drv_spienc_start(void) |
|---|---|
| 功能说明 | 启动 SPI_ENC |
| 参数定义 | 无 |
| 返回值 | 无 |
| 注意事项 | - |
| 函数原型 | void drv_spienc_stop(void) |
|---|---|
| 功能说明 | 停止 SPI_ENC |
| 参数定义 | 无 |
| 返回值 | 无 |
| 注意事项 | - |
| 函数原型 | int drv_spienc_check_empty(void) |
|---|---|
| 功能说明 | 检查本次读取数据是否全为空 |
| 参数定义 | 无 |
| 返回值 | 0,本次传输数据不全为空。1,本次传输数据全为空 |
| 注意事项 | - |
HAL 层接口设计
HAL 层的函数接口声明存放在 hal_spienc.h
中,主要接口有:
int hal_spienc_init(void); void hal_spienc_set_cfg(u32 spi_bus, u32 addr, u32 cpos, u32 clen); void hal_spienc_start(void); void hal_spienc_stop(void); int hal_spienc_check_empty(void);
