下载
中文
注册

halHdcGetSessionAttr

函数功能

获取HDC会话创建者是否有root权限,以及HDC会话的运行环境、vfid等信息。

命令字在“enum drvHdcSessionAttr”中定义。运行环境、vfid等在虚拟化环境中使用。

函数原型

drvError_t halHdcGetSessionAttr(HDC_SESSION session, int attr, int *value)

参数说明

参数名

输入/输出

说明

session

输入

指定查询的会话对象。

类型:HDC_SESSION

attr

输入

命令字,取值范围如下:

enum drvHdcSessionAttr {
    HDC_SESSION_ATTR_DEV_ID = 0, /* 获取设备id */
    HDC_SESSION_ATTR_UID = 1, /* 获取当前session进程是否有root权限 */
    HDC_SESSION_ATTR_RUN_ENV = 2, /* 获取当前环运行境类型 */
    HDC_SESSION_ATTR_VFID = 3, /* 获取vfid,虚拟化场景使用 */
    HDC_SESSION_ATTR_LOCAL_CREATE_PID = 4, /* 获取本端进程pid */
    HDC_SESSION_ATTR_PEER_CREATE_PID = 5, /* 获取对端进程pid */
    HDC_SESSION_ATTR_STATUS = 6,/* 获取session状态 */
    HDC_SESSION_ATTR_DFX = 7, /* 内核打印session的维测信息 */
    HDC_SESSION_ATTR_MAX
};

类型:int。

value

输出

  • 当attr为HDC_SESSION_ATTR_RUN_ENV时,返回host的环境信息,类型如下:
    #define HDCDRV_SESSION_RUN_ENV_UNKNOW 0 /* 初始值 */
    #define HDCDRV_SESSION_RUN_ENV_PHYSICAL 1 /* 表示物理环境 */
    #define HDCDRV_SESSION_RUN_ENV_PHYSICAL_CONTAINER 2 /* 表示物理机中的容器环境 */
    #define HDCDRV_SESSION_RUN_ENV_VIRTUAL 3 /* 表示虚拟机形态 */
    #define HDCDRV_SESSION_RUN_ENV_VIRTUAL_CONTAINER 4 /* 表示虚拟机中容器场景 */
  • 当attr为HDC_SESSION_ATTR_DEV_ID时,返回session对应的设备ID。
  • 当attr为HDC_SESSION_ATTR_UID时,返回1为root权限,0为非root权限。
  • 当attr为HDC_SESSION_ATTR_VFID时,获取的是vfid。
  • 当attr为HDC_SESSION_ATTR_LOCAL_CREATE_PID时,获取的是本端进程的pid。
  • 当attr为HDC_SESSION_ATTR_PEER_CREATE_PID时,获取的是对端进程的pid
  • 当attr为HDC_SESSION_ATTR_STATUS时,获取的是当前session的状态。
  • 当attr为HDC_SESSION_ATTR_DFX时,在内核日志打印session的维测信息。当输出value>=0,代表内核日志中session维测信息打印正常,当输出value<0时,代表内核日志中session维测信息打印失败。

返回值说明

  • 0:DRV_ERROR_NONE,成功
  • 3:DRV_ERROR_INVALID_VALUE,参数错误
  • 17:DRV_ERROR_IOCRL_FAIL:ioctl命令失败。

约束说明

当HDC出现异常且HDC Session未关闭的场景下,可设置attr为“HDC_SESSION_ATTR_DFX”,在内核日志中打印session维测信息辅助问题定位。正常场景下,不建议设置attr为“HDC_SESSION_ATTR_DFX”,避免造成内核日志信息打印刷屏。