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



我使用的是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,
}
};

谢谢。

※如果这个帖子侵犯了芯片的技术秘密,我会立即删除。

我认为您可能需要更多地了解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,
}
};

最新更新