drvbox
drvbox 提供驱动空间(driver box)与用户空间(usr box)之间的执行区域切换功能,支持修改对应的 PMP (Physical Memory Protection)/MPU (Memory Protection Unit) 配置,实现驱动隔离机制下的安全域切换。
头文件清单
接口清单
| 接口名称 | 功能简述 |
|---|---|
| osal_drvmgr_switch_to_drvbox | 将执行区域从用户空间切换至驱动空间,并修改对应的PMP/MPU配置 |
| osal_drvmgr_switch_to_usrbox | 将执行区域从驱动空间切换回用户空间,并修改对应的PMP/MPU配置 |
Functions
osal_drvmgr_switch_to_drvbox
头文件清单
功能说明
- 将当前执行区域从用户空间(usr box)切换至驱动空间(driver box),同时修改对应的PMP/MPU配置
- 通过drv_id参数校验调用者对驱动的访问权限,实现驱动隔离机制下的安全域切换
- 仅支持在seliteos系统下调用
前置条件
- 调用时序约束:当前执行上下文位于用户空间(common usr lib),禁止在内核态或驱动空间中调用
- 上下文限制:仅支持在seliteos系统下调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| drv_id | unsigned int | 已注册的合法驱动标识,用于校验调用者对驱动的访问权限 | 0 ~ 31 |
返回值
- 返回类型:unsigned int
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| LOS_OK(0) | 域切换成功 | 驱动权限校验通过,区域切换成功 |
| DRV_BOX_INVALID_SWITCH(1) | 无需执行切换 | 当前系统状态限制导致无需执行切换流程 |
| DRV_BOX_SWITCH_FAIL(2) | 权限被拒绝 | 驱动访问权限校验未通过 |
osal_drvmgr_switch_to_usrbox
头文件清单
功能说明
- 将当前执行区域从驱动空间(driver box)切换回用户空间(usr box),同时修改对应的PMP/MPU配置
- 与osal_drvmgr_switch_to_drvbox配对使用,完成驱动空间操作后的域切换回退
- 仅支持在seliteos系统下调用
前置条件
- 调用时序约束:当前执行上下文位于用户空间(common usr lib),且此前已通过osal_drvmgr_switch_to_drvbox成功切换至驱动空间
- 依赖关系:调用时序上须与osal_drvmgr_switch_to_drvbox成对使用,确保域切换的正确回退