((Linux风格)Ioctl代码,很难理解

问题描述 投票:-1回答:1

我正在使用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,
    }
};

我知道结构IoctlInterface具有成员数组[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个回答
0
投票

[我认为您可能需要阅读一些有关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,
}
};
© www.soinside.com 2019 - 2024. All rights reserved.