2017-02-14 12 views
0

일치하는 경로에 dentry을 성공적으로 만들었지 만 실제로 어떻게 거기에 쓸 수 있습니까?Linux 커널 모듈에서 디버그로 작성

struct dentry* log_dir = debugfs_create_dir ("my_module", NULL); 
struct dentry* log_file = debugfs_create_dir ("log", 0777, log_dir, NULL, NULL); 

답변

1

나는 커널 소스 트리 내에 debugfs.txt 문서 파일이 될 것입니다 무엇을해야하는지에 대한 최상의 기준을 말할 것입니다.

은 또한 당신이 여기에 코드 샘플에서 실수를 가정

가 파일이 아닌 다른 디렉토리를 만들려고하는 것처럼 보이는 때문에
struct dentry* log_file = debugfs_create_dir ("log", 0777, log_dir, NULL, NULL); 

.

struct dentry* log_file = debugfs_create_file("log", 0777, log_dir, NULL, &log_fops); 

하는 log_fops 어쩌면이 같은 것 여기서 :

static const struct file_operations log_fops = { 
    .owner = THIS_MODULE, 
    .read = log_read, 
    .write = log_write, /* maybe you don't need this */ 
}; 

그리고 물론 당신은 또한 당신의 log_read를 구현해야 것 그래서 난 당신이 같은 더하고 싶었던 것 같아요 및 log_write 함수 :

ssize_t log_read(struct file *file, char __user *buff, size_t count, loff_t *offset); 

ssize_t log_write(struct file *file, const char __user *buff, size_t count, loff_t *offset);