【问题标题】:(Linux Style) Ioctl code, Hard to understand(Linux风格)ioctl代码,难懂
【发布时间】:2020-03-05 08:29:59
【问题描述】:

我正在使用 infini** 芯片。

在他们的基本代码中,每个 [XXX_ioctl].c 代码在上面都有下面的代码。
XXX表示我要使用的驱动。)

typedef void (*PFUNCTION)(void); 

#define FUNCTION_COUNT 5

struct IoctlInterface {
    uint8_t count;
    PFUNCTION functionArray[FUNCTION_COUNT]; //function pointer array
} __STATIC const XxxInterface = {
    FUNCTION_COUNT,
    {
        (PFUNCTION) IFX_XXX_Open,
        (PFUNCTION) IFX_XXX_Close,
        (PFUNCTION) IFX_XXX_Ioctl,
        (PFUNCTION) IFX_XXX_CancleIO,
        (PFUNCTION) IFX_XXX_DriverInit,
    }
};

我知道structIoctlInterface有成员array[5],返回类型是函数指针。 但是,the following 是什么意思?

__STATIC const XxxInterface = {
FUNCTION_COUNT,
{
    (PFUNCTION) IFX_XXX_Open,
    (PFUNCTION) IFX_XXX_Close,
    (PFUNCTION) IFX_XXX_Ioctl,
    (PFUNCTION) IFX_XXX_CancleIO,
    (PFUNCTION) IFX_XXX_DriverInit,
}
};

先谢谢了。

※此帖如有侵犯芯片技术机密,我会立即删除。

【问题讨论】:

    标签: device-driver ioctl


    【解决方案1】:

    我认为您可能需要阅读更多关于 C 的内容。但是,在这一部分中,您只是声明了一个名为 XxxInterface 类型为 IoctlInterface 的(可能)全局(可能)静态变量并填写结构的成员。

    __STATIC const XxxInterface = {
    FUNCTION_COUNT,
    {
        (PFUNCTION) IFX_XXX_Open,
        (PFUNCTION) IFX_XXX_Close,
        (PFUNCTION) IFX_XXX_Ioctl,
        (PFUNCTION) IFX_XXX_CancleIO,
        (PFUNCTION) IFX_XXX_DriverInit,
    }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-11
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多