メモ
あまりにも色々とアレなので現実トウヒ。drivers/staging/rts_pstor の printk 関連なナニがまだ対応できてないので諸々確認してみた。
む、struct pci_dev 型の属性使ってるケイスがありますね。ちなみに pci_dev 構造体なオブジェクトについては
static int queuecommand_lck(struct scsi_cmnd *srb, void (*done)(struct scsi_cmnd *)) { struct rtsx_dev *dev = host_to_rtsx(srb->device->host);
で確保される rtsx_dev 構造体のメンバに居るはず。
struct rtsx_dev { struct pci_dev *pci;
む、なんとなく
- struct scsi_cmnd 型からプライベートな構造体にアクセスするマクロとか手続きがある
- その手続きでプライベートな構造体オブジェクト取得
- その中には struct pci_dev 型なポインタの属性がいる
という流れでそこから
struct device dev; /* Generic device interface */
というナニを使って dev_* なソレに云々、というカンジかな。drivers/scsi 配下を dev_err で grep してみると pci_dev 経由で云々が多いすな。
とは言え
もう少しきちんと根拠を確認した方が良さげ。