メンテナンスするドライバがあり、それをLinuxヘッダー4.1.21にコンパイルする必要がありますが、不足しているaio_read
コンパイルエラーが発生します。交換されたとします。選択肢が何であるかをどうやって知ることができますか?aio_write
struct file_operations
fs.h
カーネル4.0で持っている:
struct file_operations {
struct module *owner;
loff_t (*llseek) (struct file *, loff_t, int);
ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
ssize_t (*read_iter) (struct kiocb *, struct iov_iter *);
ssize_t (*write_iter) (struct kiocb *, struct iov_iter *);
...
fs.h
カーネル4.1で 持っている:
struct file_operations {
struct module *owner;
loff_t (*llseek) (struct file *, loff_t, int);
ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
ssize_t (*read_iter) (struct kiocb *, struct iov_iter *);
ssize_t (*write_iter) (struct kiocb *, struct iov_iter *);
int (*iterate) (struct file *, struct dir_context *);
答え1
カーネル作業をしている場合は、購読する必要があります。Linux週間ニュース。
すぐに見つかりました。この記事and によって処理されaio_read
ていますaio_write
。read_iter
write_iter
以下のサイトでも、関連する短い説明を見つけることができます。Documentation/filesystems/porting
。