Linux kernel source

グループについて

Linux kernel のソースコードメモです


カーネルの関数・構造体のソースを読んだ時は、忘れずにコピペ。関数名・構造体名をキーワードにする。 何も説明を書かなくてもキーワードは作成する。

定義されているファイルのパスもコピペ。

ファイルパスに対応するキーワードが無ければ先に作成しておく。内容は空欄でも良い。理想は関数・構造体の列挙。

そうすることによって自動で集約されていく。


参考は読学のススメ

ただしこのグループの場合はctagsのようにコードを追えることを優先している。


注意点:Debian3.1 の kernel2.6.8-3-686 を元に読んでいて、現在(20080326)id:n314 の環境はDebian4.0(etch)の kernel-2.6.18-6-686 を元に読んでいる。環境依存があるかもしれない。気付いたところから最新情報に更新していくのでバージョンが混ざっている。

vfs_create

fs/namei.c ファイルシステムの i_op->create を呼び出して dentry に対応する i-node を作成する。 int vfs_create(struct inode *dir, struct dentry *dentry, int mode, struct nameidata *nd) { int er...

open_namei

fs/namei.c pathname から struct nameidata を設定する。 /* * open_namei() * * namei for open - this is in fact almost the whole open-routine. * * Note that the low bits of "flag" aren't the same as in the open * system call - ...

sys_open

fs/open.c open()システムコールによって呼び出される asmlinkage long sys_open(const char __user * filename, int flags, int mode) { char * tmp; int fd, error; #if BITS_PER_LONG != 32 flags |= O_LARGEFILE; ...

struct open_intent

include/linux/namei.h open_namei()で利用するためのデータ。 struct open_intent { int flags; オープン時のフラグ int create_mode; ファイル作成時のモード struct file *file; ...

struct address_space_operations

include/linux/fs.h ページキャッシュ操作関数群。 struct address_space_operations { int (*writepage)(struct page *page, struct writeback_control *wbc); ページキャッシュの書き込みを行う関数 ...

block_prepare_write

fs/buffer.c 標準のa_ops->prepare_write。 解説はこちらを見ると分かり易い。 http://wiki.bit-hive.com/linuxkernelmemo/pg/block_prepare_write() int block_prepare_write(struct page *page, unsigned from, unsigned to, ...

__generic_file_write_nolock

mm/filemap.c struct kiocbを初期化して内部非同期書き込み関数を呼び出す。 static ssize_t __generic_file_write_nolock(struct file *file, const struct iovec *iov, unsigned long nr_segs, loff_t ...

__generic_file_aio_write_nolock

mm/filemap.c ページキャッシュへの書き込み関数。 エラーチェックを行いgeneric_file_buffered_write()を呼び出す。 static ssize_t __generic_file_aio_write_nolock(struct kiocb *iocb, const struct iovec *iov, ...

generic_file_buffered_write

mm/filemap.c ページキャッシュへの書き込み関数本体。 struct address_space_operationsのページキャッシュ書き込み関数を呼び出す。 ssize_t generic_file_buffered_write(struct kiocb *iocb, const struct iovec ...