既にお持ちの Linux-2.0 用デバイスドライバをご自分で Linux-2.2 に移植する方 のためのメモです。
static int xx_read(struct inode*, struct file *, char *buf, size_t count); static int xx_write(struct inode *, struct file *, char *buf, size_t count); から、 static size_t xx_read(struct file *, char *buf, size_t count, loff_t *ptr); static size_t xx_write(struct file *, char *buf, size_t count, loff_t *ptr); に変更します。
MINOR は MINOR(file->f_dentry->d_inode->i_rdev) で求めます。
#include <asm/segment.h> memcpy_fromfs(), memcpy_tofs() から #include <asm/uaccess.h> copy_from_user(), copy_to_user() に変更します。パラメータは同じです。
(current->signal & ~current->blocked) から signal_pending(current) に変更します。
cli() と sti() をそれぞれ unsigned long flags; save_flags(flags); cli(); と restore_flags(flags); に変更します。
#include <linux/bios32.h> をインルードしないように変更します。
pcmcia-cs-3.1.8 等、最近の Linux PCMCIA Package では、システムファイルの構成
が少し変わって、昔の PCMCIA カードのデバイスドライバ・キットでは動作しなくな
ることがあります。原因は /var/run/stab という PCMCIA カードの現在の設定状況
に関する情報をサブシステム間で受渡しするためのファイルの置場所が変わったため、
カードが挿入されたとき、デバイス・ファイルの作成等を行う /etc/pcmcia/
最近の Linux PCMCIA Package では、/var/lib/pcmcia/stab になっていますが、 /var/state/pcmcia/stab になっているものもありますので、注意してください。
なお、最近の Linux PCMCIA Package では、stab ファイルのパスを統一して管理で
きるように /etc/pcmca/