warning:initialization from incompatible pointer type分析


文字ドライバでは、この行のコードに警告メッセージが表示されます.
warning: initialization from incompatible pointer type
static ssize_t s3c2440_key_read(struct file *filp, char __user *buf, ssize_t count, loff_t *ppos);

解析されたのは、関数宣言が関数のプロトタイプと一致しないためであり、その中の
ssize_t count
から
size_t count
でいいです.
同じように、
static void s3c2440_key_release(struct inode *inode, struct file *filp);
void
から
int
でいいです.
関数のプロトタイプとfile_operationsメンバー分析リファレンスhttp://blog.sina.com.cn/s/blog_56332e1d0100crc8.html