Oracle® Solaris 11.2 デバイスドライバの記述

印刷ビューの終了

更新: 2014 年 9 月
 
 

getinfo() エントリポイント (SCSI ターゲットドライバ)

SCSI ターゲットドライバの getinfo(9E) ルーチンは、ほかのドライバとほぼ同じです (DDI_INFO_DEVT2INSTANCE の場合の詳細についてはgetinfo() Entry Pointを参照してください)。ただし、getinfo() ルーチンの DDI_INFO_DEVT2DEVINFO の場合、ターゲットドライバは dev_info ノードへのポインタを返す必要があります。このポインタは、ドライバの状態構造体に保存することも、scsi_device(9S) 構造体の sd_dev フィールドから取得することもできます。次の例は、代替の SCSI ターゲットドライバの getinfo() コードフラグメントを示しています。

使用例 17-4  代替 SCSI ターゲットドライバの getinfo() コードフラグメント
case DDI_INFO_DEVT2DEVINFO:
    dev = (dev_t)arg;
    instance = getminor(dev);
    xsp = ddi_get_soft_state(statep, instance);
    if (xsp == NULL)
        return (DDI_FAILURE);
    *result = (void *)xsp->sdp->sd_dev;
    return (DDI_SUCCESS);