USB ドライバー コードで Proc エントリを作成したいのですが、関数 'create_proc_read_entry' および 'remove_proc_entry' の暗黙的な関数宣言としてエラーが発生します。
Linux デバイス ドライバー テキストで指定されているように proc エントリを作成するために、scull ドライバー コードで同様の手順を実行しましたが、makefile でコンパイル中に上記の 2 つのエラーが発生します。
ubuntu 12.04カーネルバージョンでコードをコンパイルしていますが、3.2.0-23-generic-paeです。既存のドライバー コードに小さな編集を加えました。以下はコード スニペットです。他に詳細が必要な場合はお知らせください。
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/version.h>
#include <linux/usb.h>
#include <linux/mutex.h>
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/cdev.h>
#include <asm/uaccess.h>
#ifdef ENABLE_FILE_OPS
#include <asm/atomic.h>
#include <linux/proc_fs.h>
#endif
#include "ddk_mem.h"
#include "usb_proc.h"
#define PROC_DEBUG
#ifdef PROC_DEBUG
int read_proc(char *buf, char **start, off_t offset,
int count, int *eof, void *data)
{
int len=0;
len += sprintf(buf+len, "Hello world");
*eof=1;
return len;
}
static void usb_mem_create_proc(void )
{
create_proc_read_entry("hello",0,NULL,read_proc,NULL);
}
static void usb_mem_remove_proc(void)
{
remove_proc_entry("hello",NULL);
}
#endif